Here you can find 3 different examples (Tensorflow, Caffe and Torch) on how to use the dnn
package from OpenCV. The idea is to understand how the package can be used to make inferences on any trained model.
For each model used, you need to understand the meaning of their output values.
Attention: this code runs under Python3
There is no need to install any Deep Learning framework! With just OpenCV you can make inferences on trained graphs from these common frameworks: Tensorflow, Caffe and Torch.
- Clone the repo.
- Optional Create a virtual environment (for example, using
virtualenv
) to keep dependencies isolated. - Run
pip install -r requirements.txt
- Run any of the following samples:
You can run an Object Detection model based on SSD+MobileNet trained on COCO dataset.
$ python main_tensorflow.py ./images/people.jpg
The used model was extracted from the official Tensorflow Object Detection API Zoo here
You can run an Image Classification Detection model trained on ImageNet dataset.
$ python main_caffe.py ./images/eagle.png
This model was extracted from the code that this excellent post provides.
You can run an Image Classification Detection model trained on ImageNet dataset.
$ python main_torch.py ./images/eagle.png
The model needs to be downloaded because it's not included in this repo. Go to ./torch/
to get the link to the official download URL. The model was extracted from here.
- Refer to this blogpost written by the author of the
dnn
package. - More information here: https://github.com/opencv/opencv/wiki/Deep-Learning-in-OpenCV