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版本)
- 输入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
详细步骤
以下不能在这里使用[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]
还在往下看?走了。
文章出处登录后可见!