【月更29】照片,人脸打分与Python之间的拟合度
【摘要】 给美女打分,好需求,这个需求听到就想把它快速的实现,对于这样的需求,梦想橡皮擦一直是来者不拒的。该案例因为版权问题,无法完整展示,注意看评论区 写在前面本案例实现基本思路:获取页面上所有人物头像的缩略图(采集图片过程,可参考 codechina 源码或过往案例)调用人脸打分 API,为图片打分将得分最高的图片打开,欣赏 编码时间关于人脸打分检测,调用的是百度的 API,具体网址如下:http...
给美女打分,好需求,这个需求听到就想把它快速的实现,对于这样的需求,梦想橡皮擦一直是来者不拒的。
该案例因为版权问题,无法完整展示,注意看评论区
写在前面
本案例实现基本思路:
- 获取页面上所有人物头像的缩略图(采集图片过程,可参考 codechina 源码或过往案例)
- 调用人脸打分 API,为图片打分
- 将得分最高的图片打开,欣赏
编码时间
关于人脸打分检测,调用的是百度的 API,具体网址如下:
https://console.bce.baidu.com/ai/?_=1602467530258&fromai=1#/ai/face/overview/index
使用百度账号登录之后,创建应用即可获取所需参数。
API 的使用方法和下载。
下载地址:http://ai.baidu.com/docs#/Face-Python-SDK/top
使用说明:http://ai.baidu.com/ai-doc/FACE/ek37c1qiz
保存图片代码如下,在保存的过程中需要对图片进行打分,当然你直接下载全部图片,在对本地图片打分也可
import time
import requests
from fake_useragent import UserAgent
from aip import AipFace
import base64
import json
user_agent = UserAgent()
headers = {
"user-agent": user_agent.random,
"referer": "https://www.pingbi.com",
"x-requested-with": "XMLHttpRequest",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8"
}
def beauty(base64_data):
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
# image = "https://rpic.pingbiucdn.cn/live-cover/appCovers/2020/08/27/6796447_20200827022844_big.jpg/dy2"
image = base64_data
imageType = "BASE64"
""" 调用人脸检测 """
client.detect(image, imageType)
""" 如果有可选参数 """
options = {}
options["face_field"] = "age,beauty,gender"
options["max_face_num"] = 2
options["face_type"] = "LIVE"
options["liveness_control"] = "LOW"
""" 带参数调用人脸检测 """
a = client.detect(image, imageType, options)
return a
def save_imgs(rl):
for user in rl:
# https://www.pingbi.com/9190725
rid = user["rid"]
face = user["rs1"]
try:
print("访问接口等待中")
time.sleep(2)
res = requests.get(face, headers=headers)
img = res.content
base64_data = str(base64.b64encode(img), encoding='utf-8')
bea = beauty(base64_data)
if bea["error_code"] == 222202:
print("非人类!")
with open(f"./faces/非人:{rid}.jpg", "wb") as file:
file.write(img)
else:
# 获取得分
print(bea)
beauty_count = bea["result"]["face_list"][0]["beauty"]
with open(f"./faces/{beauty_count}:{rid}.jpg", "wb") as file:
file.write(img)
except Exception as e:
print(e)
上述代码中有个接口访问限制时间,该时间是百度 API 调用的限制时间,建议设置为 1~2 秒。
代码编写完毕 ,运行效果如图,在代码中加入了一些判断,打分之后会写入到文件名中,这样我们就能发现最高分了。
通过批量调用手中的人脸照片进行打分,高分头像可以用作表情包。这里面混入了一些男人
最神奇的是接口判断下面是非人类…这就比较神奇了。代码难度不大,查看置顶评论即可。
广宣时间
博主 ID:
梦想橡皮擦
,希望大家点赞、评论、收藏。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)