本发明涉及一种位姿快速重定位方法。特别是涉及一种无需相机标定的主动式位姿快速重定位方法。
背景技术:
(1)sift:scaleinvariantfeaturetransform的简称,一种计算机视觉中的算法。用来侦测与描述图像中的局部性特征。它在空间尺度中寻找极值点并提取出其位置、尺度、旋转不变量。局部影像特征的描述与侦测可以帮助辨识物体,sift特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、一些视角改变的容忍度也相当高。对于这些特性,它们是高度显著而且相对容易获得的。使用sift特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的sift物体特征就足以计算出位置与方位,辨识速度也可接近即时运算。
(2)dlt(参见文献[1]):directlineartransform的简称,一个用于解决包含尺度问题的最小二乘问题的算法,通过dlt法求出初值,再用牛顿法迭代求解。简单来说,就是通过两张图像矩阵,求解其两个矩阵的单应变换矩阵。
dlt解决问题的标准形式为:
xk∝a*yk(1)
另一种表现形式为:
xk=a*a*yk或者a*xk=a*yk(2)。
上述两个技术虽然比较成熟,但是它们只是应用于图像处理的技术,无法解决主动式位姿重定位这一课题。
技术实现要素:
本发明所要解决的技术问题是,提供一种具有实时性好、灵活性高、定位精度较高的无需相机标定的主动式位姿快速重定位方法。
本发明所采用的技术方案是:一种无需相机标定的主动式位姿快速重定位方法,包括如下步骤:
1)判断是否符合设定的重定位标准,如果符合重定位标准,结束流程;如果不符合重定位标准,进入下一步骤:
2)计算单应变换矩阵h,是提取当前图像与参考图相匹配的特征点对,根据所提取的特征点对计算单应变换矩阵h;
3)根据求解后的单应变换矩阵h动态更新指示框,包括:
在参考图像中构造一个以参考图像为中心位置的指示框,得到第三矩阵,将第三矩阵与步骤2)求出的单应变换矩阵h相乘,得到第四矩阵,即为动态更新后的指示框;
4)根据动态更新后的指示框,提到调整控制摄像机六个自由度运动的指标,所述的六个自由度包括:抬头/低头、左转/右转、左摆/右摆、左移/右移、上移/下移、前移/后移;
5)根据调整控制摄像机六个自由度运动的指标进行相机位姿调整;
6)重复步骤1)~步骤5),直到符合重定位标准,结束。
步骤2)包括:
分别找出当前图像若干个点的坐标(x,y,z),构成第一矩阵,再分别找出参考图像中与当前图像若干个点的坐标(x,y,z)相匹配的若干个点的坐标(x',y',z'),构成第二矩阵,得出如下等式:
h*[x,y,z]t=[x',y',z']t
利用直接线性变换算法,通过多个等式组成的方程组,求解得出变换矩阵h。
步骤4)包括:
(1)首先从动态更新后的指示框左上角顶点开始,设定四个顶点顺时针依次为点0、点1、点2和点3,将以所述指示框中心为中心点画出十字,设定十字中的横线左端点为点4,右端点为点5;
(2)根据动态更新后的指示框,得到调整控制摄像机六个自由度运动的指标。
第(2)中步6个自由度的调整依据是:
抬头:第一个点的横坐标-第零个点的横坐标>第二个点的横坐标-第三个点的横坐标;
低头:第一个点的横坐标-第零个点的横坐标<第二个点的横坐标-第三个点的横坐标;
左转:第三个点的纵坐标-第零个点的纵坐标<第二个点的纵坐标-第一个点的纵坐标;
右转:第三个点的纵坐标-第零个点的纵坐标>第二个点的纵坐标-第一个点的纵坐标;
左摆:第五个点的纵坐标-第四个点的纵坐标<0;
右摆:第五个点的纵坐标-第四个点的纵坐标>0;
左移:参考图的中心点x轴坐标<当前图的中心点x轴坐标;
右移:参考图的中心点x轴坐标>当前图的中心点x轴坐标;
上移:参考图的中心点y轴坐标>当前图的中心点y轴坐标;
下移:参考图的中心点y轴坐标<当前图的中心点y轴坐标;
前移:参考图的导航框面积<当前图的导航框面积;
后移:参考图的导航框面积>当前图的导航框面积。
本发明的一种无需相机标定的主动式位姿快速重定位方法,具有实时性好、灵活性高、定位精度较高、对光照条件不敏感、适用于室内外各种工作环境等突出优点。特别适用于以室外文物为代表的高值目标本体微小变化监测任务中的数据精确采集需求。
附图说明
图1是本发明一种无需相机标定的主动式位姿快速重定位方法的流程图;
图2是移动前拍摄结果图;
图3是移动过程某个时刻拍摄结果图;
图4是重定位方法结束后拍摄结果图。
具体实施方式
下面结合实施例和附图对本发明的一种无需相机标定的主动式位姿快速重定位方法做出详细说明。
本发明的一种无需相机标定的主动式位姿快速重定位方法,通过计算当前状态下拍摄图像与上次状态下图像之间的单应变换关系,反馈出六个自由度的移动控制变量,指导操作者或执行机构向正确方向移动。
如图1所示,本发明的一种无需相机标定的主动式位姿快速重定位方法,包括如下步骤:
1)判断是否符合设定的重定位标准,这种主动式相机位姿快速重定位存在一种结束标准,在开始时,需要对当前状态与标准对比,如果符合重定位标准,结束流程;如果不符合重定位标准,进入下一步骤:
2)计算单应变换矩阵h,是提取当前图像与参考图相匹配的特征点对,根据所提取的特征点对计算单应变换矩阵h;包括:
分别找出当前图像若干个点的坐标(x,y,z),构成第一矩阵,再分别找出参考图像中与当前图像若干个点的坐标(x,y,z)相匹配的若干个点的坐标(x',y',z'),构成第二矩阵,得出如下等式:
h*[x,y,z]t=[x',y',z']t
利用直接线性变换算法,通过多个等式组成的方程组,求解得出变换矩阵h。
3)根据求解后的单应变换矩阵h动态更新指示框,包括:
在参考图像中构造一个以参考图像为中心位置的指示框,得到第三矩阵,将第三矩阵与步骤2)求出的单应变换矩阵h相乘,得到第四矩阵,即为动态更新后的指示框;
4)根据动态更新后的指示框,提到调整控制摄像机六个自由度运动的指标,所述的六个自由度包括:抬头/低头、左转/右转、左摆/右摆、左移/右移、上移/下移、前移/后移;具体包括:
(1)首先从动态更新后的指示框左上角顶点开始,设定四个顶点顺时针依次为点0、点1、点2和点3,将以所述指示框中心为中心点画出十字,设定十字中的横线左端点为点4,右端点为点5;
(2)根据动态更新后的指示框,得到调整控制摄像机六个自由度运动的指标。
6个自由度的调整依据是:
抬头:第一个点的横坐标-第零个点的横坐标>第二个点的横坐标-第三个点的横坐标;
低头:第一个点的横坐标-第零个点的横坐标<第二个点的横坐标-第三个点的横坐标;
左转:第三个点的纵坐标-第零个点的纵坐标<第二个点的纵坐标-第一个点的纵坐标;
右转:第三个点的纵坐标-第零个点的纵坐标>第二个点的纵坐标-第一个点的纵坐标;
左摆:第五个点的纵坐标-第四个点的纵坐标<0;
右摆:第五个点的纵坐标-第四个点的纵坐标>0;
左移:参考图的中心点x轴坐标<当前图的中心点x轴坐标;
右移:参考图的中心点x轴坐标>当前图的中心点x轴坐标;
上移:参考图的中心点y轴坐标>当前图的中心点y轴坐标;
下移:参考图的中心点y轴坐标<当前图的中心点y轴坐标;
前移:参考图的导航框面积<当前图的导航框面积;
后移:参考图的导航框面积>当前图的导航框面积。
5)根据调整控制摄像机六个自由度运动的指标进行相机位姿调整;
6)重复步骤1)~步骤5),直到符合重定位标准,结束。
图2所示是使用本发明的方法之前相机显示的界面,其定位的效果明显很差。
图3所示是使用本发明的方法过程中相机的显示界面,此时正在向本发明想要的效果中运动。
图4所示是使用本发明的方法结束后显示的界面,此时重定位的效果就很好了。
由上明显可以看到,使用本发明的方法得到的重定位效果非常好,已基本达到完全重定位效果。