- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The model was trained in Darknet. It is based off of Tiny Yolov2, the only modification to the architecture was that the model only detects a single class instead of the default 80. It has been tested using Darkflow and is known to have good performance.
I first convert from Darknet to Tensorflow using Darkflow:
./flow --model cherry.cfg --load cherry_final.weights --savepb
This works and does not give me an error. It creates a .pb file and a .meta file. I next convert from Tensorflow to IR format using the model optimizer:
sudo python3 mo_tf.py --input_model cherry.pb --tensorflow_use_custom_operations_config cherry.json --input_shape "[1,1280,704,3]" --data_type FP16
This also works fine and does not return an error. It creates a .bin file and a .xml file. My json contents are as follows:
[ { "id": "TFYOLO", "match_kind": "general", "custom_attributes": { "classes": 1, "coords": 4, "num": 5, "do_softmax": 1 } } ]
Finally, I load my generated IR files and attempt to classify a sample image, using the following script:
from __future__ import division import cv2 as cv import numpy as np import sys np.set_printoptions(threshold=sys.maxsize) # Load the model net = cv.dnn.readNet('cherry.xml', 'cherry.bin') # Specify target device net.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD) # Read an image frame = cv.imread('test.png') img = (frame.copy()).astype(np.float32) img = np.divide(img, 255) img = img[:, :, ::-1] input_image = img.astype(np.uint8) # Prepare input blob and perform an inference blob = cv.dnn.blobFromImage(input_image, size=(1280, 704), ddepth=cv.CV_8U) net.setInput(blob) out = net.forward() detection = out.reshape(5,6,40,22) for i in range(6): for j in range(40): for k in range(22): confidence = float(detection[4,i,j,k]) xmin = int((detection[0,i,j,k] - detection[2,i,j,k]/2) * frame.shape[0]) ymin = int((detection[1,i,j,k] - detection[3,i,j,k]/2) * frame.shape[1]) xmax = int((detection[0,i,j,k] + detection[2,i,j,k]/2) * frame.shape[0]) ymax = int((detection[1,i,j,k] + detection[3,i,j,k]/2) * frame.shape[1]) if confidence > 0.8: cv.rectangle(frame, (xmin, ymin), (xmax, ymax), color=(0, 255, 0))
Attempting to run this on an NCS2 results in the following error.
Traceback (most recent call last): File "test_myriad_openvino.py", line 27, in <module> out = net.forward() cv2.error: OpenCV(4.0.1) /home/odroid/opencv-4.0.1/modules/dnn/src/op_inf_engine.cpp:555: error: (-215:Assertion failed) Failed to initialize Inference Engine backend: [VPU] Internal error: Output in 17-maxpool has incorrect width dimension. Expected: 21 or 21 Actual: 22 in function 'initPlugin'
If I run it on an NCS1, I don't get an error, but the detections it makes on the test image are not correct. The network should be able to identify people in the image. I have also tested with another image with only one person but I still get seemingly random results. Again this is a model that had no issues detecting people when tested in Darknet.
I tried running it on the CPU (cv.dnn.DNN_TARGET_CPU) but I get this error:
Traceback (most recent call last): File "test_myriad_openvino.py", line 27, in <module> out = net.forward() cv2.error: OpenCV(4.0.1) /home/odroid/opencv-4.0.1/modules/dnn/src/op_inf_engine.cpp:555: error: (-215:Assertion failed) in function 'initPlugin' > Failed to initialize Inference Engine backend: Cannot find plugin to use : >
Inferences are being run on Ubuntu 16.04, Openvino version is 5.455. Any assistance you can provide would be highly appreciated. Thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dearest Jon3848,
Instead of using yolo2 I encourage you to 1) download the latest 2019 R1 OpenVino Release and 2) use yolo3. Intel has developed samples specifically for yolo3, in both Python and C++. I'm sure you are aware that yolo3 is an improvement over yolo2.
Thanks for using OpenVino !
Shubha
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page