窝牛号

深度学习和OpenCV的对象检测(MobileNet SSD视频流实时识别)

上期文章,我们分享了如何使用OpenCV 与MobileNet SSD模型来检测给定的图片,有网友反馈能否提供一下视频流的实时检测代码,其实我们在分享人脸识别的时候,分享了如何使用cv2.videoCpature 类来从视频中实时提取视频中的图片,进行人脸的识别,视频流的对象检测跟opencv的人脸检测一致,也可以使用cv2.videoCpature 类来从视频中实时提取视频中的图片,进行图片的对象检测,此类代码可以参考往期文章人工智能-Dlib+Python实现人脸识别

本期我们使用另外一个第三方库imutils,首先使用pip install imutils来安装

1 导入需要的第三方库2 初始化训练模型

此部分代码跟图片检测一致

15 输入prototxt与caffe 的模型文件地址

21 针对每个label,随机建一个颜色,以便后期检测图片时 ,使用不同的颜色框,以便区分

25 启动摄像头,src=0 ,默认是打开设备的默认摄像头

27 启动视频帧记录函数

4 视频流检测

视频流的对象检测与图片的检测过程一致,每行代码几乎都有注释,不再一一介绍

主要的区别是:图片检测首先定义了图片地址,视频检测,在视频流中提图片

53 当检测到对象后,通过imshow实时显示在视频流中

57 视频帧自动加1

5 end

检测结束,我们关闭一些资源

print 每秒的视频信息:每秒处理的视频帧数,每帧处理的时间

每秒处理8.7帧图片,稍微有点慢 ,若电脑配置高的话,或者使用多进程会好很多

多线程与多进程知识点,会在《每天一分钟,python一点通》系列教程中分享

从视频中截取的图片

微&信搜索:启示AI 科技

可以体验不同的AI 工具

当然,你也可以导入一个视频,让神经网络来检测,src=''要打开视频的绝对地址便可

检测完成后使用cv2的VideoWriter来保存视频便可

vs = VideoStream(src='')

下期分享

说到了多进程,我们下期来使用此方法优化一下代码来提高每秒的处理

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除

窝牛号 wwww.93ysy.com   沪ICP备2021036305号-1