机器人 2022, Vol. 44 Issue (3): 299-309  
0
引用本文
祝文斌, 苑晶, 朱书豪, 胡天帅, 高远兮, 张雪波. 低光照场景下基于序列增强的移动机器人人体检测与姿态识别[J]. 机器人, 2022, 44(3): 299-309.  
ZHU Wenbin, YUAN Jing, ZHU Shuhao, HU Tianshuai, GAO Yuanxi, ZHANG Xuebo. Sequence-enhancement-based Human Detection and Posture Recognition of Mobile Robots in Low Illumination Scenes[J]. ROBOT, 2022, 44(3): 299-309.  

低光照场景下基于序列增强的移动机器人人体检测与姿态识别
祝文斌1,2 , 苑晶1,2 , 朱书豪1,2 , 胡天帅1,2 , 高远兮1,2 , 张雪波1,2     
1. 南开大学人工智能学院,天津 300071;
2. 天津市智能机器人技术重点实验室,天津 300071
摘要:灾难救援、地下空间开发利用等场景均存在低光照、甚至完全黑暗的问题,导致机器人目标搜索与识别困难。为此,本文面向低光照场景提出基于红外深度相机图像序列的人体检测和姿态识别方法。首先,利用基于YOLO v4的AlphaPose算法检测人体框和关键点。然后,提出基于特征点匹配的漏检人体框恢复算法,降低人体漏检率,同时使用D-S(Dempster-Shafer)证据理论融合人体框和关键点的检测结果,从而降低人体误检率。最后,设计一种基于图像序列信息的人体姿态分层识别方法,在不同的识别层提取不同的人体躯干特征,利用连续多帧躯干向量特征组成的特征序列对人体姿态进行精准的识别并进行实验验证。实验结果表明本文算法能够在低光照条件下实现准确的人体检测与姿态识别,姿态识别准确率高达95.36%。
关键词低光照    人体检测    姿态识别    序列增强    
中图分类号:TP242.6            文献标志码:A            文章编号:1002-0446(2022)-03-0299-11
Sequence-enhancement-based Human Detection and Posture Recognition of Mobile Robots in Low Illumination Scenes
ZHU Wenbin1,2 , YUAN Jing1,2 , ZHU Shuhao1,2 , HU Tianshuai1,2 , GAO Yuanxi1,2 , ZHANG Xuebo1,2     
1. College of Artificial Intelligence, Nankai University, Tianjin 300071, China;
2. Tianjin Key Laboratory of Intelligent Robotics, Tianjin 300071, China
Abstract: Low illumination or even complete darkness is a very serious problem for lots of application scenes, such as disaster relief and underground space development, which brings a challenge to target search and recognition of robot. So a method for human detection and posture recognition in low illumination scenes using the image sequences collected by an infrared depth camera is proposed. Firstly, the AlphaPose algorithm based on YOLO v4 to detect human bounding boxes and key points is used. Then, a method to recover the missed human bounding box based on feature matching is proposed to reduce the missing detection rate. Meanwhile, the D-S (Dempster-Shafer) evidence theory is used to fuse the detection results of human bounding boxes and key points, in order to reduce the detection error rate. Finally, a sequence-based hierarchical recognition method to classify the human postures is designed, which extracts the torso features of human body and uses the sequential torso features in multiple frames to recognize the human posture accurately. Experimental results demonstrate that the proposed method can achieve good performance of human detection and posture recognition in low illumination scenes, and the accuracy of posture recognition can reach 95.36%.
Keywords: low illumination    human detection    posture recognition    sequence enhancement    

1 引言(Introduction)

当前,利用移动机器人执行地下探测、灾难搜救、军事侦察等危险任务引起了广泛的关注,对极限环境下的人体检测与姿态识别提出了全新的要求。在危险和极限环境中,由于缺少稳定而有效的光源,机器人不得不在低光照甚至完全黑暗的环境中工作,这为机器人进行人体检测与姿态识别带来了严峻的挑战。

现有的人体检测方法主要分为两类。一类是基于传统图像特征的人体检测方法,该类方法通常先从图像中提取HOG[1]、Haar[2]、LBP[3]、HOF[4]等特征,然后进行多特征融合,最后结合级联分类器实现人体检测。此类方法严重依赖于图像特征的质量,受背景和光线变化影响较大,无法应用于低光照环境。另一类是基于深度神经网络的目标检测方法,例如Faster R-CNN[5]算法利用区域提议和目标分类相结合的两步算法对目标进行检测。YOLO[6-8]算法则利用端到端的一步目标检测算法,利用深度神经网络同时实现目标框位置和目标类别的回归。基于深度学习的目标检测算法的性能优于传统方法,然而在低光照场景中,由于图像质量较差,该方法仍旧难以对环境中的人体进行高质量的检测。

