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.jpgThe 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.pngThis 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.pngThe 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
dnnpackage. - More information here: https://github.com/opencv/opencv/wiki/Deep-Learning-in-OpenCV