python颜值分析

皮小孩ls
前端领域新星创作者
2023-12-24 14:06:14

@

文章目录

  • 一、具体过程
  • 1.百度AI平台申请密钥
  • 2.python代码实现
  • 3.结果
  • 二、悄悄看看明星的颜值分
  • 彭于晏
  • 王力宏
  • Lisa

一、具体过程

1.百度AI平台申请密钥

进入百度AI开放平台https://ai.baidu.com/
进入控制台并登录账号
进入后进入人脸识别,并创建应用

在这里插入图片描述

创建成功可以在我的应用看到密钥

在这里插入图片描述

2.python代码实现

首先要获取Access Token,可以查看官方的文档

在这里插入图片描述


然后将图片转化为base64编码

def img_to_base64(slef, path):
    #图片转化为base64
    with open(path, 'rb') as f:
        image = f.read()
        image_base64 = str(base64.b64encode(image), encoding='utf-8')
    return image_base64

查看文档的主要请求参数

在这里插入图片描述

face_field参数,默认只返回人脸框、概率和旋转角度。如果需要返回更多结果,可以在此参数中添加(beauty、age等)。

在这里插入图片描述


python完整代码:

# encoding:utf-8
import base64
import json
import requests

class BaiduAI:
    def __init__(self, img):
        self.AK = ""#你的应用API Key
        self.SK = ""#你的应用Secret Key
        self.img_src = img
        self.headers = {
            "Content-Type": "application/json; charset=UTF-8"
        }

    def get_AccessToken(self):
        #获取Access Token
        host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + self.AK + '&client_secret=' + self.SK
        response = requests.get(host, headers=self.headers)
        json_result = json.loads(response.text)
        if response:
            return json_result['access_token']
        else:
            print(json_result)
            return 0

    def img_to_base64(slef, path):
        #图片转化为base64
        with open(path, 'rb') as f:
            image = f.read()
            image_base64 = str(base64.b64encode(image), encoding='utf-8')
        return image_base64

    def face_identification(self):
        # 人脸检测与属性分析
        img = self.img_to_base64(self.img_src)
        request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"
        post_data = {
            "image": img,
            "image_type": "BASE64",
            "face_field": "gender,age,beauty,gender,race,emotion,face_shape,landmark",#包括age,beauty,expression,face_shape,gender,glasses,landmark,emotion,face_type,mask,spoofing信息
            "face_type": "LIVE"#人脸的类型。LIVE表示生活照,IDCARD表示身份证芯片照,WATERMARK表示带水印证件照,CERT表示证件照片,默认LIVE。
        }
        access_token = self.get_AccessToken()
        request_url = request_url + "?access_token=" + access_token
        response = requests.post(url=request_url, data=post_data, headers=self.headers)
        json_result = json.loads(response.text)
        print(json_result)
        if json_result['error_code'] == 0:
            print("人脸表情:", json_result['result']['face_list'][0]['emotion']['type'])
            print("人物年龄:", json_result['result']['face_list'][0]['age'])
            print("人物颜值评分:", json_result['result']['face_list'][0]['beauty'])
            print("人物性别:", json_result['result']['face_list'][0]['gender']['type'])
            print("人物种族:", json_result['result']['face_list'][0]['race']['type'])
            #print("人物特征点位置:", json_result['result']['face_list'][0]['landmark72'])
        else:
            print(json_result['error_code'])
            print(json_result['error_msg'])

if __name__ == '__main__':
    imglist=['dingzhen1.jpg','dingzhen2.jpg']
    for i in range(0,len(imglist)):
        print('第{}张图片:'.format(i+1))
        demo = BaiduAI(imglist[i])
        if(demo.get_AccessToken()):
            demo.face_identification()

3.结果

下面是我找的两张图片:

第一张图

第二张图


在这里插入图片描述


从结果来看,丁真的颜值还是十分高的。
第二张图片可能比较模糊,颜值分不太高哈哈哈

二、悄悄看看明星的颜值分

彭于晏

在这里插入图片描述

在这里插入图片描述


不愧是男神啊!!!!!

王力宏

在这里插入图片描述


在这里插入图片描述


找高清图片真的太难了!!!
最后再找一张女神Lisa的照片看看颜值分多少吧。

Lisa

在这里插入图片描述


在这里插入图片描述


太可了!!!
python学习资料下载地址:python学习资料整理

在这里插入图片描述

...全文
233 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

173,354

社区成员

发帖
与我相关
我的任务
社区描述
一个人可以走的很快,一群人才能走的更远! 加我微信群一起交流讨论学习! 共创美好社区!
社区管理员
  • 呆呆敲代码的小Y
  • 芝麻粒儿
  • 布小禅
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区公告:

【社区核心】学习优先,其他靠边!

社区每日打卡贴,学习有福利,奖励不断!

【游戏开发爱好者社区】本周重磅推出【每日打卡】活动

🎁 新玩法,奖励升级!

游戏开发爱好者社区:https://bbs.csdn.net/forums/unitygame

社区中心思想:今天你学到了什么?

⭐️ 活动要求:

  1. 每日 在 社区打卡贴 进行发帖打卡,提交任务
  2. 在社区 坚持 5 天打卡 ,将参与到抽奖名单中,这很重要!
  3. 打卡满七天的周末时 社区积分排行榜第前三 的小伙伴可任选一本以下书籍,其余的抽奖处理~
  4. 参加抽奖请先 添加打卡抽奖群,否则无效,加群请添加微信:ZAY1422761991

本周抽奖池技术书籍分别各3本,一共6本

【社区积分规则】

  • 在社区「发帖」得20积分
  • 内容被管理员「加精」得50积分
  • 点赞他人内容得2积分
  • 评论内容得5积分

 

试试用AI创作助手写篇文章吧