• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

dnn_model_runner/dnn_conversion/H05-Jul-2021-1,5071,073

face_detector/H03-May-2022-9,7249,699

README.mdH A D05-Jul-20215.1 KiB8565

action_recognition.pyH A D05-Jul-20213.3 KiB8352

classification.cppH A D05-Jul-20216.2 KiB171127

classification.pyH A D05-Jul-20215.4 KiB11889

colorization.cppH A D05-Jul-20216.9 KiB129106

colorization.pyH A D05-Jul-20212.9 KiB7048

common.hppH A D05-Jul-20214.3 KiB9687

common.pyH A D05-Jul-20214.8 KiB11398

custom_layers.hppH A D05-Jul-202110.6 KiB284213

dasiamrpn_tracker.cppH A D05-Jul-20216.2 KiB190149

download_models.pyH A D05-Jul-202113.7 KiB364324

edge_detection.pyH A D05-Jul-20212.7 KiB7049

fast_neural_style.pyH A D05-Jul-20211.8 KiB5443

human_parsing.cppH A D05-Jul-20214.6 KiB11077

human_parsing.pyH A D05-Jul-20217.8 KiB191143

mask_rcnn.pyH A D05-Jul-20215.1 KiB144102

mobilenet_ssd_accuracy.pyH A D05-Jul-20214.9 KiB13496

models.ymlH A D05-Jul-20215.6 KiB167154

object_detection.cppH A D05-Jul-202116.1 KiB477395

object_detection.pyH A D05-Jul-202113 KiB330250

openpose.cppH A D05-Jul-20215.7 KiB158106

openpose.pyH A D05-Jul-20216.4 KiB12395

optical_flow.pyH A D05-Jul-20214.2 KiB10485

person_reid.cppH A D05-Jul-20218.5 KiB243205

person_reid.pyH A D05-Jul-20219.5 KiB241213

scene_text_detection.cppH A D05-Jul-20216.3 KiB166130

scene_text_recognition.cppH A D05-Jul-20214.9 KiB145111

scene_text_spotting.cppH A D05-Jul-20216.1 KiB170132

segmentation.cppH A D05-Jul-20218.3 KiB253205

segmentation.pyH A D05-Jul-20215.5 KiB136104

shrink_tf_graph_weights.pyH A D05-Jul-20212.3 KiB6337

siamrpnpp.pyH A D05-Jul-202116.3 KiB405357

text_detection.cppH A D05-Jul-20216.7 KiB178124

text_detection.pyH A D05-Jul-20219.1 KiB240163

tf_text_graph_common.pyH A D05-Jul-20219.8 KiB334272

tf_text_graph_efficientdet.pyH A D05-Jul-20219 KiB237175

tf_text_graph_faster_rcnn.pyH A D05-Jul-202112.4 KiB300224

tf_text_graph_mask_rcnn.pyH A D05-Jul-202111.3 KiB298229

tf_text_graph_ssd.pyH A D05-Jul-202117.9 KiB414312

virtual_try_on.pyH A D05-Jul-202120.2 KiB473376

README.md