现有的针对低光照场景的人体检测算法主要分为两类。一类是基于可见光图像亮度增强的人体检测方法,该方法先利用SID(see-in-the-dark)[9]等深度网络模型对图像进行亮度增强,之后利用增强后的图像进行人体检测[10]。然而,此类方法在完全黑暗的场景中会失效。另一类是基于红外相机的目标检测算法。与普通相机相比,红外相机不受可见光的影响,能在完全黑暗的场景中获取环境信息。文[11]采用Gabor滤波器在红外图像中提取特征,然后利用聚类算法分割出人体区域。然而,该方法难以应用于复杂环境中的人体检测。文[12]采用深度学习方法,利用模拟的红外图像训练YOLO算法,实现对红外图像的目标检测。该方法能利用单帧红外图像有效地完成人体检测,然而,在机器人移动过程中相机的位置和视角会发生连续变化,易出现图像模糊和观测不全面等现象,仅仅利用单帧图像的信息进行检测容易出现误检和漏检问题。

在灾难搜救、军事侦察等领域,机器人除了完成人体检测任务之外,还需要对人体的姿态进行进一步识别。人体姿态识别算法通常提取人体各个部位的关键点,如肩膀、膝盖等,然后根据人体关键点的分布对人体姿态进行识别。文[13]利用动力学几何模型分析人体关键部位的相对位置以及运动,最终判断出人体的姿态和动作。文[14]利用自适应递归神经网络根据连续图像帧中人体关键点的变化完成动作识别,然而,该方法对训练数据量要求过高、训练过程复杂且识别性能对相机观测视角的变化比较敏感。文[15]利用单帧图像中人体关键点的分布特征训练神经网络分类器,并对不同的姿态进行分类。然而,上述方法存在2个共性问题。首先,在低光照场景下存在图像噪声较大、纹理模糊现象,故难以检测到准确的人体关键点,进而无法准确识别姿态信息。其次,上述方法仅考虑单帧图像上的姿态识别,没有充分利用机器人获取的连续图像序列信息,因此依然存在误识别或识别不全面的问题。

针对低光照场景下移动机器人的人体检测与姿态识别问题,本文提出了基于红外深度相机图像序列的人体检测与姿态识别方法。不同于现有算法,本文基于红外相机拍摄得到的红外图像,并且充分利用移动机器人连续运动时得到的图像序列信息,能实现更加完整、准确的人体检测与姿态识别。具体来说,针对人体检测问题,利用历史图像帧的人体检测结果对当前帧进行信息补充,实现对人体检测结果的增强。对于姿态识别问题,利用回声状态网络(echo state network,ESN)[16]进行序列信息的在线融合,更为准确地识别人体姿态。本文的主要贡献如下:

1) 提出一种基于序列信息的人体检测增强算法。首先,利用相邻图像帧的特征点匹配结果对漏检人体框进行恢复,降低人体漏检率。然后,利用D-S证据理论对人体框置信度和人体关键点置信度进行融合,去除误检人体框。

2) 提出一种基于人体躯干向量的姿态分层分类方法。在不同层有针对性地计算不同的特征,进而实现人体姿态的逐层精细化识别。

3) 提出一种基于ESN的躯干向量时序建模方法,利用相机在运动过程中对人体的多视角观测,在地面等环境信息未知的情况下对人体姿态进行准确分类,同时解决单帧分类结果不准确的问题。

2 系统概述(System overview)

图 1为本文系统的算法框图。系统分为基于图像序列信息的人体检测增强和基于躯干向量序列信息的姿态分层分类2部分。在基于图像序列信息的人体检测增强模块中,首先,利用YOLO v4算法[8]对红外图像进行人体检测,获取图像平面上人体所在区域的边界框,即人体框,并在相邻图像帧中对人体框进行匹配追踪;然后,根据追踪结果利用本文提出的漏检框恢复算法补充缺失的人体框;最后,采用AlphaPose算法[17]检测人体关键点(肩膀、膝盖等18个关键点),并使用D-S证据理论对人体框置信度和关键点置信度进行融合,获取更加准确的人体检测结果,进而去除误检人体框。在图 1基于躯干向量序列信息的姿态分层分类模块中,首先,根据深度图像计算关键点的3维坐标;然后,在分层分类模块中提取躯干向量特征,并使用ESN网络对向量序列进行建模;最后,利用支持向量机(support vector machine,SVM)对人体姿态(站立、平躺、侧躺和俯卧)进行分类。

图 1 人体检测与姿态识别框架 Fig.1 Framework of human detection and posture recognition
3 基于图像序列信息的人体检测增强方法(Image-sequence-based human detection enhancement method)

针对低光照场景下现有检测方法存在的误检和漏检严重的问题,提出一种基于特征点匹配的漏检人体框恢复算法,降低人体漏检率,并采用D-S证据理论对人体检测结果进行融合,降低误检率。

3.1 图像变换与训练

相比于可见光图像,红外图像是单通道灰度图像,包含的目标纹理信息较少,基于可见光图像训练的人体检测器效果不佳。另外,现有的人体红外图像数据集较少,无法支撑深度学习训练。因此,本文对可见光图像训练集进行变换,使训练得到的目标检测网络适用于红外图像的人体检测。

