一种基于深度学习的人体轮廓提取方法与流程

文档序号:16308862发布日期:2018-12-19 05:11阅读:624来源:国知局
一种基于深度学习的人体轮廓提取方法与流程

本发明属于机器视觉技术领域,具体涉及一种基于深度学习的人体轮廓提取方法。

背景技术

人体轮廓提取在计算机视觉领域占据重要地位,是人体检测、人体行为识别的核心技术。人体轮廓提取技术目前广泛应用于智能监控、医学治疗等领域。人体模型的虚拟重建是现代医学可视化系统中的关键技术,准确的人体轮廓信息采集才能够保障对患者病症进行合理的医学分析。另一方面,随着现代社会对人身及公共财产安全要求的加强,智能监控系统的使用率逐渐提升。智能视频监控技术的首要目标是利用各种监控设备获得监控数据,进而对被检测场景发生的事件进行自动理解和描述,并预测未来可能发生的事件。人体轮廓提取作为智能监控系统的关键支撑技术,能够提供图像中人体的位置和轮廓信息,便于自动进行人体跟踪和行为识别,从而实现智能监控的目的。

国内外的学者们针对静态图像人体检测中的难点,提出了多种利用提取图像的不同特征并结合分类器训练的方法来实现准确的人体识别。但这些传统的特征提取方法虽然可以对人体位置进行判断,但无法准确提取人体轮廓。针对目标轮廓提取问题,也有很多行之有效的方案,如主动轮廓模型、视觉显著性等。这些方法虽然能够提取目标轮廓,但是在计算复杂度或者实时性等方面存在一定的局限性。

近年来,深度学习的方法逐渐替代了传统特征提取的方法,在目标检测、图像分割等领域取得了突破性的进展。深度学习的目的是处理数据时通过模拟人脑神经中枢结构运作的方式,自动的进行特征学习,进而完成对数据的处理结果。卷积神经网络(convolutionalneuralnetwork,cnn)是深度学习方法中的一类模型,它独特的权值共享结构与稀疏连接的方式使得网络本身在图像分析中占据优势。



技术实现要素:

本发明的目的是提供一种基于深度学习的人体轮廓提取方法,解决了现有技术中对静态图像中人体轮廓提取效果较差和模型训练速度较慢的问题。

本发明所采用的技术方案是,一种基于深度学习的人体轮廓提取方法,具体按照以下步骤实施:

步骤1,提取原始图像的gabor纹理特征;

步骤2,提取原始图像的canny边缘特征;

步骤3,搭建适用于人体轮廓提取的卷积神经网络架构;

步骤4,将原始图像、步骤1提取的gabor纹理特征图、步骤2.提取的canny边缘特征图共同传入步骤3构建好的卷积神经网络进行训练,生成cnn人物模型;

步骤5,对训练好的cnn人物模型的结构进行测试,得到人体轮廓图像;

步骤6,通过步骤5的测试过程记录人体轮廓图像的重叠率与耗时,对人体轮廓图像进行评估。

本发明的特点还在于,

步骤1具体按照以下步骤实施:

步骤1.1,根据公式(1)获得二维gabor滤波器:

式(1)中,ψu,v为二维gabor滤波器,u,v分别为gabor核的方向和尺度,其中u为0,pi/4,pi/2,3*pi/4,pi,5*pi/4,6*pi/4或7*pi/4,ku,v用于控制高斯窗口的宽度大小,z=(x,y)为空间位置坐标,σ=2π为高斯窗口的宽度与波长大小之比,i为虚数单位;

其中,震荡部分的方向及波长大小ku,v为:

式(2)中,滤波器采样频率为kv=kmax/fv,kmax=π/2为最大采样频率,为间隔因子,用于限制频率中和函数,为滤波器的方向选择性;

步骤1.2,将原始图像i(x,y)与步骤1.1获得的二维gabor滤波器进行卷积操作,提取原始图像在(x,y)处的gabor特征gu,v(x,y),即得到8个方向的gabor纹理特征:

gu,v(x,y)=i(x,y)*ψu,v(3)。

步骤2具体按照以下步骤实施:

步骤2.1,通过对rgb三通道设置权重参数完成原始图像的灰度处理,rgb三通道参数设置表达式为:

gray=r*0.299+g*0.587+b*0.114

