首页> 中国专利> 一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法

一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法

摘要

本发明公开了一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,步骤一:针对手游脸谱的彩色原图,设定脸部的大致范围;步骤二:基于颜色感器实现双眼定位及嘴唇定位;(1)双眼定位:采用黝黑感器,从上向下定位彩色原图中两瞳孔的垂直区间,再从左向右定位左眼的水平区间,继而从右向左定位右眼的水平区间;完成双眼定位;(2)嘴唇定位:采用亮红感器,从上向下定位彩色原图中嘴唇的垂直区间,再从左向右定位左嘴角的水平位置,继而从右向左定位右嘴角的水平位置;完成嘴唇定位。该借鉴昆虫触角功能在手游脸谱中实现器官定位的方法具有实施方便、响应快速、定位效果好、数据量小等特点。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-26

    授权

    授权

  • 2014-07-30

    实质审查的生效 IPC(主分类):G06K9/00 申请日:20140417

    实质审查的生效

  • 2014-07-02

    公开

    公开

说明书

技术领域

本发明涉及一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法。

背景技术

随着移动互联网的迅猛发展,手机动漫、手机游戏迎来了飞速发展的契机, 它们是文化创意产业中的新型文化业态,将手机动漫、手机游戏融入广大受众的 日常生活,使之成为深入人心的文化品牌是新媒体从业人员的社会责任。

手机用户可以使用动漫、游戏从业人员提供的应用软件,借助电脑或手机平 台,开发出他自身喜闻乐见的作品(如彩信、屏保、游戏等),就像收获了自己 亲手种植的蔬菜、瓜果已经进入了市场,自然有一份成就感。

手机游戏中一般都允许用户在登录时选择“姓名”、“脚色”的环节,这时, 我们可以请用户提供一张个人的彩色照片,并按照用户的愿望将这一照片进行美 化、搞怪等再创作,在游戏环境就会出现许多似真又假(基于真实照片的搞怪) 脸庞,无疑使玩家本人及其亲友感到十分刺激和过瘾!

为此,重要的前提条件环节就是对脸部器官定位。这种脸部器官的定位和服 务于安保中的脸谱识别大体相同,但却并不要求相关的服务于识别的技术特征和 技术参数等辅助性要素,但是现有的定位技术步骤复杂,实现难度大,且对硬件 要求很高,并不适合于在手机平台上运行。

因此,有必要设计一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法。

发明内容

本发明所要解决的技术问题是提供一种借鉴昆虫触角功能在手游脸谱中实 现器官定位的方法,该借鉴昆虫触角功能在手游脸谱中实现器官定位的方法具有 实施方便、响应快速、定位效果好、数据量小等特点。

发明的技术解决方案如下:

一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,包括以下步骤: 步骤一:针对手游脸谱的彩色原图,设定脸部的大致范围;

步骤二:基于颜色感器实现双眼定位及嘴唇定位;

(1)双眼定位:

采用黝黑感器,从上向下定位彩色原图中两瞳孔的垂直区间,再从左向右定 位左眼的水平区间,继而从右向左定位右眼的水平区间;完成双眼定位;

所述的黝黑感器用以感知相邻行或相邻列的亮度均值的突变;

(2)嘴唇定位:

采用亮红感器,从上向下定位彩色原图中嘴唇的垂直区间,再从左向右定 位左嘴角的水平位置,继而从右向左定位右嘴角的水平位置;完成嘴唇定位;

所述的亮红感器用以感知相邻行或相邻列的在红色分量基本不变的情况下 蓝色分量或绿色分量发生的突变;基本不变是指突变量小于10%;

所述的步骤1中,在彩色原图上大致地划定一个矩形的脸部检测区域 FaceArea:眉毛以下、下巴以上,包括左右双眼;脸部检测区域FaceArea的4 条边界即左边界、右边界、上边界和下边界的坐标分别记为做编FaceAreaLeft、 FaceAreaRight、FaceAreaTop和FaceAreaBottom

所述的双眼定位过程为:

步骤1、从上向下,发现定位黑色像素局部密集的黑色相邻行,即界定一个 黑色像素局部密集的相邻行,得到Y的起止坐标;

