Python进阶——实现人脸识别

news2025/1/11 8:59:14

前言

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

今天我们来实现一下人脸识别~

先问大家一个问题

什么是百度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平台创建应用

  1. 打开百度AI平台 进行登录

  2. 在控制台中找到人脸识别

  1. 按自己要求创建应用

  1. 最后得到应用的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"))

延伸出使用其他功能

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

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 需要修改为自己的

尾语

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

完整代码点击下方V-x名片获取。

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

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

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/492381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单链表——单链表的定义及基本操作(初始化、头插法尾插法建表、查找、插入、删除、判空等)

单链表的定义 由于顺序表存在以下缺陷,所以衍生出了链表,而链表种类有很多种,今天我们讲的是单链表。 顺序表存在的问题如下 1.中间/头部的插入删除,时间复杂度为O(N) 2. 增容需要申请新空间,拷贝数据,释…

CPU 架构(x86/ARM)简介

CPU 架构通过指令集的方式一般可分为 复杂指令集(CISC) 和 精简指令集(RISC) 两类,CISC 主要是 x86 架构,RISC 主要是 ARM 架构,还有 MIPS、RISC-V、PowerPC 等架构。 本文重点介绍 x86 和 ARM…

idea中maven的几个操作按钮:clean、validate、compile...

idea中Maven生命周期指令 clean命令 清除由项目编译创建的target validate命令 验证项目是否正确,并且所有必要的信息均可用 compile命令 编译项目的源代码 test命令 使用合适的单元测试框架来测试编译的源代码。 这些测试不应要求将代码打包或部署 verify命令 …

智安网络|一文看懂内核平台和系统服务的联系

内核平台和系统服务是操作系统中两个非常重要的组成部分。内核平台是系统底层的核心,负责管理和控制计算机硬件和资源的访问。而系统服务则是在内核之上运行的程序集合,为操作系统提供各种功能和服务。 内核平台和系统服务的关联非常密切。系统服务必须…

Emqx的简单使用

Emqx 是一个mqtt 的服务器产品。之前activemq可以作为mqtt协议的服务器,但是功能相对来说比较单一。Emqx作为跟Mqtt协议相关的新一代产品,功能实际上更为强大。 它的功能也主要体现在可视化/认证/规则/httpApi 上面。 1.Emqx 的安装 这里采用了docker…

JMeter 计算上一个接口取值到本次接口进行四则运算赋值

项目场景: 公司项目需要接口关联计算进行赋值: 项目场景:A接口提取的返回值,在传到B接口使用时,需要先进行四则运算后,再赋值使用。 A接口提取的值 B接口需要使用计算后的值 问题描述 使用beanshell预…

必须掌握的ArrayList,LinkedList,HashMap,HashTable,Collection,Colections

人的自由并不在于可以做他想做的事,而在于可以不做他不想做的事。 ArrayList和linkedList的区别 Array数组是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的 Array获取数据的时间复杂度是o(1)&#xff…

南卡OE系列再添新成员,造型犀利有型,性能强劲动听!

科技的快速发展让消费者对智能互联、操作体验、设计审美、安全健康等需求越发高涨,蓝牙耳机也正在由功能性向舒适性方向发展。如何提高蓝牙耳机的舒适度、拥有更舒适的听歌体验,成为蓝牙耳机品牌和消费者共同努力的方向。 Nank南卡:更专业的骨…

【Linux】单机版QQ之管道中的命名管道

还记得上一篇的匿名管道吗? 文章目录 前言一、命名管道总结 前言 命名管道是什么呢? 管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信。 如果我们想在不相关的进程之间交换数据,可以使用FIFO文…

一百零七、MySQL数据库的数据备份与数据恢复

MySQL数据库的数据备份与恢复主要有3种方法,前两种都是MySQL dump命令,第三种则是用Navicat工具直接备份。相比而言,第三种方法更加简单! 1 方法一(MySQL dump命令) 1.1 登录MySQL [roothurys22 ~]# mysq…

Maya云渲染如何使用,Maya云渲染流程实操!

Maya 是一款专业的 3D 软件,用于创建逼真的角色和大片的效果,Maya可以加速工作流程,帮助您专注于创造力并按时完成任务。也可以为角色和场景添加精美的细节,并提供让客户满意的优质作品。更有无数业内顶级艺术家依靠 Maya来创作更…

【Halcon】新建程序 读取图片 路径设置

文章目录 1 新建程序2 读取一张图片3 图片路径4 图片格式读取报错5 快速添加 绝对路径 1 新建程序 点击新程序图标,即可新建; 程序另存为,会弹出保存路径 2 读取一张图片 read_image(Image,fabrik)此时工程路径下并没有图片; …

SpringBoot2 集成 ELK 实现日志收集

目录 一 简介 二 ELK 各组件作用 三 ELK 各组件安装 四 Spring Boot2 集成 logstash 一 简介 ELK 即 Elasticsearch、Logstash、Kibana 组合起来可以搭建线上日志系统,本文主要讲解使用ELK 来收集 SpringBoot2 应用产生的日志。 二 ELK 各组件作用 Elasticsea…

基于FPGA和Matlab实现的FFT功能验证

一 、FFT设计验证思路 1、基于Matlab与FPGA的混频sin信号的FFT验证,分别在Matlab和FPGA开发环境上实现相同的FFT功能设计。 2、Matlab平台开发,使用自带的fft函数与相关操作函数,绘制出混频sin信号,经过fft功能处理后的频谱图。 3…

2022 ios APP最新开发测试教程

转载:2022 ios APP最新开发测试教程1.本文详细介绍最新的在windows上进行ios app开发编译打包安装到手机测试的完整流程。介绍ios开发经常遇到的问题和解决方法,包括ios开发证书,ios开发描述文件等。http://kxdang.com/topic/appuploader/ios…

IP报文结构

文章目录 IP报文结构分片 IP报文结构 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4. 4位头部长度(header length): 类似于TCP4位首部长度,通常填的是0101(十进制5) 16位总长度(total length): IP数据报整体占多少个字节.这用…

大数据企业应用合作解决方案案例

打造产教融合的就业育人的综合服务平台,给予十余年的数据智能产业实践经验,专注于大数据和人工智能方向。 目前合作的企业案例包括:信访大数据平台解决方案、工业废水处理解决方案、找齐远程监控解决方案、道路运输安全、广电用户服务大数据解…

VS2019 c++ cmake项目 打包并使用 (lib\dlll)

背景 最近项目中经常调用第三方库、带头文件、lib和dll的库,需要使用cmake进行项目管理,之前一直比较糊涂这方面,在这里做一个整理总结 编译汇编过程 静态链接方式: 把lib里面编译好的东西(函数、变量等&#xff09…

【Yolo】YoloV5训练自定义模型

【Yolo】Jetson Orin Nano下部署 YoloV5 上一篇博文主要记录了在Jetson Orin Nano下部署YoloV5环境,并运行了yoloV5n.pt模型,本篇在上一篇的基础上,进一步记录如何训练自己的目标模型,我们以一根口香糖盒子为训练对象进行说明。 …

Kali Linux 操作系统安装详细步骤——基于 VMware 虚拟机

1. Kali 操作系统简介 Kali Linux 是一个基于 Debian 的 Linux 发行版,旨在进行高级渗透测试和安全审计。Kali Linux 包含数百种工具,适用于各种信息安全任务,如渗透测试,安全研究,计算机取证和逆向工程。Kali Linux 由…