通过计算机视觉估算颜值

本文介绍了通过计算机视觉预测面部吸引力的技术,使用华南理工大学提供的数据库进行研究。通过CLM算法获取关键点,计算特征距离比值,进行PCA筛选特征,并用多种算法(高斯过程、随机森林、线性回归、SVM)训练模型。尽管SVM表现不佳,但结果显示与其他方法相比已接近真实值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原址 http://blog.youkuaiyun.com/ubunfans/article/details/49765411

今天看到一篇估算颜值的blog,看起来挺有意思的,记录下来,分享一下!哈哈哈哈 
先放地址:Computer Vision for Predicting Facial Attractiveness 
同时要感谢一下幕后英雄,那些收集整理并公开数据库的伟人们SCUT-FBP数据库

鄙人一点感觉:估计颜值这事儿,要融合肤色,轮廓,皮肤纹理,五官协调等才有一个准确的判断,单单一方面并不能得到准确的结果,况且每个人的审美标准都不一样。 
这篇blog的技术只使用了轮廓信息,得到的结果已经比较接近ground truth了!

  1. 数据库 
    数据采用的是华南理工大学人机交互只能实验室的数据库,总共500张样本,至于样本整理过程可以去看官方的参考文献。 
    由于样本数量有限,采用留一交叉验证,每次拿499张训练,其余一张测试;对所有样本都这样做,总共有500个模型
  2. 特征 
    这里写图片描述
<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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值