@@ -32,7 +32,7 @@ class DNNTestNetwork : public ::perf::TestBaseWithParam< tuple<DNNBackend, DNNTa
32
32
dnn::Net net;
33
33
34
34
void processNet (std::string weights, std::string proto, std::string halide_scheduler,
35
- int inWidth, int inHeight , const std::string& outputLayer,
35
+ const Mat& input , const std::string& outputLayer,
36
36
const std::string& framework)
37
37
{
38
38
backend = (dnn::Backend)(int )get<0 >(GetParam ());
@@ -48,15 +48,18 @@ class DNNTestNetwork : public ::perf::TestBaseWithParam< tuple<DNNBackend, DNNTa
48
48
}
49
49
}
50
50
51
- Mat input (inHeight, inWidth, CV_32FC3);
52
51
randu (input, 0 .0f , 1 .0f );
53
52
54
-
55
53
weights = findDataFile (weights, false );
56
54
if (!proto.empty ())
57
55
proto = findDataFile (proto, false );
58
- if (!halide_scheduler.empty () && backend == DNN_BACKEND_HALIDE)
59
- halide_scheduler = findDataFile (std::string (" dnn/halide_scheduler_" ) + (target == DNN_TARGET_OPENCL ? " opencl_" : " " ) + halide_scheduler, true );
56
+ if (backend == DNN_BACKEND_HALIDE)
57
+ {
58
+ if (halide_scheduler == " disabled" )
59
+ throw ::SkipTestException (" Halide test is disabled" );
60
+ if (!halide_scheduler.empty ())
61
+ halide_scheduler = findDataFile (std::string (" dnn/halide_scheduler_" ) + (target == DNN_TARGET_OPENCL ? " opencl_" : " " ) + halide_scheduler, true );
62
+ }
60
63
if (framework == " caffe" )
61
64
{
62
65
net = cv::dnn::readNetFromCaffe (proto, weights);
@@ -80,7 +83,7 @@ class DNNTestNetwork : public ::perf::TestBaseWithParam< tuple<DNNBackend, DNNTa
80
83
net.setHalideScheduler (halide_scheduler);
81
84
}
82
85
83
- MatShape netInputShape = shape (1 , 3 , inHeight, inWidth );
86
+ MatShape netInputShape = shape (1 , 3 , input. rows , input. cols );
84
87
size_t weightsMemory = 0 , blobsMemory = 0 ;
85
88
net.getMemoryConsumption (netInputShape, weightsMemory, blobsMemory);
86
89
int64 flops = net.getFLOPS (netInputShape);
@@ -104,40 +107,45 @@ class DNNTestNetwork : public ::perf::TestBaseWithParam< tuple<DNNBackend, DNNTa
104
107
PERF_TEST_P_ (DNNTestNetwork, AlexNet)
105
108
{
106
109
processNet (" dnn/bvlc_alexnet.caffemodel" , " dnn/bvlc_alexnet.prototxt" ,
107
- " alexnet.yml" , 227 , 227 , " prob" , " caffe" );
110
+ " alexnet.yml" , Mat ( cv::Size ( 227 , 227 ), CV_32FC3) , " prob" , " caffe" );
108
111
}
109
112
110
113
PERF_TEST_P_ (DNNTestNetwork, GoogLeNet)
111
114
{
112
115
processNet (" dnn/bvlc_googlenet.caffemodel" , " dnn/bvlc_googlenet.prototxt" ,
113
- " " , 224 , 224 , " prob" , " caffe" );
116
+ " " , Mat ( cv::Size ( 224 , 224 ), CV_32FC3) , " prob" , " caffe" );
114
117
}
115
118
116
119
PERF_TEST_P_ (DNNTestNetwork, ResNet50)
117
120
{
118
121
processNet (" dnn/ResNet-50-model.caffemodel" , " dnn/ResNet-50-deploy.prototxt" ,
119
- " resnet_50.yml" , 224 , 224 , " prob" , " caffe" );
122
+ " resnet_50.yml" , Mat ( cv::Size ( 224 , 224 ), CV_32FC3) , " prob" , " caffe" );
120
123
}
121
124
122
125
PERF_TEST_P_ (DNNTestNetwork, SqueezeNet_v1_1)
123
126
{
124
127
processNet (" dnn/squeezenet_v1.1.caffemodel" , " dnn/squeezenet_v1.1.prototxt" ,
125
- " squeezenet_v1_1.yml" , 227 , 227 , " prob" , " caffe" );
128
+ " squeezenet_v1_1.yml" , Mat ( cv::Size ( 227 , 227 ), CV_32FC3) , " prob" , " caffe" );
126
129
}
127
130
128
131
PERF_TEST_P_ (DNNTestNetwork, Inception_5h)
129
132
{
130
133
processNet (" dnn/tensorflow_inception_graph.pb" , " " ,
131
134
" inception_5h.yml" ,
132
- 224 , 224 , " softmax2" , " tensorflow" );
135
+ Mat ( cv::Size ( 224 , 224 ), CV_32FC3) , " softmax2" , " tensorflow" );
133
136
}
134
137
135
138
PERF_TEST_P_ (DNNTestNetwork, ENet)
136
139
{
137
140
processNet (" dnn/Enet-model-best.net" , " " , " enet.yml" ,
138
- 512 , 256 , " l367_Deconvolution" , " torch" );
141
+ Mat ( cv::Size ( 512 , 256 ), CV_32FC3) , " l367_Deconvolution" , " torch" );
139
142
}
140
143
144
+ PERF_TEST_P_ (DNNTestNetwork, SSD)
145
+ {
146
+ processNet (" dnn/VGG_ILSVRC2016_SSD_300x300_iter_440000.caffemodel" , " dnn/ssd_vgg16.prototxt" , " disabled" ,
147
+ Mat (cv::Size (300 , 300 ), CV_32FC3), " detection_out" , " caffe" );
148
+ }
141
149
142
150
INSTANTIATE_TEST_CASE_P (/* nothing*/ , DNNTestNetwork,
143
151
testing::Combine (
0 commit comments