目录
一、适用版本
二、部署过程
1、下载yolov5
2、安装opencv和pytorch
安装opencv
安装pytorch
3、安装yolov5
4、运行detect.py
三、关于自己遇到的坑
树莓派4B:官方64位系统 ;python3.8或3.9
关于系统:最新系统的版本是Debian11(bullseye),可能与国内镜像源兼容性不足,所以可以暂时不换源。我是在没有换源的情况下部署yolov5的。
先去yolov5官网下载文件代码,然后在树莓派新建一个yolov5文件夹并把下载好的文件传输到里面
然后安装依赖:
sudo apt-get install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools python3-wheel python3-pillow python3-numpy
sudo apt-get install python3-opencv
这里要去下载旧版本pytorch,不要下载新版的(原因在文章结尾),可以到下面这个网址去下载.whl文件https://download.pytorch.org/whl/torch_stable.html要记得去PyTorch官网查看torch、torchvision的对应版本信息,确保它们是相互适配的。我下载的是python3.9的torch1.8.1版本,这是两个文件在网址里对应的截图
如果是python3.9版本就可以直接找到这两个红圈文件下载并传输到树莓派目录里的任意一个文件夹。如果是python3.8就下载cp38的文件,要注意文件开头是cpu结尾是aarch64,传输完成后,输入cd /home/你的用户名/.whl文件所在的文件夹,然后分别pip3 install 那两个文件的名称。如图
install完两个文件之后,关掉命令行再打开并输入下面指令来更新numpy。
sudo pip3 install numpy --upgrade
更新后输入python并import对应的包检查是否成功,下图就是安装成功了
cd /home/biao/yolov5 #那个biao是我的用户名,注意要填自己的用户名
sudo nano requirements.txt
按下图把三行代码注释掉
然后按ctrl+o并回车完成写入,按ctrl+x退出。
下载安装
pip3 install -r requirements.txt
下载到下图的时候会卡住一段时间,等就行了,不要退出。
运行完之后输入上条命令再下载一次(防止遗漏),下图是下载完的样子
然后就可以去yolov5文件里运行detext.py了。
运行detect应该会出现如图所示的报错
这个就是下面这篇博客里的第一个问题,跟着做就能解决在pycharm中部署yolov5报错问题_快乐就好_Peng的博客-CSDN博客
遇到这个错误,就删掉yolov5里的yolov5s.pt文件
然后用windows去这个地址https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
下载回yolov5s.pt并传输回树莓派的yolov5文件(这波操作好像啥都没干,但确实可以解决问题,原理是什么我也不知道)。然后再运行detect.py文件就成功了,如图
运行detect成功检测图片之后,关掉树莓派,接上usb摄像头再连接树莓派,用命令
cd /home/biao/yolov5
python3 detect.py --source 0
会有TypeError: argument of type ‘int‘ is not iterable这个报错,然后跟着下面这篇博客做YOLOV5 打开摄像头错误:TypeError: argument of type ‘int‘ is not iterable_小徐加油的博客-CSDN博客再输入命令就可以成功进行实时目标检测了。
一开始如果直接用sudo pip3 install -r requirements.txt是可以完成全部环境的安装的,输入命令import torch没有问题,但是import torchvision的时候会报错
对这个问题我上网查了很久,有说pillow版本太高,有说torch和torchvision版本不对应,但这里应该是pytorch最新版本不适配的问题。如下图
这就是要注释requiement.txt文件的原因。我当时是删掉最新的pytroch然后自己去下载旧版的pytorch才解决的。
参考文章:
[Solved] torchvision Error: UserWarning: Failed to load image Python extension: Could not find module | ProgrammerAH
【解决问题】RuntimeError: The size of tensor a (80) must match the size of tensor b (56) at non-singleton_ upp的博客-CSDN博客在pycharm中部署yolov5报错问题_快乐就好_Peng的博客-CSDN博客
树莓派4b安装yolov5实现实时目标检测_深圳技术大学附属中学开源主板俱乐部的博客-CSDN博客_树莓派实时目标检测
YOLOV5 打开摄像头错误:TypeError: argument of type ‘int‘ is not iterable_小徐加油的博客-CSDN博客