步骤2、在上述Y的起止坐标限定的区间内,从左至右或从右至左发现、定 位黑色像素局部密集的黑色相邻列,得到X的起止坐标;

经过步骤1、步骤2就界定了一个黑色像素局部密集的黑色团块,分别用X、 Y的起止坐标界定它的区间。

所述的步骤1是指定位双眼上下边界EyesTop和EyesBottom

Step1、设定从FaceAreaTop到FaceAreaBottom高度为H,从FaceAreaLeft到 FaceAreaRight宽度为W的检测区域,其中,H=FaceAreaBottom-FaceAreaTop, W=Face4reaRight-FaceAreaLeft

Step2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的 RGB数值变换为Y值;

Step3、对检测区域从上向下扫描,求得各行的Y均值,并按照行号存入一 个名为Project的数组中,Project数组有H个单元;再建立一个名为DProject 的数组,并存放相邻行Y均值之差;

扫描DProject数组,得到其极大值(从明到暗跳变)和极小值(从暗到明 跳变的负极大值)所在行号,这两个行号就是黑色团块的起始行号YTop和终止行 号YBottom

同时检验Project极小值(最暗处)所在行号,它在Ytop和Ybottom之间;【这 是辅助性检测,如在Ytop和Ybottom之间确实存在极小值,说明Ytop和Ybottom是可信 的。】

并将Ytop改称为EyesTop,Ybottom改称为EyesBottom

所述的步骤2是指定位左右眼的X边界,

(A)左眼X边界检测:

Step1、将FaceArea水平方向的中心边界记为FaceAreaX_Middle;【即取左右 边界的中值,FaceAreaX_Middle=(FaceAreaLeft+FaceAreaRight)/2】

检测左眼时从FaceAreaLeft开始前进到FaceAreaX_Middle宽度为W1,从EyesTop到EyesBottom高度为H的检测区域;W1=FaceAreaX_Middle-FaceAreaLeft

Step2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的 RGB数值变换为Y值。

Step3、对检测区域从左向右扫描,求得各列的Y均值,并按照列号存入一 个名为Project的数组中,再建立一个名为DProject的数组,并存放相邻列均 值之差;

Step4、扫描DProject数组,得到其极大值(从明到暗跳变)和极小值(从 暗到明跳变)所在列号,这两个列号就是黑色团块的起始列号XLeft和终止列号 XRight

Step5、将XLeft改称为LEyeLeft,XRight改称为LEyeRight

(B)左眼右边界检测:

Step1、将FaceArea水平方向的中心边界记为FaceAreaX_Middle;【即取边界 的中值】

检测右眼时从FaceAreaX_Middle开始,前进到FaceAreaRight宽度为W2,从 EyesTop到EyesBottom高度为H的检测区域;W2=FaceAreaRight-FaceAreaX_Middle

Step2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的 RGB数值变换为Y值。

Step3、对检测区域从左向右扫描,求得各列的Y均值,并按照列号存入一 个名为Project的数组中,再建立一个名为DProject的数组,并存放相邻列均 值之差;

Step4、扫描DProject数组,得到其极大值(从明到暗跳变)和极小值(从 暗到明跳变)所在列号,这两个列号就是黑色团块的起始列号XLeft和终止列号 XRight

Step5、并将XLeft改称为REyeLeft,XRight改称为REyeRight

所述的嘴唇定位包括定位嘴唇上边界LipTop、嘴唇下边界LipBottom、左嘴角边 界LipLeft和右嘴角边界LipRight

定位嘴唇上边界LipTop和嘴唇下边界LipBottom的过程如下:

设定从Eyesbottom到FaceAreaBottom高度为H,从FaceAreaLeft到FaceAreaRight宽度为 W的检测区域;

对检测区域从上向下扫描获得LipTop,相对的,从下向上扫描获得LipBottom; 不妨以获得LipTop的过程说明如下:

求得各行的R、G、B均值,并按照行号分别存入名为ProjectR、ProjectG、 ProjectB的三个数组中,显然,它们有H个单元;再建立一个名为DProjectR、 DProjectG、DProjectB的数组,并分别存放相邻行均值之差;

