位置: IT常识 - 正文

记一次调试YOLOv5+DeepSort车辆跟踪项目的经过

编辑:rootadmin
记一次调试YOLOv5+DeepSort车辆跟踪项目的经过

推荐整理分享记一次调试YOLOv5+DeepSort车辆跟踪项目的经过,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

摘要:学习别人的开源项目是日常的一项必备技能,本文通过一个车辆跟踪(YOLOv5+DeepSort)的例子介绍如何配置和调试GitHub上的开源代码。以第一人称的视角给出本人调试代码的过程,包括项目readme的阅读、python环境配置、代码调试运行等,详细的过程已录制在视频中。完整的代码和配置文件可三连博主B站视频后获取。

一次调试YOLOv5+DeepSort车辆跟踪项目的经过

博客及代码详细介绍:https://www.bilibili.com/video/BV1W34y1Y71w/(欢迎关注博主B站视频)


前言

        相传,当你找到一处好代码,雄心勃勃打算“学习”一下时,总会出现一些“灵异事件”,武力值低的人往往“出师未捷身先死”。别人的代码荡下来到自己机器上,怎么就是各种Error铺天盖地?不是环境报错、缺少文件,就是语法错误…于是乎在想这帮人总是分享一堆Bug作甚呢?还是我自己没Get到大佬的点?

        直接点,开始我们的故事吧。从前,有个夜黑风高的夜晚,收到上峰指示,先前的“目标跟踪”行动需立即执行:YOLOv4+Sort不好再用了,升级为YOLOv5+DeepSort。我想:“不会写啊,Python都没学过,额忘记我有没有学过了,晓得了先网上找一下吧”。咦,GitHub上有,和要求上差不多,妥了妥了,荡一下改改跑跑好不啦,小似情唷。喏这是原作者的效果,这个项目的地址:https://github.com/duongcongnha/Vehicle-tracking,下面说一下我调试该项目的经过。


1. 打量工作

        看到这样一个项目,检测和跟踪效果都不错,所以动手要把它在我的机器上运行起来。这里是GitHub的项目主页,我先下载一下代码到我的G盘,与此同时打量一下这个代码。

        下载好了,打开pycharm运行一下?别急,先看一眼训练好的模型有木有,老夫推断在models文件夹下,定睛一看存在yolov5的pt模型文件。Nice啊,目测可以先白嫖模型,预感这个程序靠谱。

        再看Readme里面如何使用,这里有Python环境版本,以及要安装的依赖列表(requirement.txt)。想来按照这个要求来,应该能跑通的吧,那现在能打开pycharm运行一下程序?那主程序是哪个不看看你就运行?待我先目测一下主程序在哪里,还有要怎么运行有没有介绍。

        这里记载了运行方式,用的命令行运行,这里有个cd命令,看来是在这个程序文件夹的application\main这个文件夹下,有个app_track.py,运行它应该就能跑起来了。

        这个项目代码写得比较规范,所以能很方便找到这三个点,其他的项目就不能保证这么幸运了,那样就得自己琢磨,当你阅码无数自然就能积累经验了。

2. 运行调试

        虽然看起来介绍齐全,但是我掐指一算可能会有坑,但是具体是什么坑我不知道。先启动pycharm,打开下载程序的文件夹,找到app_track.py这个主程序,然后运行程序?——先配置环境。有人问我:“原来有Python环境,配置好了很多三方依赖,直接用呗可以吗?”,那我不建议,这俩环境很可能不兼容,还是要改部分依赖包的版本,最终可能这个程序运行不通,你自己原来的程序也‘灵异’报错。”

        既然如此,我用Anaconda创建一个新环境,然后在新环境里收requirements.txt列出的这些“牛鬼蛇神”,目测靠谱一点。打开PyCharm的终端,输入一下命令:

conda create -n yolo5_track python==3.7记一次调试YOLOv5+DeepSort车辆跟踪项目的经过

        我这里pycharm内置的终端是cmd,有些新版的pycharm变成了powershell,那后面部分命令可能不一样。各自实际情况不一样,大家具体问题具体分析,千万别只是照葫芦画瓢。那在终端里面输入,如下:

        然后激活环境,常规操作是吧,那就不要出错。输入以下代码,这里如果是powershell执行下去效果可不一样,如果有需要就自己解决一下哈。

conda activate yolo5_track

        接下来要给这个环境装上依赖,它这个项目里是不是有requirements.txt,我们打开看一下。还挺齐全的,有依赖名字还有部分版本号要求,那就来呗。

        上面有提示我们输入pip的安装命令,那就在刚刚的终端下输入以下命令,读取txt文件,然后执行各个依赖的安装。

