基于惯性传感器和图像传感器的室内定位方法

2023-02-28 16:10:00宁天敏
智能计算机与应用 2023年11期
关键词:光流角点行人

宁天敏

(东华大学计算机科学与技术学院,上海 201620)

0 引 言

随着4G/5G 网络在国内的普及以及国家“提速降费”政策的推动,移动终端和移动互联网业务在国内的渗透率达到了空前高度,越来越多的个性化需求应运而生。 其中,基于位置的服务(Location Based Services)能够根据移动设备和用户的位置提供个性化服务[1]。 在这个移动信息时代,人们越来越依赖于LBS,其应用前景非常广泛。 现如今社会,人们每天在室内工作、学习和生活的时间占全天时间的80%左右,远远超过身处室外的时间,因此,室内定位在人们的日常生活中起到了重要的作用。

由于GPS 信号容易被建筑物遮挡,因此GPS 在室内定位的精度不高。 常见的室内定位技术包括射频识别定位、WiFi 定位、蓝牙定位、磁场定位、超声波定位、红外定位、行人航位推算[2]。 其中,射频识别定位不便于整合到移动设备中,且作用距离短。WiFi、蓝牙、磁场的指纹定位方式,不依赖于额外的基础设施,可以达到2 ~5 m 的定位精度。 然而,环境变化以及附近行人或物体会影响其定位效果,需要经常更新指纹数据库,这非常耗费人力。 超声波定位和红外定位的定位精度能够达到厘米级别,但是需要额外的基础设施,导致成本较高。 行人航位推算利用惯性传感器计算航向和步长,不依赖于额外的基础设施,但是由于累积误差的存在,在长距离定位下其效果并不理想。

因此,提出一个低成本、高精度、易扩展的室内定位系统具有重要的现实意义。 本文考虑利用智能手机的惯性传感器和图像传感器对室内环境下的用户进行位置定位,以达到不依赖于其他额外的基础设施的目的。

1 相关理论与技术

本文主要用到了加速度传感器、陀螺仪传感器、磁力传感器、图像传感器,在安卓平台下,前三者使用标准的三轴坐标系来表示数据值。 对于标准的三轴坐标系,当设备正面朝上平放于桌面时,可相对于设备屏幕来定义坐标系。其中,x轴指向设备屏幕右侧,y轴指向设备屏幕前方,z轴垂直于设备屏幕向上延伸。 当设备的屏幕方向改变时,坐标轴不会转换,也就是说,传感器的坐标系不会随着设备的移动而改变。

光流最早由美国心理学家Gibson[3]在十九世纪四十年代提出。 光流是视觉场景中由观察者(比如眼睛、摄像头)和场景之间的相对运动引起的物体、表面和边缘的表观运动[4],这种相对运动包括观察者运动、场景运动或二者同时运动。 光流估计是计算机视觉研究中的一个重要方向,具有广泛的用途,包括目标对象分割、运动检测、立体视差测量等。 智能手机光流估计利用图像传感器拍摄的连续图像序列的相邻2 帧在空间、时间上的相关性与变化情况,计算出像素点在相邻2 帧中的速度矢量、即光流。对图像每个像素计算光流称为稠密光流,对图像的部分像素(即具有明显特征的角点)计算光流称为稀疏光流。 考虑到稠密光流的计算开销明显超过稀疏光流,因此,可以根据需求选择合适的方法。 本文使用的是稀疏光流。

2 室内定位方法设计

本文提出了一个室内定位方法,也是一种行人航位推算方法,行人航位推算是在已知当前时刻位置的条件下,通过测量移动的距离和方位,推算下一时刻位置的方法。 本文提出的室内定位方法的核心思想是,利用Madgwick 算法[5]对加速度、陀螺仪、地磁传感器数据计算得出姿态航向,利用Shi-Tomasi 角点检测算法[6]和Lucas 稀疏光流算法[7]对手机后置摄像头拍摄得到的视频帧序列计算得到位移,从而确定行人的位置。 具体来说,当行人以相对于地面固定的高度在身前平握手机步行时,通过计算地面区域的光流和脚部区域的光流再乘以一定比例可以得出行人的位移,结合给定的初始位置可以计算出行人的位置。 下文介绍本文为了准确地将光流估计转换为位移估计所提出的方法。

2.1 像素距离比的获取

为了通过将稀疏光流算法应用到智能手机后置摄像头拍摄的视频图像中来估计行人位移,必须首先获得像素距离比,即行人以相对于地面固定的高度平握智能手机时,放置在地面上的实际物体的大小与图像中的像素数的比率。 本文获取像素距离比的方法如下。 在地面上放置一个二维码,二维码的实际宽度为0.08 m,行人平握智能手机拍摄2 s 地面的视频,通过OpenCV[8]识别出二维码边框所在的位置,计算出二维码在图像平面的像素大小,则该像素距离比为二维码实际宽度/二维码平均像素宽度。 如图1 所示,蓝色框内容为检测到的二维码,记i帧二维码在图像中的4 个顶点的坐标为(xi,j,yi,j),n为二维码视频帧数,w0为二维码现实宽度,则像素距离比r为:

