树莓派yolov5简单调用

yolov5下载并部署
参考博客
labelme注意事项
labelme包下载

labelme-master https://www.aliyundrive.com/s/bMeCNrwHuva
提取码: a43f
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

里面的train_txt.py是把json转txt的脚本,注意模型参数的yaml文件的label位置标注和train_txt.py文件的顺序得一样,不然会造成识别错误的情况
在这里插入图片描述
在这里插入图片描述

参数说明:

train.py
大致的用法上面的参考博客已经阐述了,我这里仅做一些部分补充
1.若显存不足的话,出现显存分配不足的情况下,尽量把batch_size调小一点就行
2.电脑上device一般是可以配上CUDA,所以device的值填0,但是在树莓派上好像没办法用CUDA加速,也可能是我学的差,不知道怎么去配置,所以在树莓派上的device填的是cpu

detect.py
1.source位置的参数是待识别文件的路径,可以是图片,视频等。
当default=0的时候,调用的是电脑摄像头,若电脑外接摄像头调用的话,则default处等于1,树莓派没有摄像头,所以树莓派外接摄像头显示时default=0

坐标返回

在这个位置,找到box_label函数,ctrl+点击进入到文件里面
在这里插入图片描述
box内存的值就是图片的坐标信息
box[0]:标签框左上角x坐标
box[1]:标签框左上角y坐标
box[2]:标签框右下角x坐标
box[3]:标签框右下角y坐标
在这里插入图片描述
我这里增加了个return,返回的是中心点的像素坐标,可按自己需求修改

用途:

如果你想做类似于识别后想控制机械臂抓取的话,我的思路大概是先将机械臂大概移动到图像坐标原点的位置,然后大概记下此时机械臂对应他自己坐标系的x,y值是多少,然后再移到对角处,测一下对角处位置机械臂的x,y值大概是多少,然后根据你自己图片的规格去换算一下,比如说拿一张640×480的图片,然后机械臂移到摄像头截取图像的图像坐标系的原点,比如说等于(-5, 10),对角坐标为(10,30),x值差了15,对应x方向的像素点变换了480,大概能估测出机械一个坐标位大约等于图像的32个像素点位,换算过去之后,你就大约可以准确地夹取到图中检测物体的所在位置
例 夹取坐标 = (机械臂在坐标原点的x坐标 + 像素坐标的x值/32, 机械臂在坐标原点的y坐标 + 像素坐标的y值/32)

改进

用完之后,才发现,yolov5在树莓派根本跑不起来,连最轻量的yolov5s部署完成后,识别都需要3秒左右一帧,卡的你怀疑人生,这里可以稍微优化一下,比如你可以pip 一下onnxruntime,然后用yolov5包里面带的export函数将训练完成的.pt权重文件转成.onnx文件,然后把这里的dnn改成true
在这里插入图片描述
然后把detec的权重文件改成.onnx格式就行
在这里插入图片描述
在树莓派cpu的情况下,大约能快上三分之一,就是3秒一帧编程两秒一帧,但是在GPU运行下,速度就基本没变,不会提速,需要具体地去推理,速度提升才会显著

总结

此次部署完之后,其实觉得yolov5太大了,在树莓派上跑不动,建议换个轻量点地模型可能效果会好一些,例如:SSD,Faster-RCNN,yolov5-lite等。看起来会流畅许多,如果你是手头富裕有加速棒之类的,就当我没说,毕竟我是个学生党,生活还是比较拮据的。
总体来说,比较建议的是,模型啥的都在电脑上训练,包括转格式啥的,因为在电脑上比较块,可以用GPU跑,也比较熟悉,然后每次跑完把单独的那个.pt或者.onnx文件单独传过去就行,这样时间会节省不少,如果具体想用树莓派做类似视觉之类的项目,建议还是换个轻量点的模型吧。

  • 2
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于yolov5的接口调用,可以按照以下步骤进行: 1. 创建YOLOV5的指针对象:在工程目录下的Detection.cpp文件中添加代码,使用Connect类创建一个YOLOV5的指针对象。代码如下:Connect connect; YOLOV5* yolo_dll = connect.Create_YOLOV5_Object(); [1] 2. 封装yolov5的初始化函数:可以将yolov5的初始化函数进行封装,以便供其他平台调用。这样可以实现检测识别功能,并且可以利用其他平台的特性来快速搭建界面,实现图形化编程。 [2] 3. 创建yolo_dll指针:在封装的函数中,创建一个yolo_dll指针对象,用于调用yolov5的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Yolov5 动态链接库DLL导出(tensorrt版本——Labview调用)](https://blog.csdn.net/yezlin/article/details/127687317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [yolov5 python API(供其他程序调用)](https://blog.csdn.net/qq_46554815/article/details/122778429)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

回家种蜜柚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值