步骤2.2,利用二维高斯函数的一阶导数对经步骤2.1处理后的灰度图像进行处理,其中,二维高斯函数的表达式为:

式(4)中,δ=1.4为平滑参数,δ越大时平滑处理效果越明显;

再使用3*3高斯卷积核对原始图像的3*3区域进行平滑处理,其中,高斯卷积核为:

步骤2.3,在经步骤2.2处理后的灰度图像中寻找灰度强度变化最强的位置,对灰度图像使用sobel算子计算水平方向x和竖直方向y的一阶导数zx与zy,得到边界梯度幅值|z|和方向β:

其中,sobel算子在横坐标x和纵坐标y方向为:

步骤2.4,将步骤2.3得到的边界梯度幅值|z|等分成四个梯度区域,每个梯度区域对应坐标轴z的一个象限,再对每个区域中的所有点按顺序沿其梯度方向β逐个进行计算,将每个点的梯度幅值|z|大小与其相邻的两个点进行比较,若该点大于前后两点则保留,若该点小于前后两点则置为零,从而对经步骤2.3处理后的灰度图像进行了非极大值抑制操作细化边缘,消除非边缘噪点;

步骤2.5,设置高阈值为经步骤2.4处理后的灰度图像的整体灰度级分布的70%,低阈值为高阈值的1/2,若经步骤2.4处理的点的灰度值大于高阈值,则像素值置为255,若经步骤2.4处理的点的灰度值小于低阈值,则像素值置为0,若经步骤2.4处理的点的灰度值介于高阈值与低阈值之间则考察临近的8像素值,若临近的8像素值中没有值为255的点,则将该点的像素值置为0,若相邻的梯度区域内存在值为255的点,则将该点的像素值置为255,直到处理完所有的点,则边缘特征提取完成。

步骤3具体按照以下步骤实施:

步骤3.1,以vgg16网络模型为基础对vgg16网络结构进行修改,将vgg16网络模型中的5个卷积层缩减至4个,每个卷积层后接一个池化层,选择最大池化,池化窗口大小选择为2*2,移动步长为2;

设p为未知点的像素,q11,q12,q21,q22为p点周围已知像素的四个点,则已知函数f在q11=(x1,y1),q12=(x1,y2),q21=(x2,y1)和q22=(x2,y2)四个点的值,通过在x方向进行线性插值,得到两个中间点r1,r2的像素值f(r1)和f(r2),则将被池化的层填充得到原图像的大小:

其中,r1=(x,y1),r2=(x,y2);

再结合r1,r2在y方向进行线性插值,得到未知点p的像素值f(p):

最终得到未知点p的像素结果f(x,y)为:

进而生成反卷积结构;

步骤3.2,在步骤3.1的基础上引入网络中网络,即将每个原始的卷积层结构替换为mlp卷积层结构;

步骤3.3,在经步骤3.2处理的卷积层与反卷积层之间加入dropout层防止网络过拟合,则构成一个对称的卷积神经网络。

步骤3.2具体按照以下步骤实施:

在一个原始卷积层后接若干个卷积核为1×1的卷积层,通过式(13)计算每一卷积层对上一卷积层的特征图:

式(13)中,(x,y)是特征图的像素索引,axy是中心在(x,y)的输入块,kt为特征图的索引,t为mpl的层数,f为激活函数,w为权值系数,b为偏置;

再通过relu激活输出当前层的特征图。

卷积神经网络为:

第一层为输入层,该层输入尺寸为:224*224*12;

第二层为卷积层,该层输入尺寸为:112*112*8;

第三层为卷积层,该层输入尺寸为:56*56*16;

第四层为卷积层,该层输入尺寸为:28*28*32;

第五层为dropout层,该层输入尺寸为:28*28*64;

第六层为反卷积层,该层输出尺寸为:56*56*32;

第七层为反卷积层,该层输出尺寸为:112*112*16;

第八层为反卷积层,该层输出尺寸为:224*224*8;

第九层为输出层,该层输出尺寸为224*224*1;

每个卷积层都有三个卷积子层,每两个3*3卷积核中间为一个1*1卷积核。

步骤4具体按照以下步骤实施:

步骤4.1,将步骤1得到的8个方向的gabor特征、步骤2得到的canny边缘特征及原始图像的rgb三通道特征组成12个特征通道;