首先,对可见光图像进行灰度化,减少彩色纹理信息,使其接近红外图像。然后,对图像随机进行亮度调整和大小扩展,解决因训练集中图像类型单一(多为光线良好且人体位于中心区域的图像)导致的检测器性能受限问题,使人体检测器适应各种亮度和尺度下的检测。最后,对训练集中的图像进行随机旋转(顺时针旋转$ r\times {\rm{ \mathsf{ π}}} /2 $$ r\in \{0, 1, 2, 3\} $),使人体检测器能够准确检测各种姿态(站立和非站立)下的人体。图 2给出了图像变换的示例,可以看出,变换后的图像与真实红外图像具有较为相似的直方图分布,说明图像变换方法较好地模拟了真实红外图像,从而能够为YOLO v4模型的训练提供充足的训练数据。

图 2 图像变换结果示例 Fig.2 The sample of image transformation
3.2 基于特征点匹配的漏检人体框恢复

在对移动机器人获取的图像序列进行人体检测时,由于环境外观的不确定性和观测视角的变化,时常出现某些帧漏检的情况。为此,本文提出一种基于ORB特征点匹配的漏检人体框恢复算法,利用前一帧的目标检测结果和相邻2帧之间的特征点匹配结果来恢复当前帧有可能漏检的人体框。

首先对相邻2帧的人体检测结果进行匹配追踪。设$ I_{t} $表示当前帧图像,$ I_{t-1} $表示上一帧图像,$ B_{t} =\{p_{j}^{t} \} $表示当前帧人体检测结果,其中$ p_{j}^{t} $表示当前帧的第$ j $个人体框,包含人体框的位置信息和置信度。

本文采用ORB特征点匹配相似度和人体检测框交并比相似度计算2个人体框之间的相似度,如式(1) 所示:

$ \begin{align} S_{ij} =w_{\text{orb}} \cdot \frac{N_{ij}^{\text{match}}} {N_{ij}^{\text{orb}}} +w_\text{IoU} \cdot S_{ij}^\text{IoU} \end{align} $ (1)

其中$ S_{ij} $表示$ B_{t-1} $的第$ i $个人体框$ p_{i}^{t-1} $$ B_{t} $的第$ j $个人体框$ p_{j}^{t} $之间的相似度,$ N_{ij}^{\text{match}} $表示$ p_{i}^{t-1} $$ p_{j}^{t} $所包围的2个区域之间成功匹配的ORB特征点的个数,$ N_{ij}^{\text{orb}} $表示$ p_{i}^{t-1} $$ p_{j}^{t} $包含的ORB特征点的总个数,$ S_{ij}^\text{IoU} $表示$ p_{i}^{t-1} $$ p_{j}^{t} $的交并比,$ w_{\text{orb}} $$ w_\text{IoU} $分别表示特征点相似度和交并比相似度的权重,满足$ w_{\text{orb}} +w_\text{IoU} =1 $

利用式(1) 计算$ B_{t-1} $中每个框与$ B_{t} $中每个框之间的相似度,并构造相似度矩阵,然后利用匈牙利算法获取$ B_{t-1} $$ B_{t} $的匹配结果。

获取匹配结果之后,从$ B_{t-1} $中提取未匹配的人体框构成集合$ E $。针对$ E $中的每一个人体框$ p^{t-1}_k $,利用ORB特征点匹配结果在$ I_t $中寻找最相似的区域作为人体框恢复的候选区域。如图 3所示,设$ p^{t-1}_k $区域中的ORB特征点在$ I_{t} $中对应的匹配点构成集合$ F $,具体恢复过程如算法1所示。首先,将$ F $中匹配点的最小外接矩形作为临时恢复框,并计算该框与$ p^{t-1}_k $之间的ORB特征点匹配相似度,作为临时恢复框的可信度得分;然后,循环去除$ F $中距离恢复框中心最远的点,计算新的临时框及得分,如果去除的点为离群点,则临时框的得分会提高,否则得分会降低;去除所有离群点之后,判断恢复框得分是否高于给定阈值(实验中设置为0.25),若是,则对恢复框进行扩展,使其包括整个人体。

图 3 漏检人体框恢复过程 Fig.3 Process of recovering the missed human bounding box

$ E $中的每一个人体框均进行上述操作,获取恢复后的人体框集合$ B_{t} $,用于之后人体姿态分类。

算法1  漏检人体框恢复算法
输入: $ F $、恢复阈值$ \varepsilon $、扩展参数$ \alpha $
输出: $ p_{k}^{t} $$ {\text{conf}}_{p_{k}^{t}} $
初始化: 临时框$ R= $ None,得分$ {\text{conf}}=0 $
1:  while (true) do
2:    计算$ F $的最小外接矩形$ R_{k}^{t} $
3:    $ {\text{conf}}_{\rm c} =N_{\text{match}} /N_{\text{all}} $
4:    其中,$ N_{\text{match}} $表示$ F $中所有特征点的个数,$ N_{\text{all}} $表示$ R_{k}^{t} $中所有特征点的个数
5:    if $ {\text{conf}}_{\rm c} {\rm <conf} $ then
6:      if $ {\text{conf}}_{\rm c} >\varepsilon $ then
7:        $ p_{k}^{t} =\alpha \cdot R $$ {\text{conf}}_{p_{k}^{t}} ={\text{conf}}_{p_{k}^{t-1}} $
8:        break
9:      else
10:        $ p_{k}^{t} =\text{None} $$ {\text{conf}}_{p_{k}^{t}} =\text{None} $
11:        break
12:      end if
13:    else
14:      $ R=R_{k}^{t} $$ \text{conf}=\text{conf}_{\rm c} $
15:      计算$ R_{k}^{t} $的中心点$ C_{k}^{t} $,删除$ F $中与$ C_{k}^{t} $距离最远的匹配点
16:    end if
17:  end while

