知识点
OpenCV DNN模块支持YOLO对象检测网络,最新的OpenCV4.0支持YOLOv3版本的对象检测网络,YOLOv3版本同时还发布了移动端支持的网络模型YOLOv3-tiny版本,速度可以在CPU端实时运行的对象检测网络,OpenCV中通过对DarkNet框架集成支持实现YOLO网络加载与检测。因为YOLOv3对象检测网络是多个层的合并输出,所以在OpenCV中调用时候必须显示声明那些是输出层,这个对于对象检测网络,OpenCV提供了一个API来获取所有的输出层名称,该API为:
1 | # 该函数返回所有非连接的输出层。 |
调用时候,必须显式通过输入参数完成推断,相关API如下:
1 | void cv::dnn::Net::forward( |
跟SSD/Faster-RCNN出来的结构不一样,YOLO的输出前四个为: [center_x, center_y, width, height]
后面的是所有类别的得分,这个时候只要根据score大小就可以得到score最大的对应对象类别,解析检测结果。相关模型下载到YOLO作者的官方网站:
YOLO: Real-Time Object Detection
代码(c++,python)
1 |
|
1 | """ |