平均脸

转载 2015年07月08日 00:57:32

无聊查看学校研究生信息网源码时发现,照片信息竟然是绝对引用另一台数据服务器的地址,并且更严重的是照片是以学号命名的。我试着访问了相邻学号的同学照片,竟然很顺利的看到了。学生学号命名很有规律,11级别硕士,就是11S打头,后面跟着6位数字分别岱庙学院号,系代号以及具体班级号。哈哈,一个python脚本把我们同一届的研究生照片全部拉下来,再一试,08-10级的也都能得到,漏洞竟然已经存在了4!!全部照片一共1w多张,师哥师姐偶对不住了,在此请大家原谅。以下是部分下载到的照片:

 

若是一枚屌丝,看看美女也就罢了,但是我可是有志要做一名骨灰级屌丝的哇,这么好的资源岂能轻易放过。脑子各种东东开始闪现,Fashbook老大曾经做过facemash.com,后来效仿者华科脸pk也一炮成名Hust-facemash.com。想想技术也不难,无非就是前端一个网页,后端一个排序算法就可以搞定。把师哥师姐的照片放到网上也不是太人道,算了,还是回归老本行,图像处理搞起来~

 

想了半天,脸融合我还挺感兴趣,刚好以前有接触过人脸识别的相关内容。找了一下相关的论文以及前人实践的结果,南大的刘靖康曾经用7000照片做了相应的脸融合,提到了用beyond-reality-face.com的库做特征点的提取,但是具体融合技术细节没有透露,后来他跟腾讯联合搞了个各个高校的平均脸。于是我决定,我这次做平均脸的程序将全部开源,算法细节将逐一呈现!那么该如何入手呢?

 

我的思路是这样,首先还是要提取出人脸的特征点,重要的如眼睛的、鼻子、嘴的位置、脸型的轮廓等。如下图所示。 

 

人脸特征点的提取几乎是所有人脸处理的第一步,所以这方面的库也比较多。我选用了一个简单的9特征点提取,包括两眼睛4点,鼻子3点,以及嘴巴两个点。特征点提取的源代码没有仔细研究,有志青年可以仔细看看,其实现用到了opencv的库,算法方面则是采用了Viola&Jones的经典face detection。前人栽树,后人乘凉,有了提取到的特征点,可以说脸融合的工作已经完成了90%了。神马?剩下10%你还是不清楚,那请继续往下看。

 

特征点得到后,我们需要用一个标准脸的模板,来将每个个体不同的点位加以线性变换(非线性变换将会扭曲脸型,最终得到的将不是平均脸,而是扭曲后的标准化脸),线性变换只是旋转以及比例缩放,对脸不会产生扭曲作用。那么采用什么方法来得到线性变换呢? 

Tlinear = cp2tform(input_points,base_points,'linear conformal');

Matlab中使用的命令是cp2tform,该函数由输入的两幅图像的对应点生成变换结构,输入input_points就是由算法得到的9个点base_points则是标定的基准点。

 

3图片融合的结果

得到线性变换的图像之后,直接采用语句

MergeImg(ii,jj,kk) = double(MergeImg(ii,jj,kk))+ double(imgTrans(ii,jj,kk));

便可以得到结果。

接下来就直接给结果啦,激动人心的时刻有木有!50图片融合的结果。看看还是挺标致的哈。

 

所有源代码以及测试程序我将上传至github在此严正声明,所有照片仅仅供学习和研究使用!希望大家准守规则哈~

 

后续,还可以继续挖掘,比如这篇文章中提到了美女的标准,所谓三庭五眼,用以上程序稍加修改就能变成一个美女照片挑选程序,感兴趣大家可以做一做。


【something】简单的平均脸制作

首先声明,平均脸制作的方法一般都是使用AAM算法,但是我对这个算法不了解,所以在制作的时候,使用的是简单的加权的方法,高手勿喷。 我所用到的: 1.visual studio 2010 (open...
  • DSbatigol
  • DSbatigol
  • 2013年09月18日 08:53
  • 3612

LearnOpenCV学习——平均脸

原文地址: http://www.learnopencv.com/average-face-opencv-c-python-tutorial/先看实验效果:最右边的人脸是由左边6幅人脸平均得到的。 ...
  • GraceDD
  • GraceDD
  • 2016年05月12日 11:56
  • 3999

人脸识别经典算法一:特征脸方法(Eigenface)

这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新。特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的。特征脸用到的理论基础PCA在另一篇博客里:特征脸(Eig...
  • feirose
  • feirose
  • 2014年09月25日 15:57
  • 25624

平均脸

无聊查看学校研究生信息网源码时发现,照片信息竟然是绝对引用另一台数据服务器的地址,并且更严重的是照片是以学号命名的。我试着访问了相邻学号的同学照片,竟然很顺利的看到了。学生学号命名很有规律,11级别硕...
  • xcmax
  • xcmax
  • 2015年07月08日 00:57
  • 674

人脸识别算法(一)---eigenfaces

向量的表示及协方差矩阵:http://blog.csdn.net/songzitea/article/details/18219237 矩阵相乘、向量内积的意义: A⋅B=|...
  • dream_bin123
  • dream_bin123
  • 2017年12月21日 16:27
  • 100

AAM(Active Appreance Model)算法用于人脸识别总结

Blog:http://blog.csdn.net/colourfulcloud/article/details/9774017 这是我在做人脸识别项目的时候主要用到的一个算法。在这里把我对AA...
  • aa512690069
  • aa512690069
  • 2014年01月12日 18:57
  • 1155

手把手:用OpenCV亲手给小扎、Musk等科技大佬们做一张“平均脸”(附Python代码)

作者:SATYA MALLICK 编译:HAPPEN、Chloe、钱天培 请紧盯这张照片5秒钟,你能否看出任何异样呢? 照片中的女性同时拥有白人血统、西班牙人血统、亚洲人血统以及印度...
  • dzJx2EOtaA24Adr
  • dzJx2EOtaA24Adr
  • 2017年11月22日 00:00
  • 270

人脸识别经典算法一:特征脸方法(Eigenface)

这篇文章是撸主要介绍人脸识别经典方法的第一篇,后续会有其他方法更新。特征脸方法基本是将人脸识别推向真正可用的第一种方法,了解一下还是很有必要的。...
  • u010944555
  • u010944555
  • 2014年03月30日 22:59
  • 52503

人脸识别之特征脸方法(Eigenface)

人脸识别之特征脸方法(Eigenface)zouxy09@qq.comhttp://blog.csdn.net/zouxy09       因为需要,花了一点时间写了下经典的基于特征脸(EigenFa...
  • zouxy09
  • zouxy09
  • 2015年04月25日 22:12
  • 71767

特征脸(Eigenfaces)

我们给的图像表达的问题在于它的高维度性。一个二维的pxq的灰度图像扩展到一个m=pq维的向量空间,所以对一个100X100像素的图像来说,已经有一个10000维的图像空间了。这对于任何计算来说都是太多...
  • xibeichengf
  • xibeichengf
  • 2016年03月13日 19:01
  • 623
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:平均脸
举报原因:
原因补充:

(最多只允许输入30个字)