一种基于肤色检测的唇部视频定位方法和系统与流程

文档序号:13073086阅读:153来源:国知局
一种基于肤色检测的唇部视频定位方法和系统与流程

本发明涉及图像处理技术领域,尤其涉及一种基于肤色检测的唇部视频定位方法和系统。



背景技术:

随着多媒体技术及计算机网络技术的迅速发展,视频逐渐成为信息传播的主流载体之一。无论是人脸视频检索、还是在线视频美颜,精确快速的唇部定位技术都会增强其事半功倍的效果。目前主流的专设唇部图像定位技术,计算量大,制约了算法的在线使用和二次开发效率。此外,当唇部定位技术应用于视频时,不利用视频的时间相关性,仅做图像处理的纵向延伸,亦会进一步降低算法实施效率。



技术实现要素:

本发明实施例的目的在于提出一种基于肤色检测的唇部视频定位方法,旨在解决现有技术唇部定位技术应用于视频时,不利用视频的时间相关性,效率低的问题。

本发明实施例是这样实现的,一种基于肤色检测的唇部视频定位方法,所述方法包括:

step0:令t=1,t表示帧序列号;

step1:解码视频当前帧,获取解码图像;

step2:为当前帧中每个块设置相应的肤色标识符;

step3:如果当前帧所有块的肤色标识符均为0,则进入step6;否则,则进入step4;

step4:在当前帧中查找并设置唇部待定区域;

step5:按判定模式进行唇部定位,标识;

step6:如果当前搜索视频当前帧的下一帧存在,则令t=t+1,并将当前搜索视频当前帧的下一帧设置为当前搜索视频当前帧,然后进入step7;否则,结束;

step7:如果不存在sbkt-1(i,j)=1,则进入step8;否则进入step10;其中sbkt-1(i,j)表示块bkt-1(i,j)的唇部标识参数;bkt-1(i,j)表示pict-1的第i行第j解码块;pict-1表示视频第t-1帧;

step8:如果pict为帧内预测帧,则令tpt=bkh*bkw;否则,计算tpt=sum(sign(bkt(i,j)|条件2)|1≤i≤bkh且1≤j≤bkw);

其中,条件2表示:bkt(i,j)为帧内预测块或者至少包含一个帧内预测子块;tpt为场景切换参数;pict表示视频第t帧,也称为当前帧;bkw、bkh分别表示一帧图像划分成块以后,图像以块为单位的列数和行数;sum(变量)表示对变量求和;bkt(i,j)表示pict的第i行第j解码块;

step9:如果tpt=0,则首先,设置所有sbkt(i,j)=0,然后进入step6;否则,如果tpt≥0.9*bkh*bkw,则进入step1;否则,则进入step10;其中,sbkt(i,j)表示块bkt(i,j)的唇部标识参数;

step10:如果bkt(i,j)为帧内预测块,则解码该块,然后划定该块为肤色判定区域;否则,划入非肤色判定区域块;

step11:为肤色判定区域中每个块设置相应的肤色标识符;

step12:首先对非肤色判定区域的块,根据参考块的参数来标识当前块;然后进入step4。

本发明实施例的另一目的在于提出一种基于肤色检测的唇部视频定位系统,所述系统包括:

帧序列号初始化模块,用于令t=1,pict表示视频第t帧,也称为当前帧,t表示帧序列号;

解码模块,用于解码视频当前帧,获取解码图像;

当前帧的块肤色标识符设置模块,为当前帧中每个块设置相应的肤色标识符;

具体为:用业内公开的以块为单位的肤色判定方法,判断当前帧中每个块是否为肤色块,即如果bkt(i,j)判定为肤色块,则设置该块肤色标识符为1,即notet(i,j)=1;否则,设置notet(i,j)=0;

其中,bkt(i,j)表示pict的第i行第j解码块,bkw、bkh分别表示一帧图像划分成块以后,图像以块为单位的列数和行数;notet(i,j)表示当前帧pict的第i行第j块的肤色标识符;

