前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用百度人脸识别API实现一款简单的Python颜值打分

利用百度人脸识别API实现一款简单的Python颜值打分

作者头像
松鼠爱吃饼干
发布2021-09-02 10:07:17
6990
发布2021-09-02 10:07:17
举报
文章被收录于专栏:Python分享

前言

百度开源的人脸识别接口,通过上传人像图片可以返回颜值打分,年龄等信息;今天我们使用这个接口实现一款Python颜值打分神器

Python从零基础入门到实战系统教程、源码、视频、在线一对一解答,可以加群:1039649593

环境

  • python3.6
  • pycharm

实现步骤

  1. 接口认证,返回一个认证成功通知 认证成功通知:‘access_token’
  2. 认证完成之后,调用接口
  3. 依次进行打分

导入相关模块

代码语言:javascript
复制
import requests
import base64
import time
import os

1.接口认证,返回一个认证成功通知

代码语言:javascript
复制
def access_token(ak, sk):
    """获取接口认证,获取认证代码"""
    response = requests.get(f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={ak}&client_secret={sk}')
    if response.status_code == 200:
        return response.json()['access_token']
    else:
        print('获取token失败...')

ak = '22F5CIXEg69Uc9vyMggrgZAb'
sk = 'cd5wylpIu1W19rLtqzrVh1FHnVO73uRH'
token = access_token(ak, sk)

2.认证完成之后,调用接口

代码语言:javascript
复制
img = 'XXX.jpg'
# 检测

# 颜值打分
def appearance(file_path, token):
    # 图片打开成二进制
    with open(file_path, 'rb') as f:
        # 转成base64编码 只要二进制图片数据
        data = base64.b64encode(f.read())
    headers = {'content-type': 'application/json'}
    params = {
        'image': data,
        'image_type': 'BASE64',
        # 要获取的颜值打分分数
        'face_field': 'beauty'
    }
    url = f'https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token={token}'
    res = requests.post(url, headers=headers, data=params)
    if res.status_code == 200:
        beauty = res.json()['result']['face_list'][0]["beauty"]
        return beauty
    else:
        return '认证失败'

批量检测,遇到报错问题

代码语言:javascript
复制
path = 'C:\\Users\\Administrator\\Desktop\\代码堆\\手机壁纸'
img_list = os.listdir(path)
score_dict = {}
for image in img_list:
    try:
        name = image.split('.')[0]
        image_path = path + '/' + image
        score = appearance(image_path, token)
        score_dict[name] = score
    except:

        print(f'正在检测{name} | 检测失败!!!')
    else:
        print(f'正在检测{name} | 颜值打分为:{score}')
    time.sleep(0.5)

print('\n======================================================检测完成======================================================\n')
print(score_dict)
print(score_dict.items())

把字典根据颜值分数进行降序排列

代码语言:javascript
复制
change_score = sorted(score_dict.items(),key=lambda x: x[1], reverse=True)
print(change_score)

数据输出

代码语言:javascript
复制
# enumerate 枚举,把change_score里面的数据一一列出来
print(list(enumerate(change_score)))

最后打印排名

代码语言:javascript
复制
for a, b in enumerate(change_score):
    print(f'小姐姐的名字是: {change_score[a][0]} | 颜值名次是: 第{a + 1} | 她的颜值分数为: {change_score[a][1]}')

运行代码,查看结果

图片的话,可以自己去爬一些壁纸或者美女图片,最好都是有正脸的

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

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Python从零基础入门到实战系统教程、源码、视频、在线一对一解答,可以加群:1039649593
  • 环境
  • 实现步骤
  • 导入相关模块
  • 1.接口认证,返回一个认证成功通知
  • 2.认证完成之后,调用接口
  • 批量检测,遇到报错问题
  • 把字典根据颜值分数进行降序排列
  • 数据输出
  • 最后打印排名
  • 运行代码,查看结果
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档