3.3 基于D-S证据理论的人体框筛选机制

在人体检测任务中,受光线变化、视角变化等因素的影响,会出现大量的误检人体框。对于误检框,尽管其人体框的检测置信度较高,但由于内部目标并不是人体,所以相应的人体关键点的置信度会偏小;相反,对于一些置信度较低的真实人体框,其包含的人体关键点的置信度反而会比较高。对此,本文通过融合人体框置信度和人体关键点置信度降低误检框的得分,同时提高真实框的得分,从而获得更加准确的人体检测结果。

本文采用D-S证据理论对人体框置信度和人体关键点置信度进行融合。首先,基于人体检测框置信度和关键点置信度构造mass函数。设$ S=\{s_{1}, s_{2}\} $为假设空间,$ s_{1} $表示该人体检测结果为真,$ s_{2} $表示该人体检测结果为假,$ s_{1} $$ s_{2} $满足式(2),利用式(3) 和式(4) 定义mass函数。

$ \begin{gather} s_{2} =1-s_{1} \end{gather} $ (2)
$ \begin{gather} m(\varnothing)=0 \end{gather} $ (3)
$ \begin{gather} \sum {m_{i} (s_{j})=1}, \; \; \; s_{j} \in S, \; \; \; i=1, 2 \end{gather} $ (4)

其中$ m_{1} (s_{1}) $为人体检测框的置信度,$ m_{2} (s_{1}) $表示人体关键点的置信度。

然后,采用Dempster合成规则对人体框置信度和人体关键点置信度进行融合。合成规则如式(5) 和式(6) 所示:

$ \begin{align} m_{1} \oplus m_{2} (s_{i}) & =\frac{1}{K}m_{1} (s_{i})\cdot m_{2} (s_{i}), \; \; \; i=1, 2 \end{align} $ (5)
$ \begin{align} K & =\sum _{i=1, 2} {m_{1} (s_{i})m_{2} (s_{i})} \end{align} $ (6)

基于D-S证据理论的融合方法可以有效地根据人体框置信度和人体关键点置信度2个证据源获取更加全面、精准的人体框得分,保留正确检测,去除错误检测,为后续的序列姿态分类提供准确的人体信息。

4 基于躯干向量序列信息的人体姿态分层分类(Torso-vector-sequence-based hierarchical classification of human postures)

本文采用红外深度相机获取环境的视觉和深度数据,进而恢复人体关键点的3维空间位置信息,并根据该信息完成人体姿态分类。

图 4展示了人体关键点的检测结果,包含双眼、双耳、鼻子、颈、双肩、双肘、双手、双臀、双膝、双脚共18个关键点。在站立、平躺、侧躺和俯卧4种姿态中,上述18个人体关键点的空间位置既有相似性又有差异性,同时人体姿态的表现形式较为多样,同类姿态的不同样本之间的关键点分布也有较大差别,难以采用同种特征和同种分类器进行准确的姿态分类。

图 4 关键点检测的结果 Fig.4 The result of the keypoint detection

通过分析4种姿态可知,人在站立时各个关键点距离地面的高度明显高于其余3种姿态的关键点高度,而平躺、侧躺和俯卧3种姿态的身体主平面的方向差异较大,所以本文采用分层分类的方法在不同层提取不同的特征,如图 5所示。首先,基于躯干方向向量序列对站立和非站立姿态进行分类;然后,基于躯干法向量序列对平躺、侧躺和俯卧3种非站立姿态进行进一步分类。

图 5 分层分类框架 Fig.5 Block diagram of hierarchical classification
4.1 基于躯干方向向量序列的站立与非站立姿态分类

图 5所示,本文在分类器的第1层对站立和非站立姿态进行二值分类。人体头部、双肘、双手、双脚等关键点具有灵活多变的特性,在各种姿态类别中均可能呈现不同的分布,而双肩、双臀和双膝6个关键点的位置则较为稳定,且能够直观地体现人体是否站立。

对于双肩、双臀和双膝6个关键点,人在站立时肩部的高度高于臀部和膝盖,臀部的高度高于膝盖,而人在非站立情况下,肩部、臀部和膝盖的高度相差不大。基于上述特点,本文通过式(7) 和式(8) 提取人体的2个躯干方向向量:

$ \begin{align} \overrightarrow {HSD} & =(x_{S} -x_{H}, y_{S} -y_{H}, z_{S} -z_{H})^{\rm T} \end{align} $ (7)
$ \begin{align} \overrightarrow {KHD} & =(x_{H} -x_{K}, y_{H} -y_{K}, z_{H} -z_{K})^{\rm T} \end{align} $ (8)

