美文网首页
Python使用在线接口SDK模块(baidu-aip)实现人脸

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

作者: 颜狗一只 | 来源:发表于2022-09-13 19:11 被阅读0次

    前言

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

    又到了学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
    

    代码流程

    导入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也是对博主的鼓舞吖 💞 感谢 💐

    相关文章

      网友评论

          本文标题:Python使用在线接口SDK模块(baidu-aip)实现人脸

          本文链接:https://www.haomeiwen.com/subject/ljshortx.html