Test for FP16 version of OpenCV face detection network
authorDmitry Kurtaev <dmitry.kurtaev+github@gmail.com>
Mon, 5 Feb 2018 15:10:18 +0000 (18:10 +0300)
committerDmitry Kurtaev <dmitry.kurtaev+github@gmail.com>
Tue, 6 Feb 2018 10:16:07 +0000 (13:16 +0300)
modules/dnn/test/test_caffe_importer.cpp
samples/dnn/js_face_recognition.html

index fe2ad39..c828415 100644 (file)
@@ -460,10 +460,11 @@ TEST(Test_Caffe, multiple_inputs)
     normAssert(out, first_image + second_image);
 }
 
-TEST(Test_Caffe, opencv_face_detector)
+typedef testing::TestWithParam<std::string> opencv_face_detector;
+TEST_P(opencv_face_detector, Accuracy)
 {
     std::string proto = findDataFile("dnn/opencv_face_detector.prototxt", false);
-    std::string model = findDataFile("dnn/opencv_face_detector.caffemodel", false);
+    std::string model = findDataFile(GetParam(), false);
 
     Net net = readNetFromCaffe(proto, model);
     Mat img = imread(findDataFile("gpu/lbpcascade/er.png", false));
@@ -482,6 +483,11 @@ TEST(Test_Caffe, opencv_face_detector)
                                     0.95097077, 0.51901293, 0.45863652, 0.5777427, 0.5347801);
     normAssert(out.reshape(1, out.total() / 7).rowRange(0, 6).colRange(2, 7), ref);
 }
+INSTANTIATE_TEST_CASE_P(Test_Caffe, opencv_face_detector, Values(
+    "dnn/opencv_face_detector.caffemodel",
+    "dnn/opencv_face_detector_fp16.caffemodel"
+));
+
 
 TEST(Test_Caffe, FasterRCNN_and_RFCN)
 {
index 8cdfb57..be02645 100644 (file)
@@ -70,7 +70,7 @@ function recognize(face) {
 function loadModels(callback) {
   var utils = new Utils('');
   var proto = 'https://raw.githubusercontent.com/opencv/opencv/master/samples/dnn/face_detector/deploy.prototxt';
-  var weights = 'https://raw.githubusercontent.com/opencv/opencv_3rdparty/dnn_samples_face_detector_20170830/res10_300x300_ssd_iter_140000.caffemodel';
+  var weights = 'https://github.com/opencv/opencv_3rdparty/raw/19512576c112aa2c7b6328cb0e8d589a4a90a26d/res10_300x300_ssd_iter_140000_fp16.caffemodel';
   var recognModel = 'https://raw.githubusercontent.com/pyannote/pyannote-data/master/openface.nn4.small2.v1.t7';
   utils.createFileFromUrl('face_detector.prototxt', proto, () => {
     document.getElementById('status').innerHTML = 'Downloading face_detector.caffemodel';