This module runs an object detection deep neural network using the OpenCV DNN library. Detection networks analyze a whole scene and produce a number of bounding boxes around detected objects, together with identity labels and confidence scores for each detected box.
This module supports detection networks implemented in TensorFlow, Caffe, Darknet, Torch, etc as supported by the OpenCV DNN module.
Included with the standard JeVois distribution are:
- OpenCV Face Detector, Caffe model
- MobileNet + SSD trained on Pascal VOC (20 object classes), Caffe model
- MobileNet + SSD trained on Coco (80 object classes), TensorFlow model
- MobileNet v2 + SSD trained on Coco (80 object classes), TensorFlow model
- Darknet Tiny YOLO v3 trained on Coco (80 object classes), Darknet model
- Darknet Tiny YOLO v2 trained on Pascal VOC (20 object classes), Darknet model
See the module's constructor (init) code and select a value for model to switch network. Object categories are as follows:
- The 80 COCO object categories are: person, bicycle, car, motorbike, aeroplane, bus, train, truck, boat, traffic, fire, stop, parking, bench, bird, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe, backpack, umbrella, handbag, tie, suitcase, frisbee, skis, snowboard, sports, kite, baseball, baseball, skateboard, surfboard, tennis, bottle, wine, cup, fork, knife, spoon, bowl, banana, apple, sandwich, orange, broccoli, carrot, hot, pizza, donut, cake, chair, sofa, pottedplant, bed, diningtable, toilet, tvmonitor, laptop, mouse, remote, keyboard, cell, microwave, oven, toaster, sink, refrigerator, book, clock, vase, scissors, teddy, hair, toothbrush.
- The 20 Pascal-VOC object categories are: aeroplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant, sheep, sofa, train, tvmonitor.
Sometimes it will make mistakes! The performance of yolov3-tiny is about 33.1% correct (mean average precision) on the COCO test set. The OpenCV Face Detector is quite fast and robust!
This module is adapted from the sample OpenCV code: https://github.com/opencv/opencv/blob/master/samples/dnn/object_detection.py
More pre-trained models are available on github in opencv_extra