基于图像灭点的NAO机器人摄像头参数分析与标定
2016-03-22山东科技大学电气与自动化工程学院孔维维
山东科技大学电气与自动化工程学院 孔维维 隋 涛
基于图像灭点的NAO机器人摄像头参数分析与标定
山东科技大学电气与自动化工程学院孔维维隋涛
【摘要】本文以NAO机器人为硬件基础,分析了其摄像过程,并获得三维空间的单张图片。对该图像进行处理,寻找三维空间中映射到图像场景的平行线。最后,计算图像中的灭点,并进行相应的三维坐标变换,标定NAO机器人摄像头的内、外参数,确定NAO机器人的空间位置。论文最后进行了实际的测试,验证了方法的准确性。
【关键词】摄像头标定;NAO机器人;灭点
0 引言
如今,虚拟现实技术在移动机器人中的应用也越来越多。大到战场上的作战机器人、公路上的无人驾驶汽车,小到家庭使用的家政机器人,这些机器人都有一个共性,即配备有摄像头,可以对周围环境进行监测和判断。可见,机器人与虚拟现实技术结合的应用变得越来越重要,对机器人的摄像头进行标定也就变得必不可少。
NAO机器人是一款非常智能的人形机器人,而且它具备比较高的人工智能水平,曾被机器人世界杯RoboCup组委会选定为标准平台。其头部有两个摄像头,上下垂直排列,但两个摄像头不能同时开启。以此为基础,使用NAO机器人的单摄像头拍摄场景照片,通过计算图像中的灭点,计算NAO机器人摄像头的焦距f、旋转矩阵R、平移向量t。
国内外有许多学者进行了摄像机标定的研究,针对不同的应用和要求有不同的方法。B.CAPRILE 和V.TORRE首次提出了利用灭点性质进行摄像机参数的求解,根据图像中的立方体计算内参数,另外通过特定的标定板估算摄像机的外参数。国内学者张正友等人提出,通过摄像机在不同方向对平面靶标拍摄两幅或以上图片,进行摄像机标定的方法。移动机器人对摄像头标定的要求讲究实时性,在精度要求不是很高的前提下,需要尽量简化标定过程。
1 NAO机器人获取图片
在同一局域网内,NAO机器人可自动获取IP地址与电脑连接。NAO机器人获取图片需要使用NAOqiVision里的ALVideoDevice模块,通过ALProxy申请一个视觉模块的代理,使电脑通过IP地址和端口号与NAO机器人的视觉设备进行连接。之后一个非常重要的操作就是订阅,这一步骤决定了NAO机器人的摄像头获取图像时的颜色空间、图片的尺寸大小等信息。完成此步骤以后,可以使用getImageRemote函数读取NAO机器人视野内的图片。提取完图片,需要退订,解除对视觉模块的控制,将使用权交给其他需要摄像头的进程。
2 NAO机器人摄像头标定
2.1灭点性质
空间多条相互平行的直线,在成像平面上相交于一点,此点称为该方向上的灭点。
灭点具有以下几条性质:1)摄像中心与消失点的连线,与形成消失点的空间平行线平行。2)空间三对两两正交的直线形成的消失点在成像图像上组成的三角形,其垂心即为摄像机的光心在图像上的投影点。3)消失点的坐标变换仅与旋转矩阵R有关,所以三个正交方向上的消失点在世界坐标系下组成的矩阵V与该消失点矩阵在摄像机坐标系下的坐标矩阵Vˊ有公式Vˊ=RV。
2.2NAO机器人摄像头内参数计算
NAO机器人配备的高清摄像头采用的是OV7670图像传感器,最高可以提供30fps的分辨率为640×480的图像,在对NAO机器人摄像头参数计算时,可以采用针孔摄像机模型。在图1中,以O为摄像中心,忽略摄像头的畸变,并假设图像的中心点就是图像主点(u0,v0),像平面中的Pu、Pv为空间中两个相互垂直方向上的平行线形成的灭点,另一灭点为Pw。O为摄像中心,P为图像中心(主点),OP的距离即为焦距f。点Puv为点P在灭直线上的投影点[4]。OPPuv为直角三角形,有:
图1 焦距计算Fig. 1 calculation of focal length
在∆PPuPv中,PPuv⊥PuPv,根据向量PuPv与向量PuP内积的计算公式及三角关系运算,由公式1、2可以得出点Puv的坐标,进而求出PPuv的距离:
根据灭点的性质1,光心O与两个灭点Pu、Pv的连线分别与形成这两个灭点的空间平行线平行,所以有向量OPu与向量OPv的内积等于零,即OPu⊥OPv。同时有OP垂直于PuPv,即:
得到结论∆OPuPv、∆OPuPuv、∆OPuvPv均为直角三角形,α=θ,β=γ。∆OPuPuv与∆OPuvPv相似,所以有:
结合公式2、3及焦距计算公式,可计算出NAO机器人摄像头的焦距f。
2.3NAO机器人空间位置的确定
设定一个世界坐标系,对于NAO机器人在三维欧式空间中所处的位置,可以相对世界坐标系进行描述。建立NAO机器人摄像机坐标系后,相对于世界坐标系有两种变换关系,即两个坐标系各坐标轴之间的旋转关系和两坐标系间的平移关系,分别对应了旋转矩阵和平移向量。
2.3.1旋转矩阵
设u、v、w分别为世界坐标系下与三个灭点相关的单位向量,V为以u、v、w为列向量组成的3×3矩阵,uˊ、vˊ、wˊ分别为摄像机坐标系下与三个灭点相关的单位向量,Vˊ为以uˊ、vˊ、wˊ为列向量组成的3×3矩阵[3]。根据灭点性质3,有Vˊ=RV。令向量u、v、w的方向为世界坐标系的三个坐标轴方向,有u=(1,0,0),v=(0,1,0),w=(0,0,1)。根据灭点性质3,可以得到旋转矩阵R:
其中,Pu_i、Pu_j、f为灭点Pu在相机坐标系下的坐标,灭点Pv、Pw的相机坐标类似。
2.3.2平移向量
平移向量是世界坐标系与相机坐标系间的平移关系,需要先确定世界坐标系的位置。指定一点为世界坐标系的参考原点,假设该点对应的图片像素坐标为(u1,v1)。根据针孔相机成像模型公式:
在相差一个比例因子的情况下,将世界坐标系原点代入公式4:
设定比例因子λ1,即可求出平移向量t。
2.4实验
NAO机器人获取图片,设定好图像获取函数的参数,设置图像颜色空间为RGB,大小为640× 480。建立世界坐标系O-XYZ,如图2所示:
图2 世界坐标系图片Fig.2 calculation of focal length
根据上述方法,图像主点即图像中心(320,240)。三个灭点坐标分别为(1725.65432098,-195.419753086)、(-39.51572327,-99.10062893)、(289.6359,1628.87379)。计算得焦距f=598.08337024,旋转矩阵和平移向量分别为:
通过对空间中的点进行反投影,可以验证以上求得的摄像机内、外参数可以在精度要求不是很高的情况下,满足标定要求。
3 结论
本文在分析了移动机器人对摄像头标定的要求后,选择了使用以单幅图像中的灭点为基础的方法作为NAO机器人摄像头的标定方法。利用灭点性质,计算出NAO机器人的内、外参数。在精度要求不高的情况下,该方法能够适应移动机器人对于实时性和便利性的要求。今后可以结合NAO机器人本身的智能化及其丰富的API接口,开发机器人的更多应用(如对场景的三维恢复)。
参考文献
[1]B.CAPRILE,V.TORRE.Using Vanishing Points for Camera Calibration[J].International Journal of Computer Vision(S0920-5691),1990,4(2):127-140.
[2]马颂德,张正友.计算机视觉-计算理论与算法基础[M].北京:科学出版社,1998.
[3]余烨,刘晓平.基于灭点的三维重建[J].系统仿真学报,2008,20(15):4069-4072.
[4]崔灿,张国华.一种基于单幅图像双消失点的摄像机标定方法[J].科学技术与工程,2012,12(34):9186-9190.
[5]张广军.机器视觉[M].北京:科学出版社,2005.
[6]郑逢节,余涛,袁国体等.相机几何标定方法综述[J].太原科技,2010,2:72-73.
[7]齐全.基于单幅图像的交互式建模技术研究[D].青岛:青岛大学,2008.
[8]Ayache N,et al.Trinocular stereo vision for robotics[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1991,13(1):73-85.
[9]Ying Liu,Yuanxin Wu,Meiping Wu,et al.Planar Vanishing Points Based Camera Calibration[J].Proceedings of the International Conference on Image and Graphics, HongKong,China,2004:460-463.
[10]邓刚,张志强,孙济洲.用未标定相机构造三维模型[J].系统仿真学报,2001,13(S):42-44.