其中,$ \overrightarrow {HSD} $表示由双臀中心点指向双肩中心点的方向向量,$ \overrightarrow {KHD} $表示由双膝中心点指向双臀中心点的方向向量。$ (x_{S}, y_{S}, z_{S})^{\rm T} $$ (x_{H}, y_{H}, z_{H})^{\rm T} $$ (x_{K}, y_{K}, z_{K})^{\rm T} $分别为双肩、双臀和双膝的中心点在相机坐标系下的坐标。

在获取2个躯干方向向量之后,可以根据向量与地面的夹角判断人体是否站立,如果躯干方向向量与地面的夹角接近$ 90^{\circ} $,则认为该人体为站立姿态。然而,在机器人实际探索过程中,地面的信息是未知的,因此无法直接根据上述判据进行分类。对于该问题,根据机器人移动过程中对人体进行连续观测的特点,充分利用躯干方向向量的序列信息进行分类。

假设机器人车载相机连续观测同一人体,获取了一组图像序列,在每张图像上提取人体上半身相对于相机坐标系的躯干方向向量。如果观测过程中人体姿态未发生变化,则这些躯干方向向量被投影到世界坐标系下应该重合。但考虑到实际应用中相机与世界坐标系的夹角通常无法精确已知(例如相机未标定或地面局部不平整),此时如果直接将每帧的躯干方向向量在世界坐标系下进行表示,则可得到如图 6所示的圆锥体。通过对比图 6(a)图 6(b)可知,对于站立的人体,尽管相机与地面夹角不同,但多帧图像中躯干方向向量构成的圆锥体的母线$ L_{m} $与旋转轴$ L_{x} $的夹角均接近$ 0^{\circ} $。对比图 6(c)可知,非站立的人体对应的圆锥体的母线与旋转轴的夹角较大,接近$ 90^{\circ} $。因此,人体躯干方向向量的序列信息可以较好地区分站立和非站立姿态。

图 6 向量序列构成的圆锥体 Fig.6 Cones formed by vector sequences

图 6可知,躯干方向向量序列包含了该姿态与地面的相对关系,因此本文采用ESN对固定大小的滑动窗口内的躯干方向向量序列进行建模,并利用序列信息进行人体姿态分类。

ESN是一种新型的递归神经网络,由输入层、隐藏层和输出层3个部分组成。如图 7所示,ESN的输入层和输出层与传统神经网络相同,而隐藏层则包含大量稀疏连接的内部隐藏单元,并通过储备池的方式将隐藏层单元组织在一起,这些内部隐藏单元之间的连接权值一般通过随机的方式生成且不再改变。ESN最大的特点是回声特性,即之前的数据会影响当前的结果,且ESN训练高效,适合在线学习,故本文利用ESN的回声特性在线学习躯干方向向量的序列信息,从而进行分类。

图 7 回声状态网络的结构 Fig.7 Structure of the ESN

具体来说,在训练阶段,首先利用长度为$ N_{ W} $的滑动窗口将人体躯干方向向量(上半身方向向量与下半身方向向量级联而成)序列划分为多个子序列,并为每个子序列标注姿态类别。然后,利用ESN对每一个子序列(即滑动窗口内的连续$ N_{ W} $帧图像)进行时序建模,并将ESN的内部状态和输出层参数作为该序列的时序特征。最后,利用获取的时序特征和类别标签训练SVM分类器。在测试阶段,同样利用长度为$ N_{ W} $的滑动窗口将测试数据中的人体躯干方向向量序列划分为多个子序列,然后用ESN对每个子序列进行建模以获取时序特征,最后用训练好的SVM分类器对姿态类别标签进行预测,从而完成对站立与非站立姿态的分类。

4.2 基于躯干法向量序列的非站立姿态分类

图 5所示,在第1层分类的基础上,在第2层中对平躺、侧躺和俯卧3种非站立姿态进行进一步细分。在第1层分类中,选择躯干方向向量作为分类特征,区分站立与非站立2种姿态。然而在第2层分类中,平躺、侧躺和俯卧3种姿态具有相似的躯干方向向量,因此需要计算新的分类特征。

为此,需要考虑双肩和双臀构成的躯干主平面与地面的夹角,如图 8所示。如果躯干主平面的法向量方向朝上,则对应的人体姿态为平躺,法向量方向朝下则为俯卧,躯干主平面近似垂直于地面则该姿态为侧躺。

图 8 躯干主平面 Fig.8 Principal plane of human torso

与第1层分类相似,第2层同样需要利用序列信息完成对3种非站立姿态的分类,而躯干法向量具有和躯干方向向量相似的特性——躯干法向量与地面的关系体现在向量序列之中,所以第2层分类同样采用ESN对向量序列进行建模。训练和测试阶段与第1层分类相同。

本文在不同的分类层提取不同的躯干向量,利用向量序列信息获取其对应圆锥体的母线与旋转轴之间的夹角,进而计算具有较强区分度的分类特征,同时解决单帧图像信息分类不准确的问题,实现对人体姿态的准确分类。

值得说明的是,虽然本文只考虑了4种姿态的分类,但所提出的识别方法还可用于其他类型姿态的识别,例如坐姿等姿态也可以采用躯干向量序列特征和分层分类器进行识别。

5 实验评价(Experiment evaluation)

