关于波士顿等移动机器人的视觉算法分析
扫描二维码
随时随地手机看文章
(文章来源:机器人网)
如果对移动机器人视觉算法进行拆解,你就会发现获取物体深度信息、定位导航以及壁障等都是基于不同的视觉算法,本文就带大家聊一聊几种不同但又必不可少的视觉算法组成。
实现定位导航、路径规划以及避障,那么这些过程中需要哪些算法的支持?谈起移动机器人,很多人想到的需求可能是这样的:“嘿,你能不能去那边帮我拿一杯热拿铁过来。”这个听上去对普通人很简单的任务,在机器人的世界里,却充满了各种挑战。为了完成这个任务,机器人首先需要载入周围环境的地图,精确定位自己在地图中的位置,然后根据地图进行路径规划控制自己完成移动。
而在移动的过程中,机器人还需要根据现场环境的三维深度信息,实时的躲避障碍物直至到达最终目标点。在这一连串机器人的思考过程中,可以分解为如下几部分的视觉算法:1.深度信息提取,2.视觉导航,3.视觉避障。后面我们会详细说这些算法,而这些算法的基础,是机器人脑袋上的视觉传感器。
智能手机上的摄像头可以作为机器人的眼睛吗?所有视觉算法的基础说到底来自于机器人脑袋上的视觉传感器,就好比人的眼睛和夜间视力非常好的动物相比,表现出来的感知能力是完全不同的。同样的,一个眼睛的动物对世界的感知能力也要差于两个眼睛的动物。每个人手中的智能手机摄像头其实就可以作为机器人的眼睛,当下非常流行的Pokeman Go游戏就使用了计算机视觉技术来达成AR的效果。
一个智能手机中摄像头模组,其内部包含如下几个重要的组件:镜头,IR filter,CMOS sensor。其中镜头一般由数片镜片组成,经过复杂的光学设计,现在可以用廉价的树脂材料,做出成像质量非常好的手机摄像头。
CMOS sensor上面会覆盖着叫做Bayer三色滤光阵列的滤色片。每个不同颜色的滤光片,可以通过特定的光波波长,对应CMOS感光器件上就可以在不同位置分别获得不同颜色的光强了。如果CMOS传感器的分辨率是4000x3000,为了得到同样分辨率的RGB彩色图像,就需要用一种叫做demosaicing的计算摄像算法,从2绿1蓝1红的2x2网格中解算出2x2的RGB信息。
一般的CMOS感光特性除了选择红绿蓝三色之外,对于红外光是透明的。因此在光路中加上IR滤光片,是为了去除太阳光线中红外光对CMOS的干扰。加上滤光片后,通常图像的对比度会得到显著的提升。
计算机视觉中还会用到什么传感器?除了RGB相机,计算机视觉中常用的还有其他种类的特殊相机。例如有一种相机的滤光片是只允许通过红外光波段的。因为人眼通常是看不见红外光的,所以可以在相机附近加上主动红外光源,用于测距等应用。
另外,大部分我们用到的camera都是以rolling shutter的形式实现电子曝光的,为了减少电子器件的成本,曝光通常是一行一行分别进行,这样势必造成物体快速移动时,相机采集到的图像会发生形变。为了避免这种形变对基于立体几何进行计算的视觉算法的影响(例如VSLAM),选用global shutter的相机就显得特别重要了。
深度相机是另一大类视觉算法中需要的传感器,可以分成如下几类:1.TOF传感器(例如Kinect 2代),类似昆虫复眼。成本高,室外可以使用。2.结构光传感器(例如Kinect 1代),三角定位原理,成本中,室外不能用。3.双目视觉(例如Intel Realsense R200),主动照明或被动照明,IR或可见光皆可。成本低,室外可以使用。