【学习资料】
子豪兄的零基础树莓派教程https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi/blob/master/%E7%AC%AC2%E8%AE%B2%EF%BC%9A%E6%A0%91%E8%8E%93%E6%B4%BE%E6%96%B0%E6%89%8B%E6%97%A0%E7%97%9B%E5%BC%80%E6%9C%BA%E6%8C%87%E5%8D%97.md#%E7%83%A7%E5%BD%95%E9%95%9C%E5%83%8F第2讲:树莓派新手无痛开机指南【子豪兄的树莓派零基础教程】https://www.bilibili.com/video/BV1ab411x7aC/?spm_id_from=333.999.0.0 树莓派4b开发之开发环境搭建 - 飞起的小田 - 博客园https://www.cnblogs.com/tianxxl/p/13587054.html
《树莓派快速上手》 说明 (itprojects.cn)https://doc.itprojects.cn/0007.zhishi.raspberrypi/02.doc/index.html#/READMEYOLOv8应用及解析https://www.youtube.com/watch?v=ydC9x1L5SJU目标检测---教你利用yolov5训练自己的目标检测模型https://blog.csdn.net/didiaopao/article/details/119954291-【超详细 Python+PyCharm的安装步骤及PyCharm的使用】
(超详细)Python+PyCharm的安装步骤及PyCharm的使用(含快捷键)_pycharm python_IT路上的军哥的博客-CSDN博客https://blog.csdn.net/JunLeon/article/details/120698578?ops_request_misc=%7B%22request_id%22%3A%22168955879816800222871340%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=168955879816800222871340&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-1-120698578-null-null.268%5Ev1%5Ekoosearch&utm_term=python%E4%B8%8Epycharm&spm=1018.2226.3001.4450
- 【python安装包不要放在python在install选择路径的文件夹里】
否则pycharm在配置python环境时会一直显示重新安装python
-【cmd安装pip和setuptools但pycharm的setting中检测不到这两个工具包,重点在于修改pycharm中python的安装路径(Pycharm cannot set up a python SDK问题解决方法)】Pycharm cannot set up a python SDK问题解决方法_山河不见老的博客-CSDN博客https://blog.csdn.net/weixin_42212872/article/details/122405569
-【第三方工具包清华大学镜像网站cmd用安装指令(例)】
pip install TensorFlow -i https://pypi.tuna.tsinghua.edu.cn/simple
-【最好用16GB的SD卡下载系统镜像,泪的教训!!!为了配置用户名及密码,最新版本只能用树莓派官方的镜像下载器下载镜像】
-【插上SD卡后红灯常亮,绿灯闪烁;网线绿灯不亮,橘灯常亮;此时需要重启树莓派;即安装好系统后树莓派需要两次开机!!!】
-【同一局域网下查找树莓派ip,在cmd中(管理员身份运行)输入ping -4 raspberrypi.local】
-【VNC连接树莓派出现cannot currently show the desktop问题的解决方法】树莓派默认分辨率模式为Default 720×480,这可能造成VNC显示异常,在putty中用sudo raspi-config修改相关设置,以更换到其他更高的分辨率模式。
-【由于ip分配是随机的,每次更换wifi后vnc都需要重新查找树莓派ip】
-【sudo = superuser do】
-【使用putty重启树莓派时,如果卡了需要手动拔掉充电线;使用reboot重启不需要拔掉充电线】
-【使用camera后,需要在putty中用sodu nano /boot/config.txt删除文件中hdmi_force_hotplug前的#符号,然后ctrl+x再按y回车后退出,拔线重启树莓派;若仍旧不行,则查看分辨率是否又被更改】
-【更换国内镜像源】
注意下载的树莓派系统版本用户是什么,三种用户有三种不同的镜像源,本机用户为aarch64】树莓派换源_code artist的博客-CSDN博客https://blog.csdn.net/qq_55542305/article/details/125921513?ops_request_misc=%7B%22request_id%22%3A%22168990724916800185836822%22%2C%22scm%22%3A%2220140713.130102334.pc_all.%22%7D&request_id=168990724916800185836822&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-4-125921513-null-null.142%5Ev90%5Econtrol_2,239%5Ev3%5Econtrol&utm_term=%E6%A0%91%E8%8E%93%E6%B4%BE%E6%9B%B4%E6%8D%A2%E6%BA%90&spm=1018.2226.3001.4187
-【树莓派如果可以正常import cv2但是无法用print(cv2.__version__)语句查看opencv版本,可使用下面这个语句】
import pkg_resources
pkg_resources.get_distribution("opencv-python").version
-【树莓派使用opencv环境安装(实际上不知道到底有没有关系,主要还是跟着老师的教程做了一遍,估计是安装的软件包太多了,出了什么错,以至于把系统都搞崩了一次,重装系统后,按王铭东老师的步骤安装opencv(4.8.0)与numpy(1.25)等皆正常)】
sudo apt-get install libjpeg-dev libatlas-base-dev libjpeg-dev libtiff5-dev libpng12-dev libqtgui4 libqt4-test libjasper-dev (后来安装的部分软件包,不知道安装成功和这些有没有直接关系)
-【一些linux终端的命令】
- 以管理员身份运行终端
sudo -s
- 终端运行桌面上的python代码
cd Desktop/
Python camera.py
- 终端打开桌面上的xxx.txt文件
cd Desktop/xxx.txt/
- 查看文件目录
ll或者ls
- 打开桌面上Data文件夹中的command.txt文件
cd Desktop/Data/
cat command.txt
-【使用OpenCV在树莓派上实时显示摄像头画面的Python代码示例】
import cv2
# 创建摄像头对象
cap = cv2.VideoCapture(0)
#调用摄像头‘0’一般是打开电脑自带摄像头,‘1’是打开外部摄像头
# 检查摄像头是否成功打开
if not cap.isOpened():
print("无法打开摄像头")
exit()
# 循环读取摄像头画面
while True:
# 读取一帧图像
ret, frame = cap.read()
# 检查图像是否成功读取
if not ret:
print("无法获取图像帧")
break
# 在窗口中显示图像
cv2.imshow("Camera", frame)
# 按下 'q' 键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头资源
cap.release()
# 关闭窗口
cv2.destroyAllWindows()
这段代码首先创建一个摄像头对象 `cap`,然后通过 `cap.read()` 循环读取摄像头画面的每一帧图像。每次读取到图像后,使用 `cv2.imshow()` 在窗口中显示图像。通过按下 'q' 键可以退出循环,最后释放摄像头资源并关闭窗口。
请确保已经安装了OpenCV库,并且摄像头设备正确连接并且具有适当的权限。可以将代码保存为 `camera.py`,然后在终端中运行 `python camera.py` 来执行代码。
- 【模型训练,文件修改】
文件目录
- yolov5-master
- data
- GarbageClassify(新建文件夹,存放训练图片和配置路径文件等)
- images
- test(模型训练好后测试时图片)
- train(模型训练时所用的训练图片)
- val(模型训练时所用的验证图片)
- labels
- train(模型训练时所用的训练标签)
- val(模型训练时所用的验证标签)
- GarbageClassify(ymal文件,根据注释修改路径、检测类别等内容)
- .......(固定文件)
- model(固定文件夹)
- runs(新建文件夹,存放训练结果)
- detect(新建文件夹,存放训练结果)
- train(新建文件夹)
- segments(固定文件夹)
- utils(固定文件夹)
- ......一堆固定文件(注意有一个train.py文件,具体看下面)
- train.py
(按照路径提示①把yolov5s.pt预训练模型放在一级文件夹下②查看model文件夹中是否包含yolov5的各种ymal文件③【最重要】data中的yaml文件路径)
- 【labelimg标记】VOC更换成YOLO才能把标记结果的xml转换成txt文件
- 【command命令】树莓派终端cd Desktop/yolo文件夹名称/
训练的命令:(云服务器上)
python3 train.py --weights yolov5s.pt --data data/GarbageClassify/GarbageClassify.yaml --workers 4 --batch-size 2 --epochs 50
(workers同时训练目标;batch训练批次;epochs训练轮次)
识别的命令:(树莓派上)
python3 detect.py --weight best.pt --source data/GarbageClassify/images/test