pip install -r requirements.txt

        当然要先切换到requirement.txt所在的文件夹目录,然后输入命令回车执行,ChuaChua一堆安装信息提示,然后耐心等待完成。

        安装成功之后,在pycharm中选择一下环境,基本就是File->Setting->Project->Python Interpreter,进入Python环境选择conda环境,确定刚刚创建好的环境即可。

        环境也选好了,是不是该点运行了啊?这时候是时候展现真正的技术了,打开app_track.py,在编辑器中右击选择“Run”,开始运行,然后手动祈祷。

        然后就是这样滴,what?不就是按照作者给出的吗,报错了是什么情况。看我干啥,想想什么原因啊。我们看一下最后三行,torch的module.py文件报错,显示没有某个属性。经验来看哈,这肯定是torch的版本不对,因为代码写错能出没有属性的可能性不大,除非是自己定义的,缺少了模块文件。这里显然是torch的调用问题,应该是版本问题。

        我们是按作者给出的requirements.txt安装的,那么问题出现在哪里呢?我们再看一眼这个文件的内容,有些地方是固定版本,有的是给出了最低要求,比如要求这个torch>=1.8.0,大于等于?那我现在的torch版本呢,在终端输入pip list,可以看到torch版本1.11.0,没毛病确实大于1.8.0。

        这个版本比1.8新多了,那你说有没有可能,到了某个版本来了个调整,把某些个属性给删掉或换成别的属性了呢?我想是很有可能的,在发布代码的时候作者想不到后面这些依赖会变成什么样的,所以只能告诉我们大于某个版本,所以这里装的时候就变成最新版。那如果我们把所有版本指定为特定的,是不是就能避免了。至于这里面这么多依赖,是不是所有版本都要调整呢,看经验或调试结果了。调整和测试后的依赖版本被我修改如下,然后保存在setup.txt中:

        重新输入pip安装命令,在终端键入以下命令,重新安装:

pip install -r setup.txt

        这时显然好起来了,运行结果如下,这其实是在处理中,等到进度完成,得到处理后的结果。完整版的资源代码和setup.txt配置文件,可关注并三连博主B站视频后评论获取,可轻松无Bug运行。

        这时找到inference/output文件夹下的mp4结果,可以得到如下的画面,这是在原视频中检测后输出的文件。

        注意到源码里面读取了yml的设置文件,下意识打开可以发现设置识别视频的路径在第24行,我们可以修改为自己的视频所在目录,重新进行检测测试一下。

        修改用自己的视频文件,测试结果如下,感觉可以满足一般的车辆检测跟踪和计数要求,感兴趣的朋友可以从博主B站视频,评论获取完整代码和setup.txt依赖文件。

结束语

        由于博主能力有限,博文中提及的方法即使经过试验,也难免会有疏漏之处。希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的实现方法也请您不吝赐教。

本文链接地址:https://www.jiuchutong.com/zhishi/299561.html 转载请保留说明!

上一篇:图像边缘检测(图像边缘检测的基本原理)