建立各有256个单元的数组Ar,Ag,Ab,并将各单元初始化为0;

遍历该行各像素,按各像素的R、G、B取值累加地存入数组Ar,Ag,Ab的相 应单元中;【解释:对于Ar,包括256个元素,分别存储0-255红色分量对应的 像素个数,Ag,Ab的含义类似。】【因为每一行有W个像素,每一像素也各有其 RGB取值,例如左起像素0的R=250,像素1的R=250,像素2的R=230,像 素4的R=220,……则Ar[250]中记录为2,Ar[230]中记录为1,Ar[220]中记 录为1,……,这样,250×2+230×1+220×1=950,950/4=237.5,(宽度为 4)就是该行的颜色投影,它比较接近250但小于250是合理的】

记本行均值为Average,每行的RGB分量的均值AverageR、AverageG和 AverageB如下:

其中ArR是指某行中包含的红色分量值为R 的像素总数;

其中AgG是指某行中包含的绿色分量值为G 的像素总数;

其中AbB是指某行中包含的蓝色分量值为B的 像素总数;

将3个Average存入ProjectR、ProjectG、ProjectB数组相应该行号的单 元中;

将相邻行均值之差分别存放到DProjectR、DProjectG、DProjectB数组中;

扫描DProjectG、DProjectB数组,得到其极大值(从明到暗跳变)所在行 号,将这两对个行号相加除2再取整就是红色团块的起始行号LipTop

同时检验ProjectR应该维持基本不变;基本不变是指突变量小于10%。

定位左嘴角边界LipLeft和右嘴角边界LipRight的过程如下:

检测左嘴角时从FaceAreaLeft开始前进到FaceAreaX_Middle宽度为W1、从LipTop到LipBottom高度为H的检测区域;

检测右嘴角时从FaceAreaRight开始前进到FaceAreaX_Middle宽度为W2、从 LipTop到LipBottom高度为H的检测区域;

对检测区域从左向右扫描,求得各列的R、G、B均值,并按照列号分别存入 名为ProjectR、ProjectG、ProjectB的三个数组中,显然,它们有H个单元; 再建立一个名为DProjectR、DProjectG、DProjectB的数组,并分别存放相邻 列均值之差;

具体步骤如下:

SubStep2a、建立各有256个单元的数组Ar,Ag,Ab并将各单元初始化为0;

SubStep2b、遍历该列各像素,按各像素的R、G、B取值累加地存入数组 Ar,Ag,Ab的相应单元中;

SubStep2c、设本列均值(即直方图中的投影值)为AverageR、AverageG、 AverageB,且

其中ArR是指某列中包含的红色分量值为R 的像素总数;

其中AgG是指某列中包含的绿色分量值为G 的像素总数;

其中AbB是指某列中包含的蓝色分量值为B的 像素总数;

【之所以前文每行的平均值和每列的平均值都采用AverageR、AverageG、 AverageB,且每行和每列的所述像素总数都采用ArR、AgG和AbB,那是因为声明 的变量越少,对硬件资源的消耗越少】

SubStep2d、将3个AverageR、4verageG、AverageB存入ProjectR、ProjectG、 ProjectB数组相应该列号的单元中;

Step3、将相邻列均值之差(左列减右列的增量值)存放到DProjectR、 DProjectG、DProjectB数组中;

Step4、从左至右扫描DProjectG、DProjectB数组,得到其极大值(从明 到暗跳变)所在列号,将这两对个列号相加除2再取整就是红色团块的起始列号, 即为左嘴角边界LipLeft

从右左至左扫描DProjectG、DProjectB数组,得到其极大值(从明到暗跳 变)所在列号,将这两对个列号相加除2再取整就是红色团块的起始列号,即为 右嘴角边界LipRight

同时检验ProjectR应该维持基本不变;基本不变是指突变量小于10%;

至此,用亮红感器定位了嘴唇的区域,该区域的四条边界的对应值分别是 LipLeft、LipRight、LipTop和Lipbottom

