![]()
python用opencv的dnn模块实现Yolo-Fastest 循环目标检测
思路来自于这篇blog:https://blog.csdn.net/nihate/article/details/108670542
什么是 opencv的dnn模块

什么是 Yolo-Fastest
仓库地址:https://github.com/dog-qiuqiu/Yolo-Fastest
中文介绍:https://zhuanlan.zhihu.com/p/234506503
Yolo-Fastest,顾名思义,应该是现在已知开源最快的最轻量的改进版yolo通用目标检测算法(貌似也是现在通用目标检测算法中最快最轻量的),其实初衷就是打破算力的瓶颈,能在更多的低成本的边缘端设备实时运行目标检测算法,例如树莓派3b,4核A53 1.2Ghz,在最新基于NCNN推理框架开启BF16s,320x320图像单次推理时间在60ms~,而在性能更加强劲的树莓派4b,单次推理33ms,达到了30fps的全实时。而相比较下应用最广泛的轻量化目标检测算法MobileNet-SSD要在树莓派3b跑200ms左右,Yolo-Fastest速度整整要快3倍+,而且模型才只有1.3MB,而MobileNet-SSD模型达到23.2MB,Yolo-Fastest整整比它小了20倍,当然这也是有代价的,在Pascal voc上的map,MobileNet-SSD 是72.7,Yolo-Fastest是61.2,带来了接近10个点的精度损失,当然孰轻孰重,大家都有各自的想法。其实大家一般的检测任务本身不会像VOC那样检测20类那么多那么复杂,一般都是几类甚至单类检测,那么这样对于模型本身学习能力要求没那么高,因为本身类别越多样本不平衡的问题越大,越影响模型本身的性能。
实时检测demo供参考
上面链接的博主给的代码实现了单张图片的检测。自己写了一个视频/摄像头实时检测的demo。
仓库地址: https://gitee.com/hardychenlong/raspberry-pie4b-yolo-detection
环境需要 python 的 opencv4,模型很小,有1M的,3M的,牺牲一些准确度提高识别速度,可以快速部署在移动端或者想树莓派这样的设备上。
本人在2020/11/27 ,使用 python3.7.9,PC上测试成功,opencv版本4.4.0,如果用opencv3的据开头blog的说法好像会报错。
Python 3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.4.0'
>>>
效果如下:

小结
之后可以配合检测结果做出其他的功能,例如发送提示消息等。
版权声明:本文为CSDN博主「HardyDragon_CC」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44880154/article/details/110247885
![]()

暂无评论