前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用神经网络测一测你的颜值吧!(一)

用神经网络测一测你的颜值吧!(一)

作者头像
巴山学长
发布2019-12-17 16:54:22
7270
发布2019-12-17 16:54:22
举报
文章被收录于专栏:巴山学长巴山学长

本文作者:南海一号


现在,很多小姐姐都很在意自己的颜值,毕竟颜值高的女孩子受到万人追捧,宛如公主一般。尤其是在大学校园里,美女是一茬一茬的。不化个妆都不好意思出寝室门。那么,颜值到底要按照怎样的标准评估呢。

随着神经网络的发展,只要有带标签的数据集,我们可以预测评估很多事情,比如人脸识别,图像检索。基于同样的原理,我们为什么不能构建一个神经网络,用于颜值的评估呢?

有人可能会说:没有数据集也没有标签啊,你用什么去训练神经网络。这个不用担心,这个数据集的工作,很久以前就有人做好了,现在比较靠谱的就是华南理工大学的一个数据集,里面有5500张图片,有女性图片,也有男性图片。有黑人,也有白人,当然也有黄种人。还包括阿拉伯人。并且找了很多观察者给这些图片的颜值打分,然后取平均值。打分在0--5分之间,5分颜值最高。0分是最低的。这个数据集是很好的

我先给大家演示一下神经网络的效果

给这个小姐姐的颜值打分是3.29255828。为了节约时间,神经网络神经元设定比较少,训练次数也少,可能给这位小姐姐打分太低了

。不过没关系,加大训练次数是可以的。

由于今天篇幅有限,我今天只能讲一讲怎么提取特征。

为了更好地写这个程序,我专门查询了一篇论文:《基于多特征融合的人脸颜值预测》。里面就提到了特征提取的方法,

首先我们根据人脸识别的特征提取方法,提取出64个人脸特征点的坐标,如下就是提取的人脸特征点

其实,这些特征点不仅可以用于人脸识别,也可以用于颜值评估。我用python代码提取出了这些特征点(用matlab也可以,大家可以尝试一下)

代码语言:javascript
复制
def get_feature(begin,end):    
all_grade=[]    
k=0    
for i in range(begin,end):        
img_name=label1.ix[i,0]        
img_grade=label1.ix[i,1]        
all_grade.append(img_grade)        
path=path1+img_name        
img=misc.imread(path)    
#获取图像的特征点坐标    
#img = cv2.imread(img_name)
#使用python-opencv读取图片        
img_grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#使图片转化为灰度图片        
rects = detector(img_grey, 0)#返回信息        
for i in range(len(rects)):            
landmarks = np.matrix([[p.x, p.y] 
for p in predictor(img_grey,rects[i]).parts()])                
feature_1=np.array(landmarks)#特征        
feature=ping_yi(feature_1)        
feature=feature.flatten()        
feature=autoNorm(feature)            
del landmarks            
if k==0:            
all_64=feature        
else:            
all_64=np.dstack((all_64,feature))        """实现平移不变性"""                        del feature_1        del feature        k=1        del img        del img_grey    return all_64,all_grade

其中用到了一个训练好的框架如下

代码语言:javascript
复制
predictor = dlib.shape_predictor('landmarks.dat')#加载一个自带的分类器

这个框架是可以直接提取出68个特征点的,但是由于图片拍摄的角度,距离和大小不同,为了避免误差,我们还需要对得到的特征点进行平移旋转,归一化等处理。经过这样的处理,我们可以提取的68个特征点就可以进一步运算了,我们将68个坐标点转化为136个数字,输入到神经网络中。

这就是提取特征的步骤。

关于接下来的操作,请期待下一期,再见,朋友们。

参考资料:《基于多特征融合的人脸颜值预测》---蒋婷,沈旭东,陆伟等

封面图片:由Adina Voicu在Pixabay上发布

图片来源: https://picjumbo.com

https://pixabay.com/zh/

数据集:https://download.csdn.net/download/weixin_39220714/10794688

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档