步骤4.2,将步骤4.1得到的12个特征通道的图像尺寸调整为224*224,再将12个特征通道传入步骤3构建好的卷积神经网络,以原始图像的groundtruth标签图作为cnn的教师信号进行训练,生成cnn人物模型。

步骤5具体按照以下步骤实施:

步骤5.1,对待测图像分别结算经步骤1提取的gabor纹理特征及经步骤2提取的canny边缘特征;

步骤5.2,将待测图像的rgb三通道特征以及gabor纹理特征、canny边缘特征输入到经步骤4训练好的cnn模型中,得到人体轮廓热图;

步骤5.3,对步骤5.2得到的人体轮廓热图进行开闭运算并通过高斯低通滤波器对图像进行平滑处理,得到人体掩膜;

步骤5.4,将原始图像与步骤5.3得到的人体掩膜进行相与操作,即将原始图像的每一个像素点与生成的人体掩膜的对应像素点进行与运算,若掩膜对应位置像素为0,则原始图像中对应位置置为0,若掩膜中像素为1,则原始图像中对应位置取原始像素,得到人体轮廓图像。

本发明的有益效果是,

(1)本发明一种基于深度学习的人体轮廓提取方法,无需对原始图像进行区域选择的操作,并且无需对输出对象进行区域合并等一系列复杂的操作;

(2)本发明一种基于深度学习的人体轮廓提取方法,在gabor-cnn的基础上增加了canny边缘特征,达到了较高的准确率,不但提高了检测率,还缩短了测试时间。

附图说明

图1是双线性插值原理图;

图2是本发明提取方法使用的卷积神经网络上采样dag图;

图3是本发明提取方法使用的cnn整体结构图;

图4是本发明提取方法的结构图。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

本发明一种基于深度学习的人体轮廓提取方法,具体按照以下步骤实施:

步骤1,提取原始图像的gabor纹理特征;

步骤1.1,根据公式(1)获得二维gabor滤波器:

式(1)中,ψu,v为二维gabor滤波器,u,v分别为gabor核的方向和尺度,其中u为0,pi/4,pi/2,3*pi/4,pi,5*pi/4,6*pi/4或7*pi/4,ku,v用于控制高斯窗口的宽度大小,z=(x,y)为空间位置坐标,σ=2π为高斯窗口的宽度与波长大小之比,i为虚数单位;

其中,震荡部分的方向及波长大小ku,v为:

式(2)中,滤波器采样频率为kv=kmax/fv,kmax=π/2为最大采样频率,为间隔因子,用于限制频率中和函数,为滤波器的方向选择性;

步骤1.2,将原始图像i(x,y)与步骤1.1获得的二维gabor滤波器进行卷积操作,提取原始图像在(x,y)处的gabor特征gu,v(x,y):

gu,v(x,y)=i(x,y)*ψu,v(3)

为了获得原始图像的特征,特别是在多方向的局部显著性特征,则使用一组具有8个方向的二维gabor滤波器(gabor核函数)表示,方向u为0,pi/4,pi/2,3*pi/4,pi,5*pi/4,6*pi/4或7*pi/4,8个方向,其中,σ=2π,kmax=π/2,即得到8个方向的gabor纹理特征;

步骤2,提取原始图像的canny边缘特征;

步骤2.1,通过对rgb三通道设置权重参数完成原始图像的灰度处理,rgb三通道参数设置表达式为:

gray=r*0.299+g*0.587+b*0.114

步骤2.2,利用二维高斯函数的一阶导数对经步骤2.1处理后的灰度图像进行处理,其中,二维高斯函数的表达式为:

式(4)中,δ=1.4为平滑参数,δ越大时平滑处理效果越明显;

再使用3*3高斯卷积核对原始图像的3*3区域进行平滑处理,其中,高斯卷积核为:

步骤2.3,在经步骤2.2处理后的灰度图像中寻找灰度强度变化最强的位置,对灰度图像使用sobel算子计算水平方向(横坐标)x和竖直方向(纵坐标)y的一阶导数zx与zy,得到边界梯度幅值|z|和方向β:

其中,sobel算子在横坐标x和纵坐标y方向为:

步骤2.4,将步骤2.3得到的边界梯度幅值|z|等分成四个梯度区域,每个梯度区域对应坐标轴z的一个象限,再对每个区域中的所有点按顺序沿其梯度方向β逐个进行计算,将每个点的梯度幅值|z|大小与其相邻的两个点进行比较,若该点大于前后两点则保留,若该点小于前后两点则置为零,从而对经步骤2.3处理后的灰度图像进行了非极大值抑制操作细化边缘,消除非边缘噪点;

步骤2.5,设置高阈值为经步骤2.4处理后的灰度图像的整体灰度级分布的70%,低阈值为高阈值的1/2,若经步骤2.4处理的点的灰度值大于高阈值,则像素值置为255,若经步骤2.4处理的点的灰度值小于低阈值,则像素值置为0,若经步骤2.4处理的点的灰度值介于高阈值与低阈值之间则考察临近的8像素值,若临近的8像素值中没有值为255的点,则将该点的像素值置为0,若相邻的梯度区域内存在值为255的点,则将该点的像素值置为255,直到处理完所有的点,则边缘特征提取完成;

步骤3,搭建适用于人体轮廓提取的卷积神经网络架构;

步骤3.1,以vgg16网络模型为基础对vgg16网络结构进行修改,将vgg16网络模型中的5个卷积层缩减至4个,每个卷积层后接一个池化层,方式选择最大池化,池化窗口大小选择为2*2,移动步长为2;

如图1所示,设p为未知点的像素,q11,q12,q21,q22为p点周围已知像素的四个点,则已知函数f在q11=(x1,y1),q12=(x1,y2),q21=(x2,y1)和q22=(x2,y2)四个点的值,通过在x方向进行线性插值,得到两个中间点r1,r2的像素值f(r1)和f(r2),则将被池化的层填充得到原图像的大小:

其中,r1=(x,y1),r2=(x,y2);

再结合r1,r2在y方向进行线性插值,得到未知点p的像素值f(p):

最终得到未知点p的像素结果f(x,y)为:

进而生成如图2所示的反卷积结构;

反卷积过程可以将神经网络的多个阶段的输出合并来强化结果,其用双线性插值方法完成实现,通过周围四个点的像素值,使用双线性插值的方法得到中间点的像素值,从而能够将被池化的层填充得到原图像的大小;

步骤3.2,在步骤3.1的基础上引入网络中网络,即将每个原始的卷积层结构替换为mlp卷积层结构,具体过程为:

在每两个3*3卷积核中加入一个1*1的卷积核,mlp卷积层的原理在一个原始卷积层后接若干个卷积核为1×1的卷积层,通过式(13)计算每一卷积层对上一卷积层的特征图:

式(13)中,(x,y)是特征图的像素索引,即x坐标轴和y坐标轴,axy是中心在(x,y)的输入块,kt为特征图的索引,t为mpl的层数,f为激活函数,w为权值系数,b为偏置;

再通过relu激活输出当前层的特征图;

步骤3.3,在经步骤3.2处理的卷积层与反卷积层之间加入dropout层防止网络过拟合,则构成一个对称的卷积神经网络,防止网络过拟合的具体过程为:在网络中随机丢掉vgg16网络模型迭代过程中的部分参数,将随机丢掉的部分参数设置为0;

所述神经网络结构为:

第一层为输入层,该层输入尺寸为:224*224*12;

第二层为卷积层,该层输入尺寸为:112*112*8;

第三层为卷积层,该层输入尺寸为:56*56*16;

第四层为卷积层,该层输入尺寸为:28*28*32;

第五层为dropout层,该层输入尺寸为:28*28*64;

第六层为反卷积层,该层输出尺寸为:56*56*32;

第七层为反卷积层,该层输出尺寸为:112*112*16;

第八层为反卷积层,该层输出尺寸为:224*224*8;

第九层为输出层,该层输出尺寸为224*224*1;

每个卷积层都有三个卷积子层,每两个3*3卷积核中间为一个1*1卷积核;

输入图像经过特征提取尺寸由224*224减小至28*28,之后使用反卷积层来进行尺寸还原生成图像人体轮廓的特征图;

步骤4,将原始图像、步骤1提取的gabor纹理特征图、步骤2提取的canny边缘特征图共同传入步骤3构建好的卷积神经网络进行训练,生成cnn人物模型;

步骤4.1,将步骤1得到的8个方向的gabor特征、步骤2得到的canny边缘特征及原始图像的rgb三通道特征组成12个特征通道;