肤色标识符判断模块,用于判断如果当前帧所有块的肤色标识符均为0,则进入下一帧判断处理模块;否则,则进入唇部待定区域查找及设置装置;

唇部待定区域查找及设置装置,用于在当前帧中查找并设置唇部待定区域;即:如果在当前帧中能找到唇部待定区域,则进入唇部定位装置;否则,则进入下一帧判断处理模块;

唇部定位装置,用于进行唇部定位;

下一帧判断处理模块,用于判断如果当前搜索视频当前帧的下一帧存在,则令t=t+1,并将当前搜索视频当前帧的下一帧设置为当前搜索视频当前帧,然后进入唇部标识参数判断模块;否则,结束;

唇部标识参数判断模块,用于判断如果不存在sbkt-1(i,j)=1,则进入帧内预测帧判断处理模块;否则进入肤色和非肤色判定区域划分模块;

sbkt-1(i,j)表示块bkt-1(i,j)的唇部标识参数;bkt-1(i,j)表示pict-1的第i行第j解码块;pict-1表示视频第t-1帧;

帧内预测帧判断处理模块,用于判断如果pict为帧内预测帧,则令tpt=bkh*bkw;否则,计算tpt=sum(sign(bkt(i,j)|条件2)|1≤i≤bkh且1≤j≤bkw);

其中,条件2表示:bkt(i,j)为帧内预测块或者至少包含一个帧内预测子块;tpt为场景切换参数;

场景切换参数判断处理模块,用于判断如果tpt=0,则首先,设置所有sbkt(i,j)=0,然后进入下一帧判断处理模块;否则,如果tpt≥0.9*bkh*bkw,则进入解码模块;否则,则进入肤色和非肤色判定区域划分模块;

肤色和非肤色判定区域划分模块,用于判断如果bkt(i,j)为帧内预测块,则解码该块,然后划定该块为肤色判定区域;否则,划入非肤色判定区域;

肤色标识符设置模块,用于为肤色判定区域中每个块设置相应的肤色标识符;

具体为:用业内公开的以块为单位的肤色判定方法,判断肤色判定区域中每个块是否为肤色块,如果bkt(i,j)判定为肤色块,则设置该块肤色标识符为1,即notet(i,j)=1;否则,设置notet(i,j)=0;

非肤色标识符设置模块,用于对非肤色判定区域的块,根据参考块的参数来标识当前块;然后进入人眼待定区域判定模式设置装置;

具体为:即如果spbkt(i,j)=1,则设置sbkt(i,j)=1;否则,则设置sbkt(i,j)=0;如果snotet(i,j)=1,则设置notet(i,j)=1;否则,则设置notet(i,j)=0;

其中,snotet(i,j)表示bkt(i,j)的参考块的肤色标识参数;spbkt(i,j)表示bkt(i,j)的参考块的唇部标识参数。

本发明的有益效果

本发明提出一种基于肤色检测的唇部视频定位方法。本发明方法通过一方面利用肤色检测缩减唇部搜索范围,设计了一种唇部定位技术;另一方面通过视频压缩域的信息确定视频中相关图像帧的唇部定位,以提升唇部视频定位技术的时效性。

附图说明

图1是本发明优选实施例一种基于肤色检测的唇部视频定位方法流程图;

图2是图1中step4的详细方法流程图;

图3是图2step44中唇部待定区域误判方法流程图;

图4是图1中step5的详细方法流程图;

图5是本发明优选实施例一种基于肤色检测的唇部视频定位系统结构图;

图6是图5中唇部待定区域查找及设置装置详细结构图;

图7是图6中唇部待定区域误判判断处理装置详细结构图;

图8是图5唇部定位装置详细结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。

本发明提出一种基于肤色检测的唇部视频定位方法和系统。本发明方法实施例通过一方面利用肤色检测缩减唇部搜索范围,设计了一种唇部定位技术;另一方面通过视频压缩域的信息确定视频中相关图像帧的唇部定位,以提升唇部视频定位技术的时效性。

实施例一