图1 被检测到的二维码Fig. 1 The detected QR code

2.2 图像姿态补偿

本文提出的室内定位方法要求行人将智能手机平握在身体前面,考虑现实情况下,行人不可能保持完全水平握住手机的状态,必然会导致智能手机在某些时刻出现倾斜状态。 手机倾斜、即后置摄像头倾斜,那么拍摄得到的视频帧也是倾斜的。 当视频帧倾斜时,图像平面不与地面平行,这会影响光流的估计效果。 因此,本文考虑对视频帧进行姿态补偿,以尽量达到图像平面与地面平行的效果。 Madgwick姿态估计算法能够计算出智能手机的横滚角(ϕ)、俯仰角(θ) 和偏航角(ψ),可以应用透视变换于横滚角和俯仰角对图像进行姿态补偿,透视变换矩阵M通过以下公式得出:

其中,P是三维到二维的投影矩阵;T是将像平面平移至焦平面的平移矩阵;R是像平面的旋转矩阵;S是二维到三维的投影矩阵;(μ0,ν0) 分别是视频帧水平和垂直方向像素点个数的一半;ρx,ρy分别为图像传感器水平和垂直方向单个像素点的长度。

2.3 自适应上下区域划分

后置摄像头的视野里包含地面、行人的脚和腿区域,当行人步行时,地面静止,地面区域的光流估计可以直接用于计算行人位移,然而,行人的脚和腿区域会摆动,那么这些区域的光流估计存在异常值。另外,腿部区域与摄像头的距离低于地面与摄像头的距离,这会导致事先获得的在地面区域的像素距离比不适用于腿部区域。 因此,必须移除腿部区域的角点,使其不参与光流估计。 在室内环境下,瓷砖是很常见的地面材质,而这些比较均匀的材质有时候会检测不出较多的角点,因此,必须尽可能考虑到更多的区域以检测更多的角点。 相比于室内常见的均匀材质,行人的鞋并不均匀,这会使得鞋区域的角点数大量存在,因为行人的脚部与地面会周期性地接触,至少会有一只脚固定在地面上,那么这只固定的脚对应的鞋区域非常适合用于计算角点。 因此,本文考虑地面和鞋区域,并将这2 个区域划分为上区域和下区域。 当行人步行速度较快时,一般脚部摆动会增大,如果是固定比例划分,那么会导致上区域出现脚部。 因此,本文设计了依据光流估计得出的速度进行自适应上下区域划分的计算方法:

其中,h为上区域像素高度;h0为视频帧像素高度;r为像素距离比;ν为上一帧计算得到的y轴方向光流;△t为视频帧间隔时间。 对于上区域,本文选择的用于Shi-Tomasi 角点检测算法的角点质量阈值为0.1,下区域的为0.7。

2.4 异常光流剔除

考虑现实情况,脚部区域会在行人行走过程中摆动,那么脚部区域光流的y轴分量可能向前、也可能向后。 对于某只固定在地面上的脚,该区域光流的y轴分量是向前的,因此,对于y轴分量向后的光流、即ν <0,本文不考虑该像素点对应的光流,从而减少向后光流对位移估计的影响。 行人行走过程中,在短时间内近似于直线运动,那么光流x轴与y轴分量的角度必然在一定范围内。 因此,本文不将该角度超过一定阈值的像素点光流用于光流估计。具体来说,当atan2(|ν |,|μ |)>π/9 时,放弃该角点的光流。 另外,行人在室内环境的步行速度并不会太大,一般不超过1.8 m/s,因此,对于某些光流速度过大的角点,事先在中值滤波前剔除掉。

2.5 位置计算

得到上下区域多个角点的光流后,本文分别对上下区域的光流使用中值滤波,再取上下区域光流的平均值作为当前帧时间内的光流。 接着,本文需要利用公式将每一帧的光流估计转换为导航坐标系下的位移:

其中,△xi,△yi分别表示视频第i帧在导航坐标系下的关于x,y轴的位移;(μi,νi) 表示视频第i帧的光流估计;ψi表示视频第i帧时智能手机的偏航角;r表示像素距离比。 因此,智能手机在第k帧时的位置为:

其中,x0,y0为给定的初始位置,本文将其设置为(0,0)。

3 实验

3.1 实验设置

