在CPU上跑YOLOv5【3】——让yolov5跑起来

发布的前两篇笔记主要是我再安装配置环境方面遇到的坑的总结,(其实在发布完后,运行detect.py还是遇到了不少错误)。今天第一次让detect.py顺利跑起来了!总结一下整个过程。(其实我也有很多概念还不是很清楚,只是先记录一下成功的方法,方便回顾)

先放一张detect.py运行成功截图:

1、在git上将前面笔记说的yolov5项目压缩包下载好后,解压缩到自己指定的文件夹中,用Pycharm打开;

2、python解释器,File->Settings->

3、新建了解释器后,在Anaconda Prompt中conda info -e会出现该环境。之后我们在Pycharm的终端运行

pip install -r requirements.txt

安装依赖。执行完这个命令后,我是遇到了三个库安装不成功:opencv-python、thop,以及pycocotools.解决方案见第四步。

4、三个库的安装

opencv-python库的解决,上一篇笔记中说的不完全正确,转移cv2文件那个方法在我这里虽然可以去掉import cv2的错误,但是仍然运行时候显示MouduleNotFoundError.所以我个人就先不采取这个方法。我的方法:

安装opencv库:

(1)清华镜像源下载whl文件,提供清华镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/opencv-python

(2)先别急着下载! 文件需要与自己的情况配套。否则会出现错误:打开控制台进入对应环境
输入pip debug --verbose

(3)找到字段Compatible tags:下面显示的就是当前Python版本可以适配的文件名:

比如这边显示的是cp37-cp37m-win_amd64,并且!!在这里要求的是opencv-python>=4.1.2版本,所以我最终选择了下载opencv_python-4.2.0.32-cp37-cp37m-win_amd64.whl版本,存放在d:\download文件夹中。下载完成后,在该环境下(我这里就是yolov5-5.0的anaconda环境)cd到whl文件所在文件夹,执行如下命令

如果通过以上命令没问题的话,退出重进以下pycharm就可以看到,已经没有opencv-python库install不成功的提示啦,只剩下另外两个:

thop库和pycocotools库我都是用类似的方法解决的,如下:

执行完后,所需要的库就都安装好了。

5、这时候运行detect.py文件,出现以下信息:

在这个Downloading完成后,我又遇到了几个bug。和这篇笔记一样!!跟着解决都完成了debug.感谢博主。

Pycharm+Anaconda+yolov5-5.0部署(手把手教+解决一些运行过程中的问题+最全部署yolov5)_subprocess.calledprocesserror: command 'pip instal-CSDN博客

以下是参考博主的一些Error解决方法截图:

【第一个错误】这是因为protobuf版本不符合,打开软件包,发现protobuf版本为3.20.3,恰好太高

解决方法:通过以下步骤选择3.19.6版本,在运行detect.py即可解决这个错误

【第二个错误】

找到SPPF,在common的149行
3.在上面复制粘贴,如下图

class SPPF(nn.Module):
  # Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher
  def __init__(self, c1, c2, k=5):  # equivalent to SPP(k=(5, 9, 13))
    super().__init__()
    c_ = c1 // 2  # hidden channels
    self.cv1 = Conv(c1, c_, 1, 1)
    self.cv2 = Conv(c_ * 4, c2, 1, 1)
    self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)

  def forward(self, x):
    x = self.cv1(x)
    with warnings.catch_warnings():
      warnings.simplefilter('ignore')  # suppress torch 1.9.0 max_pool2d() warning
      y1 = self.m(x)
      y2 = self.m(y1)
      return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1))

接着在最上面导入import warnings,如下图:

再次运行detect.py,这个错误解决。

【第三个错误】

【第四个错误】RunTimeError

RuntimeError: The size of tensor a (60) must match the size of tensor b (56) at non-singLeton dimension 3

这个错误较多人遇到,

原因分析:

这可能是因为5.0的工程下载了个6.1的模型,所以不匹配。参考链接

Pytorch中报错RuntimeError: The size of tensor a (60) must match the size of tensor b (56)-CSDN博客其中给了正确的5.0模型的https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt操作方法:

6、至此我的detect.py文件就可以顺利运行起来了。

我是CPU驱动,后面博主还有一些常见的参考错误解决方法,因为我没有遇到就先不在这记录了,可以直接参考大神们的经验!以下是我列出的参考的博文:

1、Pycharm+Anaconda+yolov5-5.0部署(手把手教+解决一些运行过程中的问题+最全部署yolov5)_subprocess.calledprocesserror: command 'pip instal-CSDN博客2、关于Demo YOLOv5项目中发现的报错以及对应的解决_runtimeerror: the size of tensor a (60) must match-CSDN博客3、Pytorch中报错RuntimeError: The size of tensor a (60) must match the size of tensor b (56)-CSDN博客4、【计算机视觉 02】YOLOv5 项目说明_runtimeerror: the size of tensor a (60) must match-CSDN博客5、在CPU上跑yolov5(详细步骤+适合入门)_yolo 怎么跑起来-CSDN博客

  • 44
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLOv5是一个基于开源YOLOv5项目的跌倒检测算法。该算法可以实现对人体的up(站立),bending(弯腰、蹲下)和down(躺下、摔倒)三种状态的检测。 在YOLOv5中,有不同版本的模型可供使用,如YOLOv5l、YOLOv5m和YOLOv5s等。为了适应手机端CPU/GPU性能相对较弱的情况,可以选择轻量化的模型yolov5s05,它是在yolov5s基础上进行模型轻量化处理得到的。轻量化后的模型yolov5s05将模型的channels通道数减少一半,并且将模型输入由原来的640×640降低到416×416或320×320。yolov5s05相较于yolov5s而言,计算量减少了16倍,参数量减少了7倍。 在YOLOv5中,Anchor是基于COCO数据集进行聚类获得的。关于Anchor的具体信息可以在models/yolov5s.yaml文件中找到。 所以,YOLOv5是一个用于跌倒检测的算法,根据不同的需求可以选择不同版本的模型,如yolov5s05来适应不同的硬件性能,并且Anchor是根据COCO数据集进行聚类获得的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [跌倒检测和识别2:YOLOv5实现跌倒检测(含跌倒检测数据集和训练代码)](https://blog.csdn.net/guyuealian/article/details/130250738)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值