YOLOv5初级问题与报错汇总

背景:

本人应学校需求掌握机器视觉相关工具,于是零基础跟着大佬的步伐一步一步走。目标检测---教你利用yolov5训练自己的目标检测模型

由于版本更迭等等原因,会遇到很多原作者没有的问题。这里跟随原作者的配置yolov5脚步,将原作者没有遇到的问题进行一个汇总。

问题1:在初次编译时,报错ModuleNotFoundError: No module named 'torch'

这还是pytorch没有下载成功的原因,这个时候千万不要在网上自己搜着去下载pytorch包,而是需要继续在Anaconda里面下载。因为你的最终目的不是下载pytorch包,而是通过Anaconda完成CUDA和cudnn的安装。

这里要注意的是,虽然原作者使用的是清华源,但是自己试了很多遍,依然没有成功解决。这里我直接不用清华源了,即在网站中将所有指令内容全部复制。一次下载成功。

同时,作者下载了pytorch和paddle两个环境,但这个项目只用得上第一个。

YOLOv5初级问题与报错汇总_第1张图片 

注意这里会在solving environment卡死,属于正常现象,千万不要退出。可以自行搜索解决,我这里没有做这一步,需要等数个小时才能好。

问题2:无法通过pip安装'opencv—python''thop''pycocotools'软件包

这个问题包含了很多报错,大致可以分为“ModuleNotFoundError: No module named '******'”以及“ERROR: Invalid requirement:‘******’”两类。第一种是软件包没有下载,第二种是说自己下载,但是下载错了包。'opencv—python''thop''pycocotools'这三个包由于版本、环境等原因无法直接pip下载。

针对“opencv—python”包,参考高版本(3.9版本)python在anaconda安装opencv库及skimage库(scikit_image库)诸多问题解决办法他里面写了很多尝试办法,可以直接提炼为:在网站中下载好相应的包后,直接在终端输入:

pip install D:\dependencies\opencv_python-4.5.5-cp38-cp38-win_amd64.whl

注意:这里终端打开记得用conda activate pytorch来换成pytorch环境。代码中的路径与文件名记得修改。

针对thop,参考python安装thop

文章中写的很清楚,照做即可。

针对pycocotools,参考Win10复现yolov5时有关pycocotools>=2.0错误的解决办法

同样文章中写的很清楚,照做即可。直接去看他的3.2就行。

问题3:报错CalledProcessError: Command 'pip install 'protobuf<3.20,>=3.9.2'' returned non-zero exit status 1.

如果你遇到了这个报错,可能是最恶心的一个问题了。因为如果python版本大于等于3.9的话,是需要降低版本的。。。至少我是这么做的。

首先这个报错的大概意思是protobuf这个包的版本不对,只支持3.9.2版本。

YOLOv5初级问题与报错汇总_第2张图片

而这个包是跟随pip的tensorboard>=2.4.1下载的,下载的版本是最新版本,我的是3.20.1版本。这时只需要在解释器软件包的设置界面下载3.9.2版本的protobuf包就可以了。

YOLOv5初级问题与报错汇总_第3张图片

YOLOv5初级问题与报错汇总_第4张图片

 在指定版本中选择3.9.2就行。

(成功了下面就不用看了)

如果你的python版本在3.9及以上,那么就会安装失败,报错:

YOLOv5初级问题与报错汇总_第5张图片

说明protobuf==3.9.2支持的python版本最高为3.8,这里需要从新建pytorch环境开始,降低python版本。

问题4:报错“AssertionError: Image Not Found+不存在的图片路径”

这个错误只在使用别人的数据集中才存在。

解决方法参考解决YOLOv5训练报错之AssertionError: Image Not Found YOLOv5-5.0/VOCdevkit/images/train/0.jpg

文章中写的很清楚,照做删除即可。我还尝试了其他博主的一些方法,但上面的那个链接是最简单有效的。

问题5:报错AttributeError: Can't get attribute 'SPPF' on

这个错误说明代码下载了最新yolo版本的模型。

解决方法参考AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models.common‘ from ‘H:\\yolov5-5.0\\models\\

文章中写的很清楚,照做即可。

搜集资料时有一种貌似更好的方法,链接如下,但是上一种方法亲测可行。运行yolov5-5.0出现AttributeError: Can‘t get attribute ‘SPPF‘ 正确解决方法

问题6:马上开始运行的时候报错:RuntimeError: result type Float can‘t be cast to the desired output type__int64

这个错误是类型转换的问题。是yolov5自身的问题,但是不清楚原作者为什么没遇到,应该是不同版本带来的问题吧。

解决方法参考RuntimeError: result type Float can‘t be cast to the desired output type __int64报错解决方法

文章中写的很清楚,照做即可。注意后面的返回值并不属于for函数。

备注:根据后期使用更新。文章中引用大量文章,如有侵权请联系删除。

你可能感兴趣的:(深度学习,目标检测,计算机视觉)