首先声明一下,本文章默认你的树莓派已经烧录好了带桌面的操作系统(当然其他的Linux系统也行)
再声明一下:
图片看上去很好对吧
实际帧率只有1-2帧,极致的ppt享受!
一、先换源
1.用这个换源
这行代码的作者是鱼香ROS,他这行代码可以一键安装很多东西。
这里我们使用他换一下源,同时安装一下vscode,
终端输入:
wget http://fishros.com/install -O fishros && . fishros
vscode怎么运行?
找个终端,输入
code
在vscode里面装c(这个可以不装),python
这些都是必要步骤,不要省略
不知道如何安装?
vscode打开以后,点击我圈起来的1.部分
然后在2.处输入需要下载的C/C++、python、顺便也可以把chinese也下了,免得英语看不懂。
2.更新一下
以上搞完以后,在终端输入:
sudo apt-get update
sudo apt-get upgrade
3.创建一个虚拟环境
python3 -m venv myenv
这将创建一个名为 myenv 的虚拟环境文件夹。
激活虚拟环境:
source myenv/bin/activate
激活以后可以看到终端的最前面出现了(myenv)…即可
二、安装OpenCV
接着还是那个终端,输入:
python -m pip install opencv-python
有些库等要用到了再装
测试一下:
找个终端,输入
python3
然后输入
import cv2
如果没有报错就安装好了
三、安装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
全部安装完以后,测试一下能不能用:
先去官网下载一个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下方的终端输入:
conda activate yolov5
进入我们之前创建好的yolov5的环境
然后,运行上面的代码
怎么运行?
一般右上角有一个三角形点一下就好了
或者你可以
这个路径是你代码存放的路径
效果图:
图片看上去很好对吧
实际帧率估计只有1-2帧,极致的ppt享受!
优化思路:
我问了AI,大致就是导出为onnx等模型、缩小输出尺寸等来提高速度
优化方法网上有很多,但是我尝试了一下,实在有点麻烦。。。
如果你要实现在移动机器人或者小车上的目标检测的话,建议换jetson nano
,比你在这里捣鼓这个树莓派方便多了。。。