1.一种智能机姿态测定方法,其特征在于,所述方法包括:
定义局部坐标系:局部坐标系是指原点在智能机,Z轴指向地球表面方向,Y轴或X轴与纬线相平行的坐标系;或局部坐标系原点位于地球上任意一点,Z轴与重力方向一致,北代表局部坐标系X轴,西代表局部坐标系Y轴;
测定智能机姿态矩阵Rg,Rg是一个相对于局部坐标系的3x3单位正交矩阵;
所述测定智能机姿态矩阵Rg具体是采用智能机的加速度传感器,以及磁力计传感器或方向传感器,或者,采用智能机的旋转矢量传感器,或者,采用智能机的陀螺仪、加速度传感器与磁力传感器来测定;
当测定智能机姿态矩阵Rg具体是采用智能机的加速度传感器,以及磁力计传感器或方向传感器来测定时,所述测定智能机姿态矩阵Rg具体包括:
用以下公式(1)计算Rg
其中
vax,vay,vaz是智能机加速度传感器测出的x,y,z三个方向的值,或是这三个值经滤波的结果;Ra是加速度传感器相对于智能机的姿态转换矩阵;
当az≤0时,s=-1,az>0时,s=1;
若采用方向传感器:通过方向传感器获取方位角 将其带入公式(1)计算
Rg;若采用磁力计传感器:计算
其中Rm是磁力传感器相对于智能机的姿态转换矩阵;{vmx,vmy,vmz}是磁力传感器检测到的三个值或这三个值经滤波的结果;
再计算
利用磁力传感器计算方位角 的三角函数为:
带入公式(1)计算Rg;
当测定智能机姿态矩阵Rg具体是采用智能机的旋转矢量传感器来测定时,所述测定智能机姿态矩阵Rg具体包括:
若检测到旋转矢量传感器只有3个数据values[0],values[1],values[2],
则采用以下公式得到
q1=values[0],q2=values[1],q3=values[2],
若检测到旋转矢量传感器有4个数据values[0],values[1],values[2],values[3]
则采用以下公式得到
q1=values[0],q2=values[1],q3=values[2],q0=values[3]
则Rg0矩阵为:
根据智能机旋转矢量传感器坐标系定义的不同,得到Rg=Rg0RLT,其中RLT是局部坐标系与旋转矢量传感器坐标系之间的变换矩阵;
当测定智能机姿态矩阵Rg具体是采用智能机的陀螺仪、加速度传感器与磁力传感器来测定时,所述测定智能机姿态矩阵Rg具体包括:
第1步采用智能机的加速度传感器,以及磁力计传感器或方向传感器来测定Rg的初值或采用智能机的旋转矢量传感器来测定Rg的初值,将Rg转换成4元数q0,q1,q2,q3作为以下第2-
7步迭代的初值;
第2步设定exInt,eyInt,ezInt原始值为0,即exInt=0,eyInt=0,ezInt=0;
第3步根据接收到的磁力计矢量{mx,my,mz},得到正确磁场矢量{wx,wy,wz},
先将矢量{mx,my,mz}替换成将其单位化以后的矢量
得到局部坐标系下磁场的正确的磁场方向矢量{bx,0,bz}, bz=hz;其
中:hx=2×mx×(0.5-q2×q2-q3×q3)+2×my×(q1×q2-q0×q3)+2×mz×(q1×q3+q0×q2);
hy=2×mx×(q1×q2+q0×q3)+2×my×(0.5-q1×q1-q3×q3)+2×mz×(q2×q3-q0×q1);
hz=2×mx×(q1×q3-q0×q2)+2×my×(q2×q3+q0×q1)+2×mz×(0.5-q1×q1-q2×q2);
再转换到正确磁场矢量{wx,wy,wz},其中
wx=2×bx×(0.5-q2×q2-q3×q3)+2×bz×(q1×q3-q0×q2);
wy=2×bx×(q1×q2-q0×q3)+2×bz×(q0×q1+q2×q3);
wz=2×bx×(q0×q2+q1×q3)+2×bz×(0.5-q1×q1-q2×q2);
第4步根据接收到的加速度传感器数据ax,ay,az,和{wx,wy,wz}得到误差矢量{ex,ey,ez},并计算其累计值exInt,eyInt,ezInt;
具体为:先将矢量{ax,ay,az}替换成将其单位化以后的矢量
计算vx=2*(q1*q3-q0*q2);vy=2*(q0*q1+q2*q3);vz=q0*q0-q1*q1-q2*q2+q3*q3;
ex=(ay×vz-az×vy)+(my×wz-mz×wy);
ey=(az×vx-ax×vz)+(mz×wx-mx×wz);
ez=(ax×vy-ay×vx)+(mx×wy-my×wx);
计算误差累计值:将exInt替换为exInt+ex×Ki;eyInt替换为eyInt+ey×Ki;ezInt替换为ezInt+ez×Ki;其中Ki为一可调节的正系数,Ki在0.00001至0.5中任意选取;
若没有磁力计,则第3步不执行,同时将该第4步中的
ex=(ay×vz-az×vy)+(my×wz-mz×wy);
ey=(az×vx-ax×vz)+(mz×wx-mx×wz);
ez=(ax×vy-ay×vx)+(mx×wy-my×wx);
改为
ex=ay×vz-az×vy;
ey=az×vx-ax×vz;
ez=ax×vy-ay×vx;
第5步根据误差矢量{ex,ey,ez}及其累计值纠正陀螺仪数据{gx0,gy0,gz0}
假设智能机读出当前的一组陀螺仪数据为{gx0,gy0,gz0},gx=gx0+Kp×ex+exInt;gy=gy0+Kp×ey+eyInt;gz=gz0+Kp×ez+ezInt;其中Kp为一可调节的正系数,Kp在0.000001至20.0中任意选取;
第6步根据陀螺仪数据gx,gy,gz修正4元数
随着不断接收到陀螺仪数据gx,gy,gz,对4元数按如下方式修正:
q0替换为q0+(-q1×gx-q2×gy–q3×gz)×halfT;q1替换为q1+(q0×gx-q3×gy+q2×gz)×
halfT;q2替换为q2+(q3×gx+q0×gy-q1×gz)×halfT;q3替换为q3+(-q2×gx+q1×gy+q0×gz)×halfT;其中halfT为修正周期,halfT=0.00001~-10.0;
第7步输出Rg矩阵和4元数
将4元数{q0,q1,q2,q3}单位化成 输出;
4元数转Rg矩阵公式如下
第8步回到第3步继续接收陀螺仪运动数据更新姿态4元数q0~q3,在循环的过程中每次到第7步都能输出当前的Rg矩阵和4元数。
2.一种智能机显示屏的姿态测定方法,其特征在于,所述方法包括:
智能机显示屏的姿态矩阵为
rx是智能机显示屏像素阵列x轴方向在局部坐标系中的分量;
ry是智能机显示屏像素阵列y轴方向在局部坐标系中的分量;
rz是垂直于智能机显示屏表面方向向智能机显示屏内部朝前看的视线方向在局部坐标系中的分量;
1)按权利要求1所述的方法测定智能机姿态,并得到智能机的姿态矩阵Rg;
2)计算R=ΔR×Rg,ΔR为智能机显示屏姿态矩阵R相对于智能机姿态矩阵Rg的一个固定的方向的转换,智能机自身Z轴定义为智能机加速度传感器的z轴方向,
当显示屏观察方向和智能机自身Z轴方向刚好相反时
当显示屏观察方向和智能机自身Z轴方向完全一致时
否则采用摄影测量方法标定ΔR=RARg-1,RA是摄影测量后方交汇法算得的摄像头姿态矩阵,Rg是按权利要求1方法测得此时智能机的姿态矩阵。
3.一种基于智能机姿态的虚拟现实漫游方法,其特征在于,所述方法包括:
1)采用权利要求2所述的方法得到智能机显示屏的姿态矩阵R;
2)根据姿态矩阵R移动控制漫游观察者在局部坐标系中的位置:
定义漫游观察者是在局部坐标系中的一个具备自身位置、姿态且用于观察周边场景的对象;智能机显示屏所渲染的场景就是漫游观察者在局部坐标系中所应看到的场景图像;
定义漫游观察者在局部坐标系中的坐标为(Xd,Yd,Zd),
3)设置漫游观察者在局部坐标系里的位置和方向;
4)在局部坐标系下渲染绘制三维场景。
4.根据权利要求3所述的方法,其特征在于:所述根据姿态矩阵R移动控制漫游观察者在局部坐标系中的位置具体包括:
a)获取智能机漫游者手指在屏幕本体上的滑动数据;
b)在滑动数据是漫游者单指相对于智能机屏幕本体滑动矢量△X,△Y的情况下,如果|r33|>|r13|且|r33|>|r23|,其中rij是R矩阵的i行j列元素值,则单指滑动后,在局部坐标系中的定位坐标(Xd,Yd)的改正数(vx,vy),vx=ΔXr11+ΔYr21,vy=ΔXr12+ΔYr22;否则:
c)在滑动数据是漫游者双指做拉开或合拢操作所获得的情况下,则得到拉开和合拢之前双指之间的屏幕距离,以及拉开和合拢之后双指之间的屏幕距离;通过前后两次距离的差异修正Zd。
5.根据权利要求3所述的方法,其特征在于:所述设置漫游观察者在局部坐标系里的位置和方向具体包括:
根据漫游观察者的局部坐标系坐标(Xd,Yd,Zd),以及步骤1)测定得到的姿态矩阵R,利用OpenGL,OpenES,OS X OpenGL,Direct3D或osg绘图软件库中用于设定相机位姿的图形库函数,设置漫游观察者在局部坐标系里的位置和方向:
需要设定以下几个量:
(1)漫游观察者自身观察的垂直视场角θ,就是智能机显示屏上边缘中点的视线方向与下边缘中点的视线方向的夹角;
(2)漫游观察者所在的位置(Xd,Yd,Zd),并根据步骤2)的漫游方法进行修正;
(3)漫游者观察方向{r31,r32r33}或者用户注视点坐标(Xd+r31,Yd+r32,Zd+r33)
(4)漫游者自身向上方向的矢量{-r21,-r22,-r23}
其中步骤(3)和(4)中的rij是智能机显示屏姿态R矩阵中的第i行j列,i=2或3,j=1、2或3。
6.根据权利要求3所述的方法,其特征在于:所述在局部坐标系下渲染绘制三维场景具体包括:
预先在智能机的显示屏内设置一个3维渲染图层进行三维场景渲染;
被绘制的三维场景中的点、线、面和物体模型的几何坐标都要转换成局部坐标系下的坐标[Xi Yi Zi]T,即与漫游者的坐标(Xd,Yd,Zd)在同一个局部坐标系下;用OpenGL,OpenES,OS X OpenGL,Direct3D或osg绘图软件库实现局部坐标系下的三维绘图;
智能机摄像头的拍摄方向与屏幕观察方向一致时,可以智能机摄像头拍摄的视频图像为底图,叠加绘制三维场景中的点线面。
7.根据权利要求3所述的方法,其特征在于:
在所述步骤3)和步骤4)之间还包括步骤:
(a)获取智能机的高度hs,纬度θs和经度 其中θs是智能机的纬度, 是智能机的经
度,由智能机上自带的GPS接收模块获取;
(b)计算智能机所在经纬度的Rv
(c)计算智能机所在纬度θs经度 高度hs的地心坐标系坐标Ts,
利用大地测量学中经典的转换公式
得到Ts,
其中
hs是智能机离地面高度;
Ns是随纬度变化的卯酉圈曲率半径;
a,b是地球椭球的长短轴,是大地测量学中的已知常量;
e是偏心率,是定值;
(d)根据地球上任何一个点的经度 纬度θi和高程hi得到该点地心坐标系坐标T0i=
[X0i Y0i Z0i]T
利用大地测量学中经典的转换公式
得到T0i;
其中
hi是点离地面高度;
Ni是随纬度变化的卯酉圈曲率半径;
a,b是地球椭球的长短轴,是大地测量学中的已知常量;
e是偏心率,是定值;
如果已知一个物体所在经纬度 和θi,通过本步骤计算出它的地心坐标系坐标T0i;
(e)地心坐标系坐标T0i转换为局部坐标系中的坐标(Xi Yi Zi)T
其中ΔT是局部坐标系中智能机显示屏的几何中心相对于智能机GPS接收天线的局部
坐标系偏移。
8.根据权利要求3所述的方法,其特征在于:
在步骤3)和步骤4)之间或在步骤4)之后,还包括步骤:将智能机的显示屏设定为二维绘图模式并设置若干个二维标签,针对每一个二维标签,按如下步骤显示:
1)首先确定二维标签的中心位置(u,v);
如果标签用于标注三维场景中局部坐标系坐标为(X,Y,Z)的目标,则根据以下公式确定目标显示的中心位置(u,v)
ZO=r31(X-Xd)+r32(Y-Yd)+r33(Z-Zd)
式中:
(cx,cy)是智能机显示屏中心点的坐标,若显示屏是矩形,cx=屏宽/2,cy=屏高/2;
r11~r33是R矩阵对应行列的元素;
h是显示屏上下边缘垂直像素长,θ是漫游观察者自身观察的垂直视场角;
(Xd,Yd,Zd)是漫游观察者在局部坐标系中的坐标;
如果满足ZO>0且中心位置(u,v)在显示屏范围内,则中心位置(u,v)保持不变,
否则需要按下法修正(u,v);
若ZO=0则将中心位置(u,v)替换为从点(cx,cy)出发
按矢量{r11(X-Xd)+r12(Y-Yd)+r13(Z-Zd),r21(X-Xd)+r22(Y-Yd)+r23(Z-Zd)}方向的射线与显示屏边缘相交的2维点;
若ZO>0则将中心位置(u,v)替换成从点(cx,cy)到点(u,v)的连线与显示屏边缘相交的2维点;
若ZO<0则将中心位置(u,v)替换成从点(u,v)到点(cx,cy)延长线与显示屏边缘相交的2维点;
如果二维标签不是用于标注目标,中心位置(u,v)为显示屏范围内的一个由界面设计者设定的像素坐标,或是用户手指触摸或鼠标点击的显示屏像素坐标;
2)按下述方法(1)或(2)计算矢量{Qx,Qy}
方法(1)Qx=-r23/La,Qy=r13/La
其中r23,r13是权利要求1所述的方法中的R矩阵对应行列的元素,
方法(2)利用权利要求1方法(1)加速度传感器的前两个输出值ax,ay得到
Qx=-ay/La,Qy=ax/La,
3)在二维平面上经过以下矩阵旋转变换以后再绘制二维标签:
二维标签上每一点X,经过上式变换到坐标X’显示出来;
式中±取+是正放显示,取-是倒放显示,标签的水平轴始终平行于地面;
即以二维标签的中心位置(u,v)为中心经过旋转变换 显示标签;
叠加的内容为静止的目标或者动态的目标;
4)得到局部坐标系坐标(Xi,Yi,Zi)的目标i的标签像坐标(ui,vi)之后,在智能机屏幕坐标(ui,vi)区域附近设置感应区,等待接收用户触摸该区域的事件,当用户在智能机上点击(ui,vi)附近区域的时候,将执行与目标i相关联的操作。
9.根据权利要求3所述的方法,其特征在于:
所述三维场景为一个空心的三维形体,三维形体为空心球,空心立方体、空心柱体、空心正多面体或空心锥体,三维形体的内壁以全景图作为纹理进行渲染;所述漫游观察者在虚拟场景中位于三维形体内部的某一点,从三维形体内部观察三维形体的内壁,实现利用智能机显示屏姿态控制全景浏览。
10.一种标定智能机上的摄像头姿态矩阵的方法,其特征在于:所述方法包括:
对姿态矩阵Rg进行校正,校正智能机的摄像头姿态矩阵
其中R=ΔR×Rg;
ΔR为智能机的摄像头姿态矩阵R和智能机姿态矩阵Rg之间的一个固定的方向转换,当摄像头方向和智能机屏幕方向刚好相反时 摄像头方向和智能机屏幕方
向完全一致时 否则采用摄影测量后方交汇法标定ΔR=RARg-1,RA是摄影测
量后方交汇法算得的相机姿态矩阵,Rg是按权利要求1方法测得的此时智能机的姿态矩阵。
11.一种基于智能机姿态数据的多目视觉定位方法,其特征在于,所述方法包括:
步骤1:
在N个地理位置点拍摄同一个物体X,其中N≥2,测第i个观察点的以下几个量,其中i∈(1,2,…,N):
(1)在视频帧图像中显示的位置(ui,vi);
(2)拍摄点的地理位置 分别是第i个拍摄点的经度,纬度,高度;
(3)按权利要求1所述的方法测得第i个拍摄点的摄像头姿态矩阵Ri;
(4)第i个拍摄点的内部参数焦距长fi,像主点坐标(cxi,cyi);
步骤2:
计算相对于地心的N个姿态矩阵,i=1~N,R0i=RiRvi
其中
步骤3:
利用公式 得
到N个拍摄点摄像头光心的地心坐标系坐标T0i={Txi,Tyi,Tzi}T i=1~N;其中{ΔTxi,ΔTxi,ΔTzi}T=RviTΔTi;ΔTi是摄像头光心相对于GPS接收天线的偏移矢量; 是将经度,纬度,高度转换成地心坐标系的X坐标的函数; 是将经度,纬度,高度转换
成地心坐标系的Y坐标的函数; 是将经度,纬度,高度转换成地心坐标系的Z坐标
的函数;
步骤4
根据拍摄点N的姿态矩阵R0N,位置[TxN TyN TzN],在图像中显示的位置坐标(uN,vN),摄像头焦距像素长fN,像主点坐标(cxN,cyN)都满足以下方程
其中r0iab表示姿态矩阵R0i的第a行第b列的元素值;i=1~N一共列2N个方程,解(Xx,Xy,Xz)三个未知数;或采用摄影测量前方交汇方法计算出物体X得到地心坐标系坐标(Xx,Xy,Xz);最后由大地测量学公式得到地心坐标(Xx,Xy,Xz)对应的经纬度。
12.一种基于智能机姿态数据的单目单点定位方法,其特征在于,所述方法包括:
假设智能机上的相机内部参数矩阵为:
被观察物体是一个直径=D大小的物体,
在智能机上成像的宽度是Δu,高度是Δv,
成像中心点像坐标(u,v),
采用权利要求1所述的方法测得智能机姿态矩阵Rg,并测得智能机上的摄像头姿态矩阵R=△RRg
包括以下两种情况:
(1)若已知智能机摄像头光心局部坐标系坐标是T,
则单目估算出物体的局部坐标系下三维坐标:
其中
(2)若已知物体的局部坐标系下三维坐标X,则求相机坐标T
从而实现了相机的单目定位。
13.一种基于智能机姿态数据的全景影像生成方法,其特征在于,所述方法包括:
步骤1、智能机在某一固定点用不同姿态拍摄n张图像,根据权利要求1所述的方法计算智能相机的姿态矩阵,根据智能相机的姿态矩阵再计算智能机摄像头姿态矩阵,分别为R0i,i为0~n-1之间的整数,n为大于等于1的整数;
步骤2、根据影像重叠区域迭代求解进行精确纠正
(1)提取图像间重合区域的同名点对
定义Hij=KjRjRiTKi-1
对N张图像之间任意两张i,j进行匹配寻找图像上的同名点对,可以将第i张图像Ii经过透视Hij变换后得到图像Ii’再与第j张图像Ij作细致匹配,最后将图像Ii上的匹配点坐标经过Hij-1逆变换还原成Ii图原始的坐标;
(2)根据上一步得到的同名点对匹配关系建立误差e相对于参数集
φ=[... fi qi0 qi1 qi2 qi3 ... fj qj0 qj1 qj2 qj3 ...]T
的数学模型e(φ),
前面得到的智能机摄像头姿态矩阵R0i转换成4元数qi00,qi01,qi02,qi03,i=0,…,n-1以φ=φ0=[... f0i qi00 qi01 qi02 qi03 ... f0j qj00 qj01 qj02 qj03 ...]T作为初值,采用LM法通过减小误差e,逐步得到精确化相机姿态qi0,qi1,qi2,qi3和焦距参数fi;
最后将精确化的φ中的4元数qi0,qi1,qi2,qi3转化成姿态矩阵Ri,i=0,…,n-1;
步骤3、开辟一张宽w高h大小的全景影像,扫描全景影像上每一个像素,针对全景图的每一个像素(x,y)进行如下(1)(2)处理:
(1)横坐标x转换成 纵坐标y转换成θ;
其中w,h是全景图像的宽,高;
(2)依据小孔成像公式
其中 fi为相机i焦距像素长度,(cix,ciy)是相机i的像主点;
利用Ri将 转换成映射到每个相机i的像坐标(ui,vi),若(ui,vi)在图像范围内,则
将相机i像坐标(ui,vi)处颜色取出,加权渲染到全景图(x,y)处;权重与(ui,vi)到该图像边缘最短距离有关,距离越短权重越小;若无一个相机的(ui,vi)在其图像范围内,渲染透明色或背景色到(x,y)处;扫描完全景图像上所有点填充相应的颜色,完成全景图像的渲染;
或者,在步骤2中先将全景图像颜色值全部清0,在步骤3中针对n张图像将全景图像上的相应区每个像素扫描n轮,分n轮依次将加权颜色值累加在全景图的像素上;
步骤4全景图像的三维浏览和检索定位。
14.根据权利要求13所述的方法,其特征在于:所述全景图像的三维浏览和检索定位具体包括:
(A)智能机姿态控制浏览三维全景图像
在虚拟场景中以球心为观察点,球体内壁以全景图作为纹理渲染一个球;设定智能机摄像头观察方向{r31,r32r33},自身向上方向{-r21,-r22,-r23};rij是姿态矩阵R中第i行第j列元素;
(B)全景图建库、检索和定位
采用步骤3(1)中的公式或采用墨卡托转换公式,
转换成全景图像,保持建库和检索的转换方式一致;
建库
提取全景图像的特征点集合,建立与全景图像关联的特征点数据库,库中每个特征点指向其所在的全景图像;
检索
同一地点c≥1张图像合成待检索全景图像并提取渲染区特征点,对每个特征点,查询库中与其最相似特征点所指向的全景图像,按特征点相似程度对库中指向的全景图像进行加权投票,按投票总和大小排序;
将待检索全景图中已渲染区和投票得到的库中全景图对应区域的像素集进行相关匹
配计算,相关系数越大越相似;输出投票排序靠前且相关系数大于预设值的结果;如果c=
1,也可根据单张拍摄姿态矩阵R,将库中全景图像映射到单张拍摄图像域与单张拍摄图像进行相关匹配;
定位
在已知GPS情况下,检索GPS附近区域的全景图像组成的子集特征库;
服务器数据库将全景图像与其地理位置坐标绑定在一起存储,检索结果是编号为i*的图像,即可在数据库中查找出i*所对应的地理位置。
15.一种基于智能机姿态数据的目标方向选择方法,其特征在于,所述方法包括:
定义智能机主方向或载体主方向相对于智能机自身的矢量单位p;
采用权利要求1所述的方法获取智能机当前姿态矩阵Rg;
计算p┴=RgTp为智能机主方向或载体主方向相对于指北坐标系的矢量;
计算局部坐标系中的目标矢量vo=O-P,假设局部坐标系中智能机自身坐标为P,目标的坐标为O,则目标矢量vo=O-P;
计算矢量p┴与目标矢量vo之间夹角的余弦,或计算两个矢量之间的夹角;
如果夹角的余弦>0.9,或者夹角偏差的绝对值|dφ|很小则触发智能机与该目标O之间的某一关联事件;
通过两矢量的点积除以|vo|得到夹角dφ的余弦,
cos(dφ)=(p┴点积vo)/|vo|
如果该余弦cos(dφ)>cos(φa),φa为预设值,则该目标方向选择事件可触发;
在需要与用户的可视化交互情况下,在指北坐标系中实时绘制目标、智能机和矢量p┴;
计算局部坐标系中智能机主方向矢量与目标矢量之间夹角的方向余弦,根据余弦值大小判定夹角,并且在三维空间或二维空间中绘制出智能机主方向矢量与目标矢量之间的方向关系,便于人机交互。
16.一种基于智能机姿态数据的视频影像实时纠正方法,其特征在于,所述方法包括:
采用权利要求1所述的方法计算智能机拍摄视频的每一帧图像对应的姿态矩阵Rg,R=△RRg得到智能机上摄像头的姿态矩阵R,△R是摄像头相对于智能机的转换矩阵;
将摄像头的姿态矩阵R分解为R=RτR_从而得到矩阵Rτ,相机的拍摄姿态R不规则,期待得到用虚拟姿态R_作为拍摄姿态矩阵得到的标准图像;
对智能机拍摄视频的每一帧图像I经过H=K2RτTK-1的Homograph变换得到I’;
其中 是拍摄相机的内部参数矩阵,f是焦距的像素长度,(cx,cy)是相机
主点坐标;对于理想相机(cx,cy)是图像的中心点,cx=w/2,cy=h/2,w,h是原始图像I的宽和高;
是纠正以后虚拟相机的内部参数矩阵,f2是纠正以后虚拟相机的焦
距的像素长度,(cx2,cy2)是纠正以后虚拟相机主点坐标。
17.一种基于姿态数据的智能机单像定位方法,其特征在于,所述方法包括:
假设相机或摄像机内参数据f和(cx,cy)已知,f是焦距的像素长度,(cx,cy)是相机主点坐标,
内参矩阵
搜集采集物方点,转化成局部坐标系坐标;
采用权利要求1所述的方法获取智能机的姿态矩阵Rg,R=△RRg得到智能机上摄像头的姿态矩阵R,△R是摄像头相对于智能机的转换矩阵;
拍摄一张图像,自动提取其中的多个特征点,通过匹配算法得到与物点对应的n对物像同名点;n个物方点的坐标是Xi=[Xix,Xiy,Xiz]T i=1,…,n,对应n个像点坐标是[ui vi]T i=1,…,n;根据无错和容错2种情况计算相机在局部坐标系下的坐标T。
18.根据权利要求17所述的方法,其特征在于:所述根据无错和容错2种情况计算相机在局部坐标系下的坐标T具体为:
(1)若确认多个特征点无错误,则
采用数学模型解方程得到自身在局部坐标系下坐标Tx,Ty,Tz
其中
进而得到相机位置T,最大集ζ为n个点对组成的全集;
(2)若不确认多个特征点是否全部正确,采用Ransac容错算法,通过共线方程模型随机选取两对点n=2,根据模型式(HH2)计算相机位置T,并通过共线方程zi[u’i v’i 1]T=KR(Xi-T)验证T,
通过KR(Xi-T)算出的u’i,v’I与ui,vi之间的误差距离小于error像素认为是符合共线方程,选取符合共线方程点数最大集ζ并计算最大集ζ对应的T*,单目多点Ransac容错算法流程如下:
1)从n个像点中随机挑选出2个距离足够大的像点,至少大于容忍误差error的2倍;
2)挑选出来的2个像点与物点对应形成2对物象同名点,按式(HH2)计算智能机位置T;
3)用T验证所有n对物象同名点的共线方程对应关系,共线方程KR(Xi-T)算出的u’i,v’I与ui,vi之间的误差距离小于error像素认为是符合共线方程,统计符合共线方程的个数i_in,如果i_in数量超过前期的数量nmax则记录本组满足共线方程容忍误差数量最大的点集ζmax,并刷新nmax=i_in;
4)更新迭代次数k+1→k
5)回到第1步,直到满足Ransac概率收敛条件(1-(nmax/n)2)k
6)将前面搜索得到的最大的点集ζmax搜集起来进行最后一次多点最小2乘计算,按公式(HH2)计算得到Tbest得到最终结果。
19.一种基于智能机姿态数据的相对定位方法,其特征在于,所述方法包括:
a)两相机之间相对定位
假设相机1,2之间有i=1..n≥2对同名点u1i,v1i~u2i,v2i;
其中R1,R2是智能机相机在拍摄的1,2两个地点测出来的姿态矩阵数据;
已知相机1的内参矩阵 相机2的内参矩阵 其中
(cxi,cyi)是相机i的像素主点坐标,fi是相机i的焦距像素长;
已知两相机之间的距离是L;
计算相机2相对于相机1的位移矢量T包括以下步骤:
(1)用权利要求1所述的方法计算智能机上相机的姿态Rg1,Rg2
计算R1=△RRg1,R2=△RRg2
进一步得到R=R2R1T
(2)构建矩阵A
其中
uji*=Ki-1ui=[uji*x uji*y uji*z]T,
ujiR*=Ruji*=[ujiR*x ujiR*y ujiR*z]T,i=1,2,j=1..n;
(3)如果确认n对点都是正确的,则
求约束||t3x1||=1下Anx3t3x1=0的解
或采用数学SVD分解得到Anx3=UnxnWnx3VT3x3,
SVD分解出来的V矩阵的最后1列的矢量,即对应于最小奇异值的特征矢量为t,
T
T=-LRt得到结果,结束
否则继续进行以下步骤;
(4)设置迭代初值nmax=0,k=1;
(5).随机挑选A矩阵中的2行,构建A2x3
就是求约束||t2||=1下A2x3t2=0的解
或采用SVD分解得到A2x3=U2x2W2x3VT3x3,
分解出来的V的最后1列的矢量即为t2;
(6)将t2=[ttx tty ttz]T代入第j=1..n个点,采用式(AB)验证点j是否是内点,
(uj2*xuj1R*y-uj2*yuj1R*z)ttx+(uj2*xuj1R*z-uj2*zuj1R*x)tty+(uj2*yuj1R*x-uj2*xuj1R*y)ttz<ε(AB)其中ε表示最大容忍误差物方长度,相对于两相机之间的距离=1而言;
满足式(AB)则点j是内点,如果满足内点的数量nt超过最佳值nmax则ζt-->ζnt-->nmax(7)如果(1-(nmax/n)2)k<0.00001错误率足够小,退出迭代进入步骤9;
(8)迭代次数k增加1,回到步骤5反复迭代;
(9)最后采用最小二乘法针对最大内点集ζ重新计算一次最优t,
求约束||t3x1||=1下An’x3t3x1=0的解,其中n’=nmax
或采用SVD分解得到An’x3=Un’xn’Wn’x3VT3x3,
分解出来的V的最后1列矢量,即对应于最小奇异值的特征矢量,即为t
最终得到T=-LRTt;
b)多个相机间的相对定位
构建矩阵
U(ij)k=[U(ij)k1U(ij)k2U(ij)k3]k=1,2
rc(ij)ab是指第i个点对应的第j个图像的相机的姿态矩阵的a行b列,uc(ij)是第i个点对应的第j个图像上的像点坐标,(cx,cy)是相机主点坐标,f是相机的焦距;
对矩阵A进行SVD分解得到A=UWVT,V中最后一个非零矢量
T
X=[T1x T1y T1z ... Tcx Tcy Tcz X1 Y1 Z1 ... XN YN ZN] 的每一个分量对应C个相机的位置T1x,T1y,T1z,…,Tcx,Tcy,Tcz和N个点的坐标X1,Y1,Z1,…,XN,YN,ZN。
20.一种基于智能机姿态的目标识别方法,其特征在于,所述方法包括:
根据权利要求16所述的方法,通过H=K2RτTK-1对智能机拍摄视频的图像I进行纠正得到I';
对纠正后的图像I'进行目标检测、识别处理,得到I'图像上目标的外接多边形点坐标集xi,yi,i=1,...,N;
通过反纠正H-1的方法得到坐标集在原图上映射的坐标xi',yi',即
21.根据权利要求20所述的方法,其特征在于:如果采用传感器纠正目标识别,则所述方法包括:
首先根据传感器得到的R矩阵对原始图I进行H=K2RτTK-1标准化纠正得到标准纠正图I’,然后对I’图像进行目标检测、跟踪,得到它对应的目标框r,目标框r相对于标准模板的平移是rx,ry,
-1
目标框r首先经过平移变换Ht映射到标准图上,然后再经过H 变换映射到原始图上,因此目标框r相对于原始图像I的H变换为
r*=H-1Htr。