首先声明,平均脸制作的方法一般都是使用AAM算法,但是我对这个算法不了解,所以在制作的时候,使用的是简单的加权的方法,高手勿喷。
我所用到的:
1.visual studio 2010 (openCV, 2.4以上好像才有 contrib这个module).
2.python (需要安装PIL)
3.Matlab
我的步骤:
1.首先,要有图
我是很想把课程网站给黑了,然后把学生图片全搞下来的,但是,第一点:我不会;第二点:我发现课程网站上的照片根本不用我做什么,几乎直接就能拿到。于是使用刚学习不久的Python,把新生照片给扒了下来,没扒完,具体原因不说了,总过扒了2000多张吧。
这里不会Python的同学可以查一下,主要用 urllib2模块。
2.怎么对齐?
既然是直接图片叠加,至少要把脸大概对对齐吧。我用了以下几个步骤来做:
2.1 人眼识别
openCV 2.4提供了一个Facerecognizer类,官方文档,就是我的另一篇文章【opencv】人脸识别、人眼识别and性别识别里面说的,这里再次对其中借用的文章的原作者表示感谢。
2.2 裁剪与标准化(为了进行性别分类)
这里openCV给的那个crop_face.py确实不错,进行了裁剪,又将眼睛的位置对齐了,否则又要费老半天劲来做矩阵变换,想想都烦。将上一步计算出的人眼的位置传给CropFace函数,OK。如果你问我为什么不在VS里面做这些,还