一种基于轻量化卷积姿态机的体态快速检测方法
未命名
09-17
阅读:119
评论:0

1.本发明涉及一种体态快速检测方法,特别是一种基于轻量化卷积姿态机的体态快速检测方法。
背景技术:
2.数字时代以来,科技改变生活方式的同时,不良体态在各类人群中出现的比例也日渐增多,而对于体态的检测在现阶段缺乏有效的辅助手段。为解决此问题,引入了人体姿态估计(human pose estimation,hpe)算法,对人体姿态进行关键点检测并基于人体关键点骨架计算不良体态。多人hpe主要有两类方法,分别是“自顶向下”以及“自底向上”的方法。“自顶向下”的方法首先需要先进行目标检测,并基于目标检测的结果,对检测到的每个人进行单人姿态估计(single person pose estimation,sppe),运行时间与人数成正比,且sppe的结果十分依赖于第一步目标检测的结果。“自底向上”的方法则是预测所有人身体部位关键点的位置,然后将这些部位组装成人体骨架,卡内基梅隆大学提出的部位亲和场(part affinity fields,pafs)对身体部位保存位置以及方向向量,以此来保证身体各部位之间连接的准确性。目前hpe算法普遍存在参数量大、计算量大、模型复杂等问题,在计算资源不足或是对于移动设备实时性差,难以转化为实际应用。谷歌团队在2017年提出了专注于移动端或嵌入式设备中的轻量级卷积神经网络mobilenet,并在之后推出了多个后续版本此类网络可以在牺牲一定精度的条件下大幅降低了网络的参数量以及计算量。
3.上述现有技术均未解决传统hpe算法普遍存在的模型运算量及参数量过大导致的检测的实时性差难以转化为实际应用的问题,且存在训练速度较慢以及显存消耗过大的问题。
技术实现要素:
4.发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于轻量化卷积姿态机的体态快速检测方法。
5.为了解决上述技术问题,本发明公开了一种基于轻量化卷积姿态机的体态快速检测方法,包括以下步骤:
6.步骤1,构建姿态检测模型,即基于mobilenet的卷积姿态机cpm;
7.步骤2,加载姿态检测模型的骨架网络mobilenet预训练权重,构建训练数据集并对训练数据集进行预处理,包括:旋转、平移、翻转和随机擦除;
8.所述的骨架网络,通过修改骨架网络的末尾层降采样与卷积姿态机cpm完成对齐。
9.步骤3,开始训练姿态检测模型:即调整超参数,逐步增加姿态检测模型中卷积姿态机cpm的优化阶段,利用骨架网络进行特征提取得到特征图,根据上述特征图以及卷积姿态机cpm,对人体关键点进行预测;
10.所述的卷积姿态机cpm的优化阶段,为6个阶段,包含1个初始优化阶段与5个优化阶段,对于卷积姿态机cpm的优化阶段满足以下条件:
[0011][0012][0013]
其中,f表示经过骨架网络提取的特征图,φ
t
和ρ
t
分别表示卷积姿态机cpm的优化阶段用于优化热图以及优化pafs的分支计算,其中,t表示阶段数,使用s
t
和l
t
分别表示经过cpm优化阶段输出的热图和部位亲和场pafs。
[0014]
所述的训练姿态检测模型中,采用的损失函数为l2 loss与focal loss混合构成的损失函数,其中l2 loss与focal loss如下:
[0015][0016]
focalloss=-(1-p
t
)
γ
log(p
t
)
[0017]
其中,yi表示样本输出真值,n表示样本总数,f()表示姿态检测模型的预测函数,xi表示样本输入,p
t
表示调制因子,用于聚焦难分样本,γ表示一个参数,当γ为0时,即为交叉熵损失函数。
[0018]
所述的参数γ,范围在0到5。
[0019]
步骤4,使用贪婪推理方法对预测出的人体关键点进行组装,绘制人体姿态骨架图,并输出人体部位信息,所述人体部位信息,至少包含:人数、类别、是否存在关键点和关键点坐标;
[0020]
步骤5,采用两种方法检测目标体态并进行分类,具体包括:
[0021]
方法一:根据知识库,通过计算关键点骨架之间的角度,检测目标的体态并进行分类;
[0022]
所述的知识库,为预先人工构建的知识库。
[0023]
方法二:构建人工神经网络,将所述人工神经网络最后一层激活函数设为softmax函数,使用标注的多类型体态数据对网络进行训练,输入步骤4中检测输出的人体部位信息,推理目标属于各类体态的概率,具体方法包括:将步骤4中得到的人体部位信息作为人工神经网络的输入,经过人工神经网络完成分类后,得到目标属于各类体态的概率。
[0024]
步骤6,重复步骤3至步骤5,完成对姿态检测模型的训练;
[0025]
步骤7,使用flask将训练好的姿态检测模型部署在服务器上作为后台服务,开放api接口,供移动端或嵌入式设备应用所述姿态检测模型进行基于轻量化卷积姿态机的体态快速检测。
[0026]
步骤4中得到的人体部位信息保存为json格式。
[0027]
步骤7中所述的api接口中,数据交换格式为json。
[0028]
有益效果:
[0029]
本方法在维持卷积姿态机良好的实时性与鲁棒性的同时,解决了传统hpe算法普遍存在的模型运算量及参数量过大导致的检测的实时性差难以转化为实际应用的问题,并通过超参数控制使用轻量级骨架网络类型便于基于特定应用场景切换模型的训练与应用,
训练过程中采用混合精度训练方式,大幅优化了训练速度以及显存消耗。本发明可以通过调用api的方式便捷地在移动端或嵌入式设备上进行应用,为体态检测提供高效的辅助手段。
附图说明
[0030]
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
[0031]
图1是本发明的流程示意图;
[0032]
图2是实施体态检测结果示意图,图中左边的图是检出结果为第一种体态类型,为正常结果,中间的图检出结果为第二种体态类型,右边的图是检出结果为第三种体态类型。
具体实施方式
[0033]
本发明提出了一种基于轻量化卷积姿态机的体态快速检测方法,解决传统hpe算法普遍存在的模型运算量及参数量过大导致的检测的实时性差难以转化为实际应用的问题,并为体态检测提供高效的辅助手段,如图1所示,本发明采用的技术方案包括以下步骤:
[0034]
s1.构建基于卷积姿态机(convolutional pose machine,cpm)轻量化改进的人体姿态估计模型,即构建基于mobilenet的卷积姿态机cpm;,mobilenet是谷歌提出的一个轻量级卷积神经网络,用于图像分类,cpm是一个深度学习算法,用于姿态估计
[0035]
s2.加载骨架网络预训练模型,对训练数据集进行预处理包括:旋转、平移、翻转、随机擦除在内的图像增强
[0036]
s3.训练模型,调整超参数,逐步增加cpm优化阶段,利用骨架网络提取的特征以及cpm对热图以及pafs进行预测
[0037]
s4.使用贪婪推理算法对预测出的肢体关节进行组装,绘制人体姿态骨架图,并输出人体部位信息(包含人数、类别、是否存在关键点、关键点坐标等)
[0038]
s5.推出两种方法检测目标体态并分类。第一种:根据知识库,通过计算重要节点骨架之间的角度,检测用户的体态并分类。第二种:构建人工神经网络,网络最后一层激活函数设为softmax函数,使用标注的多类型体态数据对网络进行训练,通过输入s4中检测的部位信息,推理用户属于各类体态的概率
[0039]
s6.flask是一个基于python语言的后端网页框架,使用flask将训练好的模型部署在服务器上作为后台服务,开放api接口,供移动端或嵌入式设备应用
[0040]
优选地,s2中的骨架网络,通过超参数控制使用多种轻量级骨架网络,并通过修改末尾几层降采样与cpm完成对齐。
[0041]
优选地,s3中将cpm优化阶段对于热图以及pafs的计算,对于除最后两层1
×
1卷积之外进行合并分支,让两个分支共享这一部分卷积计算。
[0042]
优选地,s3中cpm的优化阶段共有6个,包含1个初始优化阶段与5个优化阶段,对于cpm优化阶段的计算应满足公式(1)与公式(2):
[0043]
[0044][0045]
其中f表示经过骨架网络提取的特征图,φ
t
、ρ
t
分别表示cpm优化阶段用于优化热图以及优化pafs的分支计算,其中t表示阶段数,使用s
t
、l
t
分别表示经过cpm优化阶段输出的热图以及pafs。
[0046]
优选地,模型训练的损失函数由原版使用的l2 loss更改为l2 loss与focal loss(参考:focal loss for dense object detection[c]//proceedings of the ieee international conference on computer vision.2017:2980-2988.)混合构成的损失函数,针对难以训练的样本重点训练,其中l2 loss与focal loss如公式(3)与公式(4)所示:
[0047][0048]
focalloss=-α
t
(1-p
t
)
t
log(p
t
) (4)
[0049]
优选地,s5中第一种方式,根据相关知识库,并基于此推理检测结果的体态类型情况。
[0050]
优选地,s5中第二种方式,通过构建人工神经网络,网络最后一层激活函数设为softmax函数如公式(5)所示:
[0051][0052]
使用人工标注的多类型体态数据图像对网络进行训练,将先前阶段输出的检测信息(将人体关键点信息保存为json格式)作为人工神经网络的输入,经过人工神经网络完成分类后,推理出用户存在各类体态的概率。
[0053]
优选地,s6中通过flask将模型部署为后台服务类型的模式供web、app、桌面、微信小程序等开发过程中调用,数据交换格式为json。
[0054]
实施例:
[0055]
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。
[0056]
一种基于轻量化卷积姿态机的体态快速检测方法,包括以下步骤:
[0057]
构建基于卷积姿态机轻量化改进的人体姿态估计模型,包含各类轻量级骨架网络,通过超参数控制使用包括mobilenet以及其他类型轻量级网络在内的轻量级骨架网络。在骨架网络之后使用与cpm与网络进行连接,通过超参数控制cpm优化阶段的层数。其中骨架网络用于提取图像特征,调整骨架网络的降采样,根据网络类型对网络最后几层的步长进行调整,控制将输入图像8倍降采样后输入cpm,而cpm优化阶段用于预测热图以及pafs。
[0058]
对原版结构中使用的l2 loss更改为混合损失函数(l2 loss损失函数与focal loss损失函数)替代原版采用的l2 loss损失函数,focal loss损失函数将训练重心集中在难以训练的样本,针对其重点训练。
[0059]
使用f表示经过骨架网络提取的特征图,cpm的优化阶段共有6个,包含1个初始优化阶段与5个优化阶段,使用φ
t
、ρ
t
分别表示cpm优化阶段用于优化热图以及优化pafs的分支计算,其中t表示阶段数,使用s
t
、l
t
分别表示经过cpm优化阶段输出的热图以及pafs,对于cpm优化阶段的计算应满足l
t
=φ
t
(f,l
t-1
)以及s
t
=ρ
t
(f,s
t-1
)。
[0060]
从学习框架网站如pytorch官网下载网络预训练好的模型权重,使用预训练权重对骨架网络进行初始化,较从头开始训练相比节省了训练时间的同时可以获得更优秀的效果。
[0061]
数据集采用微软提供的mscoco 2017公开数据集,其中训练集包含约12万张图像,对训练数据集进行图像增强包括图像的旋转、平移、翻转、随机擦除等进行数据集扩充,对标注进行适配网络训练的预处理。mscoco 2017数据集的验证集含有5000张图像,由于训练过程中的验证每次在5000张图像上进行过于耗时,故对验证集生成一个含有250张图像以及标注的小型验证集,供验证训练过程中掌握验证指标的走势。
[0062]
将训练集图像尺寸等比缩放或扩展至368
×
368进行训练,采用adam优化器进行优化,初始骨架网络的学习率为2e-4(具体根据选择的骨架网络进行调整),cpm的学习率为4e-5,并根据训练情况手动(连续5个epoch验证map没变化或是减少)或自动(在训练至25、35、45、50个epoch时,将学习率减半)设置学习率衰减策略,并对于不同的网络层的参数采取不同的学习率调整策略。训练过程中不断调整超参数,逐步增加cpm优化阶段,从只含有1个优化阶段逐步增加到6个优化阶段,利用骨架网络提取的特征图以及cpm对热图以及pafs进行预测。末尾几层优化阶段对于准确率的提升并不高,可以在训练完之后只取前几层的训练参数,去掉的末尾几层往往在训练的过程中对前几层有正则化的作用,能够防止模型过拟合。
[0063]
使用贪婪推理算法对预测出的肢体关节进行组装,绘制人体姿态骨架图,并输出人体部位信息包含人数、类别、是否存在关键点、关键点坐标等,预测的关键点总共19个,包括鼻子、左眼、右眼、左耳、右耳、左肩、右肩、左肘、右肘、左腕、右腕、左臀、右臀、左膝、右膝、左踝、右踝、颈部和背景,pafs为38个。
[0064]
推出两种方法检测目标体态并分类。第一种:根据知识库给出的各类体态与躯体骨架之间角度的对照关系,通过计算重要节点骨架之间的角度,测算用户的体态类别。第二种:构建人工神经网络,网络最后一层激活函数设为softmax函数,满足使用预先人工标注的多类型体态数据图像对网络进行训练,将先前阶段输出的检测信息(将人体关键点信息保存为json格式)作为人工神经网络的输入,经过人工神经网络完成分类后,推理出用户属于各类体态的概率。
[0065]
使用flask将训练好的模型部署在web服务器上,提供后台服务,通过开放api接口,供各类应用包含但不局限于app、网页、微信小程序调用,前端通过将上传的图像、需调用模型等关键参数组织成json传入后端,后端解析json之后将图像送入模型并推理人体关键点,将生成的关键点坐标信息传入人工神经网络进行推理图像中人体属于各类体态的概率信息,最终将关键点坐标以及属于各类体态概率信息组织成json并返回给前端,前端按照需求对返回的信息进行处理与应用。
[0066]
如图2所示(其中,图片中拍摄的人物为本发明的发明人,用于本发明的研究,采用
本发明方法进行的体态快速检测),本发明的轻量化卷积姿态机可以对图片(如图2)进行骨架提取并快速检测其体态的类型,类型可为用户自定义,达到快速判别的效果。
[0067]
本实例通过结合轻量级网络结构,在维持卷积姿态机良好的实时性与鲁棒性的同时,解决了传统hpe算法普遍存在的模型运算量及参数量过大导致的检测的实时性差难以转化为实际应用的问题,并通过超参数控制使用轻量级骨架网络类型便于基于特定应用场景切换模型的训练与应用,训练过程中采用混合精度训练方式,大幅优化了训练速度以及显存消耗。本发明可以通过调用api的方式便捷地在移动端或嵌入式设备上进行应用,为体态检测提供高效的辅助手段。
[0068]
具体实现中,本技术提供计算机存储介质以及对应的数据处理单元,其中,该计算机存储介质能够存储计算机程序,所述计算机程序通过数据处理单元执行时可运行本发明提供的一种基于轻量化卷积姿态机的体态快速检测方法的发明内容以及各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0069]
本领域的技术人员可以清楚地了解到本发明实施例中的技术方案可借助计算机程序以及其对应的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机程序即软件产品的形式体现出来,该计算机程序软件产品可以存储在存储介质中,包括若干指令用以使得一台包含数据处理单元的设备(可以是个人计算机,服务器,单片机,muu或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0070]
本发明提供了一种基于轻量化卷积姿态机的体态快速检测方法的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
技术特征:
1.一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,包括以下步骤:步骤1,构建姿态检测模型,即基于mobilenet的卷积姿态机cpm;步骤2,加载姿态检测模型的骨架网络mobilenet预训练权重,构建训练数据集并对训练数据集进行预处理,包括:旋转、平移、翻转和随机擦除;步骤3,开始训练姿态检测模型:即调整超参数,逐步增加姿态检测模型中卷积姿态机cpm的优化阶段,利用骨架网络进行特征提取得到特征图,根据上述特征图以及卷积姿态机cpm,对人体关键点进行预测;步骤4,使用贪婪推理方法对预测出的人体关键点进行组装,绘制人体姿态骨架图,并输出人体部位信息,所述人体部位信息,至少包含:人数、类别、是否存在关键点和关键点坐标;步骤5,采用两种方法检测目标体态并进行分类;步骤6,重复步骤3至步骤5,完成对姿态检测模型的训练;步骤7,使用flask将训练好的姿态检测模型部署在服务器上作为后台服务,开放api接口,供移动端或嵌入式设备应用所述姿态检测模型进行基于轻量化卷积姿态机的体态快速检测。2.根据权利要求1中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤2中所述的骨架网络,通过修改骨架网络的末尾层降采样与卷积姿态机cpm完成对齐。3.根据权利要求2中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤3中所述的卷积姿态机cpm的优化阶段,为6个阶段,包含1个初始优化阶段与5个优化阶段,对于卷积姿态机cpm的优化阶段满足以下条件:优化阶段,对于卷积姿态机cpm的优化阶段满足以下条件:其中,f表示经过骨架网络提取的特征图,φ
t
和ρ
t
分别表示卷积姿态机cpm的优化阶段用于优化热图以及优化pafs的分支计算,其中,t表示阶段数,使用s
t
和l
t
分别表示经过cpm优化阶段输出的热图和部位亲和场pafs。4.根据权利要求3中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤3中所述的训练姿态检测模型中,采用的损失函数为l2 loss与focal loss混合构成的损失函数,其中l2 loss与focal loss如下:focalloss=-(1-p
t
)
γ
log(p
t
)其中,y
i
表示样本输出真值,n表示样本总数,f()表示姿态检测模型的预测函数,x
i
表示样本输入,p
t
表示调制因子,用于聚焦难分样本,γ表示一个参数,当γ为0时,即为交叉熵
损失函数。5.根据权利要求4中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤3中所述的参数γ,范围在0到5。6.根据权利要求5中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤5中所述的采用两种方法检测目标体态并进行分类,具体包括:方法一:根据知识库,通过计算关键点骨架之间的角度,检测目标的体态并进行分类;方法二:构建人工神经网络,将所述人工神经网络最后一层激活函数设为softmax函数,使用标注的多类型体态数据对网络进行训练,输入步骤4中检测输出的人体部位信息,推理目标属于各类体态的概率。7.根据权利要求6中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤5中所述的知识库,为预先人工构建的知识库。8.根据权利要求7中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤5中所述的推理目标属于各类体态的概率,具体方法包括:将步骤4中得到的人体部位信息作为人工神经网络的输入,经过人工神经网络完成分类后,得到目标属于各类体态的概率。9.根据权利要求8中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤4中得到的人体部位信息保存为json格式。10.根据权利要求9中所述的一种基于轻量化卷积姿态机的体态快速检测方法,其特征在于,步骤7中所述的api接口中,数据交换格式为json。
技术总结
本发明公开了一种基于轻量化卷积姿态机的体态快速检测方法,包括:构建姿态检测模型;加载姿态检测模型的骨架网络MobileNet预训练权重,对训练数据集进行预处理;训练姿态检测模型;使用Flask将训练好的姿态检测模型部署在服务器上作为后台服务,开放API接口,供移动端或嵌入式设备应用所述姿态检测模型进行基于轻量化卷积姿态机的体态快速检测。本方法解决了传统HPE算法普遍存在的模型运算量及参数量过大导致的检测的实时性差难以转化为实际应用的问题,大幅优化了训练速度以及显存消耗。耗。耗。
技术研发人员:周作建 李红岩 王子琰 赵林度 郎许锋 万中华 余博成 周晏羽
受保护的技术使用者:南京中医药大学
技术研发日:2023.05.29
技术公布日:2023/9/14
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/