0 引言
移动机器人通过跟随一个领航员以实现导航是一种便捷的导航方式。近年来,移动机器人的行人引领导航在多种应用场景中被广泛使用,例如老人看护机器人、智能轮椅、载货机器人等。
在机器人的行人引领导航中,实时地定位目标是顺利实现导航的核心问题。近年来,已经有很多研究者通过多种类型的传感器实现移动机器人的行人引领导航,其中包括超声波传感器、单线激光雷达、射频识别(Radio Frequency Identifica-tion,RFID)、RGB-D相机、双目相机等。由于基于视觉的方法可以利用更丰富的颜色、纹理等信息,所以相对于基于超声波和单线激光等测距传感器的方法,基于视觉的方法在领航员定位以及在多人环境中分辨领航人员方面具有更大的潜力。
在基于视觉的行人定位和跟踪方法中,使用RGB-D相机并利用骨架跟踪框架是一种常见的行人跟随方案,但受限于RGB-D相机适用的工作场景,该类方案更适合用于室内环境中。另外,基于视觉跟踪器的方法是一种流行的方法,视觉跟踪器一般通过在线学习和更新目标的外貌特征来定位目标,这类方法容易受环境或者目标的剧烈变化影响而失效,且一般不具备处理遮挡的能力和重新初始化的能力。
对于处理行人遮挡问题,一些学者提出了使用分块跟踪和匹配的方法,此类方法对于处理部分遮挡的情况比较可行,但仍然取决于分部特征和匹配策略的鲁棒性。利用RGB-D相机或者双目立体相机提供的深度信息检测和处理遮挡也是一种常用的方法,但此类方法容易受深度图精度的影响。此外,在有多个行人干扰或遮挡的场景中辨认领航员也是一个比较困难的问题,一些学者利用人体特征区分领航员与干扰行人,例如身高、衣服颜色、行走步态等。
为了解决行人引领导航中的领航员定位问题,本文使用一个卡尔曼滤波器跟踪领航员的位置和尺度,并利用基于深度神经网络的行人检测器检测行人。同时,提出了2个指标关联检测结果和卡尔曼滤波器预测结果,捋关联的检测结果用于更新卡尔曼滤波器。另外,还创新性地引入了一个使用大规模行人重识别数据集训练的挛生神经网络用于在多个行人中辨认领航员。最后,通过视频实验及机器人实验证明了所提方法的有效性。
1 行人引领导航问题描述
为了使一个移动机器人跟随指定的领航员,机器人需要实时获取领航员与机器人之间的相对角度和距高。如图1所示,一个双目立体相机被安装在移动机器人的超前方向,并且设置机器人的坐标与双目相机左摄像头的坐标一致,记为OXCYCZC。坐标系统OXCYCZC的原点O为双目相机左相机的光心,其中ZC轴沿左相机的光轴方向,XC轴为机器人水平向左方向。
对于左相机提供的第t帧RGB图像,利用所提视觉算法获取领航员的包围框Bt,使用Bt在水平位置的中心坐标utc计算关于ZC轴的目标与机器人之间的偏离角θt,
辨率和视场角,分别为1080和72°。然后,在对应于左相机的深度图像上,基于Bt包围框估计领航员与机器人之间的距离dt。
2 基于视觉的领航员定位方法模块
2.1 行人检测器
目标检测器可以在不具备帧间运动借息的情况下在每一帧图像上检测出多种类别的多个目标。近年来,基于深度神经网络的端到端检测器可以在图形处理器(Graphics Processing Unit,GPU)的加速下快速准确地检测多种类别的物体。对于基于视觉的移动机器人行人引领导航方法,需要在图像中实时定位目标,而基于行人数据训练的行人检测器可以提供行人包围框,为实现领航员提供了非常有用的信息。
本文使用SSD(Single Shot Multibox Detec-tor)作为检测器,并使用PASCALVOC数据集进行训练。SSD是一种单步检测模型,用一系列的默认候选框代替在传统的两步检测模型中的候选框检测阶段,直接产生物体的类别概率和位置坐标,从而具有更快的检测速度,同时,SSD使用全图各个位置的多尺度特征进行回归,保证了检测的精度,本文使用VGG-16分类模型作为SSD的基础网络,其输入图像的尺寸设置为300×300像素。在第t帧RGB图像上检测全部行人,并将计算获得的n个包围框记为D;,其中i=1,2….n.
2.2 卡尔曼滤波器
行人检测器虽然能够在每一帧图像中获取多个行人的位置,但是无法获得行人之间的身份信息,即无法在多个行人之间辨认出指定的领航员。因此,本文引入了一个卡尔曼滤波器Fx预测目标位置和尺度,并通过对比Fk的预测结果和检测器结果在多帧之间持续定位领航员;同时,使用Fx可以减少由于检测器漏检造成的不利影响。卡尔曼滤波器的状态被定义为
其中,M=I4是测量矩阵,K是卡尔曼增益,R是测量噪声的协方差矩阵,zt是由DA计算得到的四维测量向量(x,y,a,r)。在机器人行人跟随过程中,更新后的Fk状态被用于计算领航员包围框B,并基于更新后的Bt计算目标的距离;然而,当没有检测结果被确认为与Bt关联时,则以Fk的预测状态计算目标的位置。
2.3 基于挛生神经网络的行人重识别模块
行人重识别是一种广泛应用于视觉监控领域的技术,旨在多个无重叠且不同视角的摄像机中辨别出同一行人。该技术对于机器人行人跟随过程中,需要配合行人检测器重新定位或搜索出领航员是非常有效的。本文中使用一个基于大规模行人重识别数据集训练的挛生网络来提取行人特征,通过提取的特征对领航员外貌进行抽象表达。该网络同时结合了验证模型(verification model)和识别模型(identification model)的优点,同时使用两种损失函数训练模型,有效提高了特征表达的鲁棒性。
本文以挛生网络输出的4096维全连接层特征作为对领航员的特征表达(fc描述子),并设立一个包含N个ff描述子且每隔50帧更新一次的目标特征库GI={f1,f2…,fN}。在需要验证行人身份信息时,通过提取待验证行人的fc描述子,记为fI,并计算其与GI,中每一个描述子的余弦相似度的均值作为评估侯选者为领航员的可能性SI,即
3 基于视觉的行人跟随方法
为了完成移动机器人行人跟随,本文使用了基于视觉的行人检测器、卡尔曼滤波器以及一个基于挛生神经网络的行人重识别模块在行人跟随任务中持续定位目标。利用2个指标,通过3个模块之间的配合,实现了对领航员的持续定位。图2所示为3个模块之间的关系示意图。
在没有行人干扰的情况下,通过对比检测结果Dti和Bt在图像中的空间位置关系来关联多帧之间领航员的位置关系。Dti和Bt之间的交并面积比(IOU指标)被用作判断检测结果是否为领航员的依据,即
在无行人干扰的情况下,依据空间位置的连续性判断检测结果之间的关联性是一种安全的策略;然而,当领航员周围出现干扰行人甚至出现遮挡情况时,需要借助更多的信息以更好地判断检测结果的身份信息。因此,移动机器人需要判断领航员周围干扰的存在情况,并且在确认干扰存在的情况下,使用行人重识别模块来增强检测结果在多帧之间关联的可靠性。
为了确认干扰的存在情况,以Bt为中心设置了宽度为Bt宽度2倍的包围框Bo,并统计与Bo相交的Dti的个数No。当第t赖图像中No≥2时,认为出现遮挡情况,并启动行人重识别模块验证每一帧中DA的身份信息,并且被确认为是领航员需要满足式(9)。
SI≥TI (9)
这里TI是行人重识别的阀值,设置为0.7。如果不满足行人重识别条件DA,并于当前图像及之后新的图像中在Dti中搜索满足式(9)的行人,记录未能在检测结果中确认领航员的帧数NF,当NF≤3时,卡尔曼滤波器Fx的预测结果被用于计算领航员的位置;而当NF>3时仍未能搜索到领航员,则停止Fk预测过程,以最后NF=3时的预测结果Bt,作为领航员的位置到再次搜索到领航员;当再次搜索到领航员时,卡尔曼滤波器Fk将使用领航员的包围框计算的状态(x,y,a,r)以及零速度作为初始值重新初始化Fk。另外,当连续15赖中满足No≤1,则认为干扰消除,停止使用行人重识别模块。
4 实验验证
4.1室外场景视频实验
本实验及机器人实验的视频使用一个ZED双目立体相机采集,该相机可以同时输出RGB图像和深度图像。此视频实验为校园场景的室外环境,该实验包括行人姿态变化、光照变化、行人干扰等诸多挑战。为了更好地说明所提方法的有效性及优越性,此节进行了所提方法与行人引领导航中常用的TLD的比较。该实验的结果如图3所示,由此可见,目标在行走较长距离后仍然能准确定位目标。如图3中第300帧和第330帧图像所示,当目标穿越光线条件复杂的走廊时,所提方法仍然能够准确定位领航员。而对比方法TLD从第151帧后便无法再次准确地检测和跟踪目标,如图3中第350帧所示,其检测到错误的目标。
此外,此实验中包括2次行人干扰情况。其一,如图3第188帧和第210帧图像所示的场景中,所提方法在第188帧检测到周围存在行人干扰,并启动行人重识别模块,该过程中关联检测结果和卡尔曼滤器预测结果需要同时考虑式(8)和式(9)。其中行人重识别模块输出的分数S,如图4所示,该过程中所提方法能一直跟踪领航员位置,且行人重识别模块验证DA的身份信息时均满足条件式(9),故卡尔曼滤波器可以及时被更新并输出准确的领航员位置。
由图3中第404~444帧图像所示,另外一次行人干扰出现,此过程中行人重识别模块输出的分数SI如图5所示,由SI可知所提方法仍然能够准确定位目标。因此,在目标姿态连续变化后,所提方法仍然可以准确确认领航员的身份信息,证明了本文所提的行人重识别模块及设计的目标特征库GI是有效的。
此实验采用手工逐张标注的方式获得目标行人的包围框真值,并计算了所提方法和TLD在此次实验中的精确度,其中包括2个指标:精确度曲线和成功率曲线,如图6所示。精确度曲线计算跟踪算法估计的目标包围框的中心点与人工标注的目标包围框的中心点之间的距离小于给定阈值的视频帧的百分比。成功率曲线通过计算跟踪算法估计的目标包围框与人工标注的目标包围框的交面积与并面积的比值在某个重叠率阀值范围内的视频帧的百分比。
4.2 机器人实验
为了验证所提方法能够在机器人上有效定位目标,在EAI轮式机器人上进行了行人引领导航实验,其中实验场景如图7所示。实验中移动机器人根据所提算法提供的Bt,通过式(1)计算目标与机器人之间的夹角,并根据Bt在深度图像上利用式(2)估计领航员于机器人之间的距离信息dt基于领航员与机器人之间的方向夹角和距离信息,控制机器人的速度和方向使机器人跟随领航员,并保持一定的距离范围,从而实现行人引领导航。需要指出的是,由于本文所提方式使用了基于深度神经网络的检测器SSD以及挛生神经网络,为了保证在机器人上运行的实时性,需要使用配备有GPU的计算单元,因此本文所提方法运行时的功耗相对较高。
5 结论和展望
本文提出了一种结合基于深度神经网络的行人检测器、卡尔曼滤波器及基于行人重识别数据集训练的挛生神经网络的行人定位方法。该方法创新性地引入了视频监控领域的行人重识别技术,用于在多个干扰行人之间辨认领航员,实验证明了行人重识别模块和其他模块配合能够有效地定位目标并处理行人干扰问题。基于此方法并利用双目相机提供的RGB和深度图像能够实时获取行人引领导航所需的领航员方向和距离信息。另外,本文通过视频实验及机器人实验证明了所提方法的有效性。
在未来工作中,将继续改进行人定位方法,提高机器人行人引领导航的稳定性。同时,为了提高在机器人引领导航过程中的安全性,将关注能与行人定位方法配合使用的避障算法和局部路径规划算法。
暂无评论内容