• AI项目八:yolo5+Deepsort实现目标检测与跟踪(CPU版)


    若该文为原创文章,转载请注明原文出处。

    一、DeepSORT简介

       DeepSORT 是一种计算机视觉跟踪算法,用于在为每个对象分配 ID 的同时跟踪对象。DeepSORT 是 SORT(简单在线实时跟踪)算法的扩展。DeepSORT 将深度学习引入到 SORT 算法中,通过添加外观描述符来减少身份切换,从而提高跟踪效率。

    这是提供两个demo,一是跟踪计数人员;二是车辆计数跟踪;

    二、环境搭建

    本人没有GPU的电脑,所以修改一些参数在CPU上跑,只是为了学习验证。

    1、创建虚拟环境

    conda create -n yolov5_deepsort_env python==3.8

    2、激活环境

     conda activate yolov5_deepsort_env

    3、下载代码

    1. 链接:https://pan.baidu.com/s/1CSfqIrDh-r17wDvm_rOF-A?pwd=1234 
    2. 提取码:1234 

    4、安装yolov5

    进入存放的路径,修改成自己的路径:

    cd G:\enpei_Project_Code\02_deepsort\yolov5-deepsort

    安装 

     pip install -r .\requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple

     安装成功:

    接下来验证

    三、测试

    执行

    python .\count_car.py

    结果报错了

    所以下面处理各种错误:

    错误1:ImportError: cannot import name 'EasyDict' from 'easydict' (unknown location)

    原因是easydict版本不对,需要指定版本。

    处理:下载easydict,并重新安装;

    下载地址:

    https://files.pythonhosted.org/packages/4c/c5/5757886c4f538c1b3f95f6745499a24bffa389a805dee92d093e2d9ba7db/easydict-1.9.tar.gz

    下载后解压,并安装,安装指令如下:

    python setup.py install --user

    错误2:RuntimeError: "slow_conv2d_cpu" not implemented for 'Half'

    原因:因为没有Cuda支持,无法使用半精度VAE模块进行推理

    处理:找到文件下的half,全部修改成float

    错误3:AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'

    处理:

    打开D:\Anaconda3\envs\yolov5-6.0\lib\site-packages\torch\nn\modules\upsampling.py(注意路径,为环境下)

    修改代码

    1. def forward(self, input: Tensor) -> Tensor:
    2. return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)
    3. # return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners,
    4. # recompute_scale_factor=self.recompute_scale_factor)

    错误4:AttributeError: module 'numpy' has no attribute 'float'.

    原因:numpy版本不对,重新安装numpy

    处理:

    1. pip uninstall numpy
    2. pip install numpy==1.20.3

    所有错误处理完后,在次运行

     python .\count_car.py

    代码比较易懂,值得学习,这里不过不解析代码。

    如有侵权,或需要完整代码,请及时联系博主。

  • 相关阅读:
    『现学现忘』Docker基础 — 25、Docker镜像讲解
    完善的交叉编译环境记录 peta 生成的shell 脚本
    Vue项目实现懒加载——自用笔记
    8.4 数据结构——选择排序
    TortoiseGit图标覆盖的意义
    Leedcode【899】. 有序队列——Java解法
    基于python的django框架选题推荐生鲜超市供应平台
    RabbitMQ之发布确认高级
    (附源码)Springboot 点餐系统 毕业设计 100908
    前端Vue怎么获取登录的用户名或用户id
  • 原文地址:https://blog.csdn.net/weixin_38807927/article/details/132940167