Python实现人脸识别的详细图文教程
作者:轻松学Python 发布时间:2022-12-28 04:45:53
叨叨几句
哈喽兄弟们,今天实现一下人脸识别。
先问大家一个问题
什么是百度Aip模块?
百度AI平台提供了很多的API接口供开发者快速的调用运用在项目中
本文写的是使用百度AI的在线接口SDK模块(baidu-aip)进行实现人脸识别
除了人脸识别,其他api功能的调用也同理。
准备工作
本机环境
系统:win11
Python版本:3.9.7
编辑器:VS2022
安 * aidu-aip模块
win + R 输入cmd打开命令提示符
执行安装百度AI模块
pip install baidu-aip
登录百度AI平台创建应用
打开百度AI平台 进行登录
在控制台中找到人脸识别
按自己要求创建应用
最后得到应用的AppID API Key Secret Key
记下值 等等会用到
AppID:10000000
API Key:xxxxxxxxxxxxxxxxxxxxxxxx
Secret Key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
代码流程
导入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
将图片打开为 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 需要修改为自己的
来源:https://blog.csdn.net/ooowwq/article/details/126405913


猜你喜欢
- 大家都在关注视觉的盛宴,西方的美学;今天就分享下,中国最为古老的美,也是身边随处可见的美学–中国汉字书法之美;古文者,仓颉做造也。仰观奎星园
- pytorch做标准化利用transforms.Normalize(mean_vals, std_vals),其中常用数据集的均值方差有:i
- 前言在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了
- 目录一、前言二、什么是super三、super的常用使用场景总结一、前言最近有粉丝向我咨询super相关的问题,说网上搜索到的教程不够通俗易
- 一.先看一些最简单的例子例子Table Aaid adate 1 &n
- 用法示例:import random# 1)随机小数print(random.random()) # 获取大于0且小于1 之间的小数 &nb
- 代码如下:<html> <head> &nb
- 使用下面的命令检查是否安装有MySQL Server[root@localhost etc]# rpm -qa | grep mysql /
- 引言近期做一些基于TCP协议的项目,跟其他接口方调试时经常出现不一致的问题,而程序日志又不能完成保证公正,就只能通过tcpdump抓包的方式
- 1、用户管理mysql的用户信息保存在了mysql.user中:select * from mysql.user\G************
- 之前因为项目的原因需要使用Oracle数据库,由于时间有限没办法从基础开始学习,而且oracle操作的命令界面又太不友好,于是就找到了PL/
- pandas处理大数据的限制现在的数据科学比赛提供的数据量越来越大,动不动几十个G,甚至上百G,这就要考验机器性能和数据处理能力。Pytho
- 1.javascript获取网址"?"后面的参数:var query = window.location.search.
- JSON Schema是一个用于验证JSON数据结构的强大工具, 我查看并学习了JSON Schema的官方文档, 做了详细的记录, 分享一
- Arrays:数组在go语言中数组array是一组特定长度的有序的元素集合。package mainimport "fmt&quo
- 在神经网络训练中,好的权重 初始化会加速训练过程。下面说一下kernel_initializer 权重初始化的方法。不同的层可能使用不同的关
- 在Javascript里,setTimeout和setInterval接收第一个参数是一个字符串或者一个函数,当在一个对象里面用setTim
- 在昨天关于substring的blog中有如下一段代码:也许你已经发现,在Python 3中其实有办法只用一行完成函数:>>&g
- 做机器学习的一定对支持向量机(support vecto
- (一)前言众所周知,Navicat是我们常用的连接MYSQL工具,非常方便好用。其实日常中,我们也常常会遇到运行时间很长甚至几乎跑不完卡死的