没错!这个是我的毕业设计!!!

整个电子信息学院唯一一个优秀毕业设计

拿到这里炫耀了

 

实物如下:

【OpenCV-ANN神经网络自动驾驶】树莓派OpenCV神经网络自动驾驶小车【源码+实物】_人工智能

 

电脑端显示效果:

【OpenCV-ANN神经网络自动驾驶】树莓派OpenCV神经网络自动驾驶小车【源码+实物】_人工智能_02

 

 

自动驾驶实现过程:

1. 收集图像数据。建立局域网,让主机和Raspberry Pi在同一局域网下,建立Socket套接字进行数据交换,Raspberry Pi把摄像头采集到的视频帧流以JPEG格式发送给PC主机,主机定义几个按键通过蓝牙发送数据到Arduino上控制小车手动驾驶,每次按键按下后保存一张图像和对应的标签。需要反复的在场地上训练几次来增加数据量。

2. 训练神经网络。把收集好的数据拿给神经网络,调整神经网络训练迭代次数和神经网络隐藏层的节点数,然后进行训练,这个过程可能要重复很多次,最终达到一个最好训练效果,生成神经网络的模型,如何实现最好的训练效果实际上需要第三步来验证的。如果经过多次修改参数训练仍没有达到一个好的效果,说明第一步收集的图像数据特点不够鲜明或数据量的个数不够多,需要删掉之前的收集的数据,再重新收集数据再进行训练,这个过程也可能需要很多次,而且需要一个大一点的模型道路场地,对一个模型道路训练成功需要几个小时甚至1天的时间。

3. 实现自动驾驶。建立局域网,把Raspberry Pi采集的图像发送到主机上,主机把拿到的图像给训练好的神经网络模型,然后生成对应的标签。主机和Arduino之间通过蓝牙串口进行通信,把标签对应的指令发送给Arduino,arduino接到数据后进行逻辑判断让模型车做出反应,通过马达驱动器作用到小车上,让小车进行自动驾驶。

 

程序地址:https://github.com/LiuXinyu12378/AutoRC

 

多思考也是一种努力,做出正确的分析和选择,因为我们的时间和精力都有限,所以把时间花在更有价值的地方。