打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【something】简单的平均脸制作

首先声明,平均脸制作的方法一般都是使用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里面做这些,还非要又用C++,又用Python,这个主要是因为人家给了现成的CropFace的函数,我才懒得用C++再写一遍。既然我选择了这种方式,那就涉及到了exe程序与Python程序之间的通信问题,我使用的方法见我的另一篇文章【python】python运行exe,并获取exe的output,于是将所有图片都标准化了。

2.3 性别识别

性别识别使用的还是openCV,具体还是看我的文章【opencv】人脸识别、人眼识别and性别识别 里面说的吧,openCV的document里面关于gender classify的部分帮助其实更大一点,这里推荐的是去Google Image上,直接搜明星的人脸来作为训练数据,但是我发现使用openCV自带的人脸识别和人眼识别的XML并不能很好地识别多种场景下的人脸,尤其是人眼!我不是搞这方面研究的,也不想深究,于是果断换成用自己扒的证件照来train一个classifier,效果一般,男生被误分成女生的情况还是很多的,手动挑拣出来之后女生约有700张,男生1100张,就这样吧...

2.4 裁剪与标准化(用来进行加权)

这里重新裁剪,因为2.2用的裁剪图要小很多,只有一张脸而已,要做加权的话,还是大一点比较好看,于是就使用不同的参数重新crop,OK

3.使用Matlab计算平均脸

使用Matlab是因为Matlab比较简单而且处理图片相加这种操作还比较快(我对Python的PIL不熟,本来想尝试一下,后来放弃了)

得到结果:


这里的平均脸其实真是算术平均的结果,效果比起AAM自然是要差不少,尤其是距离眼睛比较远的地方比较模糊,就这样罢。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
图像处理入门教程
python人脸识别
用于图像识别的五大最佳编程语言!
OpenCV库的简介
Face Detection with Python and Opencv
【【只需半天就能搞定人脸识别项目!】超级实用,大佬手把手教你做人脸识别,学不会up直接下跪!—python+opencv/AI人工智能/口罩识别】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服