return classNames;
}
+const char* params
+ = "{ help | false | Sample app for loading googlenet model }"
+ "{ proto | bvlc_googlenet.prototxt | model configuration }"
+ "{ model | bvlc_googlenet.caffemodel | model weights }"
+ "{ image | space_shuttle.jpg | path to image file }"
+ "{ opencl | false | enable OpenCL }"
+;
+
int main(int argc, char **argv)
{
CV_TRACE_FUNCTION();
- String modelTxt = "bvlc_googlenet.prototxt";
- String modelBin = "bvlc_googlenet.caffemodel";
- String imageFile = (argc > 1) ? argv[1] : "space_shuttle.jpg";
+ CommandLineParser parser(argc, argv, params);
+
+ if (parser.get<bool>("help"))
+ {
+ parser.printMessage();
+ return 0;
+ }
+
+ String modelTxt = parser.get<string>("proto");
+ String modelBin = parser.get<string>("model");
+ String imageFile = parser.get<String>("image");
Net net;
try {
//! [Check that network was read successfully]
}
+ if (parser.get<bool>("opencl"))
+ {
+ net.setPreferableTarget(DNN_TARGET_OPENCL);
+ }
+
//! [Prepare blob]
Mat img = imread(imageFile);
if (img.empty())
Mat inputBlob = blobFromImage(img, 1.0f, Size(224, 224),
Scalar(104, 117, 123), false); //Convert Mat to batch of images
//! [Prepare blob]
+ net.setInput(inputBlob, "data"); //set the network input
+ Mat prob = net.forward("prob"); //compute output
- Mat prob;
cv::TickMeter t;
for (int i = 0; i < 10; i++)
{