张 锐,王兆魁
(1.国防科技大学 空天科学学院,湖南 长沙 410073; 2.清华大学 航天航空学院,北京 100084)
空间站长期在轨维护和复杂科学研究的实施主要依赖航天员来完成。航天员在轨可用的工作时间通常非常有限。为了辅助航天员,提升其工作效率,国际上提出了多个舱内辅助机器人项目,如PSA[1]、Astrobee[2]、Smart Spheres[3]、Int-Ball等。这些机器人多采用遥控方式运行,其自主运行及人机智能交互能力存在一定局限性,需要航天员在轨照料。为发展更自主的舱内跟随服务机器人,提升机器人的任务辅助能力,需要解决机器人对航天员的视觉跟踪问题。
指定服务航天员的稳定、准确跟踪需要获得良好的航天员检测结果。人体检测[4]方法通常用Haar[5]、Sift[6]、Hog[7]特征及这些特征的组合进行显著特征提取,再用支持向量机(SVM)[7]、竞争分类器(boosted classifiers)[8]或随机森林(random forests)[9]等分类器实现分类。用这些方法检测站立或行走的人能得到较好的效果,但对于姿态多样人体的检测效果一般。近年来,深度学习特别是深度卷积神经网络成为解决图像问题的主要方法。目标检测研究领域中,Faster R-CNN[10]、R-FCN[11]及基于回归方法的YOLO[12]和SSD[13]模型取得了很好的效果。卡尔曼滤波器(Kalman filter)[14]、粒子滤波器(particle filter)[15]及概率模型(probabilistic model)[16]通常被用来完成准确、连续的人体跟踪任务。实现穿着多样、姿态任意人体的稳定跟踪,是空间站舱内辅助机器人实现对航天员跟随飞行并提供即时任务辅助的重要前提。本文基于融合的彩色-深度(RGB-D)图像,提出一种基于深度学习和概率模型的航天员跟踪算法,有效避免了由于穿着相似、遮挡等可能造成的误跟踪问题。
图1 航天员视觉跟踪算法框架Fig.1 Architecture of astronaut visual tracking algorithm
借鉴文献[13]中SSD目标检测方法,设计了一种端到端的航天员检测深度卷积神经网络,该网络包含图像输入层、特征提取层、多尺度预测层和非极大抑制输出层,如图2所示。
输入的待检测图像尺寸均调整为300×300像素,并采用VGG-16网络作为特征提取层进行人体特征提取。在特征提取层上,设计了多尺度网络层进行多尺度检测。用Conv4_2、Conv5_2、Conv6_2、Conv7_2、Conv8_2、Conv9_2进行最终的多尺度检测。
图2 航天员检测深度卷积神经网络Fig.2 Deep convolutional neural network for astronaut detection
对于分辨率300×300的输入图像,表1给出了各层中默认边界框的详细设计参数。在6个多尺度层的每个单元上,预测相对于默认边界框形状的偏差及这些默认边界框中是航天员的概率,共产生8 732个检测结果。最终的检测结果将通过非极大抑制算法从8 732个候选结果中求得,输出所检测到的位置及分类结果为航天员的概率。
为与未来在轨应用情况尽可能保持一致,网络训练的数据集图像来源于在地面实验空间站模拟舱中通过手持相机录制或舱内监控摄像头录制的视频。受试者在地面实验模拟舱中模拟航天员操作或行走,其衣色可为浅蓝、靛蓝、墨绿。从记录的视频中挑选出3 250幅图像,标注真实边界框和分类标签,完成训练数据集的制作。网络训练目标损失函数定义为定位损失和置信度损失的加权和,有
表1各层默认边界框设计参数
Tab.1 Design of default bounding boxes in each layer
(1)
训练时,首先采用VGG-16训练好的模型参数初始化网络特征层的参数,并用零均值高斯分布初始化多尺度预测层参数。采用随机梯度下降法进行迭代计算,该算法的初始学习速率为0.001,权重为0.9,正则项为0.000 5。学习速率分别在20 000,40 000和60 000次迭代时依次减小10倍。网络训练过程共包含80 000次迭代,网络采用Caffe深度学习框架实现,并基于图像处理单元实现并行加速计算。
航天员跟踪模块流程如图3所示。航天员跟踪问题主要为最大化后验概率问题,即最大化概率,此概率可通过多种因素估计。本文目标是通过RGB-D图像数据实现跟踪,获得RGB-D图像数据,后验概率可描述为
(2)
argmaxPk(p|Li)Pk(p|Ii)
(3)
如果跟踪模块连续30次以上未得到满足要求的检测或跟踪匹配结果,跟踪过程将停止并退出。机器人将主动报警以提示失去对服务航天员的连续跟踪,并请求重新确认跟踪目标。
图3 航天员跟踪模块流程图Fig.3 Flowchart of astronaut tracking module
为进行服务航天员的位置预测,需要获取其相对于机器人的空间位置。选取检测结果边界框中心点(uman,vman)作为航天员在彩色图像中的二维位置,如图 4(a)所示。通过校准彩色和深度相机间的视角差异,获得融合的RGB-D图像。用彩色和深度相机在多个视角场景下的棋盘拍摄图像,并用GML Calibration Toolbox相机标定软件分别获得彩色相机的内参矩阵HRGB、外参矩阵RRGB和TRGB,以及深度相机的内参矩阵HIR、外参矩阵RIR和TIR。随后,将深度图像中各像素点pIR与彩色图像中各像素点pRGB进行匹配,有
(4)
图像融合只针对深度与彩色图像的视角重叠部分。完成融合后,可得彩色图像中各像素点对应的深度值。航天员位置深度值Zman为检测结果框内距离最近6个稀疏采样点的平均深度值,如图 4(b)所示。航天员在彩色相机中的空间位置(XRGB,YRGB,ZRGB)为
(5)
此处,彩色相机的内参数矩阵HRGB通过标定为
(6)
通过简单的坐标系旋转和平移变换即可实现彩色相机坐标系到Kinect相机体坐标系间的转换,如图 4(c)所示。进而求得航天员在Kinect相机体坐标系下的三维位置(X,Y,Z)为
(7)
式中:d为彩色相机中心与Kinect相机体坐标原点间的距离,d=13 mm。获得人体相对于相机的空间三维位置坐标后,设计改进的卡尔曼滤波器来预测航天员在机器人体坐标系中的空间位置。
连续帧之间的航天员运动可视为匀速运动,因此卡尔曼滤波器采用匀速运动模型,状态方程不包含加速度项。航天员运动可用下述测量模型进行描述:
xk=Axk-1+wk
(8)
zk=Hxk+vk
(9)
运动模型中的状态向量可表示为
xk=[SkVk]T
(10)
式中:Sk、Vk分别为航天员在机器人体坐标系中的位置和速度矢量,Sk=[XkYkZk],Vk=[VXkVYkVZk]。由于连续帧之间可视作匀速运动,因此可通过运动学方程获得状态转移矩阵
Sk=Sk-1+Vk×Δt
(11)
Vk=Vk-1
(12)
图4 RGB-D图像及相关坐标系定义Fig.4 Images of RGB-D camera and coordinate system definition
b1(Sk-Sk-1)
(13)
改进的卡尔曼滤波器包含预测和校正2个阶段。预测阶段表示为
(14)
(15)
(16)
(17)
(18)
(19)
式中:Sk为服务航天员的测量位置值;Rthre为阈值,Rthre=30 cm。
空间位置预测将航天员视为质点模型,考虑到空间站舱内空间有限,航天员身体尺寸不可被忽略。运动中航天员身体尺寸范围是彩色图像中检测到的边界框,如图5所示。因此,用当前检测结果边界框与跟踪结果边界框的几何相似性来描述概率Pk(p|Ii)。图5中,实线矩形框表示第k-1帧中跟踪到的航天员边界框,虚线矩形框表示第k帧中检测结果的边界框。由于连续图像帧间航天员的姿态、空间位置变化很小,故与之前跟踪结果边界框距离越近、形状越相似的检测结果更可能是所需要跟踪的航天员。
图5 彩色图像中的检测结果边界框几何相似匹配Fig.5 Geometric similarity matching of bounding box in color image
概率Pk(p|Ii)可描述为
(20)
(21)
(22)
(23)
为验证本文所提出的航天员跟踪算法,在空间站模拟舱环境中,开展了人体跟踪实验,并分析其结果。提出的算法基于C++语言,在Ubuntu16.04环境下实现,通过 NVIDIA TITAN X加速计算得到63帧/s的计算速度,可支持30帧/s实验视频数据的实时处理。实验视频数据采用Kinect相机录制,分辨率为640×480。通过2组实验进行验证,用墨绿色包络框绘制出每帧图像中跟踪算法给出的跟踪目标判断结果,验证跟踪算法对指定目标准确、稳定跟踪的能力。
实验一,受试者将以多种失重姿态沿1.4 m×2.0 m的方形参考路径运动。期间,受试者将以不同的姿态和相对位置呈现在相机视野中,通过是否能得到连续、准确的跟踪结果来评价跟踪算法的性能。受试者衣色可为训练时的3种,本实验以最常见的浅蓝色进行讨论。若判断为跟踪目标,则对应航天员的检测结果包络框将变为墨绿色。5种姿态下的参考路径跟踪实验如图6所示。对于指定的跟踪目标,提出的跟踪算法始终能保持准确的检测和稳定持续的跟踪。
实验二,测试更常见的应用情形,即机器人与所服务的航天员保持悬停或跟随飞行并提供任务辅助。考虑一种常见情况,舱内有2位航天员,均穿浅蓝色的舱内工作服。首先将与相机保持一定距离的受试者作为跟踪目标,即图7和图8中左侧的受试者。该受试者模仿在轨航天员工作和行走的多种肢体动作。与此同时,另一位受试者进入或退出相机视野。2位受试者运动相距很近,跟踪目标图像可能会被受试者部分或完全遮挡。图 7中实验结果表明:存在相似目标干扰情况下,跟踪算法能对指定的左侧受试者进行稳定的跟踪。图8中实验结果表明:跟踪算法能较好地检测相似目标的遮挡,在指定的跟踪受试者被其他穿着相似的受试者遮挡时,能准确检测出跟踪目标被遮挡,有效避免了误跟踪。
图6 不同姿态下的参考路径跟踪实验Fig.6 Reference path tracking test with five different postures
图7 存在相似目标干扰情况下的稳定跟踪实验Fig.7 Tracking with other subject entering and moving very close to target subject
图8 遮挡检测及误跟踪避免实验Fig.8 Occlusion detection for avoiding mistaken tracking
航天员视觉跟踪是空间站舱内跟随服务机器人实现航天员跟随飞行并提供任务辅助的重要前提。本文设计了深度卷积神经网络,并对穿着、姿态和手势多样的人体进行了检测,结合运动信息构建了运动预测概率模型,完成了指定人体的稳定、持续视觉跟踪。采用包含大多数航天员活动的视频数据进行了算法验证,实验结果表明:该算法可实现对穿着多样、姿态任意的人体的稳定跟踪,并有效避免了由于穿着类似、图像遮挡可能造成的误跟随问题。本文提出的航天员跟踪算法为空间站舱内服务机器人实现对航天员的视觉跟踪提供了较好的解决方案。该算法仅基于融合的RGB-D图像,工程应用时易于构建和实现,且算法包含的检测和跟踪模块均具有很好的普适性,易于拓展到其他应用场景,应用到各类跟随服务机器人中。