Face++ 最好的免费人脸识别云服务
通过这里的开放API提取人脸的landmark,有25点和82点版本
可以用 @冷哲 的方法做着玩,分类用scikit.learn里的svm就可以吧,要找个愿意帮忙打几千张人脸分的 (不提取其他特征的话25点的有xy一共50个特征,都算跟中心点相对距离就是48个 )
可以只给喜欢不喜欢,训练的结果说不定以后还能帮自己挑照片什么的
也可以试试只喜欢某一性别的看正确率会怎么样
最近有空做下估计target太主观结果不会很好……
-----------------------------------3.25 更新--------------------------------------------------------
队nv友shen帮找来3000+明星图片评了分,居然有72左右正确率,于是来填坑了,大家也可以帮看看有什么问题。
1. 因为上面说到的API返回的landmark是相对于照片大小的值,所以先对照片进行预处理,我用的是opencv里训练好的人脸分类器 haarcascade_frontalface_alt_tree.xml 提取出基本充满画面的头像。有的照片没有提取出来,最后用2500张。部分照片如下,用正规证件照会好一些(之前爬学校校园卡照片失败
2. 评分只给0和1 即喜欢不喜欢 鸣谢 @顾小婧
3. 用faceplusplus的API得到 landmark 取的25点版本(x,y 到鼻中心距离,共48个特征)
4. PCA降维到6维,能量分别为
5. 用sklearn里的各种分类器分了一遍,train : test = 7 : 3 参数基本用的default
6.结果
本来预计的是这么主观的东西做不出什么结果,但70+的正确率看起来还不错。女神的喜好也并不是那么难以捉摸(大雾)
有空多跑些图调调参数做下模型融合看会不会还有什么提高……
可以用来依据历史评分喜好作个性相亲推荐?
可以。
其中一种基于监督学习(Supervised Machine Learning)的方法如下:
第一步,选择一组人脸特征,比如两眼间距、眼睛尺寸、鼻子尺寸、肤色、嘴巴尺寸,嘴唇与鼻尖距离等等。
第二步,建立人脸自动识别算法,给定一张人像时,可以自动计算上述人脸特征。
第三步,找大量人的照片,然后找一堆人来给这些照片上的人打分。
第四步,选用一种机器学习的算法,比如SVM、ANN之类。
第五步,将第三步的人像随机分成两组,A组多一些,B组少一些。
第六步,用A组图片经过特征提取来“训练”机器学习算法,也就是调整参数,使得算法输出的分值尽量接近人工打分的结果。并用B组图片进行验证,看看算法对不包含在A组中的图片是否能正确计算出结果。
第七步,“训练”完成后就可以用来给任意人像打分了。但由于对于计算机来说人像特征提取是比较有难度的,所以可能需要要求统一大小的正面不笑免冠照。
另外,这种打分程序只反映第三步中那些打分的人的审美标准。