庞 磊,曹志强,喻俊志
(中国科学院自动化研究所 复杂系统管理与控制国家重点实验室,北京 100190)
移动机器人通过跟随一个领航员以实现导航是一种便捷的导航方式。近年来,移动机器人的行人引领导航在多种应用场景中被广泛使用,例如老人看护机器人[1]、智能轮椅[2]、载货机器人[3]等。
在机器人的行人引领导航中,实时地定位目标是顺利实现导航的核心问题。近年来,已经有很多研究者通过多种类型的传感器实现移动机器人的行人引领导航,其中包括超声波传感器[4]、单线激光雷达[5]、射频识别(Radio Frequency Identifica-tion,RFID)[6]、RGB-D相机[7]、双目相机[8]等。由于基于视觉的方法可以利用更丰富的颜色、纹理等信息,所以相对于基于超声波[4]和单线激光[9]等测距传感器的方法,基于视觉的方法在领航员定位以及在多人环境中分辨领航人员方面具有更大的潜力。
在基于视觉的行人定位和跟踪方法中,使用RGB-D相机并利用骨架跟踪框架[10]是一种常见的行人跟随方案,但受限于RGB-D相机适用的工作场景,该类方案更适合用于室内环境中。另外,基于视觉跟踪器的方法是一种流行的方法[6,8,11],视觉跟踪器一般通过在线学习和更新目标的外貌特征来定位目标,这类方法容易受环境或者目标的剧烈变化影响而失效,且一般不具备处理遮挡的能力和重新初始化的能力。
对于处理行人遮挡问题,一些学者提出了使用分块跟踪和匹配的方法[12-13],此类方法对于处理部分遮挡的情况比较可行,但仍然取决于分部特征和匹配策略的鲁棒性。利用RGB-D相机或者双目立体相机提供的深度信息检测和处理遮挡也是一种常用的方法,但此类方法容易受深度图精度的影响[14]。此外,在有多个行人干扰或遮挡的场景中辨认领航员也是一个比较困难的问题,一些学者利用人体特征区分领航员与干扰行人,例如身高、衣服颜色、行走步态等[15-16]。
为了解决行人引领导航中的领航员定位问题,本文使用一个卡尔曼滤波器跟踪领航员的位置和尺度,并利用基于深度神经网络的行人检测器检测行人。同时,提出了2个指标关联检测结果和卡尔曼滤波器预测结果,将关联的检测结果用于更新卡尔曼滤波器。另外,还创新性地引入了一个使用大规模行人重识别数据集训练的孪生神经网络用于在多个行人中辨认领航员。最后,通过视频实验及机器人实验证明了所提方法的有效性。
为了使一个移动机器人跟随指定的领航员,机器人需要实时获取领航员与机器人之间的相对角度和距离。如图1所示,一个双目立体相机被安装在移动机器人的超前方向,并且设置机器人的坐标与双目相机左摄像头的坐标一致,记为OXCYCZC。坐标系统OXCYCZC的原点O为双目相机左相机的光心,其中ZC轴沿左相机的光轴方向,XC轴为机器人水平向左方向。
图1 移动机器人行人引领导航系统示意图Fig.1 Schematic diagram of the leader-guided system for mobile robots
(1)
其中,Rh和Θ分别为左相机在水平方向的分辨率和视场角,分别为1080和72°。然后,在对应于左相机的深度图像上,基于Bt包围框估计领航员与机器人之间的距离dt。
(2)
目标检测器可以在不具备帧间运动信息的情况下在每一帧图像上检测出多种类别的多个目标。近年来,基于深度神经网络的端到端检测器可以在图形处理器(Graphics Processing Unit,GPU)的加速下快速准确地检测多种类别的物体。对于基于视觉的移动机器人行人引领导航方法,需要在图像中实时定位目标,而基于行人数据训练的行人检测器可以提供行人包围框,为实现领航员提供了非常有用的信息。
行人检测器虽然能够在每一帧图像中获取多个行人的位置,但是无法获得行人之间的身份信息,即无法在多个行人之间辨认出指定的领航员。因此,本文引入了一个卡尔曼滤波器FK预测目标位置和尺度,并通过对比FK的预测结果和检测器结果在多帧之间持续定位领航员;同时,使用FK可以减少由于检测器漏检造成的不利影响。卡尔曼滤波器的状态被定义为
S=(x,y,a,r,Δx,Δy,Δa,Δr)T
(3)
(4)
此外,为了使FK保持对领航员的跟踪,确认为是领航员的行人检测器结果DA被用作测量值zt利用,式(4)更新FK状态。
(5)
其中,M=I4是测量矩阵,K是卡尔曼增益,R是测量噪声的协方差矩阵,zt是由DA计算得到的四维测量向量 (x,y,a,r)。在机器人行人跟随过程中,更新后的FK状态被用于计算领航员包围框Bt,并基于更新后的Bt计算目标的距离;然而,当没有检测结果被确认为与Bt关联时,则以FK的预测状态计算目标的位置。
行人重识别是一种广泛应用于视觉监控领域的技术,旨在多个无重叠且不同视角的摄像机中辨别出同一行人。该技术对于机器人行人跟随过程中,需要配合行人检测器重新定位或搜索出领航员是非常有效的。本文中使用一个基于大规模行人重识别数据集训练的孪生网络[18]来提取行人特征,通过提取的特征对领航员外貌进行抽象表达。该网络同时结合了验证模型(verification model)和识别模型(identification model)的优点,同时使用两种损失函数训练模型,有效提高了特征表达的鲁棒性。
本文以孪生网络输出的4096维全连接层特征作为对领航员的特征表达(fc描述子),并设立一个包含N个fc描述子且每隔50帧更新一次的目标特征库GI={f1,f2,…,fN}。在需要验证行人身份信息时,通过提取待验证行人的fc描述子,记为fI,并计算其与GI中每一个描述子的余弦相似度的均值作为评估候选者为领航员的可能性SI,即
(6)
为了完成移动机器人行人跟随,本文使用了基于视觉的行人检测器、卡尔曼滤波器以及一个基于孪生神经网络的行人重识别模块在行人跟随任务中持续定位目标。利用2个指标,通过3个模块之间的配合,实现了对领航员的持续定位。图2所示为3个模块之间的关系示意图。
图2 模块关系示意图Fig.2 Schematic diagram of the relationship between the proposed modules
(7)
其中,取得最大交-并面积比IOUmax且满足如下条件的候选人被认为是领航员。
IOUmax=max(IOUi)≥TIOU
(8)
这里TIOU的值设定为0.3。
在无行人干扰的情况下,依据空间位置的连续性判断检测结果之间的关联性是一种安全的策略;然而,当领航员周围出现干扰行人甚至出现遮挡情况时,需要借助更多的信息以更好地判断检测结果的身份信息。因此,移动机器人需要判断领航员周围干扰的存在情况,并且在确认干扰存在的情况下,使用行人重识别模块来增强检测结果在多帧之间关联的可靠性。
SI≥TI
(9)
本实验及机器人实验的视频使用一个ZED双目立体相机采集,该相机可以同时输出RGB图像和深度图像。此视频实验为校园场景的室外环境,该实验包括行人姿态变化、光照变化、行人干扰等诸多挑战。为了更好地说明所提方法的有效性及优越性,此节进行了所提方法与行人引领导航中常用的TLD[19]的比较。该实验的结果如图3所示,由此可见,目标在行走较长距离后仍然能准确定位目标。如图3中第300帧和第330帧图像所示,当目标穿越光线条件复杂的走廊时,所提方法仍然能够准确定位领航员。而对比方法TLD[19]从第151帧后便无法再次准确地检测和跟踪目标,如图3中第350帧所示,其检测到错误的目标。
图3 视频验证实验的实验结果,其中蓝色包围框为手工标注 的真值,黄色包围框为行人检测器结果,红色包围框为所提方法 输出的领航员位置,品红色的包围框为对比方法TLD[19]的Fig.3 Results of the video experiment. The blue bounding boxes are the locations of the manually labeled ground truth, the yellow bounding boxes are results of the proposed pedestrian detector, and the red bounding boxes are results of the proposed approach, the magenta bounding boxes are the results of the TLD[19]
此外,此实验中包括2次行人干扰情况。其一,如图3第188帧和第210帧图像所示的场景中,所提方法在第188帧检测到周围存在行人干扰,并启动行人重识别模块,该过程中关联检测结果和卡尔曼滤波器预测结果需要同时考虑式(8) 和式(9)。其中行人重识别模块输出的分数SI如图4所示,该过程中所提方法能一直跟踪领航员位置,且行人重识别模块验证DA的身份信息时均满足条件式(9),故卡尔曼滤波器可以及时被更新并输出准确的领航员位置。
图4 行人重识别分数SI曲线(188~235帧)Fig.4 Curve of re-identification scores SI (frames 188~235)
由图3中第404~444帧图像所示,另外一次行人干扰出现,此过程中行人重识别模块输出的分数SI如图5所示,由SI可知所提方法仍然能够准确定位目标。因此,在目标姿态连续变化后,所提方法仍然可以准确确认领航员的身份信息,证明了本文所提的行人重识别模块及设计的目标特征库GI是有效的。
图5 行人重识别分数SI曲线(404~444帧)Fig.5 Curve of re-identification scores SI (frames 404~444)
此实验采用手工逐张标注的方式获得目标行人的包围框真值,并计算了所提方法和TLD在此次实验中的精确度,其中包括2个指标:精确度曲线和成功率曲线,如图6所示。精确度曲线计算跟踪算法估计的目标包围框的中心点与人工标注的目标包围框的中心点之间的距离小于给定阈值的视频帧的百分比。成功率曲线通过计算跟踪算法估计的目标包围框与人工标注的目标包围框的交面积与并面积的比值在某个重叠率阈值范围内的视频帧的百分比。
图6 所提方法和TLD[19]在视频验证实验中的 精度和成功率评价Fig.6 Precision and success evaluation in the verification experiment of the proposed approach and TLD[19]
为了验证所提方法能够在机器人上有效定位目标,在EAI 轮式机器人上进行了行人引领导航实验,其中实验场景如图7所示。实验中移动机器人根据所提算法提供的Bt,通过式 (1) 计算目标与机器人之间的夹角,并根据Bt在深度图像上利用式 (2) 估计领航员于机器人之间的距离信息dt。基于领航员与机器人之间的方向夹角和距离信息,控制机器人的速度和方向使机器人跟随领航员,并保持一定的距离范围,从而实现行人引领导航。需要指出的是,由于本文所提方式使用了基于深度神经网络的检测器SSD以及孪生神经网络,为了保证在机器人上运行的实时性,需要使用配备有GPU的计算单元,因此本文所提方法运行时的功耗相对较高。
图7 机器人实验示意图Fig.7 Schematic diagram of the experiment on the mobile robot
本文提出了一种结合基于深度神经网络的行人检测器、卡尔曼滤波器及基于行人重识别数据集训练的孪生神经网络的行人定位方法。该方法创新性地引入了视频监控领域的行人重识别技术,用于在多个干扰行人之间辨认领航员,实验证明了行人重识别模块和其他模块配合能够有效地定位目标并处理行人干扰问题。基于此方法并利用双目相机提供的RGB和深度图像能够实时获取行人引领导航所需的领航员方向和距离信息。另外,本文通过视频实验及机器人实验证明了所提方法的有效性。
在未来工作中,将继续改进行人定位方法,提高机器人行人引领导航的稳定性。同时,为了提高在机器人引领导航过程中的安全性,将关注能与行人定位方法配合使用的避障算法和局部路径规划算法。