首页 > 其他分享 >CPU环境下运行基于yolov5的行人检测代码(pedestrain detection based on yolov5 in CPU)

CPU环境下运行基于yolov5的行人检测代码(pedestrain detection based on yolov5 in CPU)

时间:2023-07-19 16:36:36浏览次数:60  
标签:pedestrain yolov5 文件 anaconda CPU 运行

最近在捣腾基于 yolov5 的行人检测代码,在 github 上下载一个案例之后因为没用 GPU 运行一直碰壁,出现了许多 bug,现在整理了下 error 和解决方法,成功调试出了基于 yolov5 的行人检测代码,分享给大家~

1. 运行环境:window10,CPU,Visual Studio Code

2. 项目路径:dyh 的 unbox_yolov5_deepsort_counting  yolov5 deepsort 行人 车辆 跟踪 检测 计数 项目

3. 环境配置

(1)下载代码文件 https://github.com/dyh/unbox_yolov5_deepsort_counting.git

(2)使用 anaconda 创建虚拟环境:conda create -n yolov5_pedestrain python=3.7  (注意,这里不要创建 python3.6,因为 python3.6 在安装 opencv 或者用 vscode 进行调试时会遇到很多问题。)

(3)进入虚拟环境:conda activate yolov5_pedestrain

(4)在 anaconda 环境下通过切换磁盘命令和 cd 命令进入到 unbox_yolov5_deepsort_counting 目录下 (例如,我的文件在 E盘 python_project 文件夹下的进入方式)

(5)复制生成一个 requirements2.txt 文件,删除其中的 pkg-resources 这一行,再运行 pip install -r requirements2.txt  (这里是为了解决安装 pkg-resources 出现的 error)

 (6)安装 pytorch,使用命令:pip install torch torchvision torchaudio 

至此,环境的安装就此完成。

4. 运行代码文件 main.py

可以直接在 anaconda 所在的环境下直接输入 python main.py 运行代码文件,为了方便调试,我是用 vscode 打开项目,在 vscode 环境下进行运行调试,这里读者可以自行选择运行方式。我在运行过程中遇到了以下 error,并附上相应的解决方案。

(1)error1: 

Exception has occurred: TypeError

load() missing 1 required positional argument: 'Loader'

错误原因:pyyaml 版本不匹配

解决方法:修改 pyyaml 到合适的版本,即在 anaconda 终端输入 pip install pyyaml==5.4.1

参考文章https://github.com/HowieMa/DeepSORT_YOLOv5_Pytorch/issues/11

(2)error2:

Exception has occurred: RuntimeError
"slow_conv2d_cpu" not implemented for 'Half'

错误原因:cuda 支持 Half 半精度类型,而 CPU 环境下则不支持 Half 精度

解决方法:把文件中运行时会出现 Half 的地方改成 float,即把

detector.py 文件中的 model.half() 改成 model.float() ;img = img.half() 改成 img = img.float() ;

utils\general.py 文件中的 x['model'].half()   改成  x['model'].float() ;

参考文章https://github.com/dyh/unbox_yolov5_deepsort_counting/issues/40

(3)error3:

Exception has occurred: AttributeError
'Upsample' object has no attribute 'recompute_scale_factor'

错误原因:torch 版本过高带来的错误

解决方法:注释掉 Upsample 中的 recompute_scale_factor 属性,即找到 anaconda 的安装目录,进入到 yolov5_pedestrain 环境文件下,找到 torch 的安装包文件,再找到 Upsample 文件,最后把 recompute_scale_factor 属性注释。如我是把 anaconda 安装在 D盘的 software 文件夹下的,那我的 Upsample 路径就是在 D:\software\anaconda3\envs\yolov5_pedestrain\Lib\site-packages\torch\nn\modules\upsampling.py 下,打开该文件,我在157行找到该属性,然后用 # 进行注释,修改如下(注意括号要到下一行,不然会出现语法错误):

参考文章https://github.com/ultralytics/yolov5/issues/6948

解决完上面的问题后,再次运行 main.py 代码,就可以顺利运行,之后就可以看到行人检测的结果了:

如果不是使用 vscode 或者 pycharm 开发环境,直接在 anaconda 中用命令行运行,结果如下:

至此,在 CPU 环境下顺利跑通基于 yolov5 的行人检测代码过程到此结束,希望能帮助到大家~

 

