Ask Your Question

Revision history [back]

Retrained tensorflow MobileNetSSD using the dnn module

Hello guys!

I retrained MobilenetSSD by using the Tensorflow Obect Detection API, and am now trying to load the frozen inference graph using the dnn module function:

net = cv.dnn.readNetFromTensorflow(prototxt, weights)

where I use https://github.com/opencv/opencv_extra/tree/master/testdata/dnn/ssd_mobilenet_v1_coco.pbtxt as 'pbtxt' with the num_classes set to my retrained number of classes and the frozen graph as 'weights'.

However, the output is just a bunch of random boxes. The inference is correct when using pure tensorflow, but that is too slow for my application.

My theory is a mismatch between the structure of graph definitions used by the Tensorflow Object Detection and the one used by OpenCV dnn module, but I would love to hear if anyone have any experience with the problem or some suggestions on how to solve it?

I am using Opencv 3.4.0 with contrib modules.

Kind regards, XenonHawk

Retrained tensorflow MobileNetSSD using the dnn module

Hello guys!

I retrained MobilenetSSD by using the Tensorflow Obect Detection API, and am now trying to load the frozen inference graph using the dnn module function:

net = cv.dnn.readNetFromTensorflow(prototxt, weights)

where I use https://github.com/opencv/opencv_extra/tree/master/testdata/dnn/ssd_mobilenet_v1_coco.pbtxt as 'pbtxt' with the num_classes set to my retrained number of classes and the frozen graph as 'weights'.

However, the output is just a bunch of random boxes. The inference is correct when using pure tensorflow, but that is too slow for my application.

My theory is a mismatch between the structure of graph definitions used by the Tensorflow Object Detection and the one used by OpenCV dnn module, but I would love to hear if anyone have any experience with the problem or some suggestions on how to solve it?

I am using Opencv 3.4.0 with contrib modules.

The problem seems to be similar to this

Kind regards, XenonHawk