整个智能车的任务其实很简单,巡线,然后避障,然后识别到二维码,上传图像,遥控操作,再巡线回去。
主要利用了opencv,yolo,状态机,简单判断
设备问题,导致遥控操作没有完成,遗憾是车赛的主旋律
这里的主控设备是rdk x3,可以进行ros开发,主要使用是ros2
巡线主要用的resnet
参考
这里模型一共训练了3次,第一次120张,第二次1200张,第三次1800张,不知道是不是类似的图片太多了,没有在不同的现实环境下拍照,最后应该是有点过拟合,但是效果肯定是比一开始要好
二维码识别部分,引入了状态机,识别到二维码,发布一个话题(实际是布尔值),另一个控制速度发布的程序接收到该布尔值,就不发布原本速度,并且再发布一个速度为0的指令。
避障用的yolo,训练过程可以参考csdn其他博主文章,在ubuntu里面训练的,用的台式,因为没有配置gpu环境,直接拿cpu跑了,最后识别的效果还行,但是推理比较慢,最后也没有想到很好的方法
巡线和避障结合,参考
这里巡线和避障冲突了,加上避障后,巡线很不稳,这里是通过每次识别到避障,处理完避障消息后,都清空避障的消息队列,最后结果表现的还行。
还有个问题,就是上位机只接收bgr8格式的视频(图片),所以需要通过opencv转换一下
usb相机发布的是jpeg格式,给的官方代码可以转nv12格式。