为了充分验证本文提出的人体检测与姿态识别方法的准确性和有效性,进行了多组实验,验证低光照条件下基于图像序列信息的人体检测增强方法和基于躯干向量序列信息的人体姿态分层分类方法的性能。所有实验均在统一的硬件平台上进行,其具体配置为i7-10750H CPU,RTX 2080 Super GPU,16 G内存,Ubuntu 18.04操作系统。

5.1 基于图像序列信息的人体检测增强实验

在人体检测实验中,利用经过变换的包含900张图像的人体数据集对YOLO v4算法进行训练。为了验证算法的有效性,将未添加序列增强算法的YOLO v4检测器作为对比算法,分别在1组自主采集的正常光照下的室外彩色图像序列和4组自主采集的黑暗场景下的室内红外图像序列上进行测试。其中彩色图像序列共包含150帧图像,该序列背景复杂,且包含多种人与物体交叉遮挡的场景,具有很强的挑战性;而红外图像序列是在完全黑暗的环境下采集得到的,根据不同的人体姿态将序列划分为4组,共包含546张图像。图 9给出了2个数据集上的图像样例。

图 9 测试图像示例 Fig.9 The samples of test images

实验中利用准确率—召回率曲线评价人体检测器的性能,其中准确率表示正确检测出的人体在检测到的全部人体中所占的比例,召回率表示正确检测到的人体在全部标注人体中所占的比例。图 10给出了2种算法的准确率—召回率曲线。当准确率为100% 时,序列增强前的召回率为90.30%,而序列增强后的召回率为96.29%,序列增强后的检测性能更优。

图 10 不同算法的准确率—召回率曲线 Fig.10 Precision-recall curves of different methods

序列增强算法的良好性能得益于漏检恢复算法和基于D-S证据理论的人体框筛选算法。图 11展示了漏检恢复的效果,其中右图为当前帧图像,左图为前一帧图像,红色检测框是YOLO v4算法的检测结果。可见,机器人在当前帧中并未检测出躺着的人,存在漏检;而绿色检测框为利用漏检恢复算法正确恢复出的人体检测框,实现了对漏检人体的正确恢复。图 12给出了使用D-S证据理论进行融合前后的结果对比,其中红色框为人体检测框,绿色和蓝色数值分别为D-S证据理论融合前后的人体框置信度。由融合前后的置信度对比可知,D-S证据理论的融合能成功将误检框的置信度从0.1928降低到0.0438,同时2个正确检测框的置信度仍然保持在很高的水平。

图 11 漏检恢复结果 Fig.11 The restoration result for missed detection
图 12 基于D-S证据理论的融合结果 Fig.12 The result of fusion with the D-S evidence theory

上述实验结果表明本文提出的基于序列信息的漏检恢复算法和基于D-S证据理论的融合筛选算法能够有效地融合图像序列信息和多证据源信息,从而降低人体检测的误检率和漏检率。

5.2 姿态分类实验

利用自主采集的16组红外图像序列对本文提出的姿态分类算法进行测试,每类姿态包含4组图像序列。如图 13所示,每类姿态的4组序列包含2组正常背景下的序列、1组复杂背景下的序列和1组存在部分遮挡的序列。这16组图像序列由Kinect V2相机以拍摄视频的方式环绕人体一周(360$ ^{\circ} $)观测得到,每组视频的平均时长约为37 s,帧率为30帧/s,共计17 531帧。从中按照每10帧采集一张图像的抽样频率,共抽样得到1 753张红外图像(其中正常背景、复杂背景和部分遮挡的图像各803张、526张和424张),组成16组图像序列。将正常背景下的4组图像序列中的数据作为训练集,其余12组序列的数据作为测试集。采用分类准确率作为评价指标,即分类正确的样本在所有测试样本中所占的比例。

图 13 实验数据样例 Fig.13 Samples of experimental data

首先,在分层分类方法的每一层中,将本文提出的躯干向量序列特征与其他3种姿态分类特征进行实验比较。第一种为文[15]提出的关键点—肢体长度特征,该方法首先从图像中提取人体关键点,然后根据关键点像素坐标计算四肢长度,最后将坐标和长度结合起来作为分类特征;第二种为关键点坐标特征,利用人体的双肩、双臀和双膝6个关键点的坐标进行姿态分类;第三种为本文提出的单帧人体躯干向量特征。对以上特征以及本文的躯干向量序列特征均采用SVM分类器进行分类。

表 1表 2分别给出了4种分类特征在第1层和第2层分类器中的分类准确率。由表 1可知,在站立与非站立人体的姿态分类中,本文提出的躯干方向向量特征的分类效果优于关键点坐标特征,且躯干方向向量序列特征的分类效果优于单帧图像的躯干向量特征。而文[15]提出的关键点—肢体长度特征由于采用了手腕、脚踝等对站立与非站立姿态分类存在干扰的人体关键点,故分类结果较差。由表 2可知,相较于关键点坐标特征,本文提出的躯干法向量特征更适合于3种非站立姿态的分类,且本文提出的躯干法向量序列特征的分类效果更好。而对于关键点—肢体长度特征,其包含的手腕、脚踝等人体关键点对3种非站立姿态的分类同样会造成干扰,且所采用的四肢长度并不适用于本文的姿态分类。