图1是本发明优选实施例一种基于肤色检测的唇部视频定位方法流程图;所述方法包括:

step0:令t=1,pict表示视频第t帧,也称为当前帧,t表示帧序列号。

step1:解码视频当前帧,获取解码图像。

step2:为当前帧中每个块设置相应的肤色标识符;

具体为:用业内公开的以块为单位的肤色判定方法,判断当前帧中每个块是否为肤色块,即如果bkt(i,j)判定为肤色块,则设置该块肤色标识符为1,即notet(i,j)=1;否则,设置notet(i,j)=0。

其中,bkt(i,j)表示pict的第i行第j解码块(块的大小为16x16(h264等标准),64x64(hevc),当块进一步划分,这些小尺寸块称为子块),bkw、bkh分别表示一帧图像划分成块以后,图像以块为单位的列数和行数;notet(i,j)表示当前帧pict的第i行第j块的肤色标识符。

step3:如果当前帧所有块的肤色标识符均为0,则进入step6;否则,则进入step4。

step4:在当前帧中查找并设置唇部待定区域;

图2是图1中step4的详细方法流程图;包括以下步骤:

即:如果在当前帧中能找到唇部待定区域,则进入step5;否则,则进入step6。

step40:i=2、j=2。

step41:在当前行所有块中,查找满足条件:notet(i,j)=0且notet(i-1,j)=1且notet(i,j-1)=1的块,如果没找到,则进入step42;否则,则首先记找到的块为sbkt(is,js),称为唇部起始判定块,然后进入step43。

其中,is、js分别表示唇部起始判定块的行列号;notet(i-1,j)表示当前帧pict的第i-1行第j块的肤色标识符;notet(i,j-1)表示当前帧pict的第i行第j-1块的肤色标识符;

step42:i=i+1、j=2,然后重新进入step41。

step43:进行待判定区域的融合,即将唇部起始判定块的邻接非肤色块一起合并为唇部待定区域。

step44:判定唇部待定区域是否为误判情况,如果为非误判情况,则进入step5;否则,则令i=1+max(i|bkt(i,j)∈唇部待定区域)、j=2,然后进入step45。

图3是图2step44中唇部待定区域误判方法流程图;

其中,唇部待定区域误判方法如下:

步骤c1:计算唇部待定区域的亮度值分布

p(k)=sum(sign(yt(m,n)=k|yt(m,n)∈待定区域))。

其中,p(k)标识亮度值k的分布;sum(变量)表示对变量求和;yt(m,n)表示pict第m行第n列的亮度值;

步骤c2:求唇部待定区域的亮度值分布的最大值和次最大值,并找到对应的亮度值。

perk1(k)=max(p(k))、kmax1=arg(k|perk1(k))、

perk2(k)=max(p(k)|p(k)≠perk1(k))、kmax2=arg(k|perk2(k))。

其中,perk1(k)、kmax1分别表示亮度值分布的最大值和亮度值分布的最大值对应的亮度值;perk2(k)、kmax2分别表示亮度值分布的次最大值和亮度值分布的次最大值对应的亮度值;kmax1=arg(k|perk1(k))表示先求perk1(k),然后将perk1(k)对应的k值,赋值给kmax1,kmax2=arg(k|perk2(k))表示先求perk2(k),然后将perk2(k)对应的k值,赋值给kmax2;max(变量|条件)表示对满足条件的变量求最大值、max(变量)表示变量求最大值。

步骤c3:如果abs(kmax1-kmax2)>thres1,则属于唇部待定区域区域误判;

否则,则不属于唇部待定区域误判。

其中,abs(变量)表示对变量取绝对值;thres1表示第一门限阈值,一般可取thres1>50。

step45:如果i>bkh,则结束;否则,则重新进入step41。

step5:按判定模式进行唇部定位,标识。图4是图1中step5的详细方法流程图;包括以下步骤:

step51:计算唇部待定区域的色度分类统计量f1:

f1=sum(sign(ut(m,n),vt(m,n))|条件1))

