使用YOLOv5实现单摄像头实时目标检测

这篇具有很好参考价值的文章主要介绍了使用YOLOv5实现单摄像头实时目标检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我将在上一节的基础上,一步一步展示如何实现单摄像头实时目标检测,其中包括我在配置过程中遇到的报错和解决方法。

实现单摄像头实时目标检测

使用YOLOv5实现单摄像头实时目标检测
  1. 将'--source'的默认值改为0

parser.add_argument('--source', type=str, default='0',help='file/dir/URL/glob, 0 for webcam')

这里的'0'是指系统默认的第一个摄像头,通常是电脑自带的摄像头,所以一定要记得把摄像头打开再运行代码(有些电脑会有摄像头物理开关,也记得打开)

使用YOLOv5实现单摄像头实时目标检测
  1. 这个时候很可能会出现TypeError: argument of type 'int' is not iterable报错

使用YOLOv5实现单摄像头实时目标检测

解决方法:

使用YOLOv5实现单摄像头实时目标检测

在datasets.py中第279行代码,给两个url参数加上str就可以了

  1. 运行detect.py

使用YOLOv5实现单摄像头实时目标检测
  1. 红线处表明摄像头视野内识别到了一个人,识别时间为0.006秒

  1. 英文小写输入状态下,长按键盘上的 'q' 可以结束识别

  1. 识别结果会以视频形式保存到如下路径

使用YOLOv5实现单摄像头实时目标检测

注意,要点击一下实时检测窗口,切换到英文小写输入法再按"q"才能正常退出并保存检测视频(强行结束程序可能会导致视频格式错误)

外接USB摄像头实时目标检测

如果外接多个USB摄像头,将'--source'的默认值值依次改为1、2、3…(分别对应系统默认第2、3、4个摄像头)运行即可,但是这样只能打开单个摄像头进行识别,如何同时打开多个摄像头,实现多线程单网络识别,我会在下一篇博客讲到。

使用YOLOv5实现单摄像头实时目标检测
parser.add_argument('--source', type=str, default='1',help='file/dir/URL/glob, 0 for webcam')

其他可能的报错

1.运行出现报错:AttributeError: 'NoneType' object has no attribute 'shape'

使用YOLOv5实现单摄像头实时目标检测

这种情况往往是之前成功运行了一次,再次运行时出现的报错,是硬件bug,将电脑的摄像头物理开关 先关闭 再打开 重新运行即可。

2.运行出现只能识别第一帧的画面的问题

这个问题我没有遇到,但是评论区有人反映,存在这样的问题。可以参考下面这篇博客进行解决(来自评论区大佬):

https://blog.csdn.net/AlwaysNoError/article/details/123298884?spm=1001.2014.3001.8078

求学路上,你我共勉(๑•̀ㅂ•́)و✧文章来源地址https://www.toymoban.com/news/detail-438830.html

到了这里,关于使用YOLOv5实现单摄像头实时目标检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包