表 1 站立与非站立姿态分类(分类器第1层)的实验结果 Tab. 1 Classification results of standing and non-standing postures (corresponding to the first layer of the classifier)
表 2 非站立姿态分类(分类器第2层)的实验结果 Tab. 2 Classification results of non-standing postures (corresponding to the second layer of the classifier)

其次,对分层分类方法的整体分类性能进行测试。为了验证本文提出的基于躯干向量序列特征的分层分类算法的有效性,将其与下列6种姿态分类方法进行实验对比:

1) 基于YOLO v4算法[8]的姿态分类算法。YOLO v4算法不仅能够进行目标检测,还能根据图像外观对目标类别进行区分,目前被广泛地应用于姿态、手势分类[18]场景中。本实验在包含1300张各种姿态的人体图像的数据集上对YOLO v4算法进行训练,并与本文算法进行对比。

2) 基于ResNet50算法[19]的姿态分类算法。ResNet50算法是一种常用且高效的图像分类算法,本实验同样在包含1300张各种姿态的人体图像的数据集上对ResNet50算法进行训练,并与本文算法进行对比。

3) 文[15]提出了基于关键点—肢体长度特征的分层分类方法。该方法将单帧图像的全身关键点坐标,以及四肢长度作为分类特征,并利用本文提出的2层分类方法进行姿态分类。

4) 基于关键点坐标特征的直接分类方法。该方法将单帧图像的双肩、双臀、双膝坐标作为分类特征,采用SVM分类器对4种姿态同时进行分类。

5) 基于关键点坐标特征的分层分类方法。该方法将单帧图像的双肩、双臀、双膝坐标作为分类特征,利用本文提出的2层分类方法进行姿态分类,每一层均采用SVM分类器。

6) 基于单帧躯干向量特征的分层分类方法。该方法将单帧图像的躯干方向向量和躯干法向量分别作为第1层和第2层分类器的分类特征,每一层均采用SVM作为分类器。

表 3给出了7种姿态识别方法的分类准确率对比结果。图 14给出了本文算法分类成功的示例。通过实验对比可知,本文提出的基于躯干向量序列的分层分类方法的准确率明显优于其他分类算法。对于YOLO v4算法,尽管训练数据多于本文算法,但由于其网络较为复杂,现有的1300帧数据明显不足,而ResNet50算法面临同样的问题。对于基于关键点—肢体长度特征的分层分类算法,由于该特征在第2层分类中失效,故整体分类性能较差。相比于基于关键点坐标特征及单帧躯干向量特征的分类算法,本文算法的分类准确率更高,且对观测视角的鲁棒性更强。

表 3 低光照条件下7种方法的姿态分类结果 Tab. 3 Posture classification results of seven methods under low illuminations
图 14 复杂视角下的姿态分类结果 Fig.14 Posture classification results under complex visual angles

另外,在该实验中,本文算法对于全部测试数据的分类准确率为95.36%,其中针对正常背景、复杂背景和目标部分遮挡3种情况的分类准确率分别为96.50%、94.68% 和95.52%。可见,本文算法在不同场景下均具有很高的识别准确率,体现出了较强的鲁棒性。

5.3 不同光照条件下的对比实验

为了说明低光照场景的特殊性以及本文算法在低光照场景下的优势,选取正常光照和低光照条件下的图像数据,采用不同识别方法进行实验测试。依据上述红外图像序列的采集方式获取12组正常光照下的彩色图像序列,其中每类姿态包含3组图像序列。如图 15所示,每类姿态的3组序列包含一组正常背景下的序列、一组复杂背景下的序列和一组存在部分遮挡的序列。这12组图像序列同样由Kinect V2相机拍摄得到,共计11 769帧。从中按照每10帧采集一张图像的抽样频率,共抽样得到1177张彩色图像,组成12组图像序列。然后,将正常背景下的4组图像序列中的数据作为训练集,其余8组序列的数据作为测试集。

图 15 实验数据样例 Fig.15 Experimental data samples

表 4给出了7种姿态识别方法在正常光照和低光照条件下分类准确率的对比结果。由表 4可知,各个算法在正常光照下的分类结果均优于低光照条件下的结果,这得益于正常光照下图像质量较高、人体纹理较清晰、提取的关键点更加准确。相比之下,由于机器人在低光照场景下获取的图像质量较差,关键点提取与特征计算受到较大影响,导致姿态识别效果相对稍差。尽管如此,本文提出的算法依然获得了最好的识别效果。

表 4 不同光照条件下7种方法的分类结果 Tab. 4 Classification results of seven methods under different illuminations
5.4 算法运行时间的评估

表 5给出了在前述计算机运行环境配置下本文算法的各个部分以及整体的平均处理时间。由表 5可知,移动机器人完成一张图像的人体检测与关键点检测平均耗时33.51 ms,而特征提取与分类所需的时间则小于1 ms。故本文提出的姿态分类算法能够满足机器人在线运行的实时性需求。此外,由于本文算法采用人体关键点坐标进行序列信息学习,所用的分类特征为3维向量而非复杂的图像特征,且本文采用的ESN是一种轻量级的神经网络,其内部储备池为随机连接而非完全连接,这大大降低了ESN对空间的占用,保证了机器人能够对视频流进行实时处理。

