CN111368673B - 一种基于神经网络的人体关键点快速提取方法 - Google Patents
一种基于神经网络的人体关键点快速提取方法 Download PDFInfo
- Publication number
- CN111368673B CN111368673B CN202010118903.5A CN202010118903A CN111368673B CN 111368673 B CN111368673 B CN 111368673B CN 202010118903 A CN202010118903 A CN 202010118903A CN 111368673 B CN111368673 B CN 111368673B
- Authority
- CN
- China
- Prior art keywords
- layer
- key point
- neural network
- convolution
- human body
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Evolutionary Biology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于神经网络的人体关键点快速提取方法,包括步骤:1)构建训练数据集;2)人体关键点神经网络模型的设计;3)使用数据增强方法对原始输入图像进行数据增强;4)对设计的模型进行多次迭代训练;5)使用已有的行人检测方法以及训练好的人体关键点神经网络模型对图像中的行人进行关键点提取,其中,对于实际应用过程中容易产生的关键点噪声,使用左右翻转的方法来抵抗噪声,实现对关键点提取过程中的有效降噪。本发明可使人体关键点提取在满足检测精确度前提下大大提高检测速度,实现从上到下的人体关键点提取中单人关键点提取的功能。
Description
技术领域
本发明涉及图像处理和计算机视觉的技术领域,尤其是指一种基于神经网络的人体关键点快速提取方法。
背景技术
人体关键点提取在计算机视觉领域中是指对图像中行人的关键点进行检测,定位并返回人体各个部位关键点的位置坐标,由坐标即可得到行人的当前姿态。由于图片中行人的大小不一,行人的姿态各异,以及行人之间的互相遮挡等因素的影响,人体关键点提取是十分具有挑战性的难题。
人体关键点提取具有极其重大的意义,它可以在智能视频监控,病人监护系统,人机交互,虚拟现实,人体动画,智能家居,智能安防,运动员辅助训练和人体行为分析等应用中被广泛使用。因为智能视频监控,游戏娱乐产业等领域越来越被重视,对人体关键点提取的需求也逐步提升,人体关键点提取技术越来越受到学术界和工业界的重视。
目前实现行人检测方法有很多种,其中主要包含传统方法和基于神经网络的深度学习方法。传统方法一般的思路是在几何先验的基础上再进行模版匹配,传统方法的缺陷是几何先验需要人为设定,然而现实场景中的行人往往姿态各异,因此很难寻找几何先验知识,另外特定的几何先验知识往往并不适用于所有场景。因此,近年来深度学习的方法被广泛应用到人体关键点提取中,有一系列算法应运而生,如openpose、alphapose、CPN等。然而这些算法固然定位精准,但由于网络结构过于冗余、计算量过大等原因导致前向推理速度较慢,因此难以落地到实际应用。
基于深度学习的人体关键点提取方法主要分为两种:从上到下和从下到上。其中从上到下的人体关键点提取方法主要包含两个部分,行人检测和单人关键点提取,而从下到上的方法也包含两个部分,关键点检测和关键点聚类。由于从下到上的方法在关键点分配的时候会存在二义性,导致关键点连接错误,同时从下到上的方法中关键点聚类是NP完全问题,计算复杂度较高,因此现在绝大部分基于深度学习的人体关键点提取方法是从上到下的。
综合以上论述,发明一种兼顾实时性和准确度的基于神经网络的人体关键点提取方法具有较高的科学研究和实际应用价值。
发明内容
本发明的目的在于克服现有传统方法中需要人工提取先验知识的不足,以及改进现有绝大多数深度学习方法中网络结构过于复杂,前向推理速度慢的缺陷,提出了一种基于神经网络的人体关键点快速提取方法,该方法采用基于组合卷积模块和反卷积模块的神经网络,并使用神经网络输出的热力图的smooth-L1损失进行训练,使人体关键点提取在满足检测精确度前提下大大提高检测速度,实现从上到下的人体关键点提取中单人关键点提取的功能。
为实现上述目的,本发明所提供的技术方案为:一种基于神经网络的人体关键点快速提取方法,包括以下步骤:
1)通过对coco数据集的图片单人裁剪和归一化操作,同时对标注信息进行同样变换,构建训练数据集;
2)根据训练数据集和实际应用场景的特点,设计合适的人体关键点神经网络模型;
3)为增大网络模型训练数据量及适用性,需要使用数据增强方法对原始输入图像进行数据增强;
4)对设计的人体关键点神经网络模型设定训练参数进行多次迭代训练,并保存训练的神经网络模型参数,并根据指标选择最优模型;
5)将待进行人体关键点提取的图像首先使用已有的行人检测方法将图像中的行人检测出来,然后将行人裁剪出来并归一化到固定长宽,并输入到训练好的人体关键点神经网络模型中进行前向推理,得到热力响应图,即特征图,将热力响应图最大的位置映射回原图,即完成人体关键点提取的功能;其中,对于实际应用过程中容易产生的关键点噪声,使用左右翻转的方法来抵抗噪声,实现对关键点提取过程中的有效降噪。
在步骤1)中,对coco公开数据集注释文件中的关键点进行操作,coco数据集中关键点的注释属性为:关键点坐标、关键是否可见、关键点数量及骨架;关键点在图片中的横纵坐标分别用x,y表示;关键点是否可见使用v来表示,其中定义v=0表示该关键点未被标记,v=1表示该关键点被标记但是不可见,而v=2表示该关键点被标记且可见;骨架信息表示不同关键点之间的连线;首先,对可见关键点进行求取外接矩形框的操作,然后矩形框的中心保持不变,将矩形的宽高扩大1.2倍,如果超过图片边界,那么就以图片的边界为界限,这样能够确保外接矩形框包含了该行人的整个身体。
在步骤2)中,综合考虑数据集图片以及应用场景的特点,设计合适的人体关键点神经网络模型,包括以下步骤:
2.1)搭建关键点提取网络
根据实时性和高精度要求构建关键点提取网络,其结构如下:
第一层为组合卷积模块A,它由一个步长为2的卷积层、一个批归一化层、一个relu非线性激活层组成;
第二层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第三层为组合卷积模块C,它由一个步长为2的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第四层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第五层为组合卷积模块C,它由一个步长为2的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第六层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第七层为组合卷积模块C,它由一个步长为2的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第八层到第十二层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第十三层为组合卷积模块C,它由一个步长为2的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第十四层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第十五层为反卷积模块D,它由一个步长为2的pixelshuffle上采样层,一个Relu非线性激活层组成;
第十六层为反卷积模块D,它由一个步长为2的pixelshuffle上采样层,一个Relu非线性激活层组成;
第十七层为反卷积模块D,它由一个步长为2的pixelshuffle上采样层,一个Relu非线性激活层组成;
第十八层为卷积模块E,它由一个步长为1的卷积层组成;
2.2)设置损失函数
设置损失函数为smooth-L1损失函数,公式如下:
式中,ynij为神经网络模型输出的第n个关键点的特征图在位置(i,j)上的响应,而表示真实标签的第n个关键点的特征图在位置(i,j)的响应;其中,真实标签的制作为:以变换后的coco数据集标注的每个关键点为中心生成一个高斯分布,高斯核大小为9×9,在高斯分布以外的区域标注为0;
总的损失函数为各个关键点的smooth-L1损失的求和,即
在步骤3)中,为增大网络模型训练数据量及适用性,需要使用数据增强方法对原始输入图像进行数据增强,包括:
a、随机添加高斯、椒盐噪声
对输入的图像,以0.25的概率随机添加高斯噪声,0.25的概率添加椒盐噪声;
b、随机镜像翻转
对输入图像以0.5的概率进行随机镜像翻转,该变换需要同时应用到标注上;
c、随机调整对比度
修改色调和饱和度实现对比度转换;
d、随机旋转
对图片以0.25的概率进行随机旋转,旋转角度在-25°~25°之间,该变换需要同时应用到标注上。
在步骤4)中,将步骤3)数据增强后的图像输入设计好的人体关键点神经网络模型中,对模型设定训练参数进行训练,并保存训练的神经网络模型参数,包括以下步骤:
4.1)设置训练参数
设置训练优化器为Adam、初始学习率为10-5,学习率衰减为每迭代1个epoch衰减为原来的0.5;迭代总次数为400个epoch、批次大小为32;初始化方法选择为截断高斯分布,权重衰减系数选择为4×10-5;
4.2)设置训练完成标志
当训练达到400个epoch或者模型在验证集上达到更好效果时,即可停止训练;
4.3)保存神经网络模型
训练完成后,将神经网络模型的结构和权重一并保存。
在步骤5)中,首先使用YOLOv3来检测出图像中行人的位置,然后保持检测框的中心点不变,宽高增大为原来的1.2倍,保证检测框中有完整的行人;然后根据检测框,在原图像中裁剪出单个行人,将裁剪出来的行人输入到步骤4)中已经训练好的人体关键点神经网络模型,取出每个关键点特征图的最大值所在的位置,即为这个关键点最终的位置;由于噪声都是对称的,因此将待检测图像进行翻转,将翻转前后的图像一起传入人体关键点神经网络模型进行前向推理,提取其关键点,然后对翻转后的图像的特征图进行通道之间的交换,并与翻转前图像的特征图进行加和求平均操作,能够得到降噪后的最终特征图,对降噪之后的特征图,求取其最大输出响应对应的位置,并将响应位置乘以设定的缩放倍数和加上偏移量,从而得到各个部位的关键点坐标,最后将所有检测出来的关键点,按照人体结构连接起来,得到最后关键点提取结果。
本发明与现有技术相比,具有如下优点与有益效果:
1、本发明的基网络选用参数量较少的深度可分离卷积模块,将图像区域和图像通道的卷积运算进行拆分,降低了参数量,从而使网络更加轻量化,提高关键点提取速度;
2、本发明在上采样过程中使用PixelShuffle进行上采样,能够在不降低精度的前提下减少运算量,使网络前向传播速度更快;
3、本发明将水平翻转前后的图像与原图一起进行前向推理,然后对水平翻转后的图像的特征图进行通道之间的交换,并与翻转前图像的特征图进行加和求平均操作,减少神经网络中由左右不对称引起的噪声。
附图说明
图1为本发明方法的逻辑流程图。
图2a为组合卷积模块A示意图。
图2b为组合卷积模块B示意图。
图2c为组合卷积模块C示意图。
图2d为反卷积模块D示意图。
图2e为卷积模块E示意图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
如图1所示,本实施例所提供的基于神经网络的人体关键点快速提取方法,包括以下步骤:
1)对coco公开数据集注释文件中的关键点进行操作,coco数据集中关键点的注释属性为:关键点坐标、关键是否可见、关键点数量及骨架。关键点在图片中的横纵坐标分别用x,y表示;关键点是否可见使用v来表示,其中定义v=0表示该关键点未被标记,v=1表示该关键点被标记但是不可见,而v=2表示该关键点被标记且可见;骨架信息表示不同关键点之间的连线。首先对可见关键点(v=2)进行求取外接矩形框的操作,然后矩形框的中心保持不变,将矩形的宽高扩大1.2倍(如果超过图片边界,那么就以图片的边界为界限),这样可以确保外接矩形框包含了该行人的整个身体。
2)根据步骤1)中的矩形框,将coco数据集中的每个可见且被标注的行人都裁剪出来,并把裁剪出来的矩形归一化到384×288,这样既可以保持行人的形状大致保持不变,也可以将裁剪出来的图像归一化到同一尺寸,以便后面神经网络的训练。以人体关键点快速准确的提取为目的,构建合适合适的人体关键点神经网络模型。模型主要包括以下几个部分:
2.1)搭建关键点提取网络
根据实时性和高精度要求构建关键点提取网络,其结构如下:
输入图像为3×384×288。
第一层为组合卷积模块A,如图2a所示。模块首先通过卷积层,卷积核大小为(3,3)步长为2,卷积核数量为32,输出为32×192×144,然后通过批归一化层和relu激活层,最终输出为32×192×144。
第二层为组合卷积模块B(亦可称为深度可分离卷积模块),如图2b所示。模块首先输入深度卷积层,卷积核为(3,3),步长为1,卷积核数量为32,输出为32×192×144,然后通过批归一化层和relu激活层,大小为32×192×144。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为64,步长为1,输出为64×192×144。
第三层为组合卷积模块C(亦可称为深度可分离卷积模块),如图2c所示。模块首先输入深度卷积层,卷积核为(3,3),步长为2,卷积核数量为64,输出为64×192×144,然后通过批归一化层和relu激活层,大小为64×96×72。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为128,步长为1,输出为128×96×72。
第四层为组合卷积模块B(亦可称为深度可分离卷积模块),如图2b所示。模块首先输入深度卷积层,卷积核为(3,3),步长为1,卷积核数量为128,输出为128×96×72,然后通过批归一化层和relu激活层,大小为128×96×72。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为128,步长为1,输出为128×96×72。
第五层为组合卷积模块C(亦可称为深度可分离卷积模块),如图2c所示。模块首先输入深度卷积层,卷积核为(3,3),步长为2,卷积核数量为128,输出为128×48×36,然后通过批归一化层和relu激活层,大小为128×48×36。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为256,步长为1,输出为256×48×36。
第六层为组合卷积模块B(亦可称为深度可分离卷积模块),如图2b所示。模块首先输入深度卷积层,卷积核为(3,3),步长为1,卷积核数量为256,输出为256×48×36,然后通过批归一化层和relu激活层,大小为256×48×36。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为256,步长为1,输出为256×48×36。
第七层为组合卷积模块C(亦可称为深度可分离卷积模块),如图2c所示。模块首先输入深度卷积层,卷积核为(3,3),步长为2,卷积核数量为256,输出为256×24×18,然后通过批归一化层和relu激活层,大小为256×24×18。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为512,步长为1,输出为512×24×18。
第八层到第十二层为5个组合卷积模块B(亦可称为深度可分离卷积模块),如图2b所示。模块首先输入深度卷积层,卷积核为(3,3),步长为1,卷积核数量为512,输出为512×24×18,然后通过批归一化层和relu激活层,大小为256×48×36。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为512,步长为1,输出为512×24×18。
第十三层为组合卷积模块C(亦可称为深度可分离卷积模块),如图2c所示。模块首先输入深度卷积层,卷积核为(3,3),步长为2,卷积核数量为512,输出为512×24×18,然后通过批归一化层和relu激活层,大小为512×12×9。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为1024,步长为1,输出为1024×12×9。
第十四层为组合卷积模块B(亦可称为深度可分离卷积模块),如图2b所示。模块首先输入深度卷积层,卷积核为(3,3),步长为1,卷积核数量为1024,输出为1024×12×9,然后通过批归一化层和relu激活层,大小为1024×12×9。再输入到点卷积层、批归一化层、relu激活层,其中卷积核大小为1×1,卷积核数量为1024,步长为1,输出为1024×12×9。
第十五层为反卷积模块D,如图2d所示。模块首先输入pixelshuffle上采样层,步长为2,相当于特征图尺寸加倍,卷积核数量为256,输出为256×24×18,然后通过relu激活层,输出为256×24×18。
第十六层为反卷积模块D,如图2d所示。模块首先输入pixelshuffle上采样层,步长为2,相当于特征图尺寸加倍,卷积核数量为256,输出为256×48×36,然后通过relu激活层,输出为256×48×36。
第十七层为反卷积模块D,如图2d所示。模块首先输入pixelshuffle上采样层,步长为2,相当于特征图尺寸加倍,卷积核数量为256,输出为256×96×72,然后通过relu激活层,输出为256×96×72。
第十八层为卷积模块E,如图2e所示。模块输入到卷积层,卷积核为(3,3),步长为1,卷积核数量为17,最终网络的输出为17×96×72。其中,17表示17个关键点,每个特征图预测一个关键点的位置。
2.2)设置损失函数
设置损失函数为smooth-L1损失函数,公式如下:
式中,ynij为神经网络输出的第n个关键点的特征图在位置(i,j)上的响应,而表示真实标签的第n个关键点的特征图在位置(i,j)的响应。其中真实标签的制作为:以变换后的coco数据集标注的每个关键点为中心生成一个高斯分布,高斯核大小为9×9。在高斯分布以外的区域标注为0。
总的损失函数为各个关键点的smooth-L1损失的求和,即
3)为增大网络模型训练数据量及适用性,需要使用数据增强方法对原始输入图像进行数据增强,包括以下步骤:
a、随机添加高斯、椒盐噪声
对输入的图像,以0.25的概率随机添加高斯噪声,0.25的概率添加椒盐噪声。
b、随机镜像翻转
对输入图像以0.5的概率进行随机镜像翻转,该变换需要同时应用到标注上。在对图像翻转之后,标注也需要进行左右翻转,如:若原来的左肩关键点标注坐标左右为(xl,yl),右肩关键点标注坐标为(xr,yr),则经过翻转之后,左肩关键点标注坐标为(xr,yr),右肩关键点标注坐标左右为(xl,yl)。
c、随机调整对比度
修改色调和饱和度实现对比度转换。
d、随机旋转
对图片以0.25的概率进行随机旋转,旋转角度在-25°~25°之间,该变换需要同时应用到标注上。
4)将步骤3)数据增强后的图像输入设计好的人体关键点神经网络模型中,对模型设定训练参数进行训练,并保存训练的神经网络模型参数,包括以下步骤:
4.1)设置训练参数
为了加快训练速度,设置训练优化器为Adam、初始学习率为10-5,学习率衰减为每迭代1个epoch衰减为原来的0.5。迭代总次数为400个epoch、批次大小为32。初始化方法选择为截断高斯分布,权重衰减系数选择为4×10-5。
4.2)设置训练完成标志
当训练达到400个epoch或者模型在验证集上达到较好效果时,即可停止训练。
4.3)保存神经网络模型
训练完成后,将神经网络模型的结构和权重一并保存。
5)使用YOLOv3来检测出图像中行人的位置,保持检测框的中心点不变,宽高增大为原来的1.2倍,保证检测框中有完整的行人,然后根据检测框,在原图像中裁剪出单个行人,将裁剪出来的行人输入到步骤4)中已经训练好的人体关键点神经网络模型,取出每个关键点特征图的最大值所在的位置,即为这个关键点在特征图中对应的位置,再需要根据下采样计算缩放倍数以及偏移量,将特征图中的坐标反算回原图像中的坐标,得到人体关键点在原图像中的位置,最后将所有检测出来的关键点,按照人体结构连接起来,得到关键点提取结果。其中,由于实际应用过程中容易产生关键点噪声,且噪声一般都是对称的,因此可以将待检测图像进行翻转,将翻转前后的图像一起传入人体关键点神经网络模型进行前向推理,提取其关键点,然后对翻转后的图像的特征图进行通道之间的交换,并与翻转前图像的特征图进行加和求平均操作,能够得到降噪后的最终特征图,对降噪之后的特征图,求取其最大输出响应对应的位置,并将响应位置乘以设定的缩放倍数和加上偏移量,从而得到各个部位的关键点坐标,最后将所有检测出来的关键点,按照人体结构连接起来,得到最后关键点提取结果,其具体情况如下:
对原图I进行左右翻转,设在翻转之前的图像为I(x,y)=a,其中x,y分别为图像中的横纵坐标,在(x,y)位置上的像素值为a,则翻转之后的图像为I(w-x,y)=a,即在(w-x,y)位置上的像素值为a。将对称之后的图像定义为I',将I和I'一起输入训练好的人体关键点神经网络模型中进行前向推理,得到两张特征图。由于I'是经过左右翻转的,因此输出特征图也需要变换之后才能表示翻转之前的原图关键点位置,将I'的输出特征图中的左关键点通道与其对应的右关键点位置进行交换,如:原来左肩部关键点在输出特征图的第5个通道,右肩关键点对应的是特征图的第7个通道,经过交换,第5个通道与第7通道的值进行交换。交换之后,第5个通道表示的是I'的右肩关键点,由于I'是经过I翻转的,因此I'的右肩关键点对应的是I的左肩关键点,因此经过该变换之后,两张特征图均可以表示,原图I的关键点,但是经过翻转后的特征图,噪声也会跟着对称。因此将两张特征图进行加和求平均,有效信号就会增强,噪声会因此削弱,从而实现对关键点提取过程中有效抑制噪声的效果。
以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
Claims (4)
1.一种基于神经网络的人体关键点快速提取方法,其特征在于,包括以下步骤:
1)通过对coco数据集的图片单人裁剪和归一化操作,同时对标注信息进行同样变换,构建训练数据集;
对coco公开数据集注释文件中的关键点进行操作,coco数据集中关键点的注释属性为:关键点坐标、关键是否可见、关键点数量及骨架;关键点在图片中的横纵坐标分别用x,y表示;关键点是否可见使用v来表示,其中定义v=0表示该关键点未被标记,v=1表示该关键点被标记但是不可见,而v=2表示该关键点被标记且可见;骨架信息表示不同关键点之间的连线;首先,对可见关键点进行求取外接矩形框的操作,然后矩形框的中心保持不变,将矩形的宽高扩大1.2倍,如果超过图片边界,那么就以图片的边界为界限,这样能够确保外接矩形框包含了行人的整个身体;
2)综合考虑数据集图片以及应用场景的特点,设计合适的人体关键点神经网络模型,包括以下步骤:
2.1)搭建关键点提取网络
根据实时性和高精度要求构建关键点提取网络,其结构如下:
第一层为组合卷积模块A,它由一个步长为2的卷积层、一个批归一化层、一个relu非线性激活层组成;
第二层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第三层为组合卷积模块C,它由一个步长为2的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第四层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第五层为组合卷积模块C,它由一个步长为2的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第六层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第七层为组合卷积模块C,它由一个步长为2的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第八层到第十二层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第十三层为组合卷积模块C,它由一个步长为2的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第十四层为组合卷积模块B,它由一个步长为1的深度卷积层、一个点卷积层、两个批归一化层、两个Relu非线性激活层组成;
第十五层为反卷积模块D,它由一个步长为2的pixelshuffle上采样层,一个Relu非线性激活层组成;
第十六层为反卷积模块D,它由一个步长为2的pixelshuffle上采样层,一个Relu非线性激活层组成;
第十七层为反卷积模块D,它由一个步长为2的pixelshuffle上采样层,一个Relu非线性激活层组成;
第十八层为卷积模块E,它由一个步长为1的卷积层组成;
2.2)设置损失函数
设置损失函数为smooth-L1损失函数,公式如下:
式中,ynij为神经网络模型输出的第n个关键点的特征图在位置(i,j)上的响应,而表示真实标签的第n个关键点的特征图在位置(i,j)的响应;其中,真实标签的制作为:以变换后的coco数据集标注的每个关键点为中心生成一个高斯分布,高斯核大小为9×9,在高斯分布以外的区域标注为0;
总的损失函数为各个关键点的smooth-L1损失的求和,即
3)为增大网络模型训练数据量及适用性,需要使用数据增强方法对原始输入图像进行数据增强;
4)对设计的人体关键点神经网络模型设定训练参数进行多次迭代训练,并保存训练的神经网络模型参数,并根据指标选择最优模型;
5)将待进行人体关键点提取的图像首先使用已有的行人检测方法将图像中的行人检测出来,然后将行人裁剪出来并归一化到固定长宽,并输入到训练好的人体关键点神经网络模型中进行前向推理,得到热力响应图,即特征图,将特征图最大的位置映射回原图,即完成人体关键点提取的功能;其中,对于实际应用过程中容易产生的关键点噪声,使用左右翻转的方法来抵抗噪声,实现对关键点提取过程中的有效降噪。
2.根据权利要求1所述的一种基于神经网络的人体关键点快速提取方法,其特征在于,在步骤3)中,为增大网络模型训练数据量及适用性,需要使用数据增强方法对原始输入图像进行数据增强,包括:
a、随机添加高斯、椒盐噪声
对输入的图像,以0.25的概率随机添加高斯噪声,0.25的概率添加椒盐噪声;
b、随机镜像翻转
对输入图像以0.5的概率进行随机镜像翻转,该变换需要同时应用到标注上;
c、随机调整对比度
修改色调和饱和度实现对比度转换;
d、随机旋转
对图片以0.25的概率进行随机旋转,旋转角度在-25°~25°之间,该变换需要同时应用到标注上。
3.根据权利要求1所述的一种基于神经网络的人体关键点快速提取方法,其特征在于,在步骤4)中,将步骤3)数据增强后的图像输入设计好的人体关键点神经网络模型中,对模型设定训练参数进行训练,并保存训练的神经网络模型参数,包括以下步骤:
4.1)设置训练参数
设置训练优化器为Adam、初始学习率为10-5,学习率衰减为每迭代1个epoch衰减为原来的0.5;迭代总次数为400个epoch、批次大小为32;初始化方法选择为截断高斯分布,权重衰减系数选择为4×10-5;
4.2)设置训练完成标志
当训练达到400个epoch或者模型在验证集上达到更好效果时,即可停止训练;
4.3)保存神经网络模型
训练完成后,将神经网络模型的结构和权重一并保存。
4.根据权利要求1所述的一种基于神经网络的人体关键点快速提取方法,其特征在于,在步骤5)中,首先使用YOLOv3来检测出图像中行人的位置,然后保持检测框的中心点不变,宽高增大为原来的1.2倍,保证检测框中有完整的行人;然后根据检测框,在原图像中裁剪出单个行人,将裁剪出来的行人输入到步骤4)中已经训练好的人体关键点神经网络模型,取出每个关键点特征图的最大值所在的位置,即为这个关键点最终的位置;由于噪声都是对称的,因此将待检测图像进行翻转,将翻转前后的图像一起传入人体关键点神经网络模型进行前向推理,提取其关键点,然后对翻转后的图像的特征图进行通道之间的交换,并与翻转前图像的特征图进行加和求平均操作,能够得到降噪后的最终特征图,对降噪之后的特征图,求取其最大输出响应对应的位置,并将响应位置乘以设定的缩放倍数和加上偏移量,从而得到各个部位的关键点坐标,最后将所有检测出来的关键点,按照人体结构连接起来,得到最后关键点提取结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118903.5A CN111368673B (zh) | 2020-02-26 | 2020-02-26 | 一种基于神经网络的人体关键点快速提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010118903.5A CN111368673B (zh) | 2020-02-26 | 2020-02-26 | 一种基于神经网络的人体关键点快速提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111368673A CN111368673A (zh) | 2020-07-03 |
CN111368673B true CN111368673B (zh) | 2023-04-07 |
Family
ID=71206604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010118903.5A Active CN111368673B (zh) | 2020-02-26 | 2020-02-26 | 一种基于神经网络的人体关键点快速提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111368673B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860276B (zh) * | 2020-07-14 | 2023-04-11 | 咪咕文化科技有限公司 | 人体关键点检测方法、装置、网络设备及存储介质 |
CN112131965B (zh) * | 2020-08-31 | 2023-10-13 | 深圳云天励飞技术股份有限公司 | 一种人体姿态估计方法、装置、电子设备及存储介质 |
CN112149590A (zh) * | 2020-09-28 | 2020-12-29 | 河南威虎智能科技有限公司 | 一种手部关键点检测方法 |
CN112232194A (zh) * | 2020-10-15 | 2021-01-15 | 广州云从凯风科技有限公司 | 一种单目标人体关键点检测方法、系统、设备及介质 |
CN112418098A (zh) * | 2020-11-24 | 2021-02-26 | 深圳云天励飞技术股份有限公司 | 视频结构化模型的训练方法及相关设备 |
CN112733624B (zh) * | 2020-12-26 | 2023-02-03 | 电子科技大学 | 室内密集场景的人流密度检测方法、系统存储介质及终端 |
CN112800958B (zh) * | 2021-01-28 | 2022-07-22 | 南京邮电大学 | 一种基于热点图的轻量级人体关键点检测方法 |
CN112862095B (zh) * | 2021-02-02 | 2023-09-29 | 浙江大华技术股份有限公司 | 基于特征分析的自蒸馏学习方法、设备以及可读存储介质 |
CN113081025B (zh) * | 2021-03-10 | 2022-04-29 | 华中科技大学 | 一种基于肺音的新冠肺炎智能诊断系统和装置 |
CN114429192B (zh) * | 2022-04-02 | 2022-07-15 | 中国科学技术大学 | 一种图像匹配方法、装置和电子设备 |
CN115546521B (zh) * | 2022-11-07 | 2024-05-07 | 佳木斯大学 | 基于关键点响应约束的点匹配方法 |
CN116721412B (zh) * | 2023-04-17 | 2024-05-03 | 之江实验室 | 一种自下而上的基于结构性先验的豆荚关键点检测方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019144575A1 (zh) * | 2018-01-24 | 2019-08-01 | 中山大学 | 一种快速行人检测方法及装置 |
CN110084161A (zh) * | 2019-04-17 | 2019-08-02 | 中山大学 | 一种人体骨骼关键点的快速检测方法及系统 |
CN110348375A (zh) * | 2019-07-09 | 2019-10-18 | 华南理工大学 | 一种基于神经网络的手指静脉感兴趣区域检测方法 |
CN110543878A (zh) * | 2019-08-07 | 2019-12-06 | 华南理工大学 | 一种基于神经网络的指针仪表读数识别方法 |
-
2020
- 2020-02-26 CN CN202010118903.5A patent/CN111368673B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019144575A1 (zh) * | 2018-01-24 | 2019-08-01 | 中山大学 | 一种快速行人检测方法及装置 |
CN110084161A (zh) * | 2019-04-17 | 2019-08-02 | 中山大学 | 一种人体骨骼关键点的快速检测方法及系统 |
CN110348375A (zh) * | 2019-07-09 | 2019-10-18 | 华南理工大学 | 一种基于神经网络的手指静脉感兴趣区域检测方法 |
CN110543878A (zh) * | 2019-08-07 | 2019-12-06 | 华南理工大学 | 一种基于神经网络的指针仪表读数识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111368673A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111368673B (zh) | 一种基于神经网络的人体关键点快速提取方法 | |
Tang et al. | An augmentation strategy for medical image processing based on statistical shape model and 3D thin plate spline for deep learning | |
US11810366B1 (en) | Joint modeling method and apparatus for enhancing local features of pedestrians | |
WO2020062433A1 (zh) | 一种神经网络模型训练及通用接地线的检测方法 | |
CN111612008A (zh) | 基于卷积网络的图像分割方法 | |
CN107358576A (zh) | 基于卷积神经网络的深度图超分辨率重建方法 | |
CN110728209A (zh) | 一种姿态识别方法、装置、电子设备及存储介质 | |
CN106228512A (zh) | 基于学习率自适应的卷积神经网络图像超分辨率重建方法 | |
CN107909059A (zh) | 一种面向复杂城市场景中协同仿生视觉的交通标志牌检测与识别方法 | |
CN109829353B (zh) | 一种基于空间约束的人脸图像风格化方法 | |
WO2021051868A1 (zh) | 目标的定位方法及装置、计算机设备、计算机存储介质 | |
CN112766186B (zh) | 一种基于多任务学习的实时人脸检测及头部姿态估计方法 | |
WO2023151237A1 (zh) | 人脸位姿估计方法、装置、电子设备及存储介质 | |
CN113705583B (zh) | 一种基于卷积神经网络模型的目标检测识别方法 | |
CN102799646B (zh) | 一种面向多视点视频的语义对象分割方法 | |
CN110210426A (zh) | 基于注意力机制从单幅彩色图像进行手部姿态估计的方法 | |
CN113850136A (zh) | 基于yolov5与BCNN的车辆朝向识别方法及系统 | |
CN110176064A (zh) | 一种摄影测量生成三维模型的主体对象自动识别方法 | |
CN111881716A (zh) | 一种基于多视角生成对抗网络的行人重识别方法 | |
CN106599810A (zh) | 一种基于栈式自编码的头部姿态估计方法 | |
Song et al. | A joint siamese attention-aware network for vehicle object tracking in satellite videos | |
Shi et al. | Remote sensing scene classification based on multibranch fusion attention network | |
CN108961385A (zh) | 一种slam构图方法及装置 | |
CN116402976A (zh) | 三维目标检测模型训练方法及装置 | |
CN117237547B (zh) | 图像重建方法、重建模型的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |