本发明涉及一种机器人定位的方法,更具体地讲,通过训练样本标签生成、算法来准确地识别移动机器人的位置的移动机器人定位方法。
背景技术:
视觉定位是通过单个相机或多个相机作为输入估计自身运动的过程。应用领域涵盖机器人、可穿戴计算、增强现实和自动驾驶。
一般的视觉定位根据所使用的相机数目的不同,可以分为单目视觉定位装置和多目视觉定位装置。
单目视觉定位装置:当拍摄到的图片纹理较少,或存在相对运动时,单目视觉定位装置并不能还原出真实的运动距离以及轨迹,这使得单目视觉定位装置无法较准确定位。
技术实现要素:
鉴于上述的分析,本发明旨在提供一种基于单目摄像机的移动机器人定位方法,用以解决现有视觉定位系统存在的局限性问题,如传统视觉定位算法对于过暗或过亮环境不具有很好的适应性。具体具体是方案如下:
一种机器人视觉定位方法,包括图像采集和训练样本标签生成、算法训练、测试三个步骤,
步骤一、图像采集和训练样本标签生成:
机器人在一特定房间内,摄像头朝上记录多帧连续拍摄的影像,该特定房间天花板上放置由三条直线l1、l2、l3组成的门型标志,摄像头拍摄的每一帧图像都包含门型标志,利用门型标志的三条直线的定位算法来得到物体位姿的闭式解,即旋转角度r和位移t;
步骤二、算法训练:
采用卷积神经网络训练样本对;
步骤三、测试:
用生成式对抗网络训练以提高鲁棒性。
进一步的,求解旋转角度r和位移t的算法如下:
采用的摄像机模型为针孔模型,摄像机的内参数包括:焦距f,主点坐标(u0,v0),像素距du,dv;外参数包括旋转矩阵r和平移向量t=(tx,ty,tz),
设某空间点在世界坐标系下的坐标为(xw,yw,zw),其在摄像机坐标系下的坐标为(xc,yc,zc),则两坐标满足以下变换关系:
它们之间的变换关系可由r和t唯一确定,当坐标变换沿x轴、y轴、z轴按右手法则的旋转角度分别为ψ、φ、θ且按zyx的顺序旋转时,则
r11=cosθ*cosφ
r12=sinθ*cosφ
r13=-sinφ
r21=cosθ*sinφ*sinψ-sinθ*cosψ
r22=sinθ*sinφ*sinψ–cosθ*cosψ
r23=cosφ*sinψ
r31=cosθ*sinφ*cosψ+sinθ*sinψ
r32=sinθ*sinφ*cosψ-cosθ*sinψ
r33=cosφ*cosψ
若摄像头的像平面不平行于l1和l3,则门型标志在像平面上的投影直线l1,l2,l3将交于三点,设像平面上三个交点在摄像机坐标系下的坐标分别为q1(x1,y1,f)、q2(x2,y2,f)、q3(x3,y3,f),坐标值可通过直线l1,l2,l3的直线方程求出;
设l1,l2,l3在像平面上的直线方程分别为
在摄像机坐标系下,设门型标志的上两端p1和p2的坐标分别为(k1x1,k1y1,k1f)和(k2x1,k2y1,k2f)为待定系数,i=1,2,其中ki为待定系数,为交点pi到摄像机光心的距离与qi到摄像机光心的距离的比值;
经过计算的到k1的两个解和平移向量(tx,ty,tz)t=(k1x1,k1y1,k1f)t,获得世界坐标系的x轴的准确方向后,对该方向向量进行标准化,得到标准方向向量,最后求出旋转矩阵和三个旋转角后,确定世界坐标系与摄像机坐标系的变换关系;
以连续图像帧作为训练样本对,求两帧图像相对的位移t以及旋转角度r,生成包含位移信息和旋转角度信息的图像样本对,两帧图像相对的位移t以及旋转角度r是通过坐标变换来实现的。
进一步的,卷积神经网络训练如下:
通过前向传播、损失计算、反向传播、权重更新等步骤,以连续两帧图像作为cnn的输入,样本对对应的相对旋转角度作为输出,对cnn网络作第一次训练;
接着用同样两帧图像和其对应的旋转角度为输入,相对平移距离为输出,对该cnn网络作第二次训练,重复上述步骤直至所有样本被训练。
进一步的,用生成式对抗网络训练以提高鲁棒性如下:
使用gan在原有样本对上输入噪声,构造出过亮或过暗场景的样本对,用生成的对抗样本来训练上述的cnn,根据最后的输出结果回传损失函数,进一步调整cnn的参数,提高该cnn的鲁棒性。
附图说明
图1是门形摆放示意图;
图2是对cnn进行第一次训练示意图;
图3是对cnn进行第二次训练示意图。
具体实施方式
下面结合附图对本发明作进一步说明。
本发明的机器人视觉定位方法,包括图像采集和训练样本标签生成、算法训练、测试三部分,具体如以下步骤:
1、图像采集和训练样本标签生成:
机器人在一特定房间内,摄像头朝上记录多帧连续拍摄的影像,该特定房间天花板上放置由三条直线组成的门型标志。摄像头拍摄的每一帧图像都包含门型标志,所以可以利用门型标志的三条直线的定位算法来得到物体位姿的闭式解,即旋转角度r和位移t。求解旋转角度r和位移t的算法如下:
采用的摄像机模型为针孔模型,摄像机的内参数包括:焦距f,主点坐标(u0,v0),像素距du,dv;外参数包括旋转矩阵r和平移向量t=(tx,ty,tz),
设某空间点在世界坐标系下的坐标为(xw,yw,zw),其在摄像机坐标系下的坐标为(xc,yc,zc),则两坐标满足以下变换关系:
它们之间的变换关系可由r和t唯一确定,当坐标变换沿x轴、y轴、z轴按右手法则的旋转角度分别为ψ、φ、θ且按zyx的顺序旋转时,则
r11=cosθ*cosφ
r12=sinθ*cosφ
r13=-sinφ
r21=cosθ*sinφ*sinψ-sinθ*cosψ
r22=sinθ*sinφ*sinψ–cosθ*cosψ
r23=cosφ*sinψ
r31=cosθ*sinφ*cosψ+sinθ*sinψ
r32=sinθ*sinφ*cosψ-cosθ*sinψ
r33=cosφ*cosψ
门形摆放如图1所示:
若像平面不平行于l1和l3,则门型标志在像平面上的投影直线l1,l2,l3将交于三点,设像平面上三个交点在摄像机坐标系下的坐标分别为q1(x1,y1,f)、q2(x2,y2,f)、q3(x3,y3,f),坐标值可通过直线l1,l2,l3的直线方程求出。
设l1,l2,l3在像平面上的直线方程分别为
在摄像机坐标系下,设p1和p2的坐标分别为(k1x1,k1y1,k1f)和(k2x1,k2y1,k2f)为待定系数,其中ki(i=1,2)为待定系数,ki的几何意义为交点pi到摄像机光心的距离与qi到摄像机光心的距离的比值。
接着经过计算的到k1的两个解和平移向量(tx,ty,tz)t=(k1x1,k1y1,k1f)t,获得世界坐标系的x轴的准确方向后,对该方向向量进行标准化,得到标准方向向量,最后求出旋转矩阵和三个旋转角后,可完全确定世界坐标系与摄像机坐标系的变换关系。
上述生成的只是单帧图像的标签信息,接着我们要以连续图像帧作为训练样本对,求两帧图像相对的位移t以及旋转角度r,生成包含位移信息和旋转角度信息的图像样本对,这里的两帧图像相对的位移t以及旋转角度r是通过坐标变换来实现的。
2、卷积神经网络训练:
如图1所示,通过前向传播、损失计算、反向传播、权重更新等步骤,以连续两帧图像作为cnn(convolutionalneuralnetwork,卷积神经网络)的输入,样本对对应的相对旋转角度作为输出,对cnn网络作第一次训练。
如图2所示,接着用同样两帧图像和其对应的旋转角度为输入,相对平移距离为输出,对该cnn网络作第二次训练。重复上述步骤直至所有样本被训练。3、测试
用生成式对抗网络训练以提高鲁棒性:
使用gan(generativeadversarialnetworks,生成式对抗网络)在原有样本对上输入噪声,构造出过亮或过暗场景的样本对,用生成的对抗样本来训练上述的cnn,根据最后的输出结果回传损失函数,进一步调整cnn的参数,提高该cnn的鲁棒性。