一种基于光流法的室内定位方法
技术领域
本发明涉及在室内转弯处的基于光流法的光流横向偏移修正方法。
背景技术
近年来,由于相应设备和技术广泛的进步以及实际应用场景中对基于位置服务的无缝解决方案的必要性,室内定位系统获得了广泛的关注和研究,这些系统开辟了一种全自动目标定位检测的新技术领域。在室外环境下,传统全球卫星导航系统(GlobalNavigation Satellite System,GNSS)的定位结果是对用户位置进行精确估计的最可靠来源之一。然而在室内或封闭的环境中,由于卫星信号会受到严重的衰减导致定位精度的严重损失,GNSS是不可行的。
目前,室内定位系统技术的研究热点主要包括WiFi定位技术和蓝牙定位技术。其中,WiFi定位技术具有无线接入点已部署范围广和可扩散繁殖的特点,利用用户智能手机检测到的各无线接入点的信号强度完成对用户位置的估计。然而,该技术严重依赖无线接入点的个数,并且在商场等实际环境的进口和出口等周边区域的定位精度急剧下降。蓝牙定位技术通过利用用户接收的蓝牙信号的强度完成对用户位置的估计,并且可实现1米的定位精度,然而该技术在探寻蓝牙信号阶段存在的高延迟现象限制了它实际中的应用。综合已经以上室内定位技术的优缺点,需要一种可扩展性强,部署成本低,所需时延小,定位精度高且稳定的定位系统。由于图像中包含了丰富的信息,带有图像传感器的智能手机的高普及性和可扩展移植性,以及计算机处理技术大大增强等优势,使得基于视觉的室内定位技术成为新的研究热点。
视觉室内定位技术无需额外的部署,只需通过用户终端拍摄的室内场景图片,配合已建立的室内场景数据库,即可完成对用户位置更为准确且鲁棒性更强的估计结果。并且由于图像包含丰富的场景信息,视觉室内定位还可以为用户提供更好的可视化服务,这是其他定位方式无法比拟的。目前已经提出的视觉室内定位技术主要采用位置指纹算法,通过将终端拍摄的场景图像与用户位置共同建立数据库,然后采用快速检索算法得出数据库中最匹配的场景图像及对应位置,完成定位服务。
然而主流的室内视觉定位算法研究,是提前建立图像数据库,在数据库中加入位置距离等信息。然后在线阶段,通过终端获取图片,通过特征匹配等方法与数据库中的图片进行匹配,然后进行相应的计算得到用户当前的位置。建立数据库的过程属于离线过程,数据获取会耗费大量的时间,而得到的数据又需要占一定的存储空间,于此同时,获取的数据也必然存在着一定的误差。
发明内容
本发明为了解决将光流法引入室内进行距离计算过程中,由于室内弯道较多而且在运动中经常会在短时间内进行大角度的转向,因此光流法的计算会受到相机的转向引入的额外光流导致计算误差较大的问题,而提出的一种基于光流法的室内定位方法。
一种基于光流法的室内定位方法按以下步骤实现:
步骤一:人在室内转弯处行走或车在弯道处行进过程中,使用相机传感器进行固定方向和视角的视频采集,并标识出录像的起点;
步骤二:对步骤一得到的视频每隔时间T进行一帧图像的截取,得到图像序列;
步骤三:对两幅相邻图像利用稠密型光流法进行计算,得到这两幅图像运动过程的水平和垂直速度(u,v);
步骤四:对图像进行灰度变换,得到灰度图像后计算图像的灰度平均值,选取灰度值大于平均灰度值的像素点,记录每个选取的像素的位置用(ll(m),lv(m))表示,其中m为第m个像素,ll为像素的横坐标集合,lv为像素的纵坐标集合;
步骤五:根据(ll(m),lv(m))确定的位置,进行光流的选取得到水平速度un((ll(m),lv(m)))和垂直速度vn((ll(m),lv(m))),根据得到的所有点的水平速度与垂直速度,计算平均水平速度和平均垂直速度并进行噪点的去除,得到去噪后的平均水平速度和平均垂直速度
步骤六:建立弯道转向模型;
步骤七:根据步骤六建立的弯道转向模型,计算人或车的弯道转向角速度ωturning和转向线速度vturning;平均水平速度减去线速度vturning,得到修正后的水平平均速度vc;
步骤八:根据相机标定原理将平均垂直速度v'和修正后的水平平均速度vc转换到三维空间的平均速度值,根据步骤二中的时间间隔T(如之前假定的0.5s),计算实际水平位移和垂直位移;
步骤九:重复步骤三至步骤八,直至步骤二图像序列中全部相邻两幅图像位移计算完毕,并根据起点,得到人或车的行进路线以及每个时间点的具体位置。
发明效果:
本发明采用基于光流法的室内视觉定位算法进行室内定位,这种算法不需要离线建立数据库,因此节省了大量的时间,大幅度降低了了对存储设备的需求,而且避免了离线建立数据库产生的误差对定位的影响。
在进行光流法进行室内视觉定位的时候,由于室内弯道较多而且在运动中经常会在短时间内进行大角度的转向,因此光流法的计算会受到相机的转向引入的额外光流的影响。本专利针对这个问题,首次提出了相机的弯道转向模型,将转向引入的额外光流转化为线速度进行计算,从而使得这部分额外光流的速度能够被剔除。并且本发明同时解决了由于受光照、障碍、图片中的特征是否明显等因素的影响,光流法的定位会产生一定的误差的问题,通过对图片进行特征提取、特征选择与特征匹配的方法,对图片进行处理,从而从整幅图片的光流中选取置信区间。虽然算法复杂度上升了,但是定位精度提高了。虽然算法复杂度上升了,但是定位所花费的总时间相对主流定位方法仍然是大幅度减小了。本发明首次提出了相机的弯道转向模型,将转向引入的额外光流转化为线速度进行计算,从而使得这部分额外光流的速度能够被剔除。从而定位精度有了显著的提升。
本发明的计算过程在弯道处有明显的改进效果,在直线行进过程中,由于相机的固定连接,本发明设定为转向角度为0,在此情况下,vturning数值为0,因此本发明适用于直线与弯道两种情况,即实现了室内的定位效果;
本发明解决了现有技术(如基于灰度特征提取和稠密型光流法的室内视觉定位方法)不适于用于转弯过程的问题。基于灰度特征提取和稠密型光流法的室内视觉定位方法等用于转弯过程会产生横向偏移,导致位移计算结果误差较大。本发明解决了这个问题,建立了如图5与如图6的弯道转向模型,将光流偏移转换为线速度,从而修正计算结果。根据实验结果显示,如图3与图4,本发明对弯道位移的估计与计算,误差比基于灰度特征提取和稠密型光流法的室内视觉定位算法误差减小了50%左右。修正后的光流法(本发明)计算结果百分之八十的计算误差小于50cm,而“基于灰度特征提取和稠密光流法的室内视觉定位方法”的计算结果百分之八十小于80cm,而本发明方法的计算误差百分之百小于70cm。
附图说明
图1为本发明的流程图;
图2为本发明的转向运动实验示意图;图中S点为实验起点,D点为实验终点。
图3为本发明方法与传统光流法对比图;
图4为本发明的运动转向实验的结果轨迹图;
图5为本发明的相机弯道转向模型示意图;图中,x和y分别是水平方向和垂直方向。T'和F'分别为T和F在水平坐标轴上的投影。矢量为摄像机或者研究人员的实际位移,矢量为用光流法计算出来的位移,是与在y轴上投影,矢量和分别是和在x轴上投影;
图6为本发明的相机弯道转向模型中光流偏移转化为线速度过程的示意图。图中α为相机在运动过程中的转向角,|OS|,|OM|,|OT|为相机相对与转向中心的转向半径,也即是圆O的半径。
具体实施方式
具体实施方式一:如图1所示,一种基于光流法的室内定位方法包括以下步骤:
步骤一:人在室内转弯处行走或车在弯道处行进过程中,使用相机传感器进行固定方向和视角的视频采集,并标识出录像的起点;
步骤二:对步骤一得到的视频每隔时间T(可以为0.5s)进行一帧图像的截取,得到图像序列;
步骤三:对两幅相邻图像利用稠密型光流法进行计算,得到这两幅图像运动过程的水平和垂直速度(u,v);其中u和v均为和图像尺寸相同大小的矩阵。
步骤四:对图像进行灰度变换,得到灰度图像后计算图像的灰度平均值,选取灰度值大于平均灰度值的像素点(也可以根据场景需要提高或降低灰度选取的阈值选择),记录每个选取的像素的位置用(ll(m),lv(m))表示,其中m为第m个像素,ll为像素的横坐标集合,lv为像素的纵坐标集合;
步骤五:根据(ll(m),lv(m))确定的位置,进行光流的选取得到水平速度un((ll(m),lv(m)))和垂直速度vn((ll(m),lv(m))),根据得到的所有点的水平速度与垂直速度,计算平均水平速度和平均垂直速度并进行噪点的去除,得到去噪后的平均水平速度和平均垂直速度
步骤六:建立弯道转向模型;
步骤七:根据步骤六建立的弯道转向模型,已知转向角度αturning,和转向时间Tturning,这是因为每幅图片的截图时间是已知的,可以计算人或车的弯道转向角速度ωturning;得到角速度之后,由于我们的摄像头是固定连接,因此转向半径rturning是已知的,从而可以计算出和转向线速度vturning;由于转向引入的是额外的水平光流光流,只有相机的俯仰角变化才会引入垂直方向的光流,因此这里只需要平均水平速度减去线速度vturning,得到修正后的准确的水平平均速度vc;
步骤八:根据相机标定原理将平均垂直速度和修正后的水平平均速度vc转换到三维空间的平均速度值,根据步骤二中的时间间隔T(如之前假定的0.5s),计算实际水平位移和垂直位移;
步骤九:重复步骤三至步骤八,直至步骤二图像序列中全部相邻两幅图像位移计算完毕,并根据起点,可以得到人或车的行进路线以及每个时间点的具体位置。
为了解决现有光流法技术在室内弯道的定位算法中,光流法的计算结果会由于摄像头的转向引入额外误差而导致定位结果不精确的问题,本发明首次提出了一种弯道转向的模型,将由于摄像头转向而引入的横向偏移转化为线速度,从而使得在光流法的计算之后可以将摄像头转向引入的误差剔除,进而得到准确的定为结果。其中,本发明中所涉及到的摄像头为固定连接状态。本发明先由稠密型光流法计算出任意相邻图片的每一个像素的光流,即每一个像素的水平方向速度与垂直方向速度,根据灰度与灰度斜率进行区域选取,选取灰度大于一定阈值的区域,计算平均水平速度与平均垂直速度。为了进一步减小噪声影响,剔除区域中大于平均速度10倍与小于平均速度10倍的数据,重新计算水平和垂直的平均速度,根据弯道转向模型,计算出所要剔除的额外速度,并在在水平平均速度上,减去计算出来的额外线速度。计算出平均速度后根据相机的三维映射,将二维空间的速度,转化为三维空间的速度。最后速度乘以时间便可以得到位移信息。本发明解决了光流法在室内定位系统的应用中,在弯道中定位误差很大的问题。
具体实施方式二:本实施方式与具体实施方式一不同的是:所述步骤三中对每两幅相邻图像利用稠密型光流法进行计算的具体过程为:
步骤三一:对两幅图像进行灰度变换,得到两幅灰度图像;
步骤三二:计算两幅图像的时间梯度矩阵ft、第一幅图像的水平方向梯度fu以及第一幅图片的垂直方向梯度fv;
其中所述xi为一幅图像中水平方向上第i个像素的横坐标,yj为一幅图像中垂直方向上第j个像素的纵坐标,tk为第k幅图像的时间;
步骤三三:计算光流平均分量与
其中为由第k幅图像的横坐标为i,纵坐标为j的像素及周围像素计算得到的水平方向平均速度;为由第k幅图像的横坐标为i,纵坐标为j的像素及周围像素计算得到的垂直方向平均速度;
步骤三四:根据图像的拉普拉斯算子,将和带入公式(6);
其中为根据图像的拉普拉斯算子定义计算u的拉普拉斯变换,为根据图像的拉普拉斯算子定义计算v的拉普拉斯变换,uxx图像的水平方向的二阶梯度矩阵,uyy为图像的垂直方向的二阶梯度矩阵;根据拉普拉斯的估计计算 (因为u和v是两个矩阵,按照图像的拉普拉斯算子算法来计算这个矩阵,本来拉普拉斯算子是对图像的灰度矩阵进行处理,这里是对速度矩阵进行处理,公式6是光流基本方程得来,为了能够将其中uxx与uyy的计算替换成 的估计,从而得到三五里面的迭代公式);
步骤三五:设置光流初始值以及迭代次数,将u0和v0记为光流估计的初始值;u0为迭代开始前设定的水平方向速度初值,v0为迭代开始前设定的垂直方向速度初值;
步骤三六:进行光流的迭代计算,得到水平速度和垂直速度;
其中为迭代n次后得到的水平方向速度,为迭代n次后得到的垂直方向速度,a为平滑因子。
其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:所述步骤四中对图像进行灰度变换,得到灰度图像后计算图像的灰度平均值,选取灰度值大于平均灰度值的像素点的具体过程为:
步骤四一、对图像进行灰度变换,变换为灰度图像,并计算整幅图像的平均灰度,记为
步骤四二、设置灰度阈值为
步骤四三、建立像素坐标系,相邻两个像素的距离为1,原点在图像的左上角,水平方向坐标记为ll,垂直方向坐标记为lv;从第一行第一个像素开始,每个像素的灰度与阈值相比,若大于等于阈值,则保存坐标;若小于阈值,则不保存。像素坐标系为二维坐标系,即只有横纵坐标,横坐标X轴为水平方向,纵坐标Y轴为垂直方向。
其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:所述步骤五中得到去噪后的平均水平速度和平均垂直速度的具体过程为:
步骤五一:根据步骤四三保存的水平坐标ll与垂直坐标lv,得到新的水平速度集un和新的垂直水平速度集vn;
步骤五二:用新的水平速度集un和新的垂直速度集vn计算平均水平速度和平均垂直速度
步骤五三:设定阈值门限并剔除速度过大以及速度过小的数据,设定水平速度阈值为和垂直速度阈值为和将un中所有速度值与和比较,若数值在和之间则保留,否则则剔除,得到新的水平速度集将vn中所有速度值与和比较,若数值在和之间则保留,否则则剔除,得到新的垂直速度集计算水平平均速度和垂直平均速度
其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:所述步骤六中建立弯道转向模型的具体过程为:
以人或车的行进方向为y轴,以在水平方向上与y轴垂直的方向为x轴,建立坐标系;将人或车的实际位移分别投影到x轴与y轴,即人或车实际的水平位移与垂直位移;将光流法计算得到的位移分别投影到x轴与y轴,即光流法计算得到的水平位移与垂直位移;光流法计算得到的垂直位移与人或车实际的垂直位移相同,光流法计算得到的水平位移大于人或车实际的水平位移。
其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:所述步骤七中得到修正后的水平速度vc的具体过程为:
步骤七一:根据传感器测得的转向角度αturning,和转向时间Tturning,转向时间=(图片截取的数量-1)×截取时间:
步骤七二:由于摄像头是硬连接,因此转向半径rturning为已知,因此可以计算得到线速度为:
vturning=ωturning·rturning (10)
步骤七三:根据弯道相机转向模型,用水平平均速度减去线速度得到新的修正后的水平平均速度vc。
其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:所述步骤八中计算实际水平位移和垂直位移的具体过程为:
步骤八一:成像平面到摄像机之间的坐标转换,像平面坐标系(像平面坐标系与像素坐标系的区别在于像平面坐标系中的距离为实际测量距离)的原点O在像素坐标系下的坐标变为(u0,v0),将单位像素在X轴和Y轴方向上的物理长度记成dx和dy,得到两个坐标系之间有如下数学关系:
其中所述sx是摄像机成像的倾斜因子,成像平面两个坐标轴不会是正好成90°此参数表示成像平面一定的畸变。但是在现代制造工艺下,其值可以近似为零。
u0为像平面坐标系的原点O在像素坐标系下的横坐标,v0为像平面坐标系的原点O在像素坐标系下的纵坐标,dx为单位像素在X轴方向上的长度,dy为单位像素在Y轴方向上的长度,Xu为像素点在像素平面坐标系下的横坐标,Yv为像素点在像素平面坐标系下的纵坐标,x为像素点在像平面坐标系下的横坐标,y为像素点在像平面坐标系下的纵坐标;
像平面坐标系在三维空间中需要使用具体的物理单位表示具体位置,因此建立了以物理单位表示的二维成像平面坐标系。坐标系的原点是摄像机光轴与成像平面的交点,X,Y轴平行于图像的两条边,X轴垂直于Y轴;
像素坐标系是在数字图像中以像素为基本元素,每个像素包含有图像的基本色彩信息,以二维平面的排列形式表示二维图像。像素坐标系的原点位于图像的左上角的顶点,X,Y轴是平行于图像的两条边,一般与像平面坐标系X,Y轴同向;
步骤八二:成像平面到摄像机之间的坐标转换,得到像平面坐标系和摄像机坐标系之间的如下数学关系:
其中所述xc为该点在摄像机坐标系下的X轴坐标,yc为该点在相机三维坐标系下的Y轴坐标,zc为该点在相机三维坐标系下的Z轴坐标,fc为相机的焦距;
步骤八三:摄像机坐标系到世界坐标系(现实中的坐标系,在本发明中,以运动方向为Y轴,以垂直于Y轴的水平方向为X轴,以垂直于Y轴的竖直方向为Z轴,X轴Y轴Z轴遵循右手定则)的坐标转换,通过单位正交旋转矩阵R和平移向量t获得世界坐标系与摄像机坐标系的映射关系:
其中所述xw为该点在世界三维坐标系下的X轴坐标,yw为该点在世界三维坐标系下的Y轴坐标,zw该点在世界三维坐标系下的Z轴坐标,R为单位正交旋转矩阵,t为平移向量;
摄像机坐标系是以摄像机为中心建立的三维直角坐标系,将摄像机的光心点作为了坐标原点,X轴与Y轴与摄像机镜头平面重合,X轴与Y轴垂直,Z轴与摄像机光轴重合。
步骤八四:由得到的三维世界坐标系的速度,与截取图像的时间相乘,得到两幅相邻图片运动过程中的水平位移du和垂直位移dv。
本发明的变量与物理意义列表如下:
其它步骤及参数与具体实施方式一至七之一相同。
实施例一:
人在室内行走或车在行进过程中,使用相机传感器进行固定方向和视角的视频采集,并标识出录像的起点;摄像头相对于人或车的移动必须是硬连接;所处的室内必须有丰富的特征(正常室内即可),但是不能是整个屋子只有一个颜色且毫无其他特征,比如整个走廊除了白色只有白色,
实验过程:在2A栋12楼内,如图2所示运动过程为从点A运动到点D,A点到D的路线为一个四分之一圆弧。该圆的半径为3.2m,即四块地砖。在这个过程中用角度传感器记录角度信息,得到转弯角度,这里转弯角度大致为90度,于此同时,利用手持相机进行视频的录制并对视频进行帧截取,得到图像序列,最后在室内不同转弯处重复转弯30次,并根据图5和图6的模型利用电脑进行计算得到如图3和如图4的实验结果,由图可知本发明极大的提升了计算准确度,修正后(本发明)的光流法计算结果百分之八十的计算误差小于50cm,而‘基于灰度特征提取和稠密型光流法的室内视觉定位算法’的计算结果百分之八十小于80cm,而本发明方法的计算误差百分之百小于70cm。