计算定位误差需要获取行人位置的基准值,本文事先设定测量好的参考轨迹,在参考轨迹的某些点贴标记,本文设定的这些标记的间隔距离一般为2 m,通过激光测距仪等测量工具得到标记点的位置,实验时严格按照这些标记点水平握住手机步行。本文开发了一个名为LuffyDataset 的安卓应用程序,如图2 所示,能够同时记录加速度传感器、陀螺仪传感器、地磁传感器和图像传感器数据,且能够记录下到达标记点的时间。 本文实验设定的前3 种传感器的记录频率均为60 Hz,而图像传感器设定的录制分辨率为1 280×720,帧率为30 fps,实验时步行速度在0.8 ~1.1 m/s,收集数据的手机是Xiaomi 12S Pro。 本文标记了4 种轨迹:长度为60.41 m 的直线轨迹;宽度为38.73 m、高度为16.39 m 的矩形轨迹;周长59.98 m 的箭头轨迹;半径为8 m 的圆形轨迹。本文对4 种轨迹进行10 次重复实验,并与3 种定位方法FlexPDR[9]、Poulose[10]和Jongtaek[11]进行了对比。

图2 LuffyDataset 应用程序Fig. 2 The LuffyDataset application

3.2 实验结果

图3 为直线轨迹定位误差累积分布,从图3 中可以看出本文提出的方法(Proposed)效果最好,Jongtaek 方法最差,本文方法具有最小的平均定位误差0.12 m,而且最大定位误差0.58 m 也是最小的,这说明简单轨迹下本文方法基本不存在累计误差,实现了高精度定位。

图3 直线轨迹定位误差累积分布图Fig. 3 Cumulative distribution of straight trajectory positioning errors

图4 为矩形轨迹定位误差累积分布,从图4 中可以看出本文方法的平均定位误差为0.26 m,最大定位误差为0.87 m,效果最好,Jongtaek 次之。 这说明即使在步行距离超过100 m 的情况下,本文方法的累积误差仍然比较小,而其他3 种方法的最大定位误差均超过2 m,受累积误差的影响较大。

图4 矩形轨迹定位误差累积分布图Fig. 4 Cumulative distribution of rectangular trajectory positioning errors

图5 为箭头轨迹定位误差累积分布,从图5 中可以看出本文方法的平均定位误差为0.28 m,最大定位误差为0.71 m,效果最好,Poulose 方法最差,这说明即使在多次转弯后,本文方法的光流估计仍然是较为准确的。

图5 箭头轨迹定位误差累积分布图Fig. 5 Cumulative distribution of arrow trajectory positioning errors

图6 为圆形轨迹定位误差累积分布,从图6 中可以看出本文方法的平均定位误差为0.18 m,最大定位误差为0.57 m,效果最好,Jongtaek 次之,这说明即使在连续转弯的情况下,本文方法仍然具有很好的定位效果。

图6 圆形轨迹定位误差累积分布图Fig. 6 Cumulative distribution of circle trajectory positioning errors

综上所述,对于不同轨迹,本文方法的定位精度足以达到室内定位高精度的要求,同时能够实现低成本、易扩展的优点。

4 结束语

传统的行人航位推算一般使用加速度峰值法结合步长模型进行位移估计,而智能手机上的MEMS传感器体积小、精度低,容易产生较大的累积误差。然而,智能手机的图像传感器越来越受到重视,拍摄的图像越来越细腻,本文创新性地将手机后置摄像头获取的视频帧序列用于光流估计得出位移,使得位移估计较为准确,能够在各种轨迹如直线、矩形、箭头、圆形轨迹下达到高精度的定位效果,在60 m直线轨迹下的平均定位误差为0.12 m,而且不受行人身高、体重的影响,低成本、易扩展,满足室内定位的需求。 另外,本文开发了一个用于实验数据手机的安卓应用程序LuffyDataset。

在此基础上,本文仍存在需要改进的地方。 本文未评估行人以不同速度(如慢速、中速、快速)步行的定位效果,同时未评估行人使用不同手机步行时本文方法的定位误差。 另外,本文方法目前仅能实现二维室内定位,将其扩展为三维室内定位还有待进一步研究。

猜你喜欢
光流角点行人
利用掩膜和单应矩阵提高LK光流追踪效果
毒舌出没,行人避让
意林(2021年5期)2021-04-18 12:21:17
路不为寻找者而设
扬子江(2019年1期)2019-03-08 02:52:34
基于物理学的改善粒子图像测速稳健光流方法研究
基于FAST角点检测算法上对Y型与X型角点的检测
我是行人
基于边缘的角点分类和描述算法
电子科技(2016年12期)2016-12-26 02:25:49
基于圆环模板的改进Harris角点检测算法
融合光流速度场与背景差分的自适应背景更新方法
基于Harris角点和质量评价的图像篡改检测