实时人体骨骼关节点检测方法与流程

文档序号:15638475发布日期:2018-10-12 21:46阅读:800来源:国知局

本发明属于图像处理领域,特别涉及一种实时人体骨骼关节点检测方法。



背景技术:

近年来,随着计算机处理器,计算机图像并行处理器等硬件性能的飞速提升,以及深度学习在计算机视觉领域的研究发展迅速和算法的应用落地迅速,视频监控技术也得到了快速的发展。视频监控技术的智能化、平台化、信息联动化得到了进一步的发展,可以说是安防领域中不可缺失的一环。视频监控涉及图像处理、传统机器学习、深度学习、人工智能、大数据、云计算等多个领域,既是一个多学科融合的问题,也是一个不断发展和具有巨大现实意义的课题。虽然技术发展的过程出现许多新的问题和挑战,但同样这些问题和挑战不断推进了技术的发展和革新,有利于科技的进步。

人体骨骼关节点对于描述人体姿态、预测人体行为至关重要,相较于传统的动作视频分类,通过骨骼关节点可以获得更精准的动作检测,且对某一动作进行骨骼关节点序列定义。因此人体骨骼关节点检测是诸多计算机视觉任务的基础,例如动作分类、异常行为检测、以及自动驾驶。

现有技术中,有一种人体骨骼关节点检查方法,首先通过rgb摄像头采集数据,提取帧图像;然后对帧图像上面人体进行标注,包括人体的中心坐标,人体框的坐标,人体各个骨骼关节点的坐标,生成标注文件;然后包括对裁剪后的输入图像随机旋转、缩放、颜色偏移的数据扩展层,增强算法的鲁棒性、泛化能力,并将输入的图片大小固定为256*256;然后预处理后的图片首先会经过64个步长为2的7*7卷积来提取图片的特征,并继续通过一个窗口大小为2*2、步长为2的最大池化层来继续缩小特征尺度,然后通过了8个相同结构的“沙漏”模块,每个“沙漏”模块会对输入的特征先下采样再上采样,在上采样的过程中会融合下采样的特征,“沙漏”模块中全部应用残差模块来对特征进行提取,在8个“沙漏”模块的最后会应用关节点个数的1*1卷积,用来产生预测的热力图,用来与真实的热力图计算损失,通过随机梯度下降来优化网络中的参数;然后在训练完成之后,将需要检测的图片输入网络,计算出一组热力图,选择计算热力图的最大值的位置作为关节点的坐标。

虽然“沙漏”网络是一个融合多个尺度特征学习的网络模型,能够更加精确的学习热力图,产生更精确的坐标,但因为网络在输入尺寸为256*256的rgb图片后预测前传的平均时间约为130ms,fps大概为7.6,在实时性上还不能达到要求。且在12gbnvidiatitanxgpu上需要训练5天才能达到拟合,实际部署较为困难。

现有技术中,还有另一种人体关键点检测框架,首先用彩色摄像机,用于捕捉人体姿态图像,形成输入图像;然后将输入的视频图像提取为帧图像,并人工进行图片标注,并对彩色图像进行人工标注获得采样数据,具体标注出人体关节坐标,人体检测框,人体中心坐标;然后在训练阶段使用深度卷积神经网络方法进行采样数据的特征提取和网络参数学习,通过一个全卷积的框架回归各个关节对应的热力图,设计了一个由多个卷积层和池化层组成的多阶段网络,在第一个阶段用来提取出全局的特征,输出的特征通道个数为所要学习关节种类个数加1;第二个阶段及其以后的阶段会将由原图经过一个共享权重的模块的输出和上一个阶段的输出融合得到一个新的特征来继续回归出热力图,该热力图会与真实的热力图计算损失,并采用随机梯度下降法优化网络参数,网络的总共阶段为6个,每个阶段会加入中继监督,防止梯度过小或者消失;然后根据训练阶段训练好的权重,提取需要检测关键点坐标的图片输入网络后输出的特征;最后根据特征提取模块得到的热力图通过立方插值将预测出的热力图方法到输入图片大小,并为了防止有些坐标点错误的响应过大的值,采样高斯滤波的方法,将热力图的值的分布变得平滑,并计算最大值的位置,这个坐标被认为关节点的坐标。