表 5 时间评估 Tab. 5 Time evaluation
5.5 算法性能与训练数据量关系评估

为了说明不同的训练数据量对本文算法的影响,在5.2节的训练数据中选取不同数量的图像对本文算法进行训练,并测试本文提出的姿态分类算法的性能。图 16给出了本文算法在不同训练数据量下的姿态识别准确率,由图 16可知,本文算法对训练数据量要求较低,在每类姿态只有20张训练图像时,算法的分类准确率能达到87.08%,而在每类姿态只有80张训练图像时,算法的分类准确率达到93.29%,这得益于本文提出的躯干向量时序特征具有更强的区分能力,并且计算简便、训练难度较小。

图 16 训练数据量对算法性能的影响 Fig.16 The impact of the amount of training data on the performance of the algorithm
6 结论(Conclusion)

针对低光照场景下的人体检测与姿态识别问题,利用相邻帧人体检测框之间的关联关系有效降低了人体检测的误检率和漏检率,提高了低光照场景下人体检测的准确率。同时,利用基于躯干向量序列特征的分层分类方法对人体姿态进行准确的识别,解决了单帧关键点提取不稳定造成的分类错误问题,为特殊环境下的人员检测和姿态识别任务提供了一种有效的解决方案。在不同图像数据上的对比实验证明了本文算法在低光照场景下能够高效且准确地实现人体检测与人体姿态识别。在未来的工作中,将对运动的人体进行分析,尝试利用躯干向量序列信息对运动的人体进行识别和分类,并尝试将检测分类结果结合到机器人定位与建图中实现包含人体语义信息的地图构建。

参考文献(References)
[1]
Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2005: 886-893.
[2]
Viola P A, Jones M J. Rapid object detection using a boosted cascade of simple features[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2001. DOI: 10.1109/CVPR.2001.990517.
[3]
Ojala T, Pietikainen M, Maenpaa T. Multiresolution gray-scale and rotation invariant texture classification with local binary patterns[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2002, 24(7): 971-987.
[4]
Dalal N, Triggs B, Schmid C. Human detection using oriented histograms of flow and appearance[M]//Lecture Notes in Computer Science, Vol. 3952. Berlin, Germany: Springer, 2006. DOI: 10.1007/11744047_33.
[5]
Ren S Q, He K M, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.
[6]
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2016: 779-788.
[7]
Redmon J, Farhadi A. YOLOv3: An incremental improvement [DB/OL]. (2018-04-08) [2018-12-11]. https://arxiv.org/abs/1804.02767.
[8]
Bochkovskiy A, Wang C Y, Liao H M. YOLOv4: Optimal speed and accuracy of object detection[DB/OL]. (2020-04-23) [2020-11-05]. https://arxiv.org/abs/2004.10934.
[9]
Chen C, Chen Q F, Xu J, et al. Learning to see in the dark[C]// IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2018: 3291-3300.
[10]
Sasagawa Y, Nagahara H. YOLO in the dark-domain adaptation method for merging multiple models[M]//Lecture Notes in Computer Science, Vol. 12366. Berlin, Germany: Springer, 2020. DOI: 10.1007/978-3-030-58589-1_21.
[11]
Anil K, Nalini K, Lakshmanan S. Object detection using Gabor filters[J]. Pattern Recognition, 1997, 30(2): 295-309.
[12]
Qiu W, Wang K D, Li S Y, et al. YOLO-based detection technology for aerial infrared targets[C]//IEEE Annual International Conference on CYBER Technology in Automation, Control, and Intelligent Systems. Piscataway, USA: IEEE, 2019: 1115-1119.
[13]
Johansson G. Visual perception of biological motion and a model for its analysis[J]. Attention Perception and Psychophysics, 1973, 14(2): 201-211.
[14]
Zhang P, Lan C, Xing J, et al. View adaptive recurrent neural networks for high performance human action recognition from skeleton data[C]//IEEE International Conference on Computer Vision. Piscataway, USA: IEEE, 2017: 2136-2145.
[15]
Pismenskova M, Balabaeva O, Voronin V, et al. Classification of a two-dimensional pose using a human skeleton[C]//XIII International Scientific-Technical Conference "Dynamic of Technical Systems". Rostov-on-Don, Russian Federation: EDP Sciences, 2017. DOI: 10.1051/matecconf/201713205016.
[16]
Jaeger H. The "echo state" approach to analysing and training recurrent neural networks[R]. Sankt Augustin, Germany: German National Research Institute for Computer Science, 2001.
[17]
Fang H S, Xie S Q, Tai Y W. RMPE: Regional multi-person pose estimation[C]//IEEE International Conference on Computer Vision. Piscataway, USA: IEEE, 2017: 2353-2362.
[18]
Abdullah M, Mazhar J A, Awais Y, et al. Real-time hand gesture recognition based on deep learning YOLOv3 model[J]. Applied Sciences, 2021, 11(9). DOI:10.3390/app11094164
[19]
He K M, Zhang X Y, Ren S Q, et al. Deep residual learning for image recognition[C]//IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, USA: IEEE, 2016: 770-778.