• 测测你的颜值有多少?


    测测你的颜值有多少?

    突然看到一个测颜值的工具,觉得很有意思,写完之后上传照片感觉好好玩呀 ~~~

    今天周末,不想写的太详细了,有点懒,直接上代码 ~~~

    import base64
    import json
    import requests
    
    class AIFace:
        def __init__(self,img):
            #你的应用API KEY
            self.AK = 'Oahh6GbkGsw5bzEGSVHwLhY2'
            #你应用的秘钥
            self.SK = 'CfUe9h5qnqRwfvydHmyYGh2TQGejw8TN'
            self.img_src = img
            self.headers = {
                'Content-Type':'application/json;charset=UTF-8'
            }
    
        def get_AccessToken(self):
            #获取AccessToken
            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(self,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 = ['OIP.jpeg','OIP 1.jpeg','qian.jpg','haven.jpg','11.jpg','2.jpg' ,'3.jpg' ,'4.jpg' ,'5.png','111.jpg',]
        for i in range(0, len(imglist)):
            print('第{}张图片:'.format(i + 1))
            demo = AIFace(imglist[i])
            if (demo.get_AccessToken()):
                demo.face_identification()
    

    测了一下紫琪的颜值,真是不愧实力与颜值并存,85分~

    黄渤~

    哈哈 ~ 真好玩

  • 相关阅读:
    Window7幻灯片字体显示混乱,难道真的是病毒么
    COCOS2DX 3.0 优化提升渲染速度 Auto-batching
    iOS 打印出视图中全部的子视图的名称
    【linux】学习2
    【编程之美】2.16 求数组的最大递增子序列
    【linux】学习1
    【编程之美】2.15 子数组之和的最大值(二维)
    【编程之美】2.14 求数组的子数组之和的最大值
    【QT】视频播放
    【编程之美】3.5 最短摘要的生成
  • 原文地址:https://www.cnblogs.com/maqian/p/14121440.html
Copyright © 2020-2023  润新知