其中,条件1:区域条件且(分类条件1或者分类条件2或者分类条件3);区域条件:yt(m,n)和ut(m,n)和vt(m,n)均∈唇部待定区域;

分类条件1:ut(m,n)<128且vt(m,n)>128且vt(m,n)-128>128-ut(m,n);

分类条件2:ut(m,n)>128且vt(m,n)>128且vt(m,n)-128>ut(m,n)-128;

分类条件3:ut(m,n)=128且vt(m,n)=128且(yt(m,n)≤50或yt(m,n)≥180);

yt(m,n)、ut(m,n)、vt(m,n)分别表示pict第m行第n列的亮度值、u色度值、v色度值。

step52:如果num-f1<thres2,则判定唇部待定区域为唇部,并标识为唇部;否则,则判定为不是唇部,并标识为非唇部。其中,标识方法如下:

sbkt(i,j)=sign(bkt(i,j)|bkt(i,j)∈唇部待定区域且唇部待定区域判定为唇部)

其中,thres2表示第二门限阈值,一般可取thres2≤16;num为唇部待定区域的像素点个数;sbkt(i,j)表示块bkt(i,j)的唇部标识参数。

step6:如果当前搜索视频当前帧的下一帧存在,则令t=t+1,并将当前搜索视频当前帧的下一帧设置为当前搜索视频当前帧,然后进入step7;否则,结束。

step7:如果不存在sbkt-1(i,j)=1,则进入step8;否则进入step10。

sbkt-1(i,j)表示块bkt-1(i,j)的唇部标识参数;bkt-1(i,j)表示pict-1的第i行第j解码块;pict-1表示视频第t-1帧;

step8:如果pict为帧内预测帧,则令tpt=bkh*bkw;否则,计算tpt=sum(sign(bkt(i,j)|条件2)|1≤i≤bkh且1≤j≤bkw)。

其中,条件2表示:bkt(i,j)为帧内预测块或者至少包含一个帧内预测子块;tpt为场景切换参数。

step9:如果tpt=0,则首先,设置所有sbkt(i,j)=0,然后进入step6;否则,如果tpt≥0.9*bkh*bkw,则进入step1;否则,则进入step10。

step10:如果bkt(i,j)为帧内预测块,则解码该块,然后划定该块为肤色判定区域;否则,划入非肤色判定区域。

step11:为肤色判定区域中每个块设置相应的肤色标识符;

具体为:用业内公开的以块为单位的肤色判定方法,判断肤色判定区域中每个块是否为肤色块,如果bkt(i,j)判定为肤色块,则设置该块肤色标识符为1,即notet(i,j)=1;否则,设置notet(i,j)=0。

step12:对非肤色判定区域的块,根据参考块的参数来标识当前块;然后进入step4。

即如果spbkt(i,j)=1,则设置sbkt(i,j)=1;否则,则设置sbkt(i,j)=0;如果snotet(i,j)=1,则设置notet(i,j)=1;否则,则设置notet(i,j)=0。

其中,snotet(i,j)表示bkt(i,j)的参考块的肤色标识参数;spbkt(i,j)表示bkt(i,j)的参考块的唇部标识参数。

实施例二

图5是本发明优选实施例一种基于肤色检测的唇部视频定位系统结构图;所述系统包括:

帧序列号初始化模块,用于令t=1,pict表示视频第t帧,也称为当前帧,t表示帧序列号;

解码模块,用于解码视频当前帧,获取解码图像;

当前帧的块肤色标识符设置模块,为当前帧中每个块设置相应的肤色标识符;

具体为:用业内公开的以块为单位的肤色判定方法,判断当前帧中每个块是否为肤色块,即如果bkt(i,j)判定为肤色块,则设置该块肤色标识符为1,即notet(i,j)=1;否则,设置notet(i,j)=0。

其中,bkt(i,j)表示pict的第i行第j解码块(块的大小为16x16(h264等标准),64x64(hevc),当块进一步划分,这些小尺寸块称为子块),bkw、bkh分别表示一帧图像划分成块以后,图像以块为单位的列数和行数;notet(i,j)表示当前帧pict的第i行第j块的肤色标识符。

