Python使用在线接口SDK模块(baidu-aip)实现人脸识别

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学Python时刻~

今天实现一下人脸识别。

先问大家一个问题
什么是百度Aip模块?

百度AI平台提供了很多的API接口供开发者快速的调用运用在项目中
本文写的是使用百度AI的在线接口SDK模块(baidu-aip)进行实现人脸识别

除了人脸识别,其他api功能的调用也同理。

准备工作

本机环境

  • 系统:win11

  • Python版本:3.9.7

  • 编辑器:VS2022

安装baidu-aip模块

win + R 输入cmd打开命令提示符

执行安装百度AI模块

pip install baidu-aip

登录百度AI平台创建应用

打开百度AI平台 进行登录
在控制台中找到人脸识别

按自己要求创建应用

最后得到应用的AppID API Key Secret Key

记下值 等等会用到

AppID:10000000
API Key:xxxxxxxxxxxxxxxxxxxxxxxx
Secret Key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

源码获取加Q裙:261823976 点击蓝字加入【python学习裙】

请添加图片描述

代码流程

导入baidu-aip模块

打开VS2022(VSCode PyCharm Sypder等同理)创建一个py文件

输入

from aip import AipFace

声明上文获取的AppID API Key Secret Key

APP_ID = '10000000'
API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxx'
SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

初始化百度AIP 人脸识别模块

client = AipFace(APP_ID, API_KEY, SECRET_KEY)

创建人脸检测函数

def face_detect(image):
    result = client.detect(image, image_type='BASE64')
    print(result)
    return result

输入的图片image必须是BASE64格式

将图片转为BASE64格式

导入base64包

import base64

但是导入到百度AI中需要为字符串格式,所以返回为字符串

def imageToBase64(imagePath):
    with open(imagePath, 'rb') as f:
        image = base64.b64encode(f.read())
        return str(image, encoding='utf-8')

打开图片进行检测

先准备一张图片pic1.jpg

调用函数

face_detect(imageToBase64("pic1.jpg"))

遇到的问题

运行时候提示:

requests.exceptions.ProxyError: HTTPSConnectionPool(host='aip.baidubce.com', port=443)

win + R 输入 regedit 打开注册表,找到

\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

把ProxyEnable的值改为0

再运行即可

延伸出使用其他功能

除了人脸检测还可以使用人脸比、人脸搜索对等函数,调用方法同理,比如人脸比对。

def face_match(image1, image2):
    result = client.match([
    {
        'image': image1,
        'image_type': 'BASE64',
    },
    {
        'image': image2,
        'image_type': 'BASE64',
    }
   ])
    print(result)
    return result

人脸搜索

def face_search(image,group_id_list):
    result = client.search(image, image_type='BASE64',group_id_list=group_id_list)
    print(result)
    return result

APP_ID API_KEY SECRET_KEY 需要修改为自己的

完整代码点击== 蓝色字体== 自取,我都放在这里了。

尾语 💝

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,博主要一下你们的三连呀(点赞、评论、收藏),不要钱的还是可以搞一搞的嘛~

不知道评论啥的,即使扣个6666也是对博主的鼓舞吖 💞 感谢 💐

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用按钮实现人脸识别,可以使用Python的百度AI SDK,该SDK提供了人脸识别API,可以识别人脸、检测人脸人脸对比等功能。以下是一个使用百度AI SDK和Tkinter实现的简单示例,可以实现人脸识别: 首先,需要安装百度AI SDK,可以使用以下命令: ```bash pip install baidu-aip ``` 接下来,可以使用以下代码实现人脸识别: ```python import tkinter as tk from aip import AipFace APP_ID = 'your_app_id' API_KEY = 'your_api_key' SECRET_KEY = 'your_secret_key' client = AipFace(APP_ID, API_KEY, SECRET_KEY) def recognize_face(): # 加载已知人脸的图像和标签 known_image = open("known_face.jpg", 'rb').read() known_image_base64 = str(base64.b64encode(known_image), 'utf-8') known_image_info = client.detect(known_image_base64) if 'error_msg' in known_image_info: output_label.config(text="Error: " + known_image_info['error_msg']) return known_face_list = known_image_info['result']['face_list'] if not known_face_list: output_label.config(text="No face detected in known image") return known_face_token = known_face_list[0]['face_token'] # 加载待识别的图像 unknown_image = open("unknown_face.jpg", 'rb').read() unknown_image_base64 = str(base64.b64encode(unknown_image), 'utf-8') unknown_image_info = client.detect(unknown_image_base64) if 'error_msg' in unknown_image_info: output_label.config(text="Error: " + unknown_image_info['error_msg']) return unknown_face_list = unknown_image_info['result']['face_list'] if not unknown_face_list: output_label.config(text="No face detected in unknown image") return unknown_face_token = unknown_face_list[0]['face_token'] # 比较已知人脸和待识别人脸的编码 compare_result = client.match([ {'face_token': known_face_token}, {'face_token': unknown_face_token} ]) if 'error_msg' in compare_result: output_label.config(text="Error: " + compare_result['error_msg']) return score = compare_result['result']['score'] if score >= 80: output_label.config(text="Recognized as known face") else: output_label.config(text="Not recognized") root = tk.Tk() root.title("Face Recognition Example") # 创建按钮 button = tk.Button(root, text="Recognize Face", command=recognize_face) button.pack() # 创建输出标签 output_label = tk.Label(root, text="") output_label.pack() root.mainloop() ``` 在上面的示例中,我们使用百度AI SDK和Tkinter创建了一个简单的图形界面。当用户单击“Recognize Face”按钮时,按钮处理程序将加载已知人脸的图像和标签,加载待识别的图像,比较已知人脸和待识别人脸的编码,并将识别结果显示在输出标签中。 需要注意的是,这只是一个简单的示例,实际的人脸识别应用程序需要考虑更多的因素,如多个人脸识别人脸检测和人脸对齐等。同时,还需要注意保护用户隐私,遵循相关法律法规。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值