没错!这个是我的毕业设计!!!
整个电子信息学院唯一一个优秀毕业设计
拿到这里炫耀了
实物如下:
电脑端显示效果:
自动驾驶实现过程:
1. 收集图像数据。建立局域网,让主机和Raspberry Pi在同一局域网下,建立Socket套接字进行数据交换,Raspberry Pi把摄像头采集到的视频帧流以JPEG格式发送给PC主机,主机定义几个按键通过蓝牙发送数据到Arduino上控制小车手动驾驶,每次按键按下后保存一张图像和对应的标签。需要反复的在场地上训练几次来增加数据量。
2. 训练神经网络。把收集好的数据拿给神经网络,调整神经网络训练迭代次数和神经网络隐藏层的节点数,然后进行训练,这个过程可能要重复很多次,最终达到一个最好训练效果,生成神经网络的模型,如何实现最好的训练效果实际上需要第三步来验证的。如果经过多次修改参数训练仍没有达到一个好的效果,说明第一步收集的图像数据特点不够鲜明或数据量的个数不够多,需要删掉之前的收集的数据,再重新收集数据再进行训练,这个过程也可能需要很多次,而且需要一个大一点的模型道路场地,对一个模型道路训练成功需要几个小时甚至1天的时间。
3. 实现自动驾驶。建立局域网,把Raspberry Pi采集的图像发送到主机上,主机把拿到的图像给训练好的神经网络模型,然后生成对应的标签。主机和Arduino之间通过蓝牙串口进行通信,把标签对应的指令发送给Arduino,arduino接到数据后进行逻辑判断让模型车做出反应,通过马达驱动器作用到小车上,让小车进行自动驾驶。
程序地址:https://github.com/LiuXinyu12378/AutoRC