标签:pedestrain,yolov5,文件,anaconda,CPU,运行
From: https://www.cnblogs.com/ttweixiao-IT-program/p/17565888.html

相关文章

  • 用 perfcollect 洞察 Linux 上.NET程序 CPU爆高
    一:背景1.讲故事如果要分析Linux上的.NET程序CPU爆高,按以往的个性我肯定是抓个dump下来做事后分析,这种分析模式虽然不重但也不轻,还需要一定的底层知识,那有没有傻瓜式的CPU爆高分析方式呢?相信有很多朋友知道B站713事件,最终就是用perf找到了那个让cpu100%的lua函......
  • 微软计划在 Direct3D 12 新增工作图功能,可解除 GPU 与 CPU 间通信带宽限制
    导读微软计划在3D图形程序开发接口Direct3D12中加入工作图(WorkGraphs)功能,这项功能可解除目前GPU程序开发模型中的限制,让GPU通用运算能够处理更多的工作负载,更广泛地被应用。IT之家注意到,在传统情况下,GPU的工作负载需要由CPU决定,即GPU运算的每一个结果,都需......
  • yolov5环境配置
    基本配置:操作系统:windows10IDE:Pycharmpython版本:anacondaPyhon3.8pytorch版本:torch1.10.0cuda版本:11.3显卡:RTX2060super①安装pytorch-gpu版本下载离线安装包,地址:https://download.pytorch.org/whl/torch_stable.htmlimporttorchtorch.cuda.is_available()##判断pyt......
  • redis-server CPU 100%
    如何实现"redis-serverCPU100%"介绍在本文中,我将指导你如何通过一系列步骤来实现"redis-serverCPU100%"。这个过程可能会导致服务器负载升高,因此请谨慎操作,并确保你在实验环境中进行。整体流程在下面的表格中,我将列出实现这个目标的步骤和对应的代码:步骤描述1......
  • VMvare去虚拟化--cpu id
    安装好虚拟机之后,有机打开虚拟机目录找到(.vmx)文件,右键记事本打开,粘贴如下代码cpuid.1.edx=00010111100010111111101111111111cpuid.80000000.0.ebx="0111:0101:0110:1110:0110:0101:0100:0111"cpuid.80000000.0.ecx="0110:1100:0110:0101:0111:0100:0110:1110"cpuid.80000......
  • 【性能测试】性能监控-python编写(CPU | 内存 | 磁盘io)占比监控脚本
    一、主要通过Python脚本实现对linux环境(CPU|内存|磁盘io)监控脚本示例:importtimeimportsubprocess#获取CPU使用率defget_cpu_usage():#系统CPU占比=系统态占比+空闲态占比=3.2%+36.5%=39.7%cpu_usage=subprocess.check_output("top-bn1......
  • cpuset.cpus.effective: no such file or directory (修改 docker cgroup 版本的方法)
    要切换使用v1版cgroup,需要做如下配置: vim/etc/default/grub   GRUB_CMDLINE_LINUX="systemd.unified_cgroup_hierarchy=0" update-grubreboot  完美解决 ......
  • CPU性能指标简览
    ​作为计算机的运算核心和控制核心,CPU(CentralProcessingUnit)由运算器、控制器、寄存器和实现其之间联系的数据、控制及状态的总线构成,决定着计算机运算性能强弱。作为信息技术产业的核心基础元器件,CPU的运作可分为四个阶段:提取(Fetch)、译码(Decode)、执行(Execute)和回写(Writeback)。......
  • librdkafka的rdk:broker-1线程cpu百分百问题分析
    问题调用栈:(gdb)bt#00x000000000068307cinrd_kafka_q_pop_serve(rkq=0x1ff31a0,timeout_ms=<optimizedout>,version=version@entry=0,cb_type=cb_type@entry=RD_KAFKA_Q_CB_RETURN,callback=callback@entry=0x0,opaque=opaque@entry=0x0)atrdkafka_que......
  • CPU - 为小宋整理的笔记
     CPU,中央处理器,负责指挥电脑的其他零部件干活。 CPU是计算机的中央处理器,它是由多个核心组成的。在Linux中,可以通过以下命令查看CPU型号、核数和个数:查看CPU型号:cat/proc/cpuinfo|grep"modelname"查看物理CPU个数:cat/proc/cpuinfo|grep"physicalid"|sort|u......