SJTU 智能驾驶暑期营游记
- 最初
开始我其实是没有底的,完全不知道我们会做什么,需要做什么,要用到什么,不过既然这边说只需要一点 python 的基础,那么问题应该是不大的。
- 前两天
这两天可谓是轻轻松松,当时想要提前了解后面的内容,但是没给。所以处于自己去自由探索和摸索的过程。 过程很有趣,也很有意义。
从某种意义上,为后面做了一定要的铺垫,但是也导致了小车在运输路上的损坏,不过影响不大。
- 后三日
接触到了整个项目的核心,包括:
+ 巡线模型
+ 巡线控制
+ 视觉停车
+ 雷达判障
关于模型部分,我们一共训练的四组模型,其中第二组效果较好,原因该是合并了三个人的数据,但是仍然没有达到一个比较好的效果,根据后来与其他组的交流,问题大抵是出在虽然数据量足够,但是特殊情况的数据有所缺失。也就是我们只录制了正常行驶状态下的数据,但是没有在边缘的数据。
关于巡线控制部分,个人认为我们是做的很好的一组。其核心有两个部分:
+ 分段处理,直道放缓角速度防止过度偏转,弯道用线性函数决定角速度。
+ 动量法,用于解决速度突变导致的问题。这个方法的灵感来自于深度学习中梯度下降的一个优化算法。让我们的小车在模型没有那么好的情况下仍然可以跑到一个较快的速度。
关于视觉停车,直接利用的简单的 opencv
控制,程序原本是老师给的,只是经过了一点小小的适应,提高了识别的准确度和鲁棒性。
关于雷达避障,这个我们组看下来是最稳,且转向最快的。利用了反向加速然后停车转向,大大提升了其稳定性,从而可以高速转向。
整体来说,实现的思路难度上不大,但是遇到种种参数与硬件上的问题很难解决。幸好我以前有过对乱七八糟的东西的研究,不然在一些细枝末节上我们估计都要卡半天。
从最终的结果上来看,虽然略有优势而胜利,但是毕竟他们大多数都是高一的学生,我们多了一年的学习,这还是有微弱的优势,才有了略微的领先。所以这次只能说是得了便宜,便也不卖乖了。
其实整个项目我们都只是在应用层面,在原理,尤其是基于卷积神经网络和残差网络的视觉模型上,我们是没有接触的。若是上升到需要自己解决巡线算法的部分,我们可能很难去解决。由此看来整个项目的难度是不高的,对于学过竞赛的人是没有优势的。但是对于像我这样的人来说,就会有一定的优势。
从这次看来,值得提前掌握的也就三个东西:
- 虚拟机的使用和 Linux
的使用
- python
的使用和 bash
(命令行)的使用以及两者结合使用
- 一点点深度学习的知识
这些大概就是核心需要用到的了。至于以后如何,也就不得而知了。