关于python:人大偷拍打分上热搜打分功能究竟是如何实现的

5次阅读

共计 3392 个字符,预计需要花费 9 分钟才能阅读完成。

这是一个明天产生的热点话题,说是热点,其实对我来说不算是生疏的话题了,因为早在几年前,我就曾经关注到一些技术论坛有相似的探讨,过后就曾经上过某些博客网站的热搜,当然,因为技术社区具备垂直化的个性,因而很难引起技术圈以外的公众的留神。

首先,得申明一下,本篇博客的写作纯正对于技术的探索,我已经是一名网络安全爱好者,同时近期正好在看一些法律常识,因而更加关注用户隐衷,因而这篇博客不会提供任何的人脸图片,无论是任何地区的陌生人,还是某个明星。这是出于一种尊重。

技术概念

在介绍代码之前,我打算先科普一下几个相干的技术概念:

百度 AI 的人脸检测与属性剖析接口:

百度 AI 平台提供了丰盛的人脸技术接口,其中包含人脸检测与属性剖析接口。通过该接口,咱们能够将一个图片的人脸区域进行定位,并获取诸如年龄、性别、颜值等属性信息。这对于目前国内的颜值打分测评网站,软件而言,非常的要害。
为什么非常要害?几年前我读大三的时候,因为学校理科专业课程不多的缘故,我在图书馆里对这类程序的代码过后趣味的看了看,发现目前国内的颜值测评次要分为两类:

1. 伪评测

应用随机数,也就是说,给一个数值范畴,在该范畴中进行打分,给出评估,我用 c 语言代码举一个示例:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

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("颜值评分:%d\n", score);
  
  // 获取中文评估
  const char* comment = evaluate_comment(score);
  
  // 输入中文评估
  printf("中文评估:%s\n", 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 的人脸技术接口,实现一个简略而乏味的颜值检测排名评分程序。通过该程序,咱们能够对照片中的人脸进行颜值评分和排名,能够满足一些人对颜值的好奇心。
然而我在这里仍然心愿,爱美之心,人皆有之,能够好奇颜值,然而不要以守法的形式满足本人的好奇心,而是要恪守法律法规,尊重别人的隐衷和权利。同时,咱们应该重视内在美,置信每个人都有独特的魅力和价值,不仅仅局限于表面。因而,咱们应该激励彼此相互尊重和容纳,独特发明一个和煦谐和的社会环境。

正文完
 0