肤色标识符判断模块,用于判断如果当前帧所有块的肤色标识符均为0,则进入下一帧判断处理模块;否则,则进入唇部待定区域查找及设置装置。

唇部待定区域查找及设置装置,用于在当前帧中查找并设置唇部待定区域;即:如果在当前帧中能找到唇部待定区域,则进入唇部定位装置;否则,则进入下一帧判断处理模块。

唇部定位装置,用于进行唇部定位。

下一帧判断处理模块,用于判断如果当前搜索视频当前帧的下一帧存在,则令t=t+1,并将当前搜索视频当前帧的下一帧设置为当前搜索视频当前帧,然后进入唇部标识参数判断模块;否则,结束。

唇部标识参数判断模块,用于判断如果不存在sbkt-1(i,j)=1,则进入帧内预测帧判断处理模块;否则进入肤色和非肤色判定区域划分模块。

sbkt-1(i,j)表示块bkt-1(i,j)的唇部标识参数;bkt-1(i,j)表示pict-1的第i行第j解码块;pict-1表示视频第t-1帧;

帧内预测帧判断处理模块,用于判断如果pict为帧内预测帧,则令tpt=bkh*bkw;否则,计算tpt=sum(sign(bkt(i,j)|条件2)|1≤i≤bkh且1≤j≤bkw)。

其中,条件2表示:bkt(i,j)为帧内预测块或者至少包含一个帧内预测子块;tpt为场景切换参数。

场景切换参数判断处理模块,用于判断如果tpt=0,则首先,设置所有sbkt(i,j)=0,然后进入下一帧判断处理模块;否则,如果tpt≥0.9*bkh*bkw,则进入解码模块;否则,则进入肤色和非肤色判定区域划分模块。

肤色和非肤色判定区域划分模块,用于判断如果bkt(i,j)为帧内预测块,则解码该块,然后划定该块为肤色判定区域;否则,划入非肤色判定区域。

肤色标识符设置模块,用于为肤色判定区域中每个块设置相应的肤色标识符;

具体为:用业内公开的以块为单位的肤色判定方法,判断肤色判定区域中每个块是否为肤色块,如果bkt(i,j)判定为肤色块,则设置该块肤色标识符为1,即notet(i,j)=1;否则,设置notet(i,j)=0。

非肤色标识符设置模块,用于对非肤色判定区域的块,根据参考块的参数来标识当前块;然后进入人眼待定区域判定模式设置装置。

具体为:即如果spbkt(i,j)=1,则设置sbkt(i,j)=1;否则,则设置sbkt(i,j)=0;如果snotet(i,j)=1,则设置notet(i,j)=1;否则,则设置notet(i,j)=0。

其中,snotet(i,j)表示bkt(i,j)的参考块的肤色标识参数;spbkt(i,j)表示bkt(i,j)的参考块的唇部标识参数。

进一步地,图6是图5中唇部待定区域查找及设置装置详细结构图;所述唇部待定区域查找及设置装置包括:

第一行列号设置模块,用于令i=2、j=2。

唇部起始判定块查找判断模块,用于在当前行所有块中,查找满足条件:notet(i,j)=0且notet(i-1,j)=1且notet(i,j-1)=1的块,如果没找到,则进入第二行列号设置模块;否则,则首先记找到的块为sbkt(is,js),称为唇部起始判定块,然后,进入唇部待定区域设置模块。

其中,is、js分别表示唇部起始判定块的行列号;notet(i-1,j)表示当前帧pict的第i-1行第j块的肤色标识符;notet(i,j-1)表示当前帧pict的第i行第j-1块的肤色标识符;

第二行列号设置模块,用于令i=i+1、j=2,然后重新进入唇部起始判定块查找判断模块。

唇部待定区域设置模块,用于进行待判定区域的融合,即将唇部起始判定块的邻接非肤色块一起合并为唇部待定区域。

