树莓派4B部署yolo V5 + openCV4.5.4编译

1. 准备

1、系统固件的安装

固件版本是2021-05-27-raspios-buster-armhf

用 balanceEtcher来给SD卡烧录固件。[0][1]

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版本)

  1. 输入python3,进入Python交互环境查看自己是否有Python3
python3

如图所示

说明已经安装了Python3,如果没有Python3,先安装。我使用的固件版本已经自带了python2.7和python3.7。默认是python2,下面更换一下就可以了。

sudo apt-get install python3
  1. 更换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

详细步骤
以下不能在这里使用[0]

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。[0][1]

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镜像源 参考 但我没有试过,大家不妨试一试。[0]

三、试运行

1、运行自带测试文件。

python3 detect.py

2、打开树莓派的摄像头进行实时监测

如何打开相机,可以参考我的另一篇博文,那里可以找到。
接着VNC连接树莓派,再执行以下命令[0]

python3 detect.py --source 0


你完成了! ! ! ! !

4. 懒人福利

如果大家觉得麻烦,我在此提供我设置好的固件 (提取码:w8z3)(准备16G以上的sd卡)。
镜像大小计算:(boot分区全部 + root分区已使用) * 1.2 (差不多8G多)
用我提供的固件的话,进入系统以后首先执行以下命令,来扩容。或者大家在raspi-config里自行扩容。
这是一个扩容的shell脚本[0]

cd Documents/rpi-bacup-master/
sudo bash resize.sh


关于扩容的脚本详细资料看GitHub[0]

还在往下看?走了。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2022年5月7日
下一篇 2022年5月7日

相关推荐