samples: use findFile() in dnn
authorAlexander Alekhin <alexander.a.alekhin@gmail.com>
Sun, 11 Nov 2018 13:18:09 +0000 (13:18 +0000)
committerAlexander Alekhin <alexander.a.alekhin@gmail.com>
Fri, 16 Nov 2018 18:08:22 +0000 (18:08 +0000)
samples/dnn/colorization.cpp
samples/dnn/common.py
samples/dnn/edge_detection.py
samples/dnn/fast_neural_style.py
samples/dnn/mask_rcnn.py
samples/dnn/mobilenet_ssd_accuracy.py
samples/dnn/object_detection.py
samples/dnn/openpose.cpp
samples/dnn/openpose.py

index 3f1c661..b68e0ec 100644 (file)
@@ -64,9 +64,9 @@ int main(int argc, char **argv)
         parser.printMessage();
         return 0;
     }
-    string modelTxt = parser.get<string>("proto");
-    string modelBin = parser.get<string>("model");
-    string imageFile = parser.get<string>("image");
+    string modelTxt = samples::findFile(parser.get<string>("proto"));
+    string modelBin = samples::findFile(parser.get<string>("model"));
+    string imageFile = samples::findFile(parser.get<string>("image"));
     bool useOpenCL = parser.has("opencl");
     if (!parser.check())
     {
index feafdc9..db9283b 100644 (file)
@@ -86,6 +86,10 @@ def findFile(filename):
         if os.path.exists(filename):
             return filename
 
+        fpath = cv.samples.findFile(filename, False)
+        if fpath:
+            return fpath
+
         samplesDataDir = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                                       '..',
                                       'data',
index 2611978..f242aab 100644 (file)
@@ -43,7 +43,7 @@ cv.dnn_registerLayer('Crop', CropLayer)
 #! [Register]
 
 # Load the model.
-net = cv.dnn.readNet(args.prototxt, args.caffemodel)
+net = cv.dnn.readNet(cv.samples.findFile(args.prototxt), cv.samples.findFile(args.caffemodel))
 
 kWinName = 'Holistically-Nested Edge Detection'
 cv.namedWindow('Input', cv.WINDOW_NORMAL)
index ab5d67f..6afd166 100644 (file)
@@ -13,7 +13,7 @@ parser.add_argument('--height', default=-1, type=int, help='Resize input to spec
 parser.add_argument('--median_filter', default=0, type=int, help='Kernel size of postprocessing blurring.')
 args = parser.parse_args()
 
-net = cv.dnn.readNetFromTorch(args.model)
+net = cv.dnn.readNetFromTorch(cv.samples.findFile(args.model))
 net.setPreferableBackend(cv.dnn.DNN_BACKEND_OPENCV);
 
 if args.input:
index cac8d6d..a67f195 100644 (file)
@@ -68,13 +68,13 @@ def drawBox(frame, classId, conf, left, top, right, bottom):
 
 
 # Load a network
-net = cv.dnn.readNet(args.model, args.config)
+net = cv.dnn.readNet(cv.samples.findFile(args.model), cv.samples.findFile(args.config))
 net.setPreferableBackend(cv.dnn.DNN_BACKEND_OPENCV)
 
 winName = 'Mask-RCNN in OpenCV'
 cv.namedWindow(winName, cv.WINDOW_NORMAL)
 
-cap = cv.VideoCapture(args.input if args.input else 0)
+cap = cv.VideoCapture(cv.samples.findFileOrKeep(args.input) if args.input else 0)
 legend = None
 while cv.waitKey(1) < 0:
     hasFrame, frame = cap.read()
index c522c5a..58395ac 100644 (file)
@@ -26,12 +26,12 @@ parser.add_argument('--annotations', help='Path to COCO annotations file.', requ
 args = parser.parse_args()
 
 ### Get OpenCV predictions #####################################################
-net = cv.dnn.readNetFromTensorflow(args.weights, args.prototxt)
+net = cv.dnn.readNetFromTensorflow(cv.samples.findFile(args.weights), cv.samples.findFile(args.prototxt))
 net.setPreferableBackend(cv.dnn.DNN_BACKEND_OPENCV);
 
 detections = []
 for imgName in os.listdir(args.images):
-    inp = cv.imread(os.path.join(args.images, imgName))
+    inp = cv.imread(cv.samples.findFile(os.path.join(args.images, imgName)))
     rows = inp.shape[0]
     cols = inp.shape[1]
     inp = cv.resize(inp, (300, 300))
index 2a89b8c..bf1c2e4 100644 (file)
@@ -67,7 +67,7 @@ if args.classes:
         classes = f.read().rstrip('\n').split('\n')
 
 # Load a network
-net = cv.dnn.readNet(args.model, args.config, args.framework)
+net = cv.dnn.readNet(cv.samples.findFile(args.model), cv.samples.findFile(args.config), args.framework)
 net.setPreferableBackend(args.backend)
 net.setPreferableTarget(args.target)
 outNames = net.getUnconnectedOutLayersNames()
@@ -182,7 +182,7 @@ def callback(pos):
 
 cv.createTrackbar('Confidence threshold, %', winName, int(confThreshold * 100), 99, callback)
 
-cap = cv.VideoCapture(args.input if args.input else 0)
+cap = cv.VideoCapture(cv.samples.findFileOrKeep(args.input) if args.input else 0)
 while cv.waitKey(1) < 0:
     hasFrame, frame = cap.read()
     if not hasFrame:
index da93154..b4934d7 100644 (file)
@@ -66,9 +66,9 @@ int main(int argc, char **argv)
         "{ t threshold      |  0.1  | threshold or confidence value for the heatmap }"
     );
 
-    String modelTxt = parser.get<string>("proto");
-    String modelBin = parser.get<string>("model");
-    String imageFile = parser.get<String>("image");
+    String modelTxt = samples::findFile(parser.get<string>("proto"));
+    String modelBin = samples::findFile(parser.get<string>("model"));
+    String imageFile = samples::findFile(parser.get<String>("image"));
     int W_in = parser.get<int>("width");
     int H_in = parser.get<int>("height");
     float thresh = parser.get<float>("threshold");
index 4f367c1..9fcca13 100644 (file)
@@ -45,7 +45,7 @@ else:
 inWidth = args.width
 inHeight = args.height
 
-net = cv.dnn.readNetFromCaffe(args.proto, args.model)
+net = cv.dnn.readNetFromCaffe(cv.samples.findFile(args.proto), cv.samples.findFile(args.model))
 
 cap = cv.VideoCapture(args.input if args.input else 0)