唇部待定区域误判判断处理装置,用于判定是否为唇部待定区域误判情况,如果为非误判情况,则进入唇部定位装置;否则,则进入第三行列号设置模块;

第三行列号设置模块,用于令i=1+max(i|bkt(i,j)∈唇部待定区域)、j=2,然后进入尾行判断处理模块。

尾行判断处理模块,用于判断如果i>bkh,则结束;否则,则重新进入唇部起始判定块查找判断模块。

进一步地,图7是图6中唇部待定区域误判判断处理装置详细结构图;所述唇部待定区域误判判断处理装置包括:第一判断处理模块和唇部待定区域误判判定装置;

第一判断处理模块,用于根据唇部待定区域误判判定装置的判断结果,如果判定结果为非误判情况,则进入唇部定位装置;否则,则进入第三行列号设置模块;

所述唇部待定区域误判判定装置包括:

唇部待定区域亮度值分布计算模块,用于计算唇部待定区域的亮度值分布p(k)=sum(sign(y(m,n)=k|y(m,n)∈待定区域))。

其中,p(k)标识亮度值k的分布;sum(变量)表示对变量求和;y(m,n)表示第m行第n列的亮度值;

亮度值分布最大、次最大值对应的亮度值获取模块,用于求唇部待定区域的亮度值分布的最大值和次最大值,并找到对应的亮度值。

perk1(k)=max(p(k))、kmax1=arg(k|perk1(k))、

perk2(k)=max(p(k)|p(k)≠perk1(k))、kmax2=arg(k|perk2(k))。

其中,perk1(k)、kmax1分别表示亮度值分布的最大值和亮度值分布的最大值对应的亮度值;perk2(k)、kmax2分别表示亮度值分布的次最大值和亮度值分布的次最大值对应的亮度值;kmax1=arg(k|perk1(k))表示先求perk1(k),然后将perk1(k)对应的k值,赋值给kmax1,kmax2=arg(k|perk2(k))表示先求perk2(k),然后将perk2(k)对应的k值,赋值给kmax2;max(变量|条件)表示对满足条件的变量求最大值、max(变量)表示变量求最大值。

唇部待定区域确定模块,用于判断如果abs(kmax1-kmax2)>thres1,则属于唇部待定区域误判;否则,则不属于唇部待定区域误判。

其中,abs(变量)表示对变量取绝对值;thres1表示第一门限阈值,一般可取thres1>50。

进一步地,图8是图5唇部定位装置详细结构图。所述唇部定位装置包括:

唇部待定区域色度分类统计量计算模块,计算唇部待定区域的色度分类统计量f1:

f1=sum(sign(ut(m,n),vt(m,n))|条件1))

其中,条件1:区域条件且(分类条件1或者分类条件2或者分类条件3);区域条件:yt(m,n)和ut(m,n)和vt(m,n)均∈唇部待定区域;

分类条件1:ut(m,n)<128且vt(m,n)>128且vt(m,n)-128>128-ut(m,n);

分类条件2:ut(m,n)>128且vt(m,n)>128且vt(m,n)-128>ut(m,n)-128;

分类条件3:ut(m,n)=128且vt(m,n)=128且(yt(m,n)≤50或yt(m,n)≥180);

yt(m,n)、ut(m,n)、vt(m,n)分别表示pict第m行第n列的亮度值、u色度值、v色度值。

唇部待定区域判断模块,用于如果num-f1<thres2,则判定唇部待定区域为唇部,并标识为唇部;否则,则判定为不是唇部,并标识为非唇部。其中,标识方法如下:

sbkt(i,j)=sign(bkt(i,j)|bkt(i,j)∈唇部待定区域且唇部待定区域判定为唇部)

其中,thres2表示第二门限阈值,一般可取thres2≤16;num为唇部待定区域的像素点个数;sbkt(i,j)表示块bkt(i,j)的唇部标识参数。

本领域的普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序指令相关硬件来完成的,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质可以为rom、ram、磁盘、光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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