python用opencv的dnn模块实现Yolo-Fastest 循环目标实时检测

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

HardyDragon_CC

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

使用python+opencv+yolov3实现实时目标检测

调用笔记本自带摄像头实时捕获帧
调用笔记本自带摄像头,实现捕获摄像头帧。设置显示框名称为‘window’,并等待鼠标或键盘任意键按下。如果鼠标或键盘任意键没有按下,则继续捕获;若按下&#

目标检测简介和滑动窗口

一、目标检测简介
目标检测是计算机视觉中一个重要的研究方向。人眼可以轻松、准确地识别出图片中的物体是什么、这个物体在图片中的哪个位置。 对于计算机来说,在以数字形式表示的图片中寻找目标物体,并判断这个物体是什么&#