01
以前看过一部《80/90年代女星群像混剪》,里面像周慧敏、王祖贤、邱淑贞、李嘉欣等等每个人都独具特色、美得清新脱俗。最近百度刚推出了一份“2019明星沸点榜”,评选出了年度人气最高的10名明星,今天我们就用AI对这几位的图片进行颜值打分,看看是什么样的结果。
01
沸点明星
先来说下百度明星沸点榜,2019百度沸点明星榜依托百度APP信息流、搜索及明星百家号的全年数据,甄选出来了100位数据最佳的明星。
然后从2019年11月28日中午到2019年12月10日中午这段时间开放投票,最终肖战实现人气断层稳坐第一,获得了2019"百度沸点年度最沸点明星"称号!紧随其后的是朱一龙与朱正廷,而与肖战一同爆红的王一博排名第四。
沸点榜前10位的明星中女星只有三名,按照排名依次是吴宣仪、杨紫和郑爽。我们今天的颜值测评就围绕这10位明星来开展。
比较谁的颜值更高,样本选择是个不小的问题,即使同一个明星,不同的照片也会产生不同的颜值分数,选择不当会造成很大的样本误差。为了尽量减小误差,我们这次的明星图片全部从美桌网来获取(下图)。
下面是下载备用的10位明星图片。其实为了使结果更有说服力,可以每位明星都选取很多张图片,然后分别进行颜值打分后取均值,不过我们又不是什么权威认定,本文只讲过程、不重结果,也就不做那么麻烦的操作了。
现在样本图片准备就绪,下一步就可以开始颜值检测了。不过在此之前也可以先养养眼~~
02
人脸图像的颜值检测我们使用百度的API(免费又好用),只需要注册个账号然后创建应用就可以(下图),其中的API Key和Secret Key后面会用到。
百度的人脸识别API调用还是稍微有点麻烦的,据说有人对其进行了二次封装,不过我没使用,还是参照官方文档[https://ai.baidu.com/ai-doc/FACE/yk37c1u4t]的原始办法。
总体来说,使用这个API需要先根据AK和SK生成自己的access_token,然后对需要检测的人脸图片进行格式转换,最后根据要求的格式构建请求url,下面我们结合代码来进行说明。
首先我们建立一个类,初始化的时候进行固定参数赋值,比如我们的AK和SK还有headers;get_token方法会根据AK和SK获取最新的access_token,方法都是官方文档中给出的,大家参照执行就可以。代码如下:
接下来这个函数会将指定图片转换为base64编码,为什么要转换?因为百度人脸检测API目前支持三种图片数据类型:一种就是BASE64;第二种是URL,也就是在线的图片源地址;第三种是FACE_TOKEN。如果是本地图片上传,还是使用BASE64相对方便一些。代码如下:
最后就是人脸检测函数了,这里面大部分内容都是根据文档定制的,需要修改的主要是params部分:
face_field参数指示的是人脸检测后的返回字段,这次我们只需要颜值和性别就可以了,但其实这个API还可以检测很多内容,包括:age, eauty, expression, face_shape, gender, glasses, landmark, landmark150, race, quality, eye_status, emotion, face_type等,具体含义这里就不解释了;
image参数表示需要检测的图片,这里其实是转换成base64后的编码;
image_type参数就是待检测图片的类型了,前面我们说过有BASE64、URL和FACE_TOKEN三种。
还有需要注意就是response.json()其实包含了很多信息, 我可以打印出来给大家看下:
而我们需要的信息只有beauty和gender种的type两个数据,所以需要从中一层层的把他们剥离出来。以上就是人脸检测函数的全部功能,代码如下:
到这里一幅图片的人脸检测代码就完整了。
03
颜值打分
现在我们遍历picture文件夹,对其下的每张图片进行人脸检测并打分保存结果。为此我们构建以下代码:
对于picture文件夹中的每幅图片,我们经过人脸检测类得到其beauty和gender两个数据,再跟图片名称(明星名字)一起存入到一个dataframe中,最后保存到CSV文件,来看下最终的结果:
从结果看,百度API给出的颜值评分最高的是朱一龙87.74分,最低的是邓伦63.29分(其实我个人感觉邓伦还是挺帅的)。不过从总体分数分布来看,上榜的这几位明星的颜值还是很高的。
从男星女星颜值均值对比来看,基本是持平状态:
话说我近几年比较喜欢的一名女星赵丽颖没有上榜,这里单独为她做一下颜值检测,评分结果是84.32分,比上榜女星中得分最高的吴宣仪还要高。
文章的最后,我再次声明下本文只讲方法不重结果,纯属技术分享,其测评分数完全由百度API给出,明星照片的选取对测评结果也有很大的影响。总之相信每个宅男心中都有一个自己的女神,每个程序媛心中也有自己的男神。其实我偷偷说一下,我心中还有一个女神就是 大 幂 幂!
另外,很多小伙伴说光看我们的文章不过瘾,我们也在陆续同步一些趣味的案例视频+源码在B站,尝鲜的可以点击阅读原文看哦!
近期热门:
就这么简单!20行Python代码爬取腾讯视频
只要3步,菜鸟也能用Python做个逗逼的表情包
点击下方“阅读全文”了解更多