1# OpenCV deep learning module samples
2
3## Model Zoo
4
5Check [a wiki](https://github.com/opencv/opencv/wiki/Deep-Learning-in-OpenCV) for a list of tested models.
6
7If OpenCV is built with [Intel's Inference Engine support](https://github.com/opencv/opencv/wiki/Intel%27s-Deep-Learning-Inference-Engine-backend) you can use [Intel's pre-trained](https://github.com/opencv/open_model_zoo) models.
8
9There are different preprocessing parameters such mean subtraction or scale factors for different models.
10You may check the most popular models and their parameters at [models.yml](https://github.com/opencv/opencv/blob/master/samples/dnn/models.yml) configuration file. It might be also used for aliasing samples parameters. In example,
11
12```bash
13python object_detection.py opencv_fd --model /path/to/caffemodel --config /path/to/prototxt
14```
15
16Check `-h` option to know which values are used by default:
17
18```bash
19python object_detection.py opencv_fd -h
20```
21
22### Sample models
23
24You can download sample models using ```download_models.py```. For example, the following command will download network weights for OpenCV Face Detector model and store them in FaceDetector folder:
25
26```bash
27python download_models.py --save_dir FaceDetector opencv_fd
28```
29
30You can use default configuration files adopted for OpenCV from [here](https://github.com/opencv/opencv_extra/tree/master/testdata/dnn).
31
32You also can use the script to download necessary files from your code. Assume you have the following code inside ```your_script.py```:
33
34```python
35from download_models import downloadFile
36
37filepath1 = downloadFile("https://drive.google.com/uc?export=download&id=0B3gersZ2cHIxRm5PMWRoTkdHdHc", None, filename="MobileNetSSD_deploy.caffemodel", save_dir="save_dir_1")
38filepath2 = downloadFile("https://drive.google.com/uc?export=download&id=0B3gersZ2cHIxRm5PMWRoTkdHdHc", "994d30a8afaa9e754d17d2373b2d62a7dfbaaf7a", filename="MobileNetSSD_deploy.caffemodel")
39print(filepath1)
40print(filepath2)
41# Your code
42```
43
44By running the following commands, you will get **MobileNetSSD_deploy.caffemodel** file:
45```bash
46export OPENCV_DOWNLOAD_DATA_PATH=download_folder
47python your_script.py
48```
49
50**Note** that you can provide a directory using **save_dir** parameter or via **OPENCV_SAVE_DIR** environment variable.
51
52#### Face detection
53[An origin model](https://github.com/opencv/opencv/tree/master/samples/dnn/face_detector)
54with single precision floating point weights has been quantized using [TensorFlow framework](https://www.tensorflow.org/).
55To achieve the best accuracy run the model on BGR images resized to `300x300` applying mean subtraction
56of values `(104, 177, 123)` for each blue, green and red channels correspondingly.
57
58The following are accuracy metrics obtained using [COCO object detection evaluation
59tool](http://cocodataset.org/#detections-eval) on [FDDB dataset](http://vis-www.cs.umass.edu/fddb/)
60(see [script](https://github.com/opencv/opencv/blob/master/modules/dnn/misc/face_detector_accuracy.py))
61applying resize to `300x300` and keeping an origin images' sizes.
62```
63AP - Average Precision                            | FP32/FP16 | UINT8          | FP32/FP16 | UINT8          |
64AR - Average Recall                               | 300x300   | 300x300        | any size  | any size       |
65--------------------------------------------------|-----------|----------------|-----------|----------------|
66AP @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] | 0.408     | 0.408          | 0.378     | 0.328 (-0.050) |
67AP @[ IoU=0.50      | area=   all | maxDets=100 ] | 0.849     | 0.849          | 0.797     | 0.790 (-0.007) |
68AP @[ IoU=0.75      | area=   all | maxDets=100 ] | 0.251     | 0.251          | 0.208     | 0.140 (-0.068) |
69AP @[ IoU=0.50:0.95 | area= small | maxDets=100 ] | 0.050     | 0.051 (+0.001) | 0.107     | 0.070 (-0.037) |
70AP @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] | 0.381     | 0.379 (-0.002) | 0.380     | 0.368 (-0.012) |
71AP @[ IoU=0.50:0.95 | area= large | maxDets=100 ] | 0.455     | 0.455          | 0.412     | 0.337 (-0.075) |
72AR @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] | 0.299     | 0.299          | 0.279     | 0.246 (-0.033) |
73AR @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] | 0.482     | 0.482          | 0.476     | 0.436 (-0.040) |
74AR @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] | 0.496     | 0.496          | 0.491     | 0.451 (-0.040) |
75AR @[ IoU=0.50:0.95 | area= small | maxDets=100 ] | 0.189     | 0.193 (+0.004) | 0.284     | 0.232 (-0.052) |
76AR @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] | 0.481     | 0.480 (-0.001) | 0.470     | 0.458 (-0.012) |
77AR @[ IoU=0.50:0.95 | area= large | maxDets=100 ] | 0.528     | 0.528          | 0.520     | 0.462 (-0.058) |
78```
79
80## References
81* [Models downloading script](https://github.com/opencv/opencv/samples/dnn/download_models.py)
82* [Configuration files adopted for OpenCV](https://github.com/opencv/opencv_extra/tree/master/testdata/dnn)
83* [How to import models from TensorFlow Object Detection API](https://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API)
84* [Names of classes from different datasets](https://github.com/opencv/opencv/tree/master/samples/data/dnn)
85