1:树莓派下载系统(使用的是64系统)环境配置好了
下面是链接:
链接:百度网盘 请输入提取码
提取码:1234
--来自百度网盘超级会员V2的分享
2:下载完成之后,使用烧录工具进行一个烧录
我这里使用的是win32 disk imager,当然还有其他的方法,比如你可以使用balenaEtcher
进行烧录
3:我们成功烧录之后,我们就需要进行一个网络设置,防止。
3.1首先,我们先进入boot(也就是我们烧录好的文件里面),这里有其他的方式进行一个网络配置,利用虚拟机和ubuntu进行一个测试,虚拟机用16版本,ubuntu使用的是18.04TLS ,这里我们进行一个windows上面的测试
3.2创建两个.txt文件,名字就叫
3.3在这两个文件中,wpa_supplicant.txt里面写入下面这个代码
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant
GROUP=netdev
update_config=1
network={
ssid="你的笔记本电脑热点名字"
psk="热点密码"
priority=10
}
3.4上面编辑成功之后,将wpa_supplicant的后缀变成.conf文件,ssh.txt文件后缀删除。
成功
4:我是用的是自己的热点(如果可以看到ip地址的话,无所谓,怎么弄都可以),当然,这边建议使用电脑热点,因为你的手机不一定可以看到每一个连接设备的网络ip地址。成功之后,你可以在看手机查看到连接自己的网络地址。进入下一步
打开VNC Viewer,连接使用即可
6:下面是miniconda的安装(注:所有操作我都是在普通用户下面操作,没有必须情况,不要使用root用户操作下载)
首先使用uname -a 来看一下自己系统的配置,我的电脑,注意我的是64位!!!
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.103-v8+ #1530 SMP PREEMPT Tue Mar 8 13:06:35 GMT 2022 aarch64 GNU/Linux
可以看到我的是 aarch64 linux,那么我下载如下:(我个人目录是放到下载文件夹下面)64位!!!
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py37_4.9.2-Linux-aarch64.sh
下载成功之后,我们进入文件夹:执行下面的代码,第一行是赋予权限,第二行进行一个安装。
sudo chmod +x Miniconda3-py37_4.9.2-Linux-aarch64.sh
sh Miniconda3-py37_4.9.2-Linux-aarch64.sh
接下来根据提示,按 Enter
跳过安装协议(注意别按太快,否则会直接退出)
然后输入 yes
同意并开始安装,接下来会提示是否更改默认路径,其默认路径是 /root/miniconda3
,为了日后使用方便,我们会将安装路径设置成用户目录之下,具体路径/home/pi/miniconda3
,设置完路径后,等待安装完成即可。
在之后,我们要配置一个叫 /.bashrc 文件,(学一下vim的使用方法)
vim ~/.bashrc
打开这个文件之后,我们要里面添加一些东西。(直接在文件的最后加入下面这一行就好)
export PATH="/home/pi/miniconda3/bin:$PATH"
保存退出。
配置完成之后,我们还要运行这个文件,才可以正式开始使用
source ~/.bashrc
没有报错,我们就可以测试一下(在运行上面的source代码后,我们前面会出现一个(base)
可以看出,conda没有报错,说明安装成功。
(base) pi@raspberrypi:~ $ conda
usage: conda [-h] [-V] command ...
conda is a tool for managing and deploying applications, environments and packages.
Options:
7:创建新的环境(自己改名字和版本)
# 这个代码的意思是,创建一个叫my39的虚拟环境,python版本位3.9
conda create -n my39 python=3.9
成功之后,激活环境:
conda activate my39
如下:(通过前缀可以看出,激活成功)
(base) pi@raspberrypi:~ $ conda activate yolov5
(yolov5) pi@raspberrypi:~ $
衍生问题1:pip 使用不了
报错是 pip 报错 illegal instruction 这是一个非常让我烦躁的问题,因为我不知怎么错。后面我在网上找到了解决方法:
解决方法:
用/usr/lib/aarch64-linux-gnu/libcrypto.so.1.1
替~/miniconda3/lib/libcrypto.so.1.1
解决。
具体点在如下:
要是你发现找不到,可以在命令行进入这个目录:运行下面的命令(就可以查看文件是否存在了)
(base) pi@raspberrypi:/usr/lib/aarch64-linux-gnu $ ls | grep libcrypto
libcrypto.so.1.1
-
有些人是/usr/lib/libcrypto.so.1.1
,有人是/usr/lib64/libcrypto.so.1.1
,自己可以找一下。 -
都知道conda是有一个默认环境base的,所以上述被替换的文件,对应的是base环境的文件,即替换之后,base环境可以正常使用pip了,但是之前创建的其他虚拟环境还是illegal instruction。需要将其他虚拟环境里的文件也手动替换,文件位置在~/miniconda3/envs/test/lib/libcrypto.so.1.1。其中test替换为你虚拟环境的名字。
-
以后每次虚拟环境都需要进行一个替换,比较麻烦。但是也能解决问题
8:yolov5环境的配置,首先创建一个叫yolov5的虚拟环境,将文件替换好。
在github上面下载yolov5,当然gitee也是可以的。克隆下来之后,将yolov5整个文件传送到树莓派里面(注:要是你不知道使用VNC里面的方式,你可以学习一下, 还有一个方式,下载一个FileZilla Client,当然你一样需要知道怎么弄这个软件)
将yolov5文件传送到树莓派里面之后,同时,你也成功创建了一个用于yolov5的虚拟环境。
我们先进行一个yolov5里面的detect.py文件的测试。在yolov5里面有一个 requirements.txt。我们先把它里面的库安装到yolov5的虚拟环境中。(我的虚拟环境就叫yolov5)。
(yolov5) pi@raspberrypi:~/lyc/yolov5-master $ pip -V
pip 23.2.1 from /home/pi/miniconda3/envs/yolov5/lib/python3.9/site-packages/pip (python 3.9)
先看一下这个pip的所处位置,可以看到,pi在yolov5这个虚拟环境里面,防止到时候使用pip下载的时候,下载到其他环境里面去。
再次,你还会碰到一些问题,
衍生问题2:面对使用pip下载东西的时候,出现关于下面的问题,这是由于 使用pip提示找不到ssl模块。导致的,我在网络上有找到一些关于这个问题解决方法。
pip TLS/SSL问题
linux安装python3(超详细)解决Can‘t connect to HTTPS URL because the SSL 的报错_黄花闺女郭德纲的博客-CSDN博客
可以看这个大佬的说明使用,我只用了第一种方式,我现在只是下载,没有涉及到其他东西。
就是在pip之后加入,可以使用,但是会报警告。
-i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
如下:注意开始位置。
(yolov5) pi@raspberrypi:~/lyc/yolov5-master $ pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
在全部成功之后,我们进行一个代码的运行,如下:可以看到,没有问题,但是有一个警告,这个警告的解决方法是运行一行代码即可:
export OMP_NUM_THREADS=1
(yolov5) pi@raspberrypi:~/lyc/yolov5-master $ python detect.py
detect: weights=yolov5s.pt, source=data/images, data=data/coco128.yaml, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_ img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=Fal se, project=runs/detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1
YOLOv5 🚀 2023-8-9 Python-3.9.7 torch-1.8.1 CPU
Fusing layers...
OpenBLAS Warning : Detect OpenMP Loop and this application may hang. Please rebuild the library with USE_OPENMP=1 option.
下面是完整的运行程序(python detect.py),非常好,没有一个报错,没有一个警告。
(yolov5) pi@raspberrypi:~/lyc/yolov5-master $ python detect.py
detect: weights=yolov5s.pt, source=data/images, data=data/coco128.yaml, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_ img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=Fal se, project=runs/detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1
YOLOv5 🚀 2023-8-9 Python-3.9.7 torch-1.8.1 CPU
Fusing layers...
YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients, 16.4 GFLOPs
image 1/2 /home/pi/lyc/yolov5-master/data/images/bus.jpg: 640x480 4 persons, 1 bus, 1963.5ms
image 2/2 /home/pi/lyc/yolov5-master/data/images/zidane.jpg: 384x640 2 persons, 2 ties, 1517.1ms
Speed: 6.3ms pre-process, 1740.3ms inference, 3.0ms NMS per image at shape (1, 3, 640, 640)
Results saved to runs/detect/exp23
之后,我们可以进行一个detect.py的改变,将检测图片,变成摄像头检测,如下:
yolov5调用usb摄像头及本地摄像头的方法实例_python_脚本之家 (jb51.net)
当然,我都是只改变了我自己的摄像头,没有使用usb ,大家有兴趣的可以自己去看一下。
最后,我们有一个图片如下:解决完成,下一步计划是,关于怎么进行一个优化设计,因为这个板子有点卡(就是算力不够),我需要它更快的反应速度。