本发明基于手游脸谱中器官定位的特点,即这种定位仅要求服务于美化、 搞怪的创作需要,极大的简化了数据结构,从而推进算法的快速、有效,使得这 种定位方法在低速CPU的环境下仍能快速地运行。本发明借鉴雄性啮小蜂 (Tetrastichus)触角中存在起着控制和调节自身行为(如运动、振翅、交配等) 作用的感器(Sensilla),设计了“黝黑感器”和“亮红感器”,并分别用于定 位彩色照片中的眼睛和嘴唇。

其核心的步骤在于:

(1)用BS从上向下定位脸部照片中两瞳孔的垂直区间,再用BS从左向右定 位左眼的水平区间,继而用BS从右向左定位右眼的水平区间。

(2)用RS从上向下定位脸部照片中嘴唇的垂直区间,再用RS从左向右定位 左嘴角的水平位置,继而RS从右向左定位右嘴角的水平位置。

有益效果:

本发明的借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,注意减少数 据量和提高CPU运行效率,使受制约于手机屏幕尺寸和手机计算能力的手机彩信 作品能够以实现最小的内存消耗和快速的运行效果,满足用户的对图片处理的要 求。特别要指出:本发明目的之一要是在手机这种软硬件资源相对弱于计算机的 平台上实现DIY图像操作,所以在算法设计中以减少数据量和提高CPU运行效率 为重要目标,并取得有效成果。

本发明基于仿生学的原理,独创了“黝黑感器”和“亮红感器”分别用于 定位彩色照片中的眼睛和嘴唇,能够快速有效的实现眼睛和嘴唇的定位。

附图说明

图1从上向下红色渐深的红色柱体示意图;

图2眼睛、嘴唇定位效果图;

图3本发明流程图。

具体实施方式

以下将结合附图和具体实施例对本发明做进一步详细说明:

实施例1:

昆虫学家发现触角是各种感器(Sensilla)最为富集的器官之一,其表面生 有许多不同种类的化学感器。例如,桃树蚜虫(Myzus persicae)的触角具有钟形 感器、毛形感器、原生感觉圈和次生感觉圈等四种感器。其中,雄性桃树蚜虫所 具有的次生感觉圈不仅仅分布在触角的第三节,也分布在触角的第四、五节上, 而雌性蚜虫则仅分布在触角的第三节上;同时雄性蚜虫具有的次生感觉圈也多于 雌性蚜虫。

昆虫学家指出,各类化学感器是由昆虫体壁特化的表皮细胞演化而成,它们 是能对周围环境和内部刺激产生各种反应的重要器官,感器末端与神经系统相 连,起着控制和调节昆虫的各种行为(如运动、振翅、交配等)的作用。例如, 啮小峰(Terrastichus)是一种群聚性的蛹内寄生蜂,啮小峰的触角呈膝状,触 角表面共有毛形感器、多孔板状感器等八种感器。

昆虫学家通过用黑色素涂抹啮小蜂的触角实施了对比性实验,结果证明已涂 抹黑色素的雄蜂在寻找配偶上明显弱于未涂抹的雄蜂:后者在1Cm左右能够发现 雌蜂立刻兴奋地紧随雌蜂,不停地振翅,然后爬上雌蜂背部用自身不断分泌“性 信息素”的触角敲打雌蜂触角,直到雌蜂接受并完成交尾。从而表明,雄性啮小 峰的三类器官相继地影响并完成交尾过程:(1)具有视觉功能的毛形感器发现并 追逐配偶的存在;(2)感器向神经系统报告配偶的存在,并通过触角的柄节的分 泌小孔不断分泌物质;(3)雄蜂不断地用触角柄节敲打雌蜂触角的鞭节将分泌物 传送给雌蜂。概言之,啮小峰雄蜂的毛形感器是能发现雌蜂存在(具有类似“雷 达”作用)的感器;交配过程中触角柄节所分泌“性信息素”(Pheromone)则 起促进交尾兴奋的作用。

黄种人脸部彩色照片除了黄色的皮肤外,主要还有黑色(头发、眉毛、瞳孔) 和红色(嘴唇)两种颜色。鉴于我们的技术定位是下一步瞄准手机游戏中的人物 脸谱创作,添加眼影、唇膏等夸张绚丽的色彩,所以器官定位主要着力于眼睛和 嘴唇。受到昆虫触角感器具有某种近距离的视觉能力的启发,我们认为用计算机 模拟“雄性啮小峰触角感器”的视觉能力,设计出服务于某种技术需要的计算机 感器是完全可能的。

