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

文档序号:6544005阅读:168来源:国知局
一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法
【专利摘要】本发明公开了一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,步骤一:针对手游脸谱的彩色原图,设定脸部的大致范围;步骤二:基于颜色感器实现双眼定位及嘴唇定位;(1)双眼定位:采用黝黑感器,从上向下定位彩色原图中两瞳孔的垂直区间,再从左向右定位左眼的水平区间,继而从右向左定位右眼的水平区间;完成双眼定位;(2)嘴唇定位:采用亮红感器,从上向下定位彩色原图中嘴唇的垂直区间,再从左向右定位左嘴角的水平位置,继而从右向左定位右嘴角的水平位置;完成嘴唇定位。该借鉴昆虫触角功能在手游脸谱中实现器官定位的方法具有实施方便、响应快速、定位效果好、数据量小等特点。
【专利说明】一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法
【技术领域】
[0001]本发明涉及一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法。
【背景技术】
[0002]随着移动互联网的迅猛发展,手机动漫、手机游戏迎来了飞速发展的契机,它们是文化创意产业中的新型文化业态,将手机动漫、手机游戏融入广大受众的日常生活,使之成为深入人心的文化品牌是新媒体从业人员的社会责任。
[0003]手机用户可以使用动漫、游戏从业人员提供的应用软件,借助电脑或手机平台,开发出他自身喜闻乐见的作品(如彩信、屏保、游戏等),就像收获了自己亲手种植的蔬菜、瓜果已经进入了市场,自然有一份成就感。
[0004]手机游戏中一般都允许用户在登录时选择“姓名”、“脚色”的环节,这时,我们可以请用户提供一张个人的彩色照片,并按照用户的愿望将这一照片进行美化、搞怪等再创作,在游戏环境就会出现许多似真又假(基于真实照片的搞怪)脸庞,无疑使玩家本人及其亲友感到十分刺激和过瘾!
[0005]为此,重要的前提条件环节就是对脸部器官定位。这种脸部器官的定位和服务于安保中的脸谱识别大体相同,但却并不要求相关的服务于识别的技术特征和技术参数等辅助性要素,但是现有的定位技术步骤复杂,实现难度大,且对硬件要求很高,并不适合于在手机平台上运行。
[0006]因此,有必要设计一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法。

【发明内容】