步骤4.2,将步骤4.1得到的12个特征通道的图像尺寸调整为224*224,再将12个特征通道传入步骤3构建好的卷积神经网络,以原始图像的groundtruth标签图(人体区域像素为1,其余像素为0)作为cnn的教师信号进行训练,生成cnn人物模型,训练过程中包括神经网络模型前向计算和神经网络模型反向误差传递计算,将前向计算和反向误差计算进行迭代处理,迭代次数为800;

前向计算和反向计算与迭代过程均通过伪代码表示,每一次迭代就是实现一次前向计算与误差反向传播的过程,神经网络训练过程中核心伪代码:

step1:initmodel(model);

//初始化神经网络模型

step2:foriter<-1tondo

step2.1:forward(model);

//神经网络模型前向计算

step2.2:backward(model);

//神经网络模型反向误差传递计算

step2.3:update(model);

//更新神经网络权重

step3:returntrainedmodel.

//返回训练好的模型

步骤5,对训练好的cnn人物模型的结构进行测试,得到人体轮廓图像;

步骤5.1,对待测图像分别结算经步骤1提取的gabor纹理特征及经步骤2提取的canny边缘特征;

步骤5.2,将待测图像的rgb三通道特征以及gabor纹理特征、canny边缘特征输入到经步骤4训练好的cnn模型中,得到人体轮廓热图;

步骤5.3,对步骤5.2得到的人体轮廓热图进行开闭运算并通过高斯低通滤波器对图像进行平滑处理,得到人体掩膜;

步骤5.4,将原始图像与步骤5.3得到的人体掩膜进行相与操作,即将原始图像的每一个像素点与生成的人体掩膜(人体轮廓区域为1,非人体区域为0)的对应像素点进行与运算,若掩膜对应位置像素为0,则原始图像中对应位置置为0,若掩膜中像素为1,则原始图像中对应位置取原始像素,得到人体轮廓图像;

步骤6,通过步骤5的测试过程记录人体轮廓图像的重叠率与耗时,对人体轮廓图像进行评估;

其中,重叠率为:

实施例

数据集来源为百度人体图像分割数据库,该数据库中的数据是从各个角度下拍摄的包含人体的图像。数据库中训练图像及标注样本各5387张。本发明选择其中的1000张图像作为训练集,剩下的部分中选择500张作为测试集。实验中网络输入图像尺寸固定为224×224。为了准确客观地评价本文方法的效果,并且方便与已有方法进行对比,这里使用重叠率来度量改进方法的人体轮廓提取模型的性能,其中,重叠率定义如下:

其中,s为重叠度,ap为人体轮廓提取网络预测的人体区域,agt为实际的人体区域。s越高,说明重叠度越高,人体轮廓提取效果越好。

表1中显示了五种方法在输入图像尺寸、重叠率、耗时及显卡方面的区别;

表1五种人体分割方法的对比

在神经网络的训练过程中,gpu的速度可以达到cpu的100倍甚至1000倍,在gtx750的中端显卡上训练大约需要数天时间,而在i7的高端cpu上运行,则需要至少一个月以上的时间,但测试过程与训练过程不同,在测试阶段,cpu的速度还是可以接受的,一张图片大约10s的时间,而gpu则可以达到毫秒级的测试速度。从表1中可以看出,本发明提出的方法重叠率为92.03%,单张图片的测试速度达到68.84毫秒,而pixel-by-pixel的方法虽然重叠率可以达到86.83%,但测试消耗时间太长,不具备实时性。alex-seg-net方法虽然在单张图像的测试耗时最少,但是该方法的重叠率仅达到了80.2%,效果不够理想;本发明方法在重叠率方面较高于pool5-net方法,但是在测试耗时上的效果不如pool5-net方法效果好,而pool5-net方法所用显卡gtx960属于中高端显卡,性能要明显好于本实验的gtx750显卡,本发明的方法在gabor-cnn的基础上增加了canny边缘特征,不但提高了检测率,还缩短了测试时间;因此,可以看出本发明方法在硬件条件有限制的情况下可以表现出良好的效果。综上所述,本发明所提出的将传统特征与深度学习相结合的方法既达到了较高的准确率,又有着较短的测试时间,可以满足一些实际应用的需求。

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