百度AI结合笔记本人脸识别(PYTHON)

本文介绍了一种利用百度AI平台实现的人脸识别系统,该系统通过笔记本摄像头捕获图像,并上传至百度AI进行人脸识别。文章分享了从使用TensorFlow遇到的问题转向调用百度API的成功经验,详细描述了代码实现过程,包括使用OpenCV进行图像捕获和预处理,以及如何调用百度API进行人脸识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前用Tensorflow做30个人的人脸识别,训练时间贼长就算了,那个准确度还不堪入目。于是我想到了调用API来做人脸识别。找到了这位大佬的博客
https://blog.youkuaiyun.com/weixin_38241876/article/details/84842017
先谢谢这位大佬,百度AI注册和创建用户他都写得很详细大家可以参考一下
他是树莓派结合百度AI做的人脸识别,然后我在他的代码上做了修改,实现了笔记本摄像头结合百度AI人脸识别。代码如下:

# coding=UTF-8
from aip import AipFace
import urllib.request
import base64
import time
import cv2

APP_ID = '你的人脸识别的ID'
API_KEY='你的人脸识别的API_KEY'
SECRET_KEY=‘你的人脸识别的SK’

client = AipFace(APP_ID, API_KEY, SECRET_KEY)
IMAGE_TYPE='BASE64'
cap = cv2.videoCapture(0)
i=0

GROUP = '你的用户组'

#对图片的格式进行转换
def transimage():
    f = open('C:/Users/Idiom/Desktop/'+str(i)+'.jpg','rb')	#路径可以自己改
    img = base64.b64encode(f.read())
    return img

#上传到百度API进行人脸检测
def go_api(image):
    result = client.search(str(image, 'utf-8'), IMAGE_TYPE, GROUP);
    if result['error_msg'] == 'SUCCESS':
        name = result['result']['user_list'][0]['user_id']
        score = result['result']['user_list'][0]['score']
        if score > 80:
            if name == '01_ChengYu':
                print("欢迎%s !" % name)
                time.sleep(3)
        else:
            print("对不起,我不认识你!")
            name = 'Unknow'
            return 0
        curren_time = time.asctime(time.localtime(time.time()))

        f = open('Log.txt','w')
        f.write("Person:" + name + "    "+ "Time:" + str(curren_time)+'\n')
        f.close()
        return 1

    if result['error_msg'] == 'pic not has face':
        print("检测不到人脸")
        time.sleep(2)
        return 0
    else:       
        print(result['error_code']+'' + result['error_code'])     
        return 0
                               
        
if __name__ == '__main__':        
    while True:
        ret ,frame = cap.read()
        cv2.imshow("frame",frame)
        k = cv2.waitKey(1)
        if k == ord('s'):
            cv2.imwrite('C:/Users/Idiom/Desktop/'+str(i)+'.jpg',frame) #路径可以自己改
            img = transimage()
            res = go_api(img)
            if (res == 1):
                print("开门")
            else:
                print("关门")
            print("稍等三秒进入下一个")
            i+=1
            time.sleep(3)
            
            
            

主要就是使用OPENCV进行拍照,然后将图片上传到百度AI进行识别,后续发展将会向实时识别方向进发,如果有大佬已经做到实时识别可以评论教教我,我也是初学者。
然后博客的代码是手打的(有人知道怎么复制吗),如果有一些错误可以在下方评论,我可以发py文件给你。谢谢大家!!!

识别结果大概是这样 {'result': {'face_num': 1, 'face_list': [{'quality': {'occlusion': {'right_eye': 0, 'left_cheek': 0.1459853947, 'right_cheek': 0.05144193396, 'left_eye': 0.465408802, 'mouth': 0.02919708006, 'chin_contour': 0.01420217194, 'nose': 0}, 'illumination': 116, 'blur': 7.266304692e-06, 'completeness': 1}, 'age': 22, 'face_token': 'dc6f8f9df5d977ea476e2d04acdf5063', 'race': {'type': 'white', 'probability': 0.6173604727}, 'glasses': {'type': 'common', 'probability': 0.9834988713}, 'gender': {'type': 'male', 'probability': 0.655915916}, 'face_probability': 0.9185044169, 'beauty': 51.21487427, 'angle': {'roll': -2.750922441, 'yaw': 28.97134399, 'pitch': 5.202290535}, 'location': {'height': 65, 'top': 112.0704803, 'width': 76, 'left': 76.20765686, 'rotation': -4}, 'face_type': {'type': 'human', 'probability': 0.9992217422}, 'face_shape': {'type': 'oval', 'probability': 0.4419156313}, 'expression': {'type': 'none', 'probability': 0.9999142885}}]}, 'error_msg': 'SUCCESS', 'timestamp': 1537413754, 'cached': 0, 'error_code': 0, 'log_id': 9465840013520} 年龄:22 颜值:51.21487427 表情-type(none:不笑;smile:微笑;laugh:大笑):none 表情-probability(表情置信度,范围【0~1】,0最小、1最大):0.9999142885 脸型-type(square: 正方形 triangle:三角形 oval: 椭圆 heart: 心形 round: 圆形):oval 脸型-probability(置信度,范围【0~1】,代表这是人脸形状判断正确的概率,0最小、1最大):0.4419156313 性别-type(male:男性 female:女性):male 性别-probability(性别置信度,范围【0~1】,0代表概率最小、1代表最大。):0.655915916 是否带眼镜-type(none:无眼镜,common:普通眼镜,sun:墨镜):common 是否带眼镜-probability(眼镜置信度,范围【0~1】,0代表概率最小、1代表最大。):0.9834988713 人种-type(yellow: 黄种人 white: 白种人 black:黑种人 arabs: 阿拉伯人):white 人种-probability(人种置信度,范围【0~1】,0代表概率最小、1代表最大。):0.6173604727 真实人脸/卡通人脸 -type(human: 真实人脸 cartoon: 卡通人脸):human 真实人脸/卡通人脸 -probability(人脸类型判断正确的置信度,范围【0~1】,0代表概率最小、1代表最大。):0.9992217422
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值