出于手游脸谱创作的需要,我们分别设计了“黝黑感器(Black Sensilla, 简称为BS)”和“亮红感器(Red Sensilla,简称为RS)”,以检测、定位彩色照 片中的眼睛和嘴唇。

其中包含如下实施步骤:

步骤一、在彩色原图上大致地划定一个矩形的脸部检测区域FaceArea:眉 毛以下、下巴以上,包括左右双眼;脸部检测区域FaceArea的4条边界即左边 界、右边界、上边界和下边界的坐标分别记为做编FaceAreaLeft、FaceAreaRight、 FaceAreaTop和FaceAreaBottom

这里,因为许多女孩留着刘海,而且刘海往往盖住眉毛,为提高定位精度所 以程序提示将FaceArea设在眉毛以下。

步骤二:建立黝黑感器定位双眼

黝黑感器的设计初衷是用于在某一区域内发现、定位密集的由黑色像素构成 的黑色团块。在本环节中用于定位双眼。

为建立黝黑感器,我们应用彩色的YUV(YCrCb)制式。其中“Y”表示亮度 (Luminance),而“U”和“V”表示色度(Chrominance)。“亮度”是将RGB 信号的RGB分量按某种比例叠加而成。“色度”则定义了色调与饱和度,分别用 Cr和Cb来表示(Cr反映了RGB中红色部分与RGB亮度间的差异。而Cb反映的 是RGB蓝色部分与RGB亮度间的差异)。YCrCb制式与RGB制式之间变换公式如 下:

Y=(0.257*R+0.504*G+0.098*B)+16   (1)

Cr=(0.439*R+0.368*G+0.071*B)+128   (2)

Cb=(-0.148*R-0.291*G+0.439*B)+128   (3)

它们的取值范围均在0~255之间,而且颜色越浅的像素(例如皮肤)Y值 越大,颜色越深的像素(例如瞳孔)Y值越小。

因为我们在检测黑色团块时用亮度Y作为自变量,所以从明亮区域进入黝暗 区域时必然伴随亮度Y值的减小;反之,从黝暗区域进入明亮区域时必然伴随亮 度Y值的加大。这就是黝黑感器发觉黝黑区域的物理基础。

在目前的应用条件下,如果从上向下扫描彩色照片,当从上眼皮区域(浅黄 色)进入瞳孔区域(黑色)时必然发生亮度Y值的突然减小;反之,从瞳孔区域 (黑色)进入下眼皮区域(浅黄色)时无疑发生亮度Y值的突然加大。

步骤1、从上向下,发现定位黑色像素局部密集的黑色相邻行,即界定一个 黑色像素局部密集的相邻行,得到Y的起止坐标;

步骤2、在上述Y的起止坐标限定的区间内,从左至右或从右至左发现、定 位黑色像素局部密集的黑色相邻列,得到X的起止坐标;

经过步骤1、步骤2就界定了一个黑色像素局部密集的黑色团块,分别用X、 Y的起止坐标界定它的区间。

下面我们将步骤1、步骤2具体化:

所述的步骤1是指定位双眼上下边界EyesTop和EyesBottom

Step1、设定从FaceAreaTop到FaceAreaBottom高度为H,从FaceAreaLeft到 FaceAreaRight宽度为W的检测区域,其中,H=FaceAreaBottom-FaceAreaTop, W=FaceAreaRight-FaceAreaLeft

Step2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的 RGB数值变换为Y值;

Step3、对检测区域从上向下扫描,求得各行的Y均值,并按照行号存入一 个名为Project的数组中,Project数组有H个单元;再建立一个名为DProject 的数组,并存放相邻行Y均值之差;

扫描DProject数组,得到其极大值(从明到暗跳变)和极小值(从暗到明 跳变的负极大值)所在行号,这两个行号就是黑色团块的起始行号YTop和终止行 号YBottom

同时检验Project极小值(最暗处)所在行号,它在Ytop和Ybottom之间;【这 是辅助性检测,如在Ytop和Ybottom之间确实存在极小值,说明Ytop和Ybottom是可信 的。】

并将Ytop改称为EyesTop,Ybottom改称为EyesBottom

同时检验Project极小值(最暗处)所在行号,它应在Ytop和Ybottom之间。

下面,列出一组从上向下检测双眼瞳孔区域的实测数据如下:

行号=246均值=148增量值=5

行号=247均值=143增量值=7

行号=248均值=136增量值=6

行号=249均值=130增量值=5

行号=250均值=125增量值=4

行号=251均值=121增量值=3

行号=252均值=118增量值=1

行号=253均值=117增量值=-2

行号=254均值=119增量值=-1

行号=255均值=120增量值=0

行号=256均值=120增量值=-1

行号=257均值=121增量值=-1

行号=258均值=122增量值=-1

行号=259均值=123增量值=-1

行号=260均值=124增量值=-3

行号=261均值=127增量值=-4

行号=262均值=131增量值=-4

行号=263均值=135增量值=-4

行号=264均值=139增量值=-3

行号=265均值=142增量值=-6

行号=266均值=148增量值=-4

从上述数据可以发现:增量极大值为7(在247行),增量极小值为-6(在 265行),所以它们分别是黑色团块(双眼瞳孔区域)的起始行号YTop和终止行号 YBottom;均值极小值在117(在253行)满足Step5的判断条件,因此试图定位 的双眼瞳孔上下边界已经正确获得,并将Ytop改称为EyesTop,Ybottom改称为 EyesBottom

步骤2定位左右眼的X边界

所述的步骤2是指定位左右眼的X边界,

(A)左眼X边界检测:

Step1、将FaceArea水平方向的中心边界记为FaceAreaX_Middle;【即取左右 边界的中值,FaceAreaX_Middle=(FaceAreaLeft+FaceAreaRight)/2】

检测左眼时从FaceAreaLeft开始前进到FaceAreaX_Middle宽度为W1,从EyesTop到EyesBottom高度为H的检测区域;W1=FaceAreaX_Middle-FaceAreaLeft

Step2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的 RGB数值变换为Y值。

Step3、对检测区域从左向右扫描,求得各列的Y均值,并按照列号存入一 个名为Project的数组中,再建立一个名为DProject的数组,并存放相邻列均 值之差;

Step4、扫描DProject数组,得到其极大值(从明到暗跳变)和极小值(从 暗到明跳变)所在列号,这两个列号就是黑色团块的起始列号XLeft和终止列号 XRight

Step5、将XLeft改称为LEyeLeft,XRight改称为LEyeRight

(B)左眼右边界检测:

Step1、将FaceArea水平方向的中心边界记为FaceAreaX_Middle;【即取边界 的中值】

检测右眼时从FaceAreaX_Middle开始,前进到FaceAreaRight宽度为W2,从 EyesTop到EyesBottom高度为H的检测区域;W2=FaceAreaRight-FaceAreaX_Middle

Step2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的 RGB数值变换为Y值。

Step3、对检测区域从左向右扫描,求得各列的Y均值,并按照列号存入一 个名为Project的数组中,再建立一个名为DProject的数组,并存放相邻列均 值之差;

Step4、扫描DProject数组,得到其极大值(从明到暗跳变)和极小值(从 暗到明跳变)所在列号,这两个列号就是黑色团块的起始列号XLeft和终止列号 XRight

Step5、并将XLeft改称为REyeLeft,XRight改称为REyeRight

至此,我们用黝黑感器定位了双眼的区域,它们分别是

左眼:LEyeLeft、LEyeRight、EyesTop和Eyesbottom

右眼:REyeLeft、REyeRight、EyesTop和Eyesbottom

建立亮红感器定位嘴唇

所述的嘴唇定位包括定位嘴唇上边界LipTop、嘴唇下边界LipBottom、左嘴角边 界LipLeft和右嘴角边界LipRight

亮红感器设计初衷是用于在某一区域内发现、定位密集的由红色像素构成的 红色团块。在本环节中用于定位嘴唇。

为建立亮红感器,我们仔细研究了在RGB制式中视觉上呈现为红色团块的形 成机理并获得了重要发现。

直觉地猜想必然是在RGB三分量中红色分量R越大则该像素越红,但实际上 仅仅说对了问题的一半。事实是:

(1)如果G、B分量也随着R的加大而加大,其结果是该像素向浅色发展, 当RGB都很大时几乎变成白色。

(2)要使像素向深红发展必须在保持R值较大的情况下减小G、B值。

为证明这一发现,为展示RGB的数值与视觉上红色的关系,我们在图1左侧 展示了一个从上向下红色渐深的红色柱体(为与女孩的肤色对照,我们将红色柱 放置在照片左侧)。

上部白色、下部深红色的渐变红色柱的形成算法是:

(1)从上到下,R值始终设定为254保持不变;

(2)G、B初值为255,向下逐行递减0.5(每向下2行,B、G值减1)。

这一发现奠定了亮红感器的物理基础:即从乳白区域进入亮红区域时必然是 R值基本不变而G、B值减小;反之从亮红区域进入乳白区域时必然是R值基本 不变而G、B值加大。

在目前的应用环境下,如果从上向下扫描彩色照片,当从上嘴唇上方(浅黄 色)进入上嘴唇(红色)时必然发生G、B值的突然减小;反之,从下嘴唇(红 色)进入下嘴唇下方(浅黄色)时无疑发生G、B值的突然加大。

进一步,为叙述方便我们将亮红感器定位嘴唇的过程分解为:

步骤1、从上向下,发现亮红像素局部密集的红色相邻行,即界定一个红色 像素局部密集的相邻行,得到Y的起始坐标;然后从下向上,发现亮红像素局部 密集的红色相邻行,得到Y的终止坐标。(之所以将垂直扫描拆分为2步是因为 上下唇之间往往有白色的牙齿)

步骤2、(与步骤1相似地)在上述Y区间内,从左至右然后从右至左,发 现、定位红色像素局部密集的红色相邻列,得到X的起止坐标。

经过步骤1、步骤2就界定了一个红色像素局部密集的红色团块,分别用X、 Y的起止坐标界定它的区间。

下面我们将步骤1、步骤2具体化:

步骤1、定位嘴唇上边界(LipTop):

定位嘴唇上边界LipTop和嘴唇下边界LipBottom的过程如下:

设定从Eyesbottom到FaceAFeaBottom高度为H,从FaceAreaLeft到FaceAreaRight宽度为 W的检测区域;

对检测区域从上向下扫描获得LipTop,相对的,从下向上扫描获得LipBottom; 不妨以获得LipTop的过程说明如下:

求得各行的R、G、B均值,并按照行号分别存入名为ProjectR、ProjectG、 ProjectB的三个数组中,显然,它们有H个单元;再建立一个名为DProjectR、 DProjectG、DProjectB的数组,并分别存放相邻行均值之差;

建立各有256个单元的数组Ar,Ag,Ab,并将各单元初始化为0;

遍历该行各像素,按各像素的R、G、B取值累加地存入数组Ar,Ag,Ab的相 应单元中;【解释:对于Ar,包括256个元素,分别存储0-255红色分量对应的 像素个数,Ag,Ab的含义类似。】【因为每一行有W个像素,每一像素也各有其 RGB取值,例如左起像素0的R=250,像素1的R=250,像素2的R=230,像 素4的R=220,……则Ar[250]中记录为2,Ar[230]中记录为1,Ar[220]中记 录为1,……,这样,250×2+230×1+220×1=950,950/4=237.5,(宽度为 4)就是该行的颜色投影,它比较接近250但小于250是合理的】

记本行均值为Average,每行的RGB分量的均值AverageR、AverageG和 4verageB如下:

其中ArR是指某行中包含的红色分量值为R 的像素总数;

其中AgG是指某行中包含的绿色分量值为G 的像素总数;

其中AbB是指某行中包含的蓝色分量值为B的 像素总数;

将3个Average存入ProjectR、ProjectG、ProjectB数组相应该行号的单 元中;

将相邻行均值之差分别存放到DProjectR、DProjectG、DProjectB数组中;

