您的位置:首页 > 理论基础

通过计算机视觉估算颜值

2015-11-24 14:49 441 查看
原址 http://blog.csdn.net/ubunfans/article/details/49765411
今天看到一篇估算颜值的blog,看起来挺有意思的,记录下来,分享一下!哈哈哈哈 

先放地址:Computer Vision for Predicting Facial Attractiveness 

同时要感谢一下幕后英雄,那些收集整理并公开数据库的伟人们SCUT-FBP数据库

鄙人一点感觉:估计颜值这事儿,要融合肤色,轮廓,皮肤纹理,五官协调等才有一个准确的判断,单单一方面并不能得到准确的结果,况且每个人的审美标准都不一样。 

这篇blog的技术只使用了轮廓信息,得到的结果已经比较接近ground truth了!
数据库 

数据采用的是华南理工大学人机交互只能实验室的数据库,总共500张样本,至于样本整理过程可以去看官方的参考文献。 

由于样本数量有限,采用留一交叉验证,每次拿499张训练,其余一张测试;对所有样本都这样做,总共有500个模型
特征 



<code class="language-python hljs  has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">    a = [<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">18</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">22</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">23</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">27</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">37</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">40</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">43</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">46</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">28</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">32</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">34</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">36</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">13</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">49</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">55</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">52</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">58</span>]</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>


先定义一系列关键点位置,关键点是通过CLM算法求得的(现在有很多算法效果不错), 

使用itertools产生四个点的子序列,然后计算两两之间的距离比值作为特征,总的特征维度为3876维。 

3. 筛选特征 

PCA筛选,长度自己可以指定 

4. 训练 

总共采用了四种算法 
gaussian process 
random forest 
linear regression 
SVM 

5. 结果 

测试结果和ground truth做pearson correlaion 

结果如图: 


 

让人吃惊的是SVM的结果是最差的! 

颜值取值范围为1-5

作者还给了代码:face-rating


 

Yoona, Predicted Rating: 3.6 


 

Yuri, Predicted Rating: 3.4 


 

Tiffany, Predicted Rating: 3.8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: