史小强, 黄 钢,2, 苏可怡
(1.上海理工大学健康科学与工程学院, 上海 200093;2.上海健康医学院附属嘉定中心医院上海市分子影像学重点实验室, 上海 201318;3.中国医药工业研究总院, 上海 201203)
随着科技的发展,含有人体信息的二维图像被应用到各个领域。人体图像包含人体骨骼关节点信息,若是能有效利用,这些信息就可以在动作识别、人工智能、疾病预测等领域发挥出重要价值。目前,人体关键点检测主要用于人体姿态估计[1]、人机交互[2]、辅助医疗器械诊断[3]等领域。
由于二维人体图像的复杂性较高,如受遮挡因素、环境因素、角度因素等的影响,使二维人体关键点检测受到巨大挑战。通过对二维人体关键点检测方法的研究,发现无论是单人图像还是多人图像,基于深度方法的检测精度都明显高于基于传统方法的检测精度;而且,基于传统的人体关键点检测方法主要依赖于提取人工设定的特征,不但效率低,而且会耗费大量的人力。目前,基于深度学习的方法是用于二维人体关键点检测的主流方法。
二维人体关键点检测又可分为传统方法和深度方法,在深度学习方法应用于人体关键点检测之前,单人二维人体关键点检测是传统方法的研究重点。深度学习理论实现了人体关键点检测从单人二维关键点检测到多人关键点检测的推广,并且检测精度有了极大的提升,使人体关键点检测能够应用在更多的场景中。
人体关键点检测的传统方法主要是依赖于图像的图形结构实现检测,例如边缘检测、角点检测、区域分割等技术。此外,基于图模型的方式也被提出,比如随机场模型和依赖图模型。1973年,FISCHLER等[4]依靠图模型提出图形结构的匹配(Matching of Pictorial Structures,PSM)来检测面部结构的关键点。FELZENSZWALB等[5]在FISCHLER的基础上对算法进行了改进和优化,使得PSM算法更加高效、准确,并且可以在更多的应用领域中使用。此后,ANDRILUKA等[6]将PSM应用在人体关键点检测的模型中,提出了一种基于部件的模型,将人体分解为多个部件,并使用图形结构匹配算法检测每个部件的关键点,从而实现全身姿态估计。在此基础之上,FELZENSZWALB等[7]提出一种可变形部件模型(Deformable Part Model,DPM),将物体分解为多个部分并通过对局部特征进行建模捕捉物体的各种形状变化。在人体关键点检测任务中,DPM可以用于学习和识别不同人体姿态的结构模式。此后,基于图像的图形结构的人体关键点检测算法成为传统方法的主流算法。
基于图像的图形结构的人体关键点检测算法主要包括用来描绘人体组成部分的部件模型及描绘部位的空间关系的空间模型。NAEGELI等[8]将图像分割技术应用在人体关键点检测中,去除了人体图像的背景对检测精度的干扰。ACHILLES等[9]提出了一种基于具有决策功能的部位检测器,以提高人体关键点检测的检测精度。在基于空间模型的算法中,WANG等[10]提出了一种非树形结构,解决了人体关键点检测中自遮挡的问题。YANG等[11]提出了混合部件模型,解决了空间约束的多变性。
基于传统方法的二维人体关键点检测需要人工设计特征,具有高效率、效果直观、方法简单的优点。但是,由于人体图像的背景复杂多变,使其检测准确度难以提升,无法达到目前人们的需求。
随着深度学习在计算机视觉领域中的应用,目前很多人体关键点检测方法都是基于深度学习方法,并且已经取得了良好的效果。无论是单人关键点检测还是多人关键点检测,深度学习方法在其中都发挥了良好的性能。
2.2.1 基于深度方法的二维单人关键点检测
TOSHEV等[12]第一次将卷积神经网络(Convolutional Neural Networks,CNN)应用到人体关键点检测中,并且提出了深度姿态估计DeepPose算法,首先应用DNN[13](Deep Neural Networks)深度神经网络粗略检测出部分人体关键点的位置,其他关键点采用DNN回归预测其位置,在保证人体图像的尺寸相同且计算参数不变的情况下,级联的回归器可以获得更加精确的人体关键点的位置。DeepPose是人体关键点检测从传统方法过渡到深度方法的奠基石。
神经网络在提高精度的同时也会带来一定的弊端,随着神经网络层数的增加,其梯度会逐渐减少。对此,WEI等[14]提出了卷积状态机(Convolutional Pose Machine,CPM),它能够直接从数据中学习图像特征和空间上下文特征。首先CPM在多阶段估计中确定人体关键点的大致位置,然后在每个阶段不断精确关键点的位置。CPM组合了多个卷积网络在多阶段的卷积网络中不断确定检测点的结果,因此解决了随着神经网络层数的增加,伴随着其梯度减少的问题。
以往的网络结构仅使用最底层的卷积特征,这可能会导致有效信息丢失,NEWELL等[15]提出了一种能够利用多尺度特征识别人体图像的网络结构叠加的沙漏网络(Stacked Hourglass Net-works,SHN),该结构使用多个沙漏网络进行级联,以提高检测效果,充分利用了人体关键点之间的相关性。
LIFSHITZ等[16]使用一致投票的方式定位关键点位置,提出了深度共识投票(Deep Consensus Voting,DCV),在检测人体关键点位置时,不用继续依赖稀疏的关键点位置集,而是使用高密度的多目标进行投票,不仅检测效果好,还可以计算与检测图像相关的联合关键点的概率。
在深度学习层面,人体关键点检测已经取得了良好的泛化性能,但是无法在轻量级的环境中运行,ZHANG等[17]提出了一种快速姿态估计模型FPD(Fast Pose Distillation),这是一种轻量化的人体关键点检测模型,使用了4个沙漏模型,能够以较低的计算空间执行。该网络在降低人体关键点检测的网络复杂度方面取得了较好的效果。
截止到目前,基于深度方法的二维单人关键点检测研究非常丰富且全面,现有的检测研究多集中在提高算法的检测精度和检测准确率方面。
2.2.2 基于深度方法的二维多人关键点检测
在单人关键点检测中,人数是已知的,但是对于多人关键点检测来说,人数和位置都是未知的,因此在人体关键点检测任务中,多人关键点检测的难度更大。基于深度方法的多人关键点检测主要分为2类:一类是自上而下的方法,另一类是自下而上的方法,具体分类如图1所示。
2.2.2.1 自下而上
自下而上的原理是首先估计图像中所有人的人体关键点,然后按照一定的方法把所得到的人体关键点的位置分配给图像中的每个人,从而得到图像中每个人体关键点的位置。
PISHCHULIN等[18]提出了DeepCut,先使用CNN选出人体部位的区域,将所选出的区域作为一个节点,把所有的区域节点合成一张图像,然后计算节点之间的关联性权重,将其看成ILP(Integer Linear Program)线性编程问题,这种方法通过图论节点的聚类,有效地进行非极大值的抑制。此外,此算法在识别被遮挡的身体部位方面取得了良好的效果。在DeepCut的基础上,INSAFUTDINOV等[19]为了降低其网络复杂度,提出了性能更好的残差网络DeeperCut。DeepCut和DeeperCut的方法都属于整数线性规划,在解决多变量最优决策的问题上有着良好的效果,但是该方法对数据的准确性要求很高且计算量大。
CAO等[20]提出了一种高效检测多人关键点检测的方法OpenPose。通过网络训练将身体部位跟图像相互联系,利用全局上下文进行编码。该架构通过同一顺序预测过程的两个分支联合学习局部位置及其关联性,实现了高检测精度的同时具备实时性的多人关键点检测。基于OpenPose算法,OSOKIN等[21]提出了轻量化的OpenPose,在保证精度的同时,还提高了人体关键点检测的检测速度。苏波等[22]通过改进OpenPose,优化了缩减预测阶段的重复分支,提高了检测精度。
基于单人关键点检测,NEWELL等[23]提出了一种通用检测分组方法,用标签将每个检测与同一组中的其他检测相关联。将关联嵌入方法与堆叠Hourglass网络集成在一起,为每个身体关节生成和标记热图,然后将具有相似标签的身体关节分组到个人身上,从而实现多人关键点检测。
2.2.2.2 自上而下
自上而下的原理主要包括目标检测和人体关键点检测两个部分,首先利用人体检测器检测出图像中的所有人体,然后对选出的每个人使用单人关键点检测。因此,自上而下的方法主要侧重于人体检测器的研究,常用的人体部位检测器有Faster R-CNN(Faster Region-Convolutional Neural Networks)[24]、Mask R-CNN(Mask Region-Convolutional Neural Networks)[25]、FPN(Feature Pyramid Networks)[26]等。
Mask R-CNN的原理是先将图像中人体框选出来,然后分割出特征图用于关键点检测。与其他自上而下的人体关键点检测方法相比,基于Mask R-CNN的方法在精度上表现更好,同时速度也较快,这也是它被广泛使用的原因之一。比如,宋玲等[27]提出的SN Mask R-CNN是在Mask R-CNN的基础上加入通道重组,以提升其网络性能,在保留精度的同时提高了其检测速度。
PAPANDREOU等[28]提出了一种自上向下的多人关键点检测方法,首先利用Faster R-CNN估计出目标人体在图像中的尺寸和位置,然后根据检测出目标人体的关键点使用ResNet估计每个关键点的偏移量和密度热图,最后将偏移量作用在热力图上完成多人关键点检测。
CHEN等[29]提出一种级联金字塔网络(Cascaded Pyramid Network,CPN),首先粗略地检测人体关键点,然后利用RefineNet网络检测被遮挡的以及比较难检测的关键点,这个模型能够同时兼顾人体关键点的局部信息和全局信息。
在人体关键点检测的发展过程中有很多公开的数据集,比如利兹体育姿势数据集(LSP)[30],这是一种包含多种人体体育姿势的数据集,其中分为竞技、羽毛球、体操、跑酷等运动姿态,一共约有2 000张图像且带有姿势注解;宾夕法尼亚大学提供的好莱坞电影中的图像数据集(FLIC)[31],包含约5 000张图像,其中每张图像都被标注了10个上半身关节点;来自马克斯·普朗克计算机科学研究所的数据集(MPII)[32],涵盖了410种人体动作的照片,整个数据集包含25 000张图像,标注了其中40 000名人体的关节点;最常用的是由微软团队提供的微软通用上下文中的物体数据集(MSCOCO)[33],其数据场景非常丰富,MSCOCO数据集是目前主流的人体关键点检测数据集,它的数据量主要包括训练集、验证集及测试集,一共有330 000张图片,标记的图像超过200 000张。除此之外,还有比赛用的数据集,如智能算法挑战赛AI Challenger,其中包含700 000个人体关键点标注,300 000张图片场景标注和语义描述数据,是国内迄今公开的规模最大的科研数据集。表1列出了6种常用的人体关键点检测的数据集,包括数据集的检测类别、关键点数量及数据集包含的图片数量。
表 1 人体关键点检测数据集Tab.1 Datasets of human body key points
(1)数据集存在的问题:目前使用的数据集中大多是人体部位的常规动作,随着二维人体关键点检测的发展,这些数据集已经不能满足实际应用的要求,比如跌倒检测、医学康复动作分析等;而且,目前的研究大多使用有监督的训练模式,所使用的数据集都是经过人力标注的,这不但浪费人力资源,还会使模型的关键点检测精度降低。因此,今后的研究中应当尽可能地增加数据集的种类,使人体关键点检测可以应用到更多的场景中。
(2)研究中出现的问题:目前,人体关键点检测算法大多比较复杂,网络运算量大,因此出现了不少关于轻量化二维人体关键点检测网络,比如VGGNet、ResNet、GoogleNet等。已经有很多研究者为了降低网络参数的数量,将轻量化的网络结构应用到人体关键点检测中。
(3)三维人体关键点检测:三维人体关键点需要基于二维的基础,就是在二维人体关键点结果的基础上加上深度信息。深度信息的引入,使三维的人体关键点检测比二维人体关键点检测更加精准,拥有更高的研究价值。二维人体关键点的发展为实现更好的三维人体关键点检测奠定了基础。
二维人体关键点检测作为计算机视觉的基本任务,在各个领域已经发挥了重要的作用。未来,二维人体关键点检测在网络复杂度及应用领域还有很大的发展空间。本文对二维人体关键点检测的发展从传统方法到深度方法的应用方面进行了阐述,综合分析了提升检测精度和检测性能的相关模型,并对二维人体关键点检测的发展前景进行了展望。
猜你喜欢关键点人体精度人体“修补匠”小哥白尼(趣味科学)(2022年1期)2022-04-26聚焦金属关键点中学生数理化·中考版(2022年12期)2022-02-16人体冷知识(一)大科技·百科新说(2021年10期)2021-12-31肉兔育肥抓好七个关键点今日农业(2021年8期)2021-11-28排便顺畅,人体无毒一身轻基层中医药(2021年5期)2021-07-31基于DSPIC33F微处理器的采集精度的提高电子制作(2018年11期)2018-08-04奇妙的人体止咳点特别健康(2018年3期)2018-07-04GPS/GLONASS/BDS组合PPP精度分析测绘科学与工程(2016年5期)2016-04-17改进的Goldschmidt双精度浮点除法器电子设计工程(2015年3期)2015-02-27医联体要把握三个关键点中国卫生(2014年2期)2014-11-12扩展阅读文章
推荐阅读文章
恒微文秘网 https://www.sc-bjx.com Copyright © 2015-2024 . 恒微文秘网 版权所有
Powered by 恒微文秘网 © All Rights Reserved. 备案号:蜀ICP备15013507号-1