[0007]本发明所要解决的技术问题是提供一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,该借鉴昆虫触角功能在手游脸谱中实现器官定位的方法具有实施方便、响应快速、定位效果好、数据量小等特点。
[0008]发明的技术解决方案如下:
[0009]一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,包括以下步骤:步骤一:针对手游脸谱的彩色原图,设定脸部的大致范围;
[0010]步骤二:基于颜色感器实现双眼定位及嘴唇定位;
[0011]⑴双眼定位:
[0012]采用黝黑感器,从上向下定位彩色原图中两瞳孔的垂直区间,再从左向右定位左眼的水平区间,继而从右向左定位右眼的水平区间;完成双眼定位;
[0013]所述的黝黑感器用以感知相邻行或相邻列的亮度均值的突变;
[0014](2)嘴唇定位:
[0015]采用亮红感器,从上向下定位彩色原图中嘴唇的垂直区间,再从左向右定位左嘴角的水平位置,继而从右向左定位右嘴角的水平位置;完成嘴唇定位;
[0016]所述的亮红感器用以感知相邻行或相邻列的在红色分量基本不变的情况下蓝色分量或绿色分量发生的突变;基本不变是指突变量小于10% ;
[0017]所述的步骤I中,在彩色原图上大致地划定一个矩形的脸部检测区域FaceArea:眉毛以下、下巴以上,包括左右双眼;脸部检测区域FaceArea的4条边界即左边界、右边界、上边界和下边界的坐标分别记为做编FaceArealieft' FaceAreaKight、FaceArealop和FaceAreaBottomo
[0018]所述的双眼定位过程为:
[0019]步骤1、从上向下,发现定位黑色像素局部密集的黑色相邻行,即界定一个黑色像素局部密集的相邻行,得到Y的起止坐标;
[0020]步骤2、在上述Y的起止坐标限定的区间内,从左至右或从右至左发现、定位黑色像素局部密集的黑色相邻列,得到X的起止坐标;
[0021]经过步骤1、步骤2就界定了一个黑色像素局部密集的黑色团块,分别用X、Y的起止坐标界定它的区间。
[0022]所述的步骤I是指定位双眼上下边界EyesT()p和EyesB()tt(M:
[0023]Step 1、设定从 FaceAreaT()p 到 FaceArea13ottom 高度为 H,从 FaceAreaLeft至Ij FaceAreaEight 宽度为 W 的检测区域,其中,!^FaceAreaB^m-FaceAreahp,W=Face4reaEight-FaceAreaLeft ;
[0024]Step2、按公式 Y= (0.257*R+0.504*G+0.098*B)+16 将检测区域中像素的 RGB 数值变换为Y值;
[0025]Step3、对检测区域从上向下扫描,求得各行的Y均值,并按照行号存入一个名为Project的数组中,Project数组有H个单元;再建立一个名为DProject的数组,并存放相邻行Y均值之差;
[0026]扫描DPiOject数组,得到其极大值(从明到暗跳变)和极小值(从暗到明跳变的负极大值)所在行号,这两个行号就是黑色团块的起始行号Τ()Ρ和终止行号YB()tt(M ;
[0027]同时检验Project极小值(最暗处)所在行号,它在Yttjp和Ybtrttmi之间;【这是辅助性检测,如在Υ_和Ybtrttom之间确实存在极小值,说明



Ytop ^口 Ybottom 是可信的。】
[0028]并将Yttjp 改称为 EyeStqp,Ybottom 改称为 EyesB()tt(M ;
[0029]所述的步骤2是指定位左右眼的X边界,
[0030]⑷左眼X边界检测:
[0031]St印1、将FaceArea水平方向的中心边界记为FaceAreaxjiddle ;【即取左右边界的中值,FaceAreaxjiddle= (FaceAreaLeft+FaceAreaKight) / 2】
[0032]检测左眼时从FaceArealjeft开始前进到FaceAreaxjiddle宽度为Wl,从EyesT()p到Eyes13ottom 高度为 H 的检测区域;ffl=FaceAreax_Middle-FaceAreaLeft ;
[0033]St印2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的RGB数值
变换为Y值。
[0034]Step3、对检测区域从左向右扫描,求得各列的Y均值,并按照列号存入一个名为Project的数组中,再建立一个名为DProject的数组,并存放相邻列均值之差;
[0035]St印4、扫描DPiOject数组,得到其极大值(从明到暗跳变)和极小值(从暗到明跳变)所在列号,这两个列号就是黑色团块的起始列号xLeft和终止列号XKight ;
[0036]Step5、将 XLeft 改称为 LEyeLeft, XEight 改称为 LEyeKight ;[0037](B)左眼右边界检测:
[0038]Steplj# FaceArea水平方向的中心边界记为FaceAreaxjiddle ;【即取边界的中值】
[0039]检测右眼时从FaceAreaxjliddle开始,前进到FaceAreaKight宽度为W2,从EyesT()p到Eyes13ottom 高度为 H 的检测区域;W2=FaceAreaKight_FaceArea





X—Middle ?
[0040]St印2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的RGB数值
变换为Y值。
[0041]Step3、对检测区域从左向右扫描,求得各列的Y均值,并按照列号存入一个名为Project的数组中,再建立一个名为DProject的数组,并存放相邻列均值之差;
[0042]St印4、扫描DPiOject数组,得到其极大值(从明到暗跳变)和极小值(从暗到明跳变)所在列号,这两个列号就是黑色团块的起始列号xLeft和终止列号XKight ;
[0043]St印5、并将 XLeft 改称为 REyeLeft,XEight 改称为 REyeKight。
[0044]所述的嘴唇定位包括定位嘴唇上边界LipT()p、嘴唇下边界LipB()tt()m、左嘴角边界LiPLeft和右嘴角边界LipKight ;
[0045]定位嘴唇上边界LipT()p和嘴唇下边界LipB(rtt(M的过程如下:
[0046]设定从EyesbQtt(M 到 FaceAreaB()tt()m 高度为 H,从 FaceArealirft 到 FaceAreaKight 宽度为W的检测区域;
[0047]对检测区域从上向下扫描获得LipT()p,相对的,从下向上扫描获得LipB()tt(M ;不妨以获得LipT()p的过程说明如下:
[0048]求得各行的R、G、B均值,并按照行号分别存入名为Pro jectR、ProjectG、Pro jectB的三个数组中,显然,它们有H个单元;再建立一个名为DProjectR、DProjectG、DProjectB的数组,并分别存放相邻行均值之差;
[0049]建立各有256个单元的数组A,,Ag, Ab,并将各单元初始化为O ;
[0050]遍历该行各像素,按各像素的R、G、B取值累加地存入数组4,Ag,Ab的相应单元中;【解释:对于4,包括256个元素,分别存储0-255红色分量对应的像素个数,Ag,Ab的含义类似。】【因为每一行有W个像素,每一像素也各有其RGB取值,例如左起像素O的R=250,像素I的R=250,像素2的R=230,像素4的R=220,……则Ar [250]中记录为2,Ar [230]中记录
% I, Ar [220]中记录为 1,......,这样,250 X 2+230X 1+220X 1=950,950 / 4=237.5,(宽度
为4)就是该行的颜色投影,它比较接近250但小于250是合理的】
[0051]记本行均值为Average,每行的RGB分量的均值Average10Averagee和Average13如下:
[0052]
【权利要求】
1.一种借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,其特征在于,包括以下 步骤: 步骤一:针对手游脸谱的彩色原图,设定脸部的大致范围; 步骤二:基于颜色感器实现双眼定位及嘴唇定位; (1)双眼定位: 采用黝黑感器,从上向下定位彩色原图中两瞳孔的垂直区间,再从左向右定位左眼的水平区间,继而从右向左定位右眼的水平区间;完成双眼定位; 所述的黝黑感器用以感知相邻行或相邻列的亮度均值的突变; (2)嘴唇定位: 采用亮红感器,从上向下定位彩色原图中嘴唇的垂直区间,再从左向右定位左嘴角的水平位置,继而从右向左定位右嘴角的水平位置;完成嘴唇定位; 所述的亮红感器用以感知相邻行或相邻列的在红色分量基本不变的情况下蓝色分量或绿色分量发生的突变;基本不变是指突变量小于10%。
2.根据权利要求1所述的借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,其特征在于,所述的步骤I中,在彩色原图上大致地划定一个矩形的脸部检测区域FaceArea:眉毛以下、下巴以上,包括左右双眼;脸部检测区域FaceArea的4条边界即左边界、右边界、上边界和下边界的坐标分别记为做编FaceArealieft' FaceAreaKight、FaceArealop和FaceAreaBottomo
3.根据权利要求2所述的借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,其特征在于,所述的双眼定位过程为: 步骤1、从上向下,发现定位黑色像素局部密集的黑色相邻行,即界定一个黑色像素局部密集的相邻行,得到Y的起止坐标; 步骤2、在上述Y的起止坐标限定的区间内,从左至右或从右至左发现、定位黑色像素局部密集的黑色相邻列,得到X的起止坐标; 经过步骤1、步骤2就界定了一个黑色像素局部密集的黑色团块,分别用X、Y的起止坐标界定它的区间。
4.根据权利要求3所述的借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,其特征在于,所述的步骤I是指定位双眼上下边界EyesT()p和EyesB()tt(M:
Step 1、设定从 FaceAreaT()p 到 FaceAreaBottom 高度为 H,从 FaceArealirft 到 FaceAreaRight宽度为 W 的检测区域,其中,H=FaceAreaBottom-FaceArealop, W=FaceAreaEigh-FaceAreaLeft ; St印2、按公式Υ=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的RGB数值变换为Y值; Step3、对检测区域从上向下扫描,求得各行的Y均值,并按照行号存入一个名为Project的数组中,Project数组有H个单元;再建立一个名为DProject的数组,并存放相邻行Y均值之差; 扫描DProject数组,得到其极大值和极小值所在行号,这两个行号就是黑色团块的起始行号YT()P和终止行号YB(rtt( )m ; 同时检验Project极小值所在行号,它在


Ytop ^口 Ybottom 之间;
并将 Y_ 改称为 EyesT()p,Ybottom 改称为 EyesB()tt(M ;所述的步骤2是指定位左右眼的X边界, (A)左眼X边界检测: Steplj# FaceArea水平方向的中心边界记为FaceAreaxjiddle ;
检测左眼时从FaceArealjeft 开始前进到FaceAreaxjiddle 宽度为 Wl,从EyesT()p 到EyesB()tt()m高度为 H 的检测区域;Wl=FaceAreax—Middle-FaceArealjeft ; St印2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的RGB数值变换为Y值。 Step3、对检测区域从左向右扫描,求得各列的Y均值,并按照列号存入一个名为Project的数组中,再建立一个名为DProject的数组,并存放相邻列均值之差; St印4、扫描DPiOject数组,得到其极大值(从明到暗跳变)和极小值(从暗到明跳变)所在列号,这两个列号就是黑色团块的起始列号XLeft和终止列号XKight ;
Step5、将 XLeft 改称为 LEyeLeft,XgigIlt 改称为 LEyeRight ; (B)左眼右边界检测: Steplj# FaceArea水平方向的中心边界记为FaceAreaxjiddle ; 检测右眼时从FaceAreaxjiddle开始,前进到FaceAreaKight宽度为W2,从EyesT()p到Eyes13otyom 高度为 H 的检测区域;W2=FaceAreaKight_FaceArea





X—Middle ? St印2、按公式Y=(0.257*R+0.504*G+0.098*B)+16将检测区域中像素的RGB数值变换为Y值。 Step3、对检测区域从左向右扫描,求得各列的Y均值,并按照列号存入一个名为Project的数组中,再建立一个名为DProject的数组,并存放相邻列均值之差; St印4、扫描DPiOject数组,得到其极大值(从明到暗跳变)和极小值(从暗到明跳变)所在列号,这两个列号就是黑色团块的起始列号XLeft和终止列号XKight ;
Step5、并将 XLeft 改称为 REyeLeft, XEight 改称为 REyeKight。
5.根据权利要求4所述的借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,其特征在于,所述的嘴唇定位包括定位嘴唇上边界LipT()p、嘴唇下边界LipB(rtt(M、左嘴角边界LiPLeft和右嘴角边界LipKight。
6.根据权利要求5所述的借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,其特征在于,定位嘴唇上边界LipT()p和嘴唇下边界Lip-的过程如下:
设定从 Eyesbrttom 到 FaceAreaB()tt(M 高度为 H,从 FaceAreaLeft 到 FaceAreaKight 宽度为 W 的检测区域; 对检测区域从上向下扫描获得LipT()p,相对的,从下向上扫描获得LipB()tt(M ;不妨以获得Liplop的过程说明如下: 求得各行的R、G、B均值,并按照行号分别存入名为ProjectR、ProjectG, ProjectB的三个数组中,显然,它们有H个单元;再建立一个名为DProjectR、DProjectG、DProjectB的数组,并分别存放相邻行均值之差; 建立各有256个单元的数组kr,Ag,Ab,并将各单元初始化为O ; 遍历该行各像素,按各像素的R、G、B取值累加地存入数组Ap Ag,Ab的相应单元中; 记本行均值为Average,每行的R6B分量的均值Average10Averagee和Average13如下:
7.根据权利要求6所述的借鉴昆虫触角功能在手游脸谱中实现器官定位的方法,其特征在于,定位左嘴角边界LiPwt和右嘴角边界LipKight的过程如下:
检测左嘴角时从FaceArealjeft开始前进到FaceAreaxjidde宽度为W1、从LipT()p到LipB()tt()m高度为H的检测区域; 检测右嘴角时从FaceAreaKight开始前进到FaceAreaxjliddle宽度为W2、从LipT()p到LipBottom高度为H的检测区域; 对检测区域从左向右扫描,求得各列的R、G、B均值,并按照列号分别存入名为ProjectR、ProjectG, ProjectB的三个数组中,显然,它们有H个单元;再建立一个名为DProjectR、DProjectG、DProjectB的数组,并分别存放相邻列均值之差; 具体步骤如下: SubSt印2a、建立各有256个单元的数组4,Ag, Ab并将各单元初始化为O ; SubSt印2b、遍历该列各像素,按各像素的R、G、B取值累加地存入数组A,,Ag,Ab的相应单元中; SubStep2c、设本列均值(即直方图中的投影值)为AverageK、AverageG、AverageB,且
【文档编号】G06K9/00GK103902986SQ201410153206
【公开日】2014年7月2日 申请日期:2014年4月17日 优先权日:2014年4月17日
【发明者】彭革刚, 郭颖, 吴晓荣, 张献, 陈之辉, 彭可, 石猛, 封模春 申请人:拓维信息系统股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1