(去年十月份,参加了学校的校内赛,,,虽然说最后的成绩不理想, 不过, 嗯, 真的学到了很多~)
一篇写给那些奋斗在智能车,以及图像处理界的同仁们的:(献丑了...)
对于智能车说来, 首先重要的应该是整体的机械的结构的:车的重心位置、舵机中值、车的前轮的两个参数的调节(一般说来, “外八字”有利于车的高速转弯, 也就是说可以在转弯的时候提供更大的转向力; 不过, 这样的代价就是使得轮胎的磨损也比其他的形态要大一些...而相比较之下, “内八字”在直线以及平稳性上边要比“外八字”好, 轮胎的磨损情况也比那种要好,,只是在转弯的事后要费力一些...)等等... “程序决定了你的提高程度, 而机械决定了你的极限程度”...所以强烈建议在前期就将机械方面整理好, 否则后面就不好做了...
回到正题, 这里我想集中关注图像处理方面的问题...我想, 这一方面应该是后面智能车控制的基础了. 一个好的图像有利于控制(当然, 也有牛人可以在图像较差的情况下仍然跑得很好...), 在图像方面, 我想应该有以下几个方面的问题吧:
1)首先就是阈值的问题. 这方面主要取决于摄像头的参数、场地的光照情况(赛道以及地板反光情况). 这方面, 一般的会采取典型的图像中的截断法去将图像0-1化:超过阈值的为1, 否则为0. 不过, 我倒是觉得, 这一方面可以采取分段的算法来只将亮度介于某一个范围内的像素点视为有效的跑道区域, 其他的视为无效. 这样可以一定程度上改善那些由恶心的地板漫反射所带来的头疼的问题. 而且, 如果最后的场地的地板颜色如果是蓝色的话, 我觉得(这一点我没有实际做过...)可以在摄像头的彩像的镜头上面贴上一层蓝色的膜, 这样就可以滤掉很多由于蓝色的地板反射来的光了...因为地板如果是蓝色的话, 反射的光中, 蓝色的分量应该占了很大的比重的. 通过贴上一层膜就可以很大程度上改善地板漫发射所带来的作用了(就好像单反的镜头前面贴上一层偏振膜就可以有效的减少偏振光的影响了...)
2)其次是由于电路不稳定的因素所导致的黑点问题.. 这个上面, 采用图像形态学上的腐蚀和膨胀, 效果不错~ 不过, 我建议在使用的时候, 要注意将算法改进一下. 比方说膨胀说来, 定义是要考虑其四邻域或者八领域的(或者其他的图形结构)扩展情况, 若扩展之后于原来有交集, 则将这一点变为1... 实际改动的时候, 可以简单的将领域内的点进行相加, 得到的结果再与一个值进行比较. 如果结果小于这个设定的值, 视为变换无交集. 否则有交集...这样可以保留腐蚀和膨胀的效果, 同时也加快了程序运行的速度...值得一提的是, 智能车的图像处理的算法, 真的不能占用太多的时间! 这一方面我是有时间的教训的....而且, 尽量把图像处理的过程放在中断的过程中, 这样可以将整体的运行时间缩短, 提高智能车的反应速度. 同时也可以为后面的控制算法提供宝贵的时间...
3)标识的识别...包括赛道提取, 十字路口补线, 赛道的情况识别(直线、大S、小S、十字路口、桥等情况)...这里, 我想不同的人员有不同的想法, 所以这里我就不再献丑了...
后记:
4)我觉得智能车可以变得更加贴近生活的..比如可以在赛道上添加一些常见的道路的标志, 这样来控制车的运行...最后的就过就好像是在模拟自动驾驶一样的...而且, 可以开展更多的运用的嘛~这样更加好玩一些...0(^~^)0...
Keep Moving~