From: Li Peng Date: Wed, 27 Dec 2017 15:15:50 +0000 (+0800) Subject: Add ocl version FasterRCNN accuracy test X-Git-Tag: accepted/tizen/6.0/unified/20201030.111113~234^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=00f03c57390ca18e51fd15a9451cead11eeff861;p=platform%2Fupstream%2Fopencv.git Add ocl version FasterRCNN accuracy test Signed-off-by: Li Peng --- diff --git a/modules/dnn/src/dnn.cpp b/modules/dnn/src/dnn.cpp index 32b09aa..10e4b0e 100644 --- a/modules/dnn/src/dnn.cpp +++ b/modules/dnn/src/dnn.cpp @@ -1123,13 +1123,13 @@ struct Net::Impl { if (use_umat) { + std::vector input_mats(ld.umat_inputBlobs.size());; std::vector inputs(ld.umat_inputBlobs.size());; std::vector outputs(ld.umat_outputBlobs.size()); - Mat mat; for (int i = 0; i < inputs.size(); i++) { - mat = ld.umat_inputBlobs[i].getMat(ACCESS_READ); - inputs[i] = &mat; + input_mats[i] = ld.umat_inputBlobs[i].getMat(ACCESS_READ); + inputs[i] = &input_mats[i]; } for (int i = 0; i < outputs.size(); i++) { diff --git a/modules/dnn/test/test_layers.cpp b/modules/dnn/test/test_layers.cpp index c55e7bc..362ba7d 100644 --- a/modules/dnn/test/test_layers.cpp +++ b/modules/dnn/test/test_layers.cpp @@ -600,4 +600,30 @@ TEST(Layer_Test_FasterRCNN_Proposal, Accuracy) EXPECT_EQ(countNonZero(out.rowRange(numDets, out.size[0])), 0); } +OCL_TEST(Layer_Test_FasterRCNN_Proposal, Accuracy) +{ + Net net = readNetFromCaffe(_tf("net_faster_rcnn_proposal.prototxt")); + + net.setPreferableBackend(DNN_BACKEND_DEFAULT); + net.setPreferableTarget(DNN_TARGET_OPENCL); + + Mat scores = blobFromNPY(_tf("net_faster_rcnn_proposal.scores.npy")); + Mat deltas = blobFromNPY(_tf("net_faster_rcnn_proposal.deltas.npy")); + Mat imInfo = (Mat_(1, 3) << 600, 800, 1.6f); + Mat ref = blobFromNPY(_tf("net_faster_rcnn_proposal.npy")); + + net.setInput(scores, "rpn_cls_prob_reshape"); + net.setInput(deltas, "rpn_bbox_pred"); + net.setInput(imInfo, "im_info"); + + Mat out = net.forward(); + + const int numDets = ref.size[0]; + EXPECT_LE(numDets, out.size[0]); + normAssert(out.rowRange(0, numDets), ref); + + if (numDets < out.size[0]) + EXPECT_EQ(countNonZero(out.rowRange(numDets, out.size[0])), 0); +} + }