下一篇:怎么成为稚晖君?(稚晖君的学历)

  • 支付宝余额宝可以关闭吗(支付宝余额宝可以存钱吗)

    支付宝余额宝可以关闭吗(支付宝余额宝可以存钱吗)

  • 苹果手机抖音收藏在哪里找(苹果手机抖音收货地址怎么修改)

    苹果手机抖音收藏在哪里找(苹果手机抖音收货地址怎么修改)

  • 仅聊天和不让他看朋友圈有什么不同(仅聊天和不让他看朋友圈对方知道吗)

    仅聊天和不让他看朋友圈有什么不同(仅聊天和不让他看朋友圈对方知道吗)

  • 抖音上的抖一下是什么功能(抖音的抖一下怎么关闭)

    抖音上的抖一下是什么功能(抖音的抖一下怎么关闭)

  • 快手小店几天到账(快手小店几天到货)

    快手小店几天到账(快手小店几天到货)

  • 电话手表碎屏如何修复(电话手表碎屏如何修复多少钱)

    电话手表碎屏如何修复(电话手表碎屏如何修复多少钱)

  • 苹果13.2系统更新了什么(ios 13更新)

    苹果13.2系统更新了什么(ios 13更新)

  • 字体加粗的快捷键是(字体加粗的快捷键ps)

    字体加粗的快捷键是(字体加粗的快捷键ps)

  • w2020和fold区别(w2021和fold3的区别)

    w2020和fold区别(w2021和fold3的区别)

  • 苹果没有辅助功能怎么办(苹果手机怎么没有辅助功能设置)

    苹果没有辅助功能怎么办(苹果手机怎么没有辅助功能设置)

  • 华为手机为什么不能安装软件了(华为手机为什么变成黑白屏了)

    华为手机为什么不能安装软件了(华为手机为什么变成黑白屏了)

  • 智能拨号怎么取消(智能拨号怎么取消设置)

    智能拨号怎么取消(智能拨号怎么取消设置)

  • 微信健康码怎么不能用了(微信健康码怎么弄出来)

    微信健康码怎么不能用了(微信健康码怎么弄出来)

  • 苹果发邮件不能添加附件(iphone邮件不能发送)

    苹果发邮件不能添加附件(iphone邮件不能发送)

  • 红米k30和红米k305g区别(红米k30和红米k30pro)

    红米k30和红米k305g区别(红米k30和红米k30pro)

  • 苹果手机电池最大容量怎么恢复(苹果手机电池最大容量多久掉1%正常)

    苹果手机电池最大容量怎么恢复(苹果手机电池最大容量多久掉1%正常)

  • 4000mah电池要充多久(4000mah电池充满电耗电多少)

    4000mah电池要充多久(4000mah电池充满电耗电多少)

  • 手机屏幕内爆了能修吗(手机屏内爆了怎么办)

    手机屏幕内爆了能修吗(手机屏内爆了怎么办)

  • 微信借充电宝押金怎么退(微信借充电宝押金原路退回怎么操作)

    微信借充电宝押金怎么退(微信借充电宝押金原路退回怎么操作)

  • xsmax64g够用吗

    xsmax64g够用吗

  • 抖音企业号和普通号的区别(抖音企业号和普通号流量一样吗)

    抖音企业号和普通号的区别(抖音企业号和普通号流量一样吗)

  • 回收站的功能是什么(回收站的功能是什么如何删除项目而不将其放到回收站)

    回收站的功能是什么(回收站的功能是什么如何删除项目而不将其放到回收站)

  • 全民k歌如何解除私密(全民k歌如何解绑身份证)

    全民k歌如何解除私密(全民k歌如何解绑身份证)

  • xr怎么看是不是国行(xr怎么看是不是双卡)

    xr怎么看是不是国行(xr怎么看是不是双卡)

  • 苹果手机怎么投屏(苹果手机怎么投屏到电视上观看)

    苹果手机怎么投屏(苹果手机怎么投屏到电视上观看)

  • word海报制作教程步骤(word海报制作教案)

    word海报制作教程步骤(word海报制作教案)

  • Vue3-Pinia的基本使用

    Vue3-Pinia的基本使用

  • mysqld_safe命令  MySQL服务器启动脚本(mysqld_safe mysqld from pid)

    mysqld_safe命令 MySQL服务器启动脚本(mysqld_safe mysqld from pid)

  • ctrlaltdel命令  设置Ctrl+Alt+Del组合键的功能(ctrl ate del)

    ctrlaltdel命令 设置Ctrl+Alt+Del组合键的功能(ctrl ate del)

  • 企业境外参展 人员成本
  • 生产型企业出口退税账务处理
  • 企业所得税的代码是什么
  • 国内税和国外税
  • 个人所得税计算器
  • 疫情捐款收据有什么用吗
  • 技术转让是指
  • 企业所得税中的所得
  • 金融服务费可以谈吗
  • 与收益相关的政府补助会计分录总额法
  • 生产车间领用低值易耗品
  • 托收承付的逾期怎么处理
  • 外购货物对外捐赠企业所得税
  • 个体户办理税务登记有什么好处
  • 可交换债券与可转换债券的区别在于
  • 装卸搬运费是否含税
  • 出租房屋房产税怎么算
  • 免抵退转免税
  • 法人实名认证后没有绑定企业怎么办
  • 行政事业性收费包括哪些项目
  • 收到返还代扣代缴手续费如何入账?
  • 电脑开机后一直滴滴
  • win1020h2更新0x800f081f
  • 连接另外一个设备
  • 增值税报表上期留底税额填不上
  • cn域名删除期
  • macbookpro常见问题
  • 社保挂靠会计处理
  • vcpkgsrv.exe是什么进程
  • 企业并购的基本方法有
  • PHP:pg_num_rows()的用法_PostgreSQL函数
  • 代开专用发票缴纳增值税需要计提吗?
  • netddeclnt.exe - netddeclnt是什么进程 有什么用
  • assoc .exe=exefile是什么
  • 赊销商品属于什么信用
  • 前端是指什么工作
  • 小规模纳税人交税怎么做会计分录
  • 应交税金及附加包括哪些
  • 文件上传模板怎么弄
  • sftp命令大全
  • 帝国cms适合建什么站
  • 待核销基建支出并入哪个科目
  • 所得税费用怎样算出来的
  • 发票收到款项未付做什么凭证编制
  • sql server 2008使用教程
  • 销售退回怎么写分录
  • 暂估入账跨年如何红冲
  • 家电销售范围包括哪些
  • 补交以前年度环保税
  • 车费报销记入哪个账户
  • 现金支付的范围包括
  • 银行承兑汇票去哪个银行承兑
  • 项目完工后员工工作总结
  • 以现金支付现金股票增值权属于经营活动吗
  • 服务费的进项发票怎么做分录
  • 固定资产怎么录入系统
  • 商品流通企业会计
  • SQL Server Alwayson创建代理作业的注意事项详解
  • sql servers
  • sqlserver远程连接设置
  • solaris删除文件夹命令
  • windows隐藏administrator
  • centos5.8服务器
  • ubuntu系统怎么开机
  • win10 win8.1双系统
  • windows1020h2版本怎么样
  • win8的应用商店
  • cocos2dx用什么ide
  • android中常用的adapter不包括
  • unity3d初学者教程视频
  • nodejs截图
  • jq拖拽div替换位置
  • python socket编程步骤
  • javascript的代码写在哪里
  • easyui formatter
  • bootstrap日期控件背景为白
  • 湖南省电子税务局登录
  • 南京市国家税务局官网
  • 新开公司交印花税
  • 财政部国家税务总局2021年40号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设