2022年有幸受机械学院的同学邀请设计一个海上浮油回收机器人参加机械学院的机械设计比赛,作为非机械专业的学生只能发挥专业所长为这个作品做一些锦上添花的工作,于是选择比较流行的yolo框架为这个机器人加上一双眼睛,识别海上的浮游实现自动回收。这个库包含树莓派和本地计算机的通信和基于yolo的目标检测,但并不包含机械相关的内容,因为这方面的内容实属无能为力。
计划的整体思路:将YOLO搭建在树莓派上,识别任务在树莓派上完成,并实现自动回收,树莓派通过云端服务器和岸上的通信设备进行通信。
缺陷:由于树莓派本身硬件设备只有cpu在工作,性能有限,还不足以完成yolo的检测任务,NVIDIA的开发板或许可以完成这个任务,所以只能退而求其次,只使用树莓派进行数据通信,检测任务由服务器来完成(实际项目中使用的是本地计算机)。
实际实现:
1、使用socket将摄像头采集到的数据传输到本地计算机中
2、由本地计算机完成对树莓派传输过来的视频的检测
1、socket文件夹下的是通信用的socket文件;
2、yolov5文件夹下主要是yolo官方提供的yolov5代码,我们做了些修改,主要是在detect.py中实现了socket接收树莓派传输的视频并将其输入到模型中;
3、templates文件夹下是将检测的结果展示在网页上的代码;
1、在树莓派上启动socket服务器,等待本地计算机连接;
2、启动本地计算机连接程序,连接上树莓派后自动开始视频,访问浏览器的本地的5000端口即可查看检测结果;
python detect.py --weights runs/train/exp3/weights/best.pt --source http://192.168.43.24:5000/video_feed
1、请保证树莓派和本地计算机在同一网段内,可以使用手机开热点让树莓派和本地计算机进行连接;
2、IP地址在计算机terminal中使用ifconfig来查看