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

2019-12-17 16:54:22 浏览数 (1)

本文作者:南海一号


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

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

有人可能会说:没有数据集也没有标签啊,你用什么去训练神经网络。这个不用担心,这个数据集的工作,很久以前就有人做好了,现在比较靠谱的就是华南理工大学的一个数据集,里面有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

0 人点赞