每天学Python——让人工智能给你的颜值打个分

本文介绍了如何利用Python、百度人脸识别API和Flask框架实现一个简单的颜值评分系统。通过上传图片,系统能够检测人脸并分析年龄、性别、表情、脸型等特征,为用户提供有趣的颜值反馈。
摘要由CSDN通过智能技术生成

现在是[人工智能]兴起的时代,到处都在谈人工智能。今天就从[人工智能]的角度给你的颜值打个分。

在这里,我会把整个实现过程写出来。

先介绍一下用到了哪些东西(用[Python]

  • 百度的人脸识别api
  • Flask
  • PIL
  • requests

操作很简单,主要是利用的百度的人脸识别库,然后自己做了一个简单的图片上传和图片处理以及信息提取加工。

百度的人脸识别api申请的地址,需要有百度账号: 传送门

然后在控制台创建一个应用即可:
图片.png

在应用列表中可以看到你创建的应用:

图片.png

通过查看百度的人脸识别的文档,我们就可以写代码了。

想要使用百度的api,申请只是第一步,后面还需要获取access_token,文档给出的方法如下:

图片.png

官网给的方法相对比较繁琐,我使用request改写了一下如下(注意把[url]里面的Key换成你申请的)。

def get_access_token:
url=‘https://aip.baidubce.com/[oauth]/2.0/token?grant_type=client_credentials&grant_type=client_credentials&’
‘client_id=【你申请的API Key】&client_[secret]=【你申请的[Secret]Key】’
data = requests.get(url, headers).[json]
return data[‘access_token’]

拿到这个key之后,就可以进行下一步的请求了,继续看文档:

图片.png

文档中说要使用post方法进行请求,请求的url给出了,url的参数是上面获取到的access_token,请求的头部要包含”Content-Type”: “application/json”

下面是主体部分,也就是对上传的图片的要求,以及你想要获取的内容的一下说明:

文档说图片的大小不能大于10M,上传的类型包含三种,一种是URL。还有就是图片通过[Base64]编码后得到的编码信息。其中face_field是你想要返回的内容等等,文档里面说的都很清楚,这里不做过多介绍。

首先,我们不采用图片url的方式,我们直接使用对图片进行base64编码的形式进行处理。编码的过程如下:

with open(’[static]/’ + [filename], ‘rb’) as f:
base = base64.b64encode(f.read)
image = str(base, encoding=‘utf-8’)

请求的参数构造如下:

[params] = {

‘image’: image,

‘image_type’: imageType,

‘face_field’: ‘age,beauty,[gender],face_type,face_shape,[expression],landmark’

}

其中image是我们上面编码过的结果,imageType是BASE64,face_field是我们想要它返回给我们的内容,包括年龄,颜值,性别,人物类型,脸型,表情,检测的点。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以联系维:762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

然后通过返回给我们的数据,提取(完整代码如下)相应的内容:

def get_content(filename):

request_url = “https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=”+get_access_token

with open(‘static/’ + filename, ‘rb’) as f:

base = [base64].b64encode(f.read)

image = str(base, encoding=‘utf-8’)

params = {

‘image’: image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值