扫描DProjectG、DProjectB数组,得到其极大值(从明到暗跳变)所在行 号,将这两对个行号相加除2再取整就是红色团块的起始行号LiPTop

同时检验ProjectR应该维持基本不变;基本不变是指突变量小于10%。

下面,列出一组从上向下检测上嘴唇的实测数据如下:

行号=437红均值=226绿增量=0蓝增量=0

行号=438红均值=226绿增量=2蓝增量=1

行号=439红均值=228绿增量=2蓝增量=1

行号=440红均值=228绿增量=2蓝增量=1

行号=441红均值=229绿增量=1蓝增量=1

行号=442红均值=229绿增量=6蓝增量=5

行号=443红均值=228绿增量=11蓝增量=8

行号=444红均值=225绿增量=10蓝增量=9

行号=445红均值=222绿增量=6蓝增量=6

行号=446红均值=220绿增量=3蓝增量=5

行号=447红均值=217绿增量=-1蓝增量=2

行号=448红均值=215绿增量=0蓝增量=0

行号=449红均值=213绿增量=2蓝增量=2

可以看出,蓝和绿的最大增量行虽然不相同,但基本上都在443行或444行, 而且红均值一直保持200以上的稳定数值。所以将Ytop定为443无疑是可行的。

不再赘述,将上述步骤1从下向上反向地再做一遍,得到红色团块的终止行 号(命名为YBottom)。至此试图定位的嘴唇上下边界已经正确获得,并将Ytop改称 为LipTop,Ybottom改称为LipBottom

步骤2定位嘴唇的X边界

定位左嘴角边界LipLeft和右嘴角边界LipRight的过程如下:

检测左嘴角时从FaceAreaLeft开始前进到FaceAreaX_Middle宽度为W1、从LipTop到LipBottom高度为H的检测区域;

检测右嘴角时从FaceAreaRight开始前进到FaceAreaX_Middle宽度为W2、从 LipTop到LipBottom高度为H的检测区域;

对检测区域从左向右扫描,求得各列的R、G、B均值,并按照列号分别存入 名为ProjectR、ProjectG、ProjectB的三个数组中,显然,它们有H个单元; 再建立一个名为DProjectR、DProjectG、DProjectB的数组,并分别存放相邻 列均值之差;

具体步骤如下:

SubStep2a、建立各有256个单元的数组Ar,Ag,Ab并将各单元初始化为0;

SubStep2b、遍历该列各像素,按各像素的R、G、B取值累加地存入数组 Ar,Ag,Ab的相应单元中;

SubStep2c、设本列均值(即直方图中的投影值)为AverageR、AverageG、 AverageB,且

其中ArB是指某列中包含的红色分量值为R 的像素总数;

其中AgG是指某列中包含的绿色分量值为G 的像素总数;

其中AbB是指某列中包含的蓝色分量值为B的 像素总数;

【之所以前文每行的平均值和每列的平均值都采用AverageR、AverageG、 AverageB,且每行和每列的所述像素总数都采用ArR、AgG和AbB,那是因为声明 的变量越少,对硬件资源的消耗越少】

SubStep2d、将3个AverageR、AverageG、AverageB存入ProjectR、ProjectG、 ProjectB数组相应该列号的单元中;

Step3、将相邻列均值之差(左列减右列的增量值)存放到DProjectR、 DProjectG、DProjectB数组中;

Step4、从左至右扫描DProjectG、DProjectB数组,得到其极大值(从明 到暗跳变)所在列号,将这两对个列号相加除2再取整就是红色团块的起始列号, 即为左嘴角边界LipLeft

从右左至左扫描DProjectG、DProjectB数组,得到其极大值(从明到暗跳 变)所在列号,将这两对个列号相加除2再取整就是红色团块的起始列号,即为 右嘴角边界LipRight

同时检验ProjectR应该维持基本不变;基本不变是指突变量小于10%;

至此,用亮红感器定位了嘴唇的区域,该区域的四条边界的对应值分别是 LipLeft、LipRight、LipTop和Lipbottom

图2是本发明的器官定位效果图,表明本发明的方法能实现准确的脸部器官 定位。

图3是本发明的流程图。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号