树莓派4B部署yolo V5 + openCV4.5.4编译
一、准备工作
1、系统固件的安装
固件版本是2021-05-27-raspios-buster-armhf
用 balanceEtcher来给SD卡烧录固件。
2、树莓派换源(清华)
编辑 /etc/apt/sources.list
文件,删除(或者注释,语句前面加 # )原文件所有内容
sudo nano /etc/apt/sources.list
完成后效果如下
然后把以下内容输入进去
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
完成后效果如下
换源结束,输入以下代码
sudo apt-get update
3、更换Python版本
(将Python2版本更换成Python3版本)
- 输入python3,进入Python交互环境查看自己是否有Python3
python3
如图
说明已经安装了Python3,如果没有Python3,先安装。我使用的固件版本已经自带了python2.7和python3.7。默认是python2,下面更换一下就可以了。
sudo apt-get install python3
- 更换Python版本(将Python2版本更换成Python3版本)
sudo rm /usr/bin/python
链接Python3,注:python3.7这里要换成对应你的python版本(我的是Python3.7.3)
sudo ln -s /usr/bin/python3.7 /usr/bin/python
终端输入python查看Python版本
二、开始部署yolov5
需要注意的是需要提前安装好torch,torchvision与opencv
下面我们先安装opencv
1、树莓派上安装opencv
详细步骤
这里不能用以下
sudo apt install python3-opencv
命令来安装opencv,因为yolov5里的requirements.txt(其中描述了所需要的支持包)文件里面的opencv-python要求是要大于等于4.1.1的版本,
如果按下面的命令的话下载的是3.2.0的版本。所以我们在这里编译opencv4.5.4的版本。这可能会耗费5小时左右。
我当时用opencv3.2.0的版本试过,后面出现了这种错误,不知道怎么解决,于是换了opencv的版本就没出现错误。
那么下载开始安装opencv
1.安装opencv环境依赖,依次执行下面命令
sudo apt update
sudo apt install -y cmake g++ wget unzip
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
2.下载opencv源码并解压
wget https://github.com/opencv/opencv/archive/refs/tags/4.5.4.zip
输入以下命令解压opencv源码
unzip 4.5.4.zip
下载opencv_contrib源码
wget https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.4.zip
输入以下命令解压opencv_contrib源码
unzip 4.5.4.zip.1
3.设置编译参数
依次输入一下命令(创建一个build文件夹来编opencv)
cd opencv-4.5.4
mkdir build
cd build
输入参数
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv_contrib-4.5.4/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.7 PYTHON_INCLUDE_DIR=/usr/include/python3.7 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.7/site-packages/numpy/core/include ..
注意最后面是两个点,还有咱们固件python版本是3.7.3,所以这里的python版本都是3.7。
检查以上内容无误后,再回车执行,这个过程大约会花费10分钟
4.编译及安装
此过程会很长,建议用VNC连接,这样不需要为了观察它编译结束而长时间开启ssh。
开始编译
make
然后从百分之0开始过了很久(在下等了4个小时)你就会看到百分之100。
最后在build文件夹下执行以下命令。
sudo make install
大功告成。
5.检查Opencv能否正常使用
python
import cv2
cv2.__version__
2、安装torch和torchvision
百度网盘 密码 torc
下载完成以后可以用 MobaXterm 连接树莓派,然后把文件传输到树莓派中并解压。
然后进入该文件夹安装torch和torchvision。
pip3 install torch-1.8.0a0+56b43f4-cp37-cp37m-linux_armv7l.whl
pip3 install torchvision-0.9.0a0+8fb5838-cp37-cp37m-linux_armv7l.whl
3、安装Pytorch
执行以下命令
sudo apt-get install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools python3-wheel python3-pillow python3-numpy
输入 y 确认就行
4、部署yoloV5
1.下载yolov5
git clone https://github.com/ultralytics/yolov5
因为requirements.txt里面的opencv-python,torch,torchvision等文件咱们已将安装完成。所以在它们面前加个# 来注释掉它们。
cd yolov5
sudo nano requirements.txt
写入Ctrl + O
Enter(确认)
退出Ctrl + X
2.开始安装依赖文件
加上–default-timeout=1000参数 来防止超时
pip3 install --default-timeout=1000 -r requirements.txt
这会很慢,如果很急可以试一试换pip镜像源 参考 但我没有试过,大家不妨试一试。
或者从清华源直接下载(推荐)。
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=1000 -r requirements.txt
三、试运行
1、运行自带测试文件。
python3 detect.py
2、打开树莓派的摄像头进行实时监测
怎么打开摄像头大家可以 参考 我的另外一个博文,里边能够找得到。
接着VNC连接树莓派,再执行以下命令
python3 detect.py --source 0
大功告成!!!!!
四、懒人福利
如果大家觉得麻烦,我在此提供我设置好的固件,可以找我要。
还往下看啊?没了。