摄像头补光方案设计
此为RCS06上期技术总结第三篇,主要是对”具有较为成功的物理屏蔽性能的视觉方案”的说明。
如果不装X,简单点来说就是:就是隔绝外界自然光然后自己做补光。
我觉得做机器人的话,真正应该是向全部依靠视觉,因为视觉的应用面广,人能够用眼睛辨认出大部分的东西,理论上机器人也是可以的。并且摄像头很便宜,所以理论上我们的机器人只需要装两个摄像头就可以完成全套任务了,但是实际上这样完成的算法开发难度是我们承担不起的。
所以我们只能依靠更多的传感器或者更精细的机械安装来完成功能。
这里对我所说的所谓“就是隔绝外界自然光然后自己做补光”的必要性做一些简单说明。
地面颜色的视觉装置说明:
在半外行的角度下,特别说明一下视觉的特点,视觉是傻的,只能看到颜色,其他所有东西都是要用程序来判断的哦。
如下图,给出的是最容易辨识的黑色背景白色纸片:
在不同光线下,按照RGB来分解结果如下的。
对比最鲜明的黑色与白色在不同光线下都有不同的RGB颜色表现。
那对于机器来说呢?比如场地上的反光,视觉就会很难正确辨认到底什么是什么。
就如上图上的这绿色的场地,本身在我们眼中看来,颜色已经很明显的是绿色,可是在我们分离RGB以后,发现红色分量的A处,明显有个暗影和旁边的人的腿基本就分不清特征了(实际比赛中场地边上有人是很正常的)。
绿色分量的C处,爪子和场地的颜色几乎已经分不清楚了。
蓝色分量的B处,日光灯的反光直接让绿色场地变成了白色。
这也只是在我们自己的场地上的情况,而如果是其他的地方的场地、情况会有更多的变化,不同的拍摄位置、不同的光线情况,不同的干扰背景,都可能影响我们视觉的处理。
所以,我们做视觉,需要仔细控制视觉中的环境,尽量使除了我们需要的信息以外的情况,全部一致。自己选择拍摄位置、自己设置灯光环境、自己选择图像范围,这样才能比较方便的得到我们所需要的信息。
综合来说,为了增强视觉的稳定性,我们需要尽可能减少可能出现的任何干扰,固定拍摄位置、固定且稳定均匀的光线情况、固定背景,这样才可能最大程度的减少开发难度。
而场地上的道具长得奇形怪状的,最佳的检测对象只能是场地的地面的颜色(其实场地上的道具颜色位置形状都是不定的,很难做)。
所以可以做一个摄像头的完整模块,包括:处理器、信号输出、固定装置、与外界的隔离装置、以及对于车身震动漏光等情况的保护装置等等。
这就是”就是隔绝外界自然光然后自己做补光”.
以下我再对一个较为简单的方案进行一些说明,下图为一个我设计的简单模块的示意图
爆炸图如下,分为
1、电路板(带摄像头、白光LED灯、如果安装独立的处理器,也可以考虑装在上面)
2、黑色的机械挡光外壳
3、防止LED灯聚光造成视觉干扰而是使用的散光板
下图为模块组装后的下视图,LED发光头在散光板和机械外壳之间,用散光板保证光线稳定均匀(具体待测)
下图为隐藏散光板后的情况(散光板在图中是插入壳体的洞中再固定的)
侧面的黑色板用来防止光线干扰。
摄像头尽可能不要阻挡到光线。
这样使旁边的挡光板尽可能低(贴紧地面)可以采集到如下图
(渲染比较渣凑合看)
这样就是一个简单的方案了。
具体要做的时候
应该还要考虑到几个问题:
1、车身不是稳定平移的,是有震动的,有可能漏光,为防止不必要的影响,可以考虑在接触地面的部分改用软性的材料(毛或者布或者加上一些重物的布等等),在震动中继续较好的阻挡光线。
2、考虑到摄像头曝光速度,有可能在运动中图片花掉,可能实际使用中和静态下效果不一样,需要停止下来矫正。
3、摄像头的常见的视角是45度,可能需要采用更大的广角镜头,需要选取和计算(镜头的选取要考虑光圈的大小,镜头和摄像头本身的光圈大小一定要一样才能合适使用)。另外更换视角有可能影响焦距,视角大焦距短。并且视角和外壳的形状大小等等也是有关系的,需要实际的测量计算。
4、由于分割线的提取难度和误差还是可能比较大的,所以也许单凭一个摄像头很难准确的得到圆心等等的信息,不过可以考虑陀螺仪码盘误差的大概范围做单独X或Y的矫正装置(在对于角度信息的相对相信的前提下)。
5、摄像头我们手头拥有的是USB的摄像头、SCI串口的摄像头、SPI协议的摄像头三种,具体需要去选定。
6、由于即使使用散光板,光线也有可能不均匀,具体可以做一定的整定。
7、希望大家仔细考虑,并且做出真正合适使用的东西出来。