您的位置:首页 > 其它

百度人脸实时识别软件

2018-02-08 19:59 204 查看
[align=center]百度人脸信息实时识别软件
[/align]你会用到这个程序https://gitee.com/wangkingking/BaiDuRenLianXinXiShiShiShiBieRuanJian/tree/master

百度人脸注册软件http://blog.csdn.net/lingdongtianxia/article/details/79283549


 文件结构:
|——README.md
|——face.py  #人脸实时识别主程序,人脸识别用的opencv预处理,检测到人脸后再用百度接口提取人脸信息,详询百度官方文档
|——LoginInfo.txt  #登录信息
|——haarcascade_frontalface_alt2.xml  #opencv人脸识别模型
|——haarcascades.zip  #多种识别模型
|——face
|  |——example.jpg  #算是缓存吧,opencv和百度人脸识别信息交换媒介,很多用到的人脸测试图片我也放这个文件夹里面
|——百度人脸识别demo.zip  #人脸识别和人脸信息提取均用的是百度云接口,没有GUI,这个例子注重介绍百度人脸识别的用法,文
|  |——face             #档结构和上面一样,不再赘述
|  |  |——example.jpg
|  |——face.py
|  |——LoginInfo.txt
LoginInfo.txt详细介绍:
from aip import AipFace
""" 你的 APPID AK SK """
APP_ID = '你的 App ID'
API_KEY = '你的 Api Key'
SECRET_KEY = '你的 Secret Key'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)
如上代码片所示,注册新用户时获得一个接口需要三个参数,这三个参数以JSON格式写在LoginInfo.txt中
"""在LoginInfo.txt中写入自己的三个登录信息"""
{"appid":"94****2", "apikey":"Dal1gu0F8*******kaClU4EW", "secretkey":"VNHzN*******yn0Qxjs"}
 face.py详细介绍:
import cv2
from aip import AipFace
import json
""" 读取图片 """
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
"""识别人脸并提供信息"""
def dect_face(file):
"""参数:图片的绝对路径"""
image = get_file_content(file)
with open('LoginInfo.txt', 'r') as fp:  #打开LoginInfo.txt
info = json.loads(fp.read())  #登录信息转换成JSON数据
client = AipFace(info['appid'], info['apikey'], info['secretkey'])  #根据登录信息创建百度云实例
groupId = "group1"
identify_options = {}
identify_face_data = client.identifyUser(groupId, image, identify_options)['result'][0]
return identify_face_data
cascPath="./haarcascade_frontalface_alt2.xml"  #级联分类器模型
faceCascade = cv2.CascadeClassifier(cascPath)  #创建级联分类器
video_capture = cv2.VideoCapture(0)  #捕获摄像头图像流,可修改参数
while True:
ret, frame = video_capture.read()  #获得摄像图图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  #将获得的图像变成灰度图
faces = faceCascade.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=3,\
minSize=(30, 30))  #识别人脸->(x, y, w, h)
for (x, y, w, h) in faces:  #在frame中画出人脸轮廓并注明信息
cv2.imwrite('face/example.jpg', frame)
cv2.rectangle(frame, (x, y-20), (x+w, y+h+20), (0, 255, 0), 2)
try:
data = dect_face('face/example.jpg')
except:
pass
#在frame上写人脸信息
cv2.putText(frame,data['uid'],(x,y-65), cv2.FONT_HERSHEY_SIMPLEX, 1,(0,255,255),2)
cv2.putText(frame,data['user_info'],(x,y-30), cv2.FONT_HERSHEY_SIMPLEX, 1,(0,255,255),2)
break  #保证每次只处理一张人脸
# Display the resulting frame
cv2.imshow('Video', frame)  #显示图片,刷新很快就成了视频
if cv2.waitKey(1) & 0xFF == ord('q'):  #英文输入法按Q退出循环
break
video_capture.release()  # When everything is done, release the capture
cv2.destroyAllWindows()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息