【解惑笔记】树莓派+OpenCV+YOLOv5目标检测(Pytorch框架)

这篇具有很好参考价值的文章主要介绍了【解惑笔记】树莓派+OpenCV+YOLOv5目标检测(Pytorch框架)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 -【学习资料】

子豪兄的零基础树莓派教程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

基于树莓派4B的OpenCV安装与简单应用(真速通版)https://blog.csdn.net/black_sneak/article/details/131343797 《树莓派快速上手》 说明 (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/119954291yolov5 训练结果解析https://blog.csdn.net/sinat_37322535/article/details/117260081?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169080317916800186567366%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169080317916800186567366&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduend~default-2-117260081-null-null.268%5Ev1%5Ekoosearch&utm_term=yolov5%E7%BB%93%E6%9E%9C%E5%88%86%E6%9E%90&spm=1018.2226.3001.4450

-【超详细 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用安装指令(以安装TensorFlow为例)】

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后如果VNC不能打开,需要在putty中用sudo nano /boot/config.txt删除文件中hdmi_force_hotplug前的#符号(不要再添加其他语句!!!),然后ctrl+x再按y回车后退出,拔线重启树莓派;若仍旧不行,则查看分辨率是否又被更改

-【更换国内镜像源

注意下载的树莓派系统版本用户是什么,三种用户有三种不同的镜像源,本机用户为aarch64

如何查看本机用户,在终端输入 uname -m树莓派换源_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` 来执行代码。

 文章来源地址https://www.toymoban.com/news/detail-620324.html

- 【模型训练,文件修改】

文件目录

- 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文件路径

【解惑笔记】树莓派+OpenCV+YOLOv5目标检测(Pytorch框架),笔记,opencv,YOLO,树莓派,目标检测,pytorch,python

- 【labelimg标记】VOC更换成YOLO才能把标记结果的xml转换成txt文件

- 【树莓派运行yolo时,模型文件放置位置】训练好的模型文件best.pt(最好更改一个名称,因为每次训练模型文件都分为best和last)放置在整个文件夹的根目录下

- 【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

-【树莓派摄像头实时识别出现0: 480x640 (no detections), 2073.9ms】

        - 情况1:模型问题。第一轮仅用90张图片训练50轮,结果不是很理想;第二轮用300张图片训练100轮,准确率有明显提升

        - 情况2:摄像头问题。重新检查了一遍摄像头,包括连接、设置、固件等,均无问题。后面用第二次训练的模型实时测试时,正常识别了

        - 情况3:光线问题。第二次测试时也出现了同样有时无法识别的问题,主要在于周围杂物太多,放在干净的桌面上,准确率也会变高些,但主要还是在于模型训练的程度!!!需要增加数据集优化模型。

- 【多个种类训练时,总是第一个类别精确度高,且大多数都被认为是第一个类别】

添加数据集后需要手动标注每一张图,但由于每次只添加一个类别进行标注,故标号全成了0,后来更改txt文件中相应序号,就恢复正常了

所以标注时最好收集到全部类别,进行同一批次的标注,这样才能保证类别的序号不会对应错误

- 【YOLOv8目标检测,路径正确但找不到测试图片】

终端命令:yolo task=detect predict model=yolov8_train2_best.pt source=datasets/test/images

原因:images文件夹中的图片出现了非英文字符命名,在图像读取时出现问题

解决方案:重命名图片,且仅包含英文字符

 

到了这里,关于【解惑笔记】树莓派+OpenCV+YOLOv5目标检测(Pytorch框架)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【pytorch】目标检测:一文搞懂如何利用kaggle训练yolov5模型

    笔者的运行环境:python3.8+pytorch2.0.1+pycharm+kaggle。 yolov5对python和pytorch版本是有要求的,python=3.8,pytorch=1.6。yolov5共有5种类型nslmx,参数量依次递增,对训练设备的要求也是递增。本文以yolov5_6s为切入点,探究yolov5如何在实战种运用。 roboflow是一个公开数据集网站,里面有很

    2024年02月12日
    浏览(50)
  • Opencv C++实现yolov5部署onnx模型完成目标检测

    头文件 命名空间 结构体 Net_config 里面存了三个阈值和模型地址,其中 置信度 ,顾名思义,看检测出来的物体的精准度。以测量值为中心,在一定范围内,真值出现在该范围内的几率。 endsWith()函数 判断sub是不是s的子串 anchors_640图像接收数组 根据图像大小,选择相应长度的

    2024年02月13日
    浏览(41)
  • 基于深度学习的高精度野生目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度野生目标检测识别系统可用于日常生活中检测与定位野生目标目标,利用深度学习算法可实现图片、视频、摄像头等方式的野生目标目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使

    2024年02月07日
    浏览(58)
  • 基于深度学习的高精度鸟类目标检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度鸟类目标(鹦鹉(Crested Myna)、麻雀(Eurasian Tree Sparrow)、黑头文鸟(Chestnut Munia)、白领翡翠(Collared Kingfisher)、太阳鸟(Garden Sunbird))检测识别系统可用于日常生活中或野外来检测与定位鸟类目标目标,利用深度学习算法可实现图片、视频

    2024年02月12日
    浏览(59)
  • YOLOv5图像和视频对象生成边界框的目标检测实践(GPU版本PyTorch错误处理)

    识别图像和视频里面的对象,在计算机视觉中是一个很重要的应用,比如无人驾驶,这个就需要实时的检测到周边环境的各种对象,并及时做出处理。目标检测在以往的文章中有重点讲解过几种,其中 Faster R-CNN的源码解读,本人做了一个系列 ,有兴趣的可以查阅: MXNet的F

    2024年02月11日
    浏览(46)
  • 基于Kitti数据集的智能驾驶目标检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于Kitti数据集的智能驾驶目标检测系统可用于日常生活中检测与定位行人(Pedestrian)、面包车(Van)、坐着的人(Person Sitting)、汽车(Car)、卡车(Truck)、骑自行车的人(Cyclist)、有轨电车(Tram)以及其他目标(Misc),利用深度学习算法可实现图片、视频、摄像

    2024年02月16日
    浏览(50)
  • 用opencv的DNN模块做Yolov5目标检测(纯干货,源码已上传Github)

    最近在微信公众号里看到多篇讲解yolov5在openvino部署做目标检测文章,但是没看到过用opencv的dnn模块做yolov5目标检测的。于是,我就想着编写一套用opencv的dnn模块做yolov5目标检测的程序。在编写这套程序时,遇到的bug和解决办法,在这篇文章里讲述一下。 在yolov5之前的yolov3和

    2024年02月02日
    浏览(51)
  • 基于深度学习的高精度80类动物目标检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度80类动物目标检测识别系统可用于日常生活中或野外来检测与定位80类动物目标,利用深度学习算法可实现图片、视频、摄像头等方式的80类动物目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练

    2024年02月16日
    浏览(49)
  • 基于深度学习的高精度线路板瑕疵目标检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度线路板瑕疵目标检测系统可用于日常生活中来检测与定位线路板瑕疵目标,利用深度学习算法可实现图片、视频、摄像头等方式的线路板瑕疵目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数

    2024年02月16日
    浏览(56)
  • 基于深度学习的高精度农作物机器与行人目标检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度农作物机器与行人目标检测系统可用于日常生活中或野外来检测与定位农作物机器与行人目标,利用深度学习算法可实现图片、视频、摄像头等方式的农作物机器与行人目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采

    2024年02月16日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包