Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.
6404 Discussions

CustomVision.ai Object Detection ONNX Model - Can't find a DetectionOutput layer in the topology

Velasco__Sergio
Beginner
1,413 Views

Hi, i'm trying to run the C++ object_detection_sample_ssd project with my custom onnx model from Microsoft Azure Custom Vision portal.
Is an Object Detection model with 27 labels that uses an image as input.

When I run the Object Detection C++ Sample SSD project using the optimized model with this command:

object_detection_sample_ssd -i C:\...\x.jpg -m C:\...\model.xml -d CPU

I get this error:

[ INFO ] InferenceEngine:
API version ............ 2.1
Build .................. 42025
Description ....... API
Parsing input parameters
[ INFO ] Files were added: 1
[ INFO ] C:\...\x.jpg
[ INFO ] Loading Inference Engine
[ INFO ] Device info:
CPU MKLDNN
Plugin version ......... 2.1
Build ........... 42025
[ INFO ] Loading network files:
C:\...\model.xml
C:\...\model.bin
[ INFO ] Preparing input blobs
[ INFO ] Batch size is 1
[ INFO ] Preparing output blobs
[ ERROR ] Can't find a DetectionOutput layer in the topology

In Netron, an open source viewer for neural networks, I can see this:

MODEL PROPERTIES
format ONNX v3
domain onnxml
imports ai.onnx v7
INPUTS
data
name: data
type: float32[None,3,416,416]
denotation: Image(Bgr8)
Image(s) in BGR format. It is a [N, C, H, W]-tensor.  
The 1st/2nd/3rd slices along the C-axis are blue, green, and red channels, respectively.
OUTPUTS
model_outputs0
name: model_outputs0
type: float32[None,None2,13,13]

Is there something I am doing wrong?
Is it the right sample to test my model?

All clues are welcome.

Thanks in advance.

0 Kudos
3 Replies
Ramawi_Putra__Jhon
1,413 Views

Hi Sergio,

If you trained the model using CustomVision.ai, you can test the model using the sample scripts that are bundled with the model when you download it. 

Once you have converted it to IR Model, refer to sample code (python) for preprocessing the results (id, label, bounding box, etc).

Regards,

Jhon Ramawi Putra

0 Kudos
Ramawi_Putra__Jhon
1,413 Views

Hi Sergio,

If you trained the model using CustomVision.ai, you can test the model using the sample scripts that are bundled with the model when you download it. 

Once you have converted it to IR Model, refer to sample code (python) for preprocessing the results (id, label, bounding box, etc).

Regards,

Jhon Ramawi Putra

0 Kudos
Munesh_Intel
Moderator
1,413 Views

Hi Sergio,

Greetings to you.

I would suggest you run Object Detection C++ Sample SSD demo with a validated pre-trained object detection model (person-detection-retail-0013, person-detection-retail-0002, etc.).

The list of pre-trained object detection models that you can use for learning and demo purposes or for developing deep learning software is available at the following page:

https://docs.openvinotoolkit.org/2020.3/_models_intel_index.html#object_detection_models

Also, please take a closer look at the model you are using to confirm whether it is an object detection model, contains DetectionOutput layer, and fulfills the requirements of an object detection SSD model.

Detailed information of model conversion process for SSD topologies is available at the following page:

https://docs.openvinotoolkit.org/2020.3/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_Object_Detection_API_Models.html#ssd_single_shot_multibox_detector_topologies

 

Regards,

Munesh

0 Kudos
Reply