这是一个今天发生的热点话题,说是热点,其实对我来说不算是陌生的话题了,因为早在几年前,我就已经关注到一些技术论坛有类似的讨论,当时就已经上过某些博客网站的热搜,当然,由于技术社区具有垂直化的特性,因此很难引起技术圈以外的大众的注意。
首先,得声明一下,本篇博客的写作纯粹对于技术的探究,我曾经是一名网络安全爱好者,同时近期正好在看一些法律知识,因此更加关注用户隐私,因此这篇博客不会提供任何的人脸图片,无论是任何地域的陌生人,还是某个明星。这是出于一种尊重。
技术概念
在介绍代码之前,我打算先科普一下几个相关的技术概念:
百度AI的人脸检测与属性分析接口:
百度AI平台提供了丰富的人脸技术接口,其中包括人脸检测与属性分析接口。通过该接口,我们可以将一个图片的人脸区域进行定位,并获取诸如年龄、性别、颜值等属性信息。这对于目前国内的颜值打分测评网站,软件而言,十分的关键。
为什么十分关键?几年前我读大三的时候,因为学校文科专业课程不多的缘故,我在图书馆里对这类程序的代码当时兴趣的看了看,发现目前国内的颜值测评主要分为两类:
1.伪评测
使用随机数,也就是说,给一个数值范围,在该范围中进行打分,给出评价,我用c语言代码举一个示例:
#include
#include
#include
int evaluate_beauty() {
// 生成种子,用于产生随机数
srand(time(NULL));
// 随机生成颜值评分(0-100)
int beauty_score = rand() % 101;
return beauty_score;
}
const char* evaluate_comment(int beauty_score) {
// 根据评分给出中文评价
if (beauty_score >= 90) {
return "哇,超级美!";
} else if (beauty_score >= 80) {
return "很美哦!";
} else if (beauty_score >= 70) {
return "挺好看的!";
} else if (beauty_score >= 60) {
return "还可以!";
} else {
return "不是很美,加油!";
}
}
int main() {
// 调用评分函数进行颜值测评
int score = evaluate_beauty();
// 输出评分
printf("颜值评分:%dn", score);
// 获取中文评价
const char* comment = evaluate_comment(score);
// 输出中文评价
printf("中文评价:%sn", comment);
return 0;
}
其实你可以发现,这类程序其实根本没有所谓的ai人工智能进行思考判断,类似于流行的算命求姻缘一样,并无实际意义。
2.真评测
即使用图片上传,然后背后基于大模型计算出颜值分数。
Base64编码:
Base64是一种常用的编码方式,可以将二进制数据(包括图片)转换为纯文本字符。在本例中,我们将使用Base64编码将图片转换为字符串形式,以便传输给百度AI的接口。
代码实现
下面是我使用Python编写的颜值检测排名评分程序的示例代码:
import requests
import base64
import json
def get_beauty(image_path):
# 读取图片文件,将其转换为Base64编码
with open(image_path, 'rb') as image_file:
image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
# 发送请求获取百度AI的access_token
access_token_url = 'https://aip.baidubce.com/oauth/2.0/token'
access_token_params = {
'grant_type': 'client_credentials',
'client_id': 'YOUR_CLIENT_ID',
'client_secret': 'YOUR_CLIENT_SECRET'
}
response = requests.post(access_token_url, params=access_token_params)
access_token = response.json()['access_token']
# 发送图片数据进行人脸检测与属性分析,获取颜值评分
beauty_url = 'https://aip.baidubce.com/rest/2.0/face/v3/detect'
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
beauty_params = {
'access_token': access_token,
'image': image_base64
}
response = requests.post(beauty_url, headers=headers, params=beauty_params)
beauty_score = response.json()['result']['face_list'][0]['beauty']
return beauty_score
def main():
image_folder = 'img_1' # 图片文件所在的文件夹路径
# 获取文件夹中所有图片文件名
import os
image_files = os.listdir(image_folder)
beauty_scores = []
for image_file in image_files:
image_path = os.path.join(image_folder, image_file)
beauty = get_beauty(image_path)
beauty_scores.append((image_file, beauty))
# 根据颜值评分对图片进行排序
beauty_scores.sort(key=lambda x: x[1], reverse=True)
# 打印图片排名
for i, (image_file, beauty_score) in enumerate(beauty_scores):
print(f'Rank {i+1}: {image_file} - Beauty Score: {beauty_score}')
if __name__ == '__main__':
main()
实现原理
首先,我们定义了一个get_beauty()函数,该函数接受一个图片文件路径作为参数。函数首先读取图片文件,并将其转换为Base64编码的字符串。然后,它发送HTTP请求到百度AI的接口,使用我们在百度AI平台申请的客户端ID和密钥获取访问令牌(access_token)。接下来,它将包含图片数据和access_token的请求发送给百度AI的人脸检测与属性分析接口,并解析返回的JSON数据以获取颜值评分。
接下来,我们定义了一个main()函数作为程序的入口。我们提供了一个图片文件夹的路径,并使用os模块获取文件夹中的所有图片文件名。然后,我们遍历每一个图片文件,调用get_beauty()函数获得颜值评分,并将图片文件名和颜值评分存储在一个列表中。
最后,我们对颜值评分进行排序,以获得图片的排名。我们使用Python内置的sort()函数,并使用lambda函数作为排序算法的关键字参数,根据颜值评分进行排序并指定降序排列。最后,我们使用一个循环来打印每个图片的排名和颜值评分。
当然,我知道你会好奇,api中的百度ai平台是如何操作的,这个我们就不得而知了,因为这是百度人工智能的核心技术和商业机密。
总结
本篇博客我大致如何使用Python编程语言和百度AI的人脸技术接口,实现一个简单而有趣的颜值检测排名评分程序。通过该程序,我们可以对照片中的人脸进行颜值评分和排名,可以满足一些人对颜值的好奇心。
但是我在这里依然希望,爱美之心,人皆有之,可以好奇颜值,但是不要以违法的方式满足自己的好奇心,而是要遵守法律法规,尊重他人的隐私和权益。同时,我们应该注重内在美,相信每个人都有独特的魅力和价值,不仅仅局限于外表。因此,我们应该鼓励彼此互相尊重和包容,共同创造一个温暖和谐的社会环境。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 高性能+分布式,Python Parser 在量化因子计算场景中的应用
面向读者 有 Python 编程基础的 DolphinDB 初学者 本教程教学内容 如何在 DolphinDB 中用 Python 语言开发因子代码,并完成计算和入库存储 如何在 DolphinDB 中用 Python 语言创建各种不同频率的因子存储库表 如何…