虽然该方法在关节的精度上取得了较好的效果,但因网络参数数量过大,导致关节点预测耗时,实时性很大达到。且网络训练过程较慢,不利于实际应用中特定数据(例如监控数据等)训练。



技术实现要素:

为了解决现有技术中只集中于如何提升模型的精确度,却没有关注如何降低模型的计算量,使结果生成更快速的问题,本发明提供了一种实时人体骨骼关节点检测方法,设计了一种层次上下文姿态检测网络,该网络能够显著降低模型的计算量,保证了模型训练和部署使用的效率。

一种实时人体骨骼关节点检测方法,包括以下步骤:

步骤1,获取检测数据集;

步骤2,构建检测网络,并对所述检测网络进行训练,得到网络模型;

步骤3,基于所述网络模型,对输入的图像进行处理后得到人体骨骼关节点的坐标。

进一步地,所述步骤1包括以下步骤:

步骤11,获取检测数据集d,所述检测数据集中样本(x,y)∈d,其中,x为输入的人体图像,y为对应的表征人体姿态关节点坐标集合{y1,y2,…,yj}∈y,j为关节点个数;

步骤12,对坐标集合y进行处理,设定热力图hj的宽和高分别为wh和hh,其中,{h1,h2,…,hj}∈h,h为热力图集合,

式中,为关节点的坐标,(a,b)表示热力图中的任意位置,a∈[1,wh],b∈[1,hh],通过上式遍历热力图的每个位置生成热力图hj。

进一步地,所述步骤2包括以下步骤:

步骤21,对输入的图像进行裁剪,并对图像进行扩增处理,根据图像中人体关节点的坐标生成热力图;

步骤22,构建检测网络;

步骤23,使用rmsprop优化算法对网络进行训练;

步骤24,得到网络模型。

进一步地,所述步骤21中包括以下流程:

步骤211,随机生成一个范围在[0,1]之间的第一随机数p1,若p1大于0.5,则随机生成一个范围在[-40°,40°]之间的随机角度r,r为正数时表示将图像围绕人体中心顺时针旋转对应角度,r为负数表示将图像围绕人体中心逆时针旋转对应角度;

步骤212,随机生成一个范围在[0,1]之间的第二随机数p2,若p2大于0.5,则随机生成一个范围在[0.8,1.2]之间的随机缩放比率,将图像以所述缩放比率进行缩放;

步骤213,设定(vr,vg,vb)∈x,其中(vr,vg,vb)表示图像x中的任意一个位置的像素值,所述像素值经过归一化后范围在[0,1]之间,随机生成一个范围在[0,1]之间的第三随机数p3,若p3大于0.5,则随机生成一个范围在[0.8,1.5]之间的扰动,将所述扰动与所述像素值相乘,并对超出所述像素值范围的进行截断。

进一步地,所述步骤22中包括以下流程:

所述检测网络分为s阶段,所述检测网络包括特征提取模块、回归网络模块、上下文融合模块及中间上下文学习模块;

所述特征提取模块为fshare(·),输入为经过扩增处理的图像xpreprocess,输出为m={m1,m2,…,ms},m=fshare(xpreprocess),用于提取输入图像的低层特征并输入至所述回归网络模块;

所述回归网络模块包含每个阶段的子网络,第一阶段的子网络为r1(·),输出为所预测的热力图p1和高层特征q1,q1=r1(m1);

所述上下文融合模块为bs(·),输入为所述特征提取模块提取的特征ms和所述中间上下文学习模块输出的特征vs-1,该模块中的s=2,..,s,ts=bs(ms,vs),用于将所述特征提取模块提取的特征ms和所述中间上下文学习模块输出的特征vs-1两个特征进行线性变换,再将变换的特征使用元素间相加进行融合;

第s阶段的所述子网络为rs(·),输入为所述上下文融合模块的输出ts,输出为所得到的高层特征qs,该模块中的s=2,..,s,qs=rs(ts);

除了最后一个阶段,每个阶段子网络都包含一个中间上下文学习模块l(·),输入为每个子网络提取的高层特征,输出为特征vs和损失函数的值losss-1,该模块中的s=2,..,s,有vs,ps-1=l(qs-1),所述中间上下文学习模块用于将输入的前一阶段高层特征qs-1使用两个1×1卷积分别进行变换,再对第二个卷积的特征得到预测的热力图,再使用1×1卷积对热力图进行线性变换,将经过变换的热力图和第一个卷积提取的特征使用各个元素相加的方式进行融合,融合后的特征为vs;

最后一个阶段中,所述子网络包含姿态预测学习模块,用于计算最后一个阶段的损失函数值losss。

进一步地,所述步骤23中包括以下流程:

每个阶段的子网络的损失函数为losss=(ps-h)2,整个所述检测网络的损失函数为对所述检测网络使用rmsprop优化器进行训练,训练过程所使用的学习率为0.00025,数据的大小为4,训练的epoch为150,计算所述检测网络的损失函数,循环迭代更新网络参数,直到达到设定的训练的epoch的次数,得到网络模型。

进一步地,所述步骤3中包括以下流程:

步骤31,对输入的图像进行预处理;

步骤32,加载所述网络模型,将经过预处理的图像输入至所述网络模型,得到所述网络模型输出的热力图;

步骤33,对所述网络模型输出的热力图进行后处理,得到每个关节点的坐标。

进一步地,所述步骤31中对图像进行的预处理包括以下流程:

根据图像中人的中心对图像进行裁剪,使图像中只包含单人且使人在裁剪后的图像中心,将经过裁剪后的图像再进行左右翻转,并将未经翻转的图像和经过翻转的图像共同作为所述网络模型的输入。

本发明的有益效果:本发明提供了一种实时人体骨骼关节点检测方法,设计了一种层次上下文姿态检测网络,采用数字图像处理技术以及深度学习实现对不同姿态,不同光照,不同尺度大小的人体实时的检测出骨骼关节点的坐标,在保证精度的同时下实现了实时的检测方法,能够显著降低模型的计算量,保证了模型训练和部署使用的效率。

附图说明

图1为本发明的流程图。

图2为图1中步骤2的流程图。

图3为图2中步骤21的流程图。

图4为图2中步骤22构建的检测网络框图。

图5为上下文融合模块的结构示意图。

图6为中间上下文学习模块的结构示意图。

图7为图1中步骤3的流程图。

图中:100-特征提取模块;200-回归网络模块;300-上下文融合模块;400-中间上下文学习模块。

具体实施方式

下面结合附图对本发明的实施例做进一步的说明。

本发明提供一种实时人体骨骼关节点检测方法,请参阅图1,通过以下步骤实现:

步骤1,获取检测数据集。

本实施例中,步骤1通过以下流程实现:

步骤11,获取检测数据集d,所述检测数据集中样本(x,y)∈d,其中,x为输入的包含单个人的人体图像,y为对应的表征人体姿态关节点坐标集合{y1,y2,…,yj}∈y,j为关节点个数。

步骤12,为了生成对坐标集合网络训练所需要的类标,即热力图的集合{h1,h2,…,hj}∈h,需要对坐标集合y进行处理。设定热力图hj的宽和高分别为wh和hh。

式中,为关节点的坐标,(a,b)表示热力图中的任意位置,a∈[1,wh],b∈[1,hh],通过上式遍历热力图的每个位置生成热力图hj。

步骤2,构建检测网络,并对所述检测网络进行训练,得到网络模型。

请参阅图2,步骤2通过以下流程实现:

步骤21,对输入的图像进行裁剪,并对图像进行扩增处理,根据图像中人体关节点的坐标生成热力图。

本实施例中,为了应对网络检测中样本不充分的问题,需要对数据集进行扩增,本发明通过对输入图像进行旋转、缩放、颜色偏移的方式来对样本进行扩增。请参阅图3,具体实施如下:

步骤211,随机生成一个范围在[0,1]之间的第一随机数p1,若p1大于0.5,则随机生成一个范围在[-40°,40°]之间的随机角度r,r为正数时表示将图像围绕人体中心顺时针旋转对应角度,r为负数表示将图像围绕人体中心逆时针旋转对应角度;

步骤212,随机生成一个范围在[0,1]之间的第二随机数p2,若p2大于0.5,则随机生成一个范围在[0.8,1.2]之间的随机缩放比率,将图像以所述缩放比率进行缩放;

步骤213,设定(vr,vg,vb)∈x,其中(vr,vg,vb)表示图像x中的任意一个位置的像素值,所述像素值经过归一化后范围在[0,1]之间,随机生成一个范围在[0,1]之间的第三随机数p3,若p3大于0.5,则随机生成一个范围在[0.8,1.5]之间的扰动,将所述扰动与所述像素值相乘,并对超出所述像素值范围的进行截断。

本实施例中,根据随机生成的随机数p,以一定概率对图像进行扩增处理,增加数据集中的样本。

步骤22,构建检测网络。

请参阅图4,本发明实施例构建的检测网络如图,具体如下:

所述检测网络分为s阶段,所述检测网络包括特征提取模块100、回归网络模块200、上下文融合模块300及中间上下文学习模块400。

所述特征提取模块100为fshare(·),输入为经过扩增处理的图像xpreprocess,输出为m={m1,m2,…,ms},m=fshare(xpreprocess),其中s为阶段的个数,用于提取输入图像的低层特征并输入至所述回归网络模块200。

所述回归网络模块200包含每个阶段的子网络,第一阶段的子网络为r1(·),输出为所预测的热力图p1和高层特征q1,q1=r1(m1)。

所述上下文融合模块300为bs(·),输入为所述特征提取模块100提取的特征ms和所述中间上下文学习模块400输出的特征vs-1,该模块中的s=2,..,s,ts=bs(ms,vs)。请参阅图5,上下文融合模块300包含两个1×1卷积,对输入的两个特征(特征提取模块100提取的特征ms和所述中间上下文学习模块400输出的特征vs-1)进行线性变换,再将变换的特征使用元素间相加进行融合。

第s阶段的所述子网络为rs(·),输入为所述上下文融合模块300的输出ts,输出为所得到的高层特征qs,该模块中的s=2,..,s,qs=rs(ts)。

除了最后一个阶段,每个阶段子网络都包含一个中间上下文学习模块400l(·),输入为每个子网络提取的高层特征,输出为特征vs和损失函数的值losss-1,该模块中的s=2,..,s,有vs,ps-1=l(qs-1)。请参阅图6,中间上下文学习模块400用于将输入的前一阶段高层特征qs-1使用两个1×1卷积分别进行变换,再对第二个卷积的特征得到预测的热力图,再使用1×1卷积对热力图进行线性变换,将经过变换的热力图和第一个卷积提取的特征使用各个元素相加的方式进行融合,融合后的特征为vs;

最后一个阶段中,所述子网络包含姿态预测学习模块,用于计算最后一个阶段的损失函数值losss。

步骤23,使用rmsprop优化算法对网络进行训练。

本实施例中,由于每个阶段子网络都有损失函数losss,每个阶段的子网络的损失函数为

losss=(ps-h)2

整个所述检测网络的损失函数为

整个检测网络使用rmsprop优化器进行训练,训练过程所使用的学习率为0.00025,数据的大小为4,训练的epoch为150,计算所述检测网络的损失函数,循环迭代更新网络参数,直到达到设定的训练的epoch的次数,得到网络模型。

步骤24,得到网络模型。

步骤3,基于所述网络模型,对输入的图像进行处理后得到人体骨骼关节点的坐标。

请参阅图7,步骤3通过以下流程实现:

步骤31,对输入的图像进行预处理。

本实施例中,在测试过程中,不需要对数据进行扩增,只需要对图像进行预处理即可。预处理的过程如下:

根据图像中人的中心对图像进行裁剪,使图像中只包含单人且使人在裁剪后的图像中心,将经过裁剪后的图像再进行左右翻转,并将未经翻转的图像和经过翻转的图像共同作为所述网络模型的输入。

步骤32,加载所述网络模型,将经过预处理的图像输入至所述网络模型,得到所述网络模型输出的热力图。

本实施例中,加载步骤2中训练后得到的网络模型,将经过预处理的图像作为网络模型的输入,得到网络模型的输出结果。

步骤33,对所述网络模型输出的热力图进行后处理,得到每个关节点的坐标。

本实施例中,因为网络模型的输入包括经过翻转和未经翻转的两种图像,所以网络模型的输出的热力图也包括这两种图像得到的热力图。后处理主要是将这两种图像得到的两种热力图进行融合。将经过翻转图像的热力图与未经过翻转图像的热力图的格式调整为一致,并将经过调整的热力图和未经过翻转的图像的热力图中每个元素都相加,然后求平均就得到了最终的热力图,最后找出最终热力图中最大值的坐标作为关节点的预测位置,得到人体骨骼关节点的坐标。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1