首页IT科技yolo车载定位追踪(记一次调试YOLOv5+DeepSort车辆跟踪项目的经过)

yolo车载定位追踪(记一次调试YOLOv5+DeepSort车辆跟踪项目的经过)

时间2025-08-04 01:43:18分类IT科技浏览5640
导读:摘要:学习别人的开源项目是日常的一项必备技能,本文通过一个车辆跟踪(YOLOv5+DeepSort)的例子介绍如何配置和调试GitHub上的开源代码。以第一人称的视角给出本人调试代码的过程,包括项目readme的阅读、python环境配置、代码调试运行等,详细的过程已录制在视频中。完整的代码和配置文件可三...

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

博客及代码详细介绍: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

        我这里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依赖文件。

结束语

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

声明:本站所有文章                  ,如无特殊说明或标注                        ,均为本站原创发布                。任何个人或组织    ,在未征得本站同意时              ,禁止复制            、盗用                      、采集           、发布本站内容到任何网站        、书籍等各类媒体平台                      。如若本站内容侵犯了原著者的合法权益                        ,可联系我们进行处理        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue海康威视(vue集成海康h5player实现播放) kb4534310无法安装(KB5004296无法安装,提示错误代码:0x800f0990的解决方法)