首先声明一下,本文章默认你的树莓派已经烧录好了带桌面的操作系统(当然其他的Linux系统也行)
再声明一下:
图片看上去很好对吧
实际帧率只有1-2帧,极致的ppt享受!
一、先换源
1.换系统源和安装vscode
这行代码的作者是鱼香ROS,他这行代码可以一键安装很多东西。
这里我们使用他换一下源,同时安装一下vscode,
终端输入:
wget http://fishros.com/install -O fishros && . fishros
vscode怎么运行?
找个终端,输入
code
在vscode里面装c(这个可以不装),python
像vscode这样的工具,你可以理解为他就是一个文本编译器,但是你用来起来肯定会比系统自带的编译器要舒服很多
不知道如何安装?
vscode打开以后,点击我圈起来的1.部分
然后在2.处输入需要下载的C/C++、python、顺便也可以把chinese也下了,免得英语看不懂。
2.更新一下
以上搞完以后,在终端输入:
sudo apt-get update
sudo apt-get upgrade
更新一下系统的软件库
二、安装miniconda
先看一下版本是64位还是32位
uname -m
如果输出是 aarch64
,则表示你的系统是 64 位,适合使用 aarch64
版本的 Miniconda。如果是 armv7l
,则表示你的操作系统是 32 位的,这时你需要安装 32 位版本的 Miniconda。
下载 Miniconda:
可以直接使用 wget
下载适合架构的 Miniconda 安装包。例如:
64位:aarch64
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
32位:armv7l
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-armv7l.sh
安装 Miniconda:
下载完成后,给安装包添加执行权限并运行它:
chmod +x Miniconda3-latest-Linux-aarch64.sh
./Miniconda3-latest-Linux-aarch64.sh
然后按照安装提示完成安装。
注意:运行./Miniconda3-latest-Linux-aarch64.sh后可能会出现一些许可协议,遇到yes按yes,遇到enter按enter即可
一直卡在协议里面出不来可以直接输入yes试试,不行就ctrl+c退出
默认路径是/home/username/miniconda3,要更改路径的话直接在命令行输入你想要的路径然后按下enter
安装完成后,你会看到类似如下的提示:
Miniconda3 has been successfully installed!
测试一下:
找个终端输入:
conda --version
如果安装成功,可以看到版本号:
conda 23.1.0
初始化 Miniconda:
安装完成后,你可以初始化 Miniconda 以便在终端中使用:
conda init
三、安装pytorch:
树莓派GPU效果不好,我们简单一点安装一个cpu版本的
1.先换一下conda的源:
1. 查看当前 Conda 源
首先,你可以查看当前 Conda 使用的源:
conda config --show channels
这会显示你当前配置的源列表。默认情况下,Conda 会使用 defaults
通道。
2. 更换为国内镜像源
配置清华大学镜像源
清华大学提供的 Conda 镜像是一个常用且稳定的源。你可以使用以下命令来更改 Conda 源为清华镜像:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
conda config --set show_channel_urls yes
配置中科大镜像源
中科大(USTC)也提供了 Conda 的镜像。你可以使用以下命令来更换为中科大的镜像源:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/r/
conda config --set show_channel_urls yes
配置阿里云镜像源
阿里云提供的 Conda 镜像也相当不错。使用以下命令更换为阿里云的源:
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main/
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free/
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/r/
conda config --set show_channel_urls yes
3. 删除无效的源
如果你不再需要默认的源,可以使用以下命令将其删除:
conda config --remove channels defaults
4. 配置后验证
配置完镜像源后,你可以通过以下命令检查当前的源配置:
conda config --show channels
你应该能看到镜像源已经被更改为你选择的源。
5. 清理缓存
有时,你可能需要清理 Conda 缓存,以确保从新源重新下载包:
conda clean -i
这会清除索引缓存,并强制 Conda 从新的源重新索引包。
2.pytorch cpu版本
一般要先在conda上创建一个运行的虚拟环境
conda create -n yolov5 python=3.9
conda activate yolov5
用conda安装torch
conda install pytorch torchvision torchaudio cudatoolkit=11.7 -c conda-forge
如果conda一直安装失败可以用pip安装,但是要在conda刚创建的环境下
pip install torch torchvision torchaudio
测试一下:
在终端下输入
python3
然后输入:
import torch
print(torch.cuda.is_available())
如果输出true
,则安装的是GPU版本的
如果是false
,则安装的是CPU版本的
我们安装的是CPU版本的,所以应该返回false
或者:
再找一个终端输入:
pip show torch
会显示已安装的 PyTorch 包的详细信息,包括安装的版本、安装路径等。
五、安装yolov5
安装 YOLOv5 和其他必要的依赖项。
首先,
克隆 YOLOv5 仓库并进入项目目录:
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
然后,
安装 YOLOv5 的 Python 依赖:
pip install -U -r requirements.txt
注意:
从下载yolov5源码到这里可能会有点问题,有的人可能是从ultralytics官网下载的yolo源码,他是后期官方整合的包含yolo目前位置全部版本的源码,和单独的yolov5源码可能有点不一样。如果你是下载的是ultralytics版本的,找到他的readme.md文件(如下图),他会指引你完善安装所需的库
全部安装完以后,测试一下能不能用:
先去官网下载一个yolov5nu.pt的权重文件
https://docs.ultralytics.com/zh/models/yolov5/
再用vscode新建一个my_yolo.py文件
例如我要用摄像头实现实时目标检测:
import cv2
from ultralytics import YOLO
model = YOLO("/home/cjl/yolov5/yolov5nu.pt")#这个路径是你刚才下载的权重文件的路径
# 或者你也可以这样写
# model = YOLO('yolov5nu.pt') #这样yolov5会自动从官网下载
cap = cv2.VideoCapture(0) #打开摄像头,0代表默认摄像头,没有摄像头会报错
while cap.isOpened():
success, frame = cap.read()
if not success:
break
#限制输出图像的大小
scale_percent = 50
width = int(frame.shape[1] * scale_percent / 100)
height = int(frame.shape[0] * scale_percent / 100)
dim = (width, height)
resized_frame = cv2.resize(frame, dim, interpolation=cv2.INTER_AREA)
#conf表示置信度,iou表示交并比
results = model(resized_frame, conf=0.4, iou=0.3)
annotated_frame = results[0].plot()
cv2.imshow("YOLOv5", annotated_frame)
#按ESC键退出
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
最后
在vscode下方的终端输入:
激活yolov5虚拟环境
conda activate yolov5
进入我们之前创建好的yolov5的环境
然后,运行上面的代码
怎么运行?
一般右上角有一个三角形点一下就好了
或者你可以
这个路径是你代码存放的路径
效果图:
图片看上去很好对吧
实际帧率估计只有1-2帧,极致的ppt享受!
优化思路:
1.jetson nano
等系列的也挺不错,主要是性能好,用起来比较方便。(主要是淘宝上大多数都是用的这个)
2.如果是树莓派的话,可以试试网上有些爆改的yolo-lite模型,反正前面的流程都差不多,都是用coda创建一个虚拟环境然后按照他们源码来install需要的库就行了。
3.当然,如果你的项目其实不需要复杂的深度学习网络,比如识别一个二维码,或者识别一些物体的颜色,轮廓边缘啥的,可以尝试直接使用opencv的库,这个库对于硬件的需求还是比较低的。
最后的最后
因为树莓派运算能力有限,所以对模型的剪枝是很有必要的,我暂时学的比较浅,对这些模型只是会用的程度。希望我这篇文章对于刚入门的小伙伴能有一定的帮助。