成像型可见光定位系统优化研究
2022-12-28刘翔宇刘保睿
刘翔宇 刘保睿 宋 嵩* 郭 磊③
①(重庆邮电大学通信与信息工程学院,智能通信与网络安全研究院 重庆 400065)
②(东北大学计算机科学与工程学院 沈阳 110819)
③(杭州中科先进技术研究院 杭州 310005)
1 引言
随着无线通信技术的发展和智能移动终端的更新换代,基于位置的服务(Location Based Service,LBS)已经成为人们生活中不可缺少的一部分,室内活动的逐渐增加使人们对室内定位的需求也越来越大[1,2]。
与只需要米级别精度的室外定位技术相比,室内定位环境动态性更强,需要分米乃至厘米级别的精度。目前,室内无线定位的主流方案有:无线局域网(Wi-Fi[3])、蓝牙(Bluetooth[4])、射频识别(Ratio Frequency IDentification, RFID[5])、超宽带(Ultra Wide Band, UWB[6])和Zigbee[7]等定位技术。但这些技术却存在定位成本与定位精度之间难以均衡的问题。例如,超宽带技术能够提供厘米级的定位服务,但是需要专业设备进行部署,费用高昂。Wi-Fi技术部署成本低廉,但是定位精度仅为米级别。
与这些定位方案相比,利用发光二极管(Light Emitting Diode, LED)的成像型可见光定位(Visible Light Positioning, VLP)技术具有同时满足高精度和部署成本低的优势,受到了国内外广泛的关注[8,9]。室内成像型可见光定位系统的应用场景如图1所示。
图1 室内可见光定位技术应用场景
目前,成像型可见光定位技术的研究者多集中于提高系统的定位精度[10,11],忽略了现有定位系统在信标解码识别率和定位算法适用性的研究依旧不足。这主要体现在:
(1)在成像型接收端解码过程中,接收端利用捕获图像中特定条纹的宽度计算单位bit宽度1)单位bit宽度指1位编码形成的条纹在图像中所占像素点的个数。,以此判定其他条纹并进行解码。但接收端移动会使得捕获到的图像产生模糊效应[12],进而导致图像中的条纹宽度发生变化,降低接收端的解码识别率,影响定位系统性能;
(2)在成像型接收端定位算法过程中,现有双灯定位算法通过将旋转角定义为“世界坐标系与图像坐标系的夹角”实现坐标等效转换[12], 但这一夹角无法在所有正向旋转与逆向旋转条件下都计算正确,有可能导致该次定位失效,降低系统的平均定位精度与实效性;
(3)移动状态下接收端捕捉LED数量是动态变化的,而现有定位系统采用固定的定位算法实现定位。例如,基于双灯的定位算法,当系统捕获1盏LED时,定位系统失效,当捕获到多余3盏LED时,定位算法仍采用2盏LED进行定位。这会导致定位系统在移动状态下的精度产生大范围幅度变化。
针对上述问题,本文在成像型可见光定位系统的基础上,提出如下优化解决方案:
(1)本文设计了基于条纹宽度比(Fringe Width Ratio, FWR)的解码算法。本算法通过引入条纹宽度比,增大条纹判决范围,使得因模糊效应导致宽度变化的条纹被成功识别。
(2)针对双灯算法中旋转角定义不明确的问题,本文提出旋转角优化方案。本方案将水平旋转角度重新定义为“以世界坐标系为基准,图像坐标系顺时针旋转的角度”,去除了“人为设置阈值来判决正负双旋转角中的正确角度”这一不稳定的判定机制,保证了旋转角的唯一性和准确性,
(3)针对接收端移动状态下定位精度变化问题,本文设计了基于旋转角优化的联合定位算法。当接收端仅捕获1盏LED时,联合定位算法使用智能手机的传感器确认旋转角,并进行单灯定位;当接收端捕获两盏及以上LED时,联合定位算法采用旋转角优化后的双灯算法定位。
最后,本文搭建实验平台进行定位与导航功能测试。在3.2 m×3.0 m的空间下,设计的解码算法在1.5 m内能够达到99%以上的解码识别率;设计的定位算法平均定位误差为3.998 cm。优化的定位系统能够满足以工厂内智能小车的物流运输为模拟场景的室内定位与简易导航需求,提升了定位系统中解码识别成功率和定位算法适用性。
2 经典可见光定位系统
2.1 经典系统模型
成像型室内可见光定位系统模型分为两个部分[13,14]:发送端与接收端,如图2所示。
图2 基于图像处理的室内可见光定位系统
在发送端,LED通过微控制处理器进行信号编码与调制,使得每盏LED发出带有自身位置信息的唯一信标[15]。在接收端,智能手机捕获带有LED的图像,并进行一系列的图像处理来解码与识别出LED的信标信息。然后,系统计算出接收端的世界坐标,实现定位。
2.2 经典图像解码算法
在可见光定位系统中,发送端LED将发送信标的序列头设置为持续时间最长的高电平。这使得接收端在捕获图像中仅需找寻最宽亮条纹便可识别出捕获的序列头。然后,解码算法利用捕获的序列头宽度计算单位bit宽度。有了单位bit宽度后,系统便能够判断每个捕获条纹的宽度所携带的bit信息,实现解码,如图3所示。
图3 捕获LED图像二值化后进行解码
2.3 经典定位算法
在世界坐标系与图像坐标系完全平行的情况下,根据相似三角形原理,可得出关系为
图5 1盏LED 的可见光定位算法
3 基于条纹宽度比的解码算法
为了使图像解码算法能够克服模糊效应,并在移动状态下具有较高的解码识别率,本节提出基于条纹宽度比的图像解码优化算法。
3.1 优化方案
现有图像解码算法效果不佳的原因是由于对条纹宽度判别要求过于严格。因此,本优化算法引入条纹宽度比,使一定宽度范围内的条纹都可被视为同种条纹。优化的解码算法步骤如下:
步骤1 智能手机对捕获的图像提取得到多个LED子图;
步骤2 对多个子图进行二值化;
步骤3 取得子图中间一行每个像素点的红绿蓝(Red Green Blue, RGB)值,利用灰度与RGB值关系Gray(i)=0.299×R(i)+0.587×G(i)+0.144×B(i)计算每点的灰度值;
步骤4 比较前后两点的灰度值大小,若满足Gray(i)>Gray(i −1) ,则判定第i列为白条纹起点。反之若 Gray(i) 步骤5 判断次长白条纹宽度是否大于最长白条纹宽度的90%。若大于,则进入步骤6-1,否则进入步骤6-2; 步骤6-1 最长的两个条纹均为序列头,对这两个条纹区间内条纹进行解码。若第x(y)个条纹为最(次)长的条纹,则从第i=x+1个条纹开始解码; 步骤6-2 子图中仅包含一个完整序列头,从序列头前第7个条纹到序列头后第8个条纹进行解码(参见图6); 图6 子图中包含序列头的不同情形 步骤7 判断条纹的颜色。若解码为黑条纹,对大于最短黑条纹1.65倍宽度的条纹判别为黑22)黑2表示该条纹是最短黑条纹宽度的2倍。,否则判别为黑1。若解码为白条纹,对大于3倍最短白条纹宽度的条纹判别为白5,对最短白条纹宽度1.6倍到3倍之间的条纹判别为白2,其余条纹判别为白1; 步骤8 判定i是 否等于y,即是否完成区间内最后一个条纹解码。若是,则解码工作结束;若不是,则令i=i+1,并重复步骤7。 优化的解码算法增加如下部分: (1)二值化。捕获LED子图进行二值化处理,如图3所示。通过图3可以发现,二值化处理后像素值仅包含灰度值0和255,解码算法不再需要人为设置阈值判别像素点的灰度值,降低了现有算法步骤3和步骤4中进行颜色判别所带来的不稳定性。 (2)多重解码方式。由于捕获LED时预览框中条纹是循环滚动的,子图中可能出现包含1个或2个完整的序列头情形,如图6所示。 当子图中只包含1个完整序列头时,现有解码算法无法以序列头为起点捕获完整的信号周期,需要重新捕获图像进行解码,增大了系统的处理时间。本优化算法则提供解码方式。以图6(a)为例,当其中仅包含1个完整的序列头时,序列头的位置大致位于子图中央,为了对每盏LED都能稳定形成解码区间,选取序列头前7个与后8个条纹作为解码区间。然后,系统对包含序列头在内共16个条纹进行解码,并为该解码方式单独赋予码序列。 (3)引入条纹宽度比。在本文,子图中条纹的宽度采用数字进行标识,数字“5”表示此条纹像素宽度为最短条纹宽度的5倍,如图7所示。在图7中,除了被标注的条纹,其余白条纹均为白1,黑条纹均为黑1,条纹种类人眼能够轻易辨识出来。 图7 条纹种类示意 由于子图受到模糊效应的影响,各条纹的宽度并不完全满足式(7) 但人眼依旧可以辨别条纹种类。仿照人眼可以将一定范围内宽度的条纹辨别为同一种类的条纹这一现象,引入条纹宽度比,增加算法对条纹宽度的容错,提高解码识别率。 具体引入方式如下: (1)在解码方式选择阶段,利用次长条纹与最长条纹的宽度比判定次长条纹是否为白5,得到子图中序列头的数量,据此选择解码方式; (2)在条纹种类判别阶段,利用被解码条纹的宽度与子图中该颜色最短条纹宽度的比例关系判定被解码条纹的种类; (3)在条纹宽度比数值的选择问题上,通过大量测试不同子图中各条纹的宽度,最终选定适用于所有子图条纹的比例数值,进行条纹判定。 本节介绍室内定位系统的定位算法优化方案。 传统定位算法中,理论上旋转角存在两个解,θ1和θ2计算的定位结果只有一个是正确的。但人为设置的阈值可能使得旋转角θ1和θ2计算的定位结果都被判定为正确的,两者取均值会使该次定位失效,降低系统的平均定位精度。 具体地,当两盏LED图像解码成功后,现有定位算法利用子图圆心的像素坐标计算出α和β,如图4(b)。然后,算法分别将旋转角θ1=a −β和旋转角θ2=β −α代入式(4),通过式(3)计算出A灯定位结果 (XθiA,YθiA) 及 B灯定位结果(XθiB,YθiB),定位结果代入式(8) 图4 两盏LED的可见光定位算法 (2)如果旋转角接近0°或180°,智能手机方向传感器角度与θ1或θ2接近,但始终θ1计算的定位结果与实际测量的结果更接近。 因此,本文以方向传感器数值显示规则为思路(数值以正北方向为基准,顺时针旋转的角度范围为0°~360°),将算法中的旋转角定义为“以世界坐标系为基准,图像坐标系顺时针旋转的角度”。通过这样定义,可以获得正确的定位结果。 此优化点解决了式(8)设置阈值判别旋转角可能出现将错误结果以均值形式计入最终结果中导致该次定位失效的问题,对旋转角进行了唯一化定义,提升了系统的定位精度。 多数情况下,可见光定位系统接收端在移动状态下捕获到LED的数量是非固定的。若系统只使用单灯算法,会由于传感器的因素导致定位精度偏低;若系统只使用多灯算法,当接收端仅捕获1盏LED时无法定位。 因此,本文针对上述问题提出了应对接收端在移动状态下捕获任意数量LED情况的联合定位算法。 图8为本优化算法方案的设计思路。通过在实验场景及其他不同场所测试后发现,正常成年人手持智能手机对LED进行移动拍照时,屏幕捕获到1或2盏LED。虽然也能捕获到3盏及以上LED,但是概率较低,这是由于光源分布稀疏及手机视场角受限。为了尽量降低定位复杂度,当本系统捕获到3盏及以上LED时,定位算法不采用诸如三边定位法的多灯算法,而是仅选取其中两盏LED进行优化的双灯算法定位。 图8 基于旋转角优化的联合定位算法 具体地,本文设计的算法加入了基于接收端捕捉到信标数量的自适应算法切换机制,结合优化点(1),当解码成功的信标数量大于等于2时使用优化后的双灯算法,同时加入单灯算法弥补解码成功的信标数量为1时的空白,做到“只要有至少1个能够成功解码的子图,定位就不会失败”。就定位结果而言,降低了接收端在移动状态下定位失败的可能性,整体而言提升了定位算法的鲁棒性。 为了响应政府号召、补充现有研究、拓展上海环城绿带的复合功能,本文对上海环城绿带百米林带植物群落进行了全面的调查研究。从群落外貌特征、景观结构、空间特征以及游憩利用现状4个方面对百米林带中101个典型植物群落样方进行调查,明确上海环城绿带百米林带植物群落结构特征以及布局模式,针对现状存在的问题,分析其可能产生的原因,并提出优化建议; 同时通过现场观察及问卷调查,对上海环城绿带百米林带植物群落的游憩现状进行分析和总结,思考在维持林带生态景观功能的前提下,提升游憩功能的适宜性。以期对上海环城绿带百米林带后续建设及优化改造提供指导性建议,使其能更好地满足城市生态建设及游憩服务的需求。 本节从用户实际需求出发,结合实验环境内有限条件,设计简易导航算法。 图9左为实验测试场景(取自智能手机应用界面),该图向上指北,以房间西北角为原点,x轴正方向指东,y轴正方向指南。图9中1~9号标记为9盏LED的位置,坐标对应为 (x1,y1)∼(x9,y9)。每两盏相邻的LED间的距离大致相同,9盏LED形成了田字格。 导航算法以工厂内智能小车接收端进行物流运输为模拟应用场景。假设智能小车只有在田字格上的路径为小车行驶安全路径,其余区域不适合小车进行工作。若小车处于安全路径外,需要优先执行回到安全路径上的指令。 现小车处于房间内能够捕获到LED的某一位置(x,y) , 目标地点为某盏LED正下方(x′,y′),如图9右所示。根据选择的目标点,设计算法引导智能小车首先走最短路线回到安全路径上,然后再沿着安全路径走最短距离到达目标地点。对于图9右中的情况,若智能小车前往2号LED下,则导航路线应为(x,y) →(x,y3)→8号LED→5号LED→2号LED。 图9右为一个矩形的无向无权图,其特点为图中任意一个矩形对角的两个节点间所有路径的路程相同。根据此特点,简易导航算法主要步骤如下: 图9 导航算法模拟场景及实施方案 步骤1 将x分别与x1,x2,x3对比,y分别与y1,y2,y3对 比,当x或y与对比数值相同时,说明出发点(x,y)已在安全路径上,执行步骤3。否则说明(x,y) 在安全路径外,检查(x,y)是否在安全路径围成的区域内部,若是则执行步骤2-1,否则执行步骤2-2; 步骤2-1 查询 (x,y)距离哪条路径最近,对|x −xi|, |y −yi|(i=1,2,3)共6个距离进行排序,得到其中的最小值 min(|x −xi|) 或m in(|y −yi|)。若(x,y)离 东西方向的路径最近,则令y=y −(y −yn)(n为m in(|y −yi|) 中i的 值),若(x,y)离南北方向的路径最近,则同理,智能小车回到安全路径后,执行步骤3; (1)y (2)y>y3且x1≤x ≤x3为 正南方位,令y=y3,即(x,y)→(x,y3); (3)x (4)x>x3且y1≤y ≤y3为 正 东 方 位, 令x=x3,即(x,y)→(x3,y); (5)x (6)x>x3且y (7)x (8)x>x3且y>y3为 东 南 方 位, 令x=x3,y=y3,即 (x,y)→(x3,y3);然后执行步骤3; 步骤3 使用步骤1方法判断智能小车当前处于东西方向的路径还是南北方向的路径,若处于东西方向路径执行步骤4-1,若处于南北方向路径执行步骤4-2; 本节分别从解码识别率、定位精度以及导航功能对设计的可见光定位系统进行测试。 系统发送端和接收端的参数设置如表1所示,信标编码参数如表2所示。每个信号周期由“序列头+8位数据+序列尾”组成,序列头占5位编码,每位数据占2位编码(高电平用“10”表示,低电平用“01”表示,这样在8位数据的编码中不会出现连续3个以上的“0”或“1”,有效防止LED闪烁),序列尾占1位编码,共22位。每位编码所占时间为80 ms。 表1 系统参数设置 表2 信标编码参数 图10为实验测试场景实物图,图10(a)为发送端元件,图10(b)为天花板布局,图10(c)为智能手机接收端。在本系统中,设计的软件系统执行1次定位所需的时间为350 ms,其中捕获图像并存储所需150 ms,执行图像处理所需150 ms,定位算法所需时间为20~30 ms,各步骤之间存在时间冗余间隙,用于去除软件代码可能带来的误差及错误影响。 图10 实验测试场景实物图 (1)实验测试。发送端与接收端之间的距离对接收端解码识别率的影响如图11所示。测试过程中,保持发送端与接收端的各项参数不变,仅改变接收端与LED之间垂直距离。LED离地面约2.65 m,测试范围在0.5~2.65 m。接收端对不同高度进行约50次解码的移动测试。通过图11可以发现,解码识别率在1.5 m处开始下降,在1.9~2 m间下降速度最快,达到2.65 m左右时已几乎无法正确解码。 由测试结果可知,发送端与接收端的垂直距离在1.5 m以内时,信标解码识别率可达99%。发送端与接收端的垂直距离为1.75 m以内时,信标解码识别率可达到95%以上。与Liu算法[12]对比,解码识别率有明显提升。这是因为文献[12]所采用的条纹判别阈值为硬阈值,无法随光环境的变化而发生变化。同时,成年人手持智能手机距离天花板LED的距离通常在1.75 m内,因此,设计的解码算法满足绝大多数用户的使用条件。 此外,实际应用中接收端捕获到LED可能不止1盏,而测试中仅对1盏LED的子图进行解码。从概率的角度看,当接收端捕获多盏LED时,同高度下的多个信标中至少1个信标被成功解码的概率要远高于图11中的单盏LED情况,提高了定位系统鲁棒性。 图11 发送端与接收端的垂直距离对解码识别率的影响 (1)接收端移动状态。移动状态下的定位结果如图12所示。从图中可以发现,单灯定位误差在10 cm左右,双灯定位误差在5 cm左右。双灯定位效果比单灯定位效果要好,这是由于接收端捕获两盏以上LED时所采用的旋转角由几何计算方式得到,相较于1盏LED时读取方位传感器所得到的旋转角更为准确。文献[12]算法无法实现单灯定位,定位结果分布较少,定位精度同本文设计的定位算法大致相同。 此外,从图12可以发现,移动轨迹覆盖到了实验环境的大部分区域,系统的定位误差在实验区域内均匀分布,不同位置的定位误差并未出现明显差异,证明了联合定位算法的可靠性。 图12 接收端移动状态下定位结果分布 (2)接收端定点状态。在定点状态下,本文尽可能多地采样定位数据。定位系统选择能够捕获到3盏LED的坐标点作为定位点,通过遮挡光路的方式对每两盏LED分别进行一次双灯定位,共得到3组数据,再对每盏LED分别进行一次单灯定位,得到3组数据,每个定位点共6组数据,部分测试结果如图13所示。 图13 接收端定点状态下的部分定位结果分布 定点状态与移动状态下的接收端定位误差大致相同,这说明设计的系统在移动和定点状态下都能保持良好的应用。同时,由于智能手机传感器本身的误差因素,单灯算法的平均定位误差要高于双灯算法。在多组测试数据的情况下,文献[12]的双灯算法定位精度低于本文定位算法中双灯情况下的定位精度,这说明旋转角优化方案降低了定位误差。 此外,为了提高实验结果的可靠性,本文采用50个定位点共300组数据的定位结果绘制出误差累积分布函数(Cumulative Distribution Function,CDF),如图14所示。通过图14可以发现,单灯算法的最大误差为37.183 cm,平均误差为12.093 cm;双灯算法的最大误差为9.725 cm,平均误差为3.998 cm。 图14 误差累积分布函数 产生误差的原因除了上述提到的传感器因素外,天花板与地面的平行程度等建筑因素、测试时智能手机发生轻微倾斜等人为因素以及轮廓检测算法对子图圆心检测准确程度等图像处理因素,都会为定位系统带来误差。 本文设计的导航功能具有如下效果: (1)进行模式选择,进入导航模式; (2)在导航模式下,点击屏幕上的LED标记,选择想要去往的目标地点; (3)按下开始键后智能手机进行一次捕获定位,并将接收端的位置显示在屏幕上; (4)生成一条起始点与目标点间的路径,形成导航路径,如图15所示。 图15 导航效果展示 例如,将目标地点选为5号LED,其坐标为(1.484, 1.578)。按下导航键后,智能手机屏幕显示当前位置定位为(0.304, 2.478)。定位系统首先判定出起始点在田字格的正西方向。然后,定位系统执行导航命令,令接收端先沿x轴进行移动,路径为(0.304, 2.478)→(0.465, 2.478)。接着,定位系统判定到达点的横坐标属于南北方向路径的横坐标之一。令接收端接着沿y轴移动至与目标点纵坐标相同处,路径为(0.465, 2.478)→(0.465, 1.578)。接收端最后再次执行移动命令,移动至5号LED正下方,路径为(0.465, 1.578)→(1.484, 1.578)。至此,导航结束。 本文对室内可见光定位系统解码识别率和定位算法适用性展开了详细的研究。提出了基于条纹宽度比的图像解码算法和基于旋转角优化的联合定位算法。最后,本文搭建可见光定位系统实验平台,从系统解码识别率、定位精度及导航实现等方面评估设计的定位系统。实验结果表明,提出的两种算法方案能够有效地优化可见光定位系统性能。3.2 优化分析
4 基于旋转角优化的联合定位算法
4.1 旋转角唯一化
4.2 联合定位
5 简易导航
5.1 导航规划
5.2 导航实施方案
6 实验测试
6.1 硬件搭建
6.2 解码识别率
6.3 定位精度
6.4 导航
7 结束语