• 【又来摸鱼】如何用Python + baidu-aip 实现人脸识别?


    嗨害大家好鸭!我是小熊猫❤

    我又来摸鱼啦哈哈哈~ ~ ~

    最近发现有一些可爱的小玩意儿很有意思der~

    所以今天来摸鱼实现一下人脸识别💖
    请添加图片描述
    先问大家一个问题嗷
    什么是百度Aip模块?

    百度AI平台提供了很多的API接口

    供开发者快速的调用运用在项目中

    本文写的是使用百度AI的在线接口SDK模块

    (baidu-aip)进行实现人脸识别

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


    请添加图片描述


    有什么python相关报错解答自己不会的、或者源码资料/模块安装/女装大佬精通技巧 都可以来这里:(https://jq.qq.com/?_wv=1027&k=2Q3YTfym)或者+V:python10010问我

    准备工作❤

    本机环境

    系统:win11
    Python版本:3.9.7
    编辑器:VS2022

    安装baidu-aip模块

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

    请添加图片描述
    执行安装百度AI模块

    pip install baidu-aip
    
    • 1

    请添加图片描述
    登录百度AI平台创建应用

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

    请添加图片描述
    按自己要求创建应用
    请添加图片描述
    最后得到应用的AppID API Key Secret Key

    请添加图片描述
    记下值 等等会用到

    AppID:10000000
    API Key:xxxxxxxxxxxxxxxxxxxxxxxx
    Secret Key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
    • 1
    • 2
    • 3

    请添加图片描述


    代码流程

    导入baidu-aip模块

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

    输入

    from aip import AipFace
    
    • 1

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

    APP_ID = '10000000'
    API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxx'
    SECRET_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    
    • 1
    • 2
    • 3

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

    client = AipFace(APP_ID, API_KEY, SECRET_KEY)
    
    • 1

    创建人脸检测函数

    def face_detect(image):
        result = client.detect(image, image_type='BASE64')
        print(result)
        return result
    
    • 1
    • 2
    • 3
    • 4

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

    将图片转为BASE64格式

    导入base64包

    import base64
    
    • 1

    将图片打开为 BASE64格式

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

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

    打开图片进行检测

    先准备一张图片pic1.jpg
    请添加图片描述
    调用函数

    face_detect(imageToBase64("pic1.jpg"))
    
    • 1

    提示调用成功:
    请添加图片描述

    遇到的问题

    运行时候提示:

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

    请添加图片描述
    win + R 输入 regedit打开注册表,找到

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

    请添加图片描述
    把ProxyEnable的值改为0
    请添加图片描述
    再运行即可

    延伸出使用其他功能

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

    def face_match(image1, image2):
        result = client.match([
        {
            'image': image1,
            'image_type': 'BASE64',
        },
        {
            'image': image2,
            'image_type': 'BASE64',
        }
       ])
        print(result)
        return result
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    人脸搜索

    def face_search(image,group_id_list):
        result = client.search(image, image_type='BASE64',group_id_list=group_id_list)
        print(result)
    
    • 1
    • 2
    • 3

    APP_ID API_KEY SECRET_KEY 需要修改为自己的

    今天的分享就到这里结束了,完整代码点击下方V-x名片获取(嘿嘿是我姐姐~)。


    今天的摸鱼就到这里啦~

    都看到这里了,不点个赞再走吗?

    我是小熊猫,咱下篇文章再见啦(✿◡‿◡)

    请添加图片描述

  • 相关阅读:
    【网络】总览(待更新)
    业务:财务会计业务知识
    力扣:718. 最长重复子数组
    【附源码】Python计算机毕业设计图书销售系统设计
    探索Web3前沿:革新性算力共享平台,重塑数字资源利用新时代
    mongodb、mysql、redis 区别
    基于“小数据”的机器学习
    这是硬核技术创新!解读华为云柔性计算
    面向对象三大特征之一:继承
    利用python来打印九九乘法表
  • 原文地址:https://blog.csdn.net/m0_67575344/article/details/126544705