在Widora-OpenWRT上试用百度人脸识别API
2017-08-17 19:39
411 查看
在Widora-OpenWRT平台上试用了一下百度人脸识别API,感觉还可以,人脸识别的准确率还是挺高的。进行人脸识别之前,你必须先注册人员的图片,人脸识别其实是和你先注册的人脸图片进行比对,并给出一个相似度分值,分值达到80就基本可以判定是同一人了。
先注册了3张图片:(用命令 ./face.py -add Linus_Torvalds linus.jpg )
然后分别对另外的三张图片进行识别,结果如下:
下面直接给出python源码
#-------------------------------face.py------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, urllib, urllib2, json
#------ following SSL set may not be neccessary, depending on your python version
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
data = {}
#------ your BAIDU API access_toke -----------
str_token='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
def request_baidu(url,data):
print '//------ start urlencode data ...'
decoded_data = urllib.urlencode(data)
print '//------ start request() ...'
req = urllib2.Request(url, decoded_data)
req.add_header("Content-Type","application/x-www-form-urlencoded")
print '//------ start urlopen() ...It may take a while....'
resp = urllib2.urlopen(req)
content = resp.read()
return content
#--------- detect faces -------
# Example: ./face.py -det julia.jpg
if sys.argv[1]=='-det':
url ='https://aip.baidubce.com/rest/2.0/face/v1/detect?access_token='+ str_token
data['max_face_num'] = 5
data['face_fields'] = "age,beauty,expression,faceshape,gender";
print '//------ start read image data ...'
image_data = open(sys.argv[2],'rb').read()
data['image'] = image_data.encode('base64').replace('\n','')
content=request_baidu(url,data)
json_content=json.loads(content)
num = int(json_content['result_num'])
for i in range(0,num):
print 'Person %d --- age:%s, bueaty:%s, gender:%s' % \
(i,json_content['result'][i]['age'],json_content['result'][i]['beauty'],json_content['result'][i]['gender'])
print 'Location %s' % json_content['result'][i]['location']
#--------- add and register a faces -------
# default: old face data will be replaced.
# Example: ./face.py -add Linus_Torvalds linus.jpg
elif sys.argv[1]=='-add':
url ='https://aip.baidubce.com/rest/2.0/face/v2/faceset/user/add?access_token=' + str_token
#data['uid'] = "Linus_Torvalds"
data['uid'] = sys.argv[2]
data['user_info'] = "father of Linux"
data['group_id'] = "linux_group"
data['action_type'] = "replace"
print '//------ start read image data ...'
image_data = open(sys.argv[3],'rb').read()
data['image'] = image_data.encode('base64').replace('\n','')
content=request_baidu(url,data)
print content
#--------- get info of a registed user -------
# Example: ./face.py -get Linus_Torvalds
elif sys.argv[1]=='-get':
url ='https://aip.baidubce.com/rest/2.0/face/v2/faceset/user/get?access_token=' + str_token
#data['uid'] = "Linus_Torvalds"
data['uid'] = sys.argv[2]
content=request_baidu(url,data)
print content
#------- list all registed users in a specified group -----
# Example: ./face.py -get_users linux_group
elif sys.argv[1]=='-get_users':
url ='https://aip.baidubce.com/rest/2.0/face/v2/faceset/group/getusers?access_token=' + str_token
data['group_id'] = sys.argv[2]
content=request_baidu(url,data)
json_content=json.loads(content)
num = int(json_content['result_num'])
for i in range(0,num):
print '%d: %s --- %s'% (i,json_content['result'][i]['uid'],json_content['result'][i]['user_info'])
#--------- identify a face -------
# Example: ./face.py -id ruhau.jpg
elif sys.argv[1]=='-id':
url ='https://aip.baidubce.com/rest/2.0/face/v2/identify?access_token=' + str_token
data['group_id'] = "linux_group"
data['user_top_num'] = 2
print '//------ start read image data ...'
image_data = open(sys.argv[2],'rb').read()
data['image'] = image_data.encode('base64').replace('\n','')
content=request_baidu(url,data)
json_content=json.loads(content)
num = int(json_content['result_num'])
for i in range(0,num):
print '%d: %s scores: %d group: %s'% \
(i,json_content['result'][i]['uid'],json_content['result'][i]['scores'][0],json_content['result'][i]['group_id'])
else:
print 'command syntax error! check your option'
先注册了3张图片:(用命令 ./face.py -add Linus_Torvalds linus.jpg )
然后分别对另外的三张图片进行识别,结果如下:
下面直接给出python源码
#-------------------------------face.py------------------------------------------
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, urllib, urllib2, json
#------ following SSL set may not be neccessary, depending on your python version
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
data = {}
#------ your BAIDU API access_toke -----------
str_token='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
def request_baidu(url,data):
print '//------ start urlencode data ...'
decoded_data = urllib.urlencode(data)
print '//------ start request() ...'
req = urllib2.Request(url, decoded_data)
req.add_header("Content-Type","application/x-www-form-urlencoded")
print '//------ start urlopen() ...It may take a while....'
resp = urllib2.urlopen(req)
content = resp.read()
return content
#--------- detect faces -------
# Example: ./face.py -det julia.jpg
if sys.argv[1]=='-det':
url ='https://aip.baidubce.com/rest/2.0/face/v1/detect?access_token='+ str_token
data['max_face_num'] = 5
data['face_fields'] = "age,beauty,expression,faceshape,gender";
print '//------ start read image data ...'
image_data = open(sys.argv[2],'rb').read()
data['image'] = image_data.encode('base64').replace('\n','')
content=request_baidu(url,data)
json_content=json.loads(content)
num = int(json_content['result_num'])
for i in range(0,num):
print 'Person %d --- age:%s, bueaty:%s, gender:%s' % \
(i,json_content['result'][i]['age'],json_content['result'][i]['beauty'],json_content['result'][i]['gender'])
print 'Location %s' % json_content['result'][i]['location']
#--------- add and register a faces -------
# default: old face data will be replaced.
# Example: ./face.py -add Linus_Torvalds linus.jpg
elif sys.argv[1]=='-add':
url ='https://aip.baidubce.com/rest/2.0/face/v2/faceset/user/add?access_token=' + str_token
#data['uid'] = "Linus_Torvalds"
data['uid'] = sys.argv[2]
data['user_info'] = "father of Linux"
data['group_id'] = "linux_group"
data['action_type'] = "replace"
print '//------ start read image data ...'
image_data = open(sys.argv[3],'rb').read()
data['image'] = image_data.encode('base64').replace('\n','')
content=request_baidu(url,data)
print content
#--------- get info of a registed user -------
# Example: ./face.py -get Linus_Torvalds
elif sys.argv[1]=='-get':
url ='https://aip.baidubce.com/rest/2.0/face/v2/faceset/user/get?access_token=' + str_token
#data['uid'] = "Linus_Torvalds"
data['uid'] = sys.argv[2]
content=request_baidu(url,data)
print content
#------- list all registed users in a specified group -----
# Example: ./face.py -get_users linux_group
elif sys.argv[1]=='-get_users':
url ='https://aip.baidubce.com/rest/2.0/face/v2/faceset/group/getusers?access_token=' + str_token
data['group_id'] = sys.argv[2]
content=request_baidu(url,data)
json_content=json.loads(content)
num = int(json_content['result_num'])
for i in range(0,num):
print '%d: %s --- %s'% (i,json_content['result'][i]['uid'],json_content['result'][i]['user_info'])
#--------- identify a face -------
# Example: ./face.py -id ruhau.jpg
elif sys.argv[1]=='-id':
url ='https://aip.baidubce.com/rest/2.0/face/v2/identify?access_token=' + str_token
data['group_id'] = "linux_group"
data['user_top_num'] = 2
print '//------ start read image data ...'
image_data = open(sys.argv[2],'rb').read()
data['image'] = image_data.encode('base64').replace('\n','')
content=request_baidu(url,data)
json_content=json.loads(content)
num = int(json_content['result_num'])
for i in range(0,num):
print '%d: %s scores: %d group: %s'% \
(i,json_content['result'][i]['uid'],json_content['result'][i]['scores'][0],json_content['result'][i]['group_id'])
else:
print 'command syntax error! check your option'
相关文章推荐
- python3.6+百度人脸识别API进行照片人脸对比
- Java实现调用百度AI开放云平台(人脸识别API)
- 百度人脸识别api实现及demo
- 百度人脸识别API 的使用
- 日常API之C#百度人脸识别
- Python使用百度api做人脸对比
- 用Azure上Cognitive Service的Face API识别人脸
- 人脸检测和识别及python实现系列(2)-- 相关API介绍与数据采集
- [置顶] 百度人脸识别AddUser优化版,较上一篇,改了一些
- 人脸识别- 接入face++api
- 40多个关于人脸检测/识别的API、库和软件
- PHP调用百度AI接口人脸识别-语音技术-文本识别-图像识别
- 学习Opencv, 人脸识别, 图片来自百度
- 49 款人脸检测/识别的API、库和软件
- 免费人脸识别APi
- 1-004.百度云中的百度人脸识别用java开发人脸识别Demo
- 从人脸识别到机器翻译:52个有用的机器学习和预测API
- 调用腾讯优图开放平台进行人脸识别-Java调用API实现
- 【Raspberry Pi 3试用体验】+Opencv+python的人脸识别
- 使用Python结合Face++ API识别人脸