阿里云平台的人脸识别接口测试
需要導(dǎo)入的包:
必備模塊:import urllib
請求模塊:import urllib.request?
解析模塊:import urllib.parse??可以拆分URL,也可以拼接URL
數(shù)據(jù)交換格式:import json
需要輸入的參數(shù)是:
URL地址
method方式:POST
API_KEY:自己申請的號
body:字典,有type;POST的參數(shù):image_1:image的路徑+圖片
headers:請求頭部??{'content-type': 'application/json'}或者('Authorization', 'APPCODE ' + appcode)
涉及到的封裝好的方法:
data1 =?json.dumps(bodys):將輸入的body字典轉(zhuǎn)化成json格式(Python 對象編碼成 JSON 字符串)
data2 = data1.encode('utf-8'):將utf-8的編碼格式通過encode編碼成python對象是別的Unicode的格式
req1= urllib.request.Request(url, data) :使用request包里面的Request的方法,對該網(wǎng)址發(fā)出POST請求,還要附加data2
request.add_header('Authorization', 'APPCODE ' + appcode)和參數(shù)('Content-Type', 'application/json; charset=UTF-8')? 請求頭
response = urllib.request.urlopen(req1):將上述請求得到的結(jié)果,通過request里面的urlopen的方法,返回一個類文件對象
content = response.read():對上述獲得的類文件對象讀取內(nèi)容
然后就可以打印出讀取到的content,看看服務(wù)器給你響應(yīng)了寫啥玩意
| json.loads | 將已編碼的 JSON 字符串解碼為 Python 對象 |
代碼
前面一個是,輸入兩張圖片,輸出兩張圖片的相似度
后面是,依次遍歷lfw人臉識別的數(shù)據(jù)集,每次輸入兩張圖片,對應(yīng)輸出一個結(jié)果
import urllib import urllib.request import urllib.parse import jsonhost = 'http://rlsbbd.market.alicloudapi.com' path = '/face/verify' method = 'POST' appcode = '5axxxxxx39e7xxxxxxxx1fb7' querys = '' bodys = {} url = host + pathbodys = {"type": 0,"image_url_1": "http://vis-www.cs.umass.edu/lfw/images/David_Beckham/David_Beckham_0011.jpg","image_url_2": 'http://vis-www.cs.umass.edu/lfw/images/David_Beckham/David_Beckham_0029.jpg'} post_data = json.dumps(bodys) post_data = post_data.encode('utf-8') request = urllib.request.Request(url, post_data) request.add_header('Authorization', 'APPCODE ' + appcode) request.add_header('Content-Type', 'application/json; charset=UTF-8') response = urllib.request.urlopen(request) content = response.read() if (content):print(content) return content import urllib import urllib.request import urllib.parse import time import jsondef compare(image1,image2):host = 'http://rlsbbd.market.alicloudapi.com'path = '/face/verify'method = 'POST'appcode = '5axxxxxxx39exxxxxxxxxxa1fb7'querys = ''bodys = {}url = host + pathbodys = {"type":0,"image_url_1":image1,"image_url_2":image2}post_data = json.dumps(bodys)post_data = post_data.encode('utf-8')request = urllib.request.Request(url, post_data)request.add_header('Authorization', 'APPCODE ' + appcode)request.add_header('Content-Type', 'application/json; charset=UTF-8')response = urllib.request.urlopen(request)content = response.read()if (content):print(content)return contentdef compare_test():lfw_file = open("pairs.txt")res_file1 = open("f1.txt", "a+")res_file2 = open("f2.txt", "a+")count = 0while 1:image_path = "http://vis-www.cs.umass.edu/lfw/images/"line = lfw_file.readline()if not line:breakline = line.strip('\n')images = line.split('\t')if len(images) > 3:register_image = image_path + images[0] + "/" + images[0] + "_"if len(images[1]) < 2:register_image = register_image + "000" + images[1] + ".jpg"elif len(images[1]) < 3:register_image = register_image + "00" + images[1] + ".jpg"elif len(images[1]) < 4:register_image = register_image + "0" + images[1] + ".jpg"else:register_image = register_image + images[1] + ".jpg"verify_image = image_path + images[2] + "/" + images[2] + "_"if len(images[3]) < 2:verify_image = verify_image + "000" + images[3] + ".jpg"elif len(images[3]) < 3:verify_image = verify_image + "00" + images[3] + ".jpg"elif len(images[3]) < 4:verify_image = verify_image + "0" + images[3] + ".jpg"else:verify_image = verify_image + images[3] + ".jpg"else:register_image = image_path + images[0] + "/" + images[0] + "_"if len(images[1]) < 2:register_image = register_image + "000" + images[1] + ".jpg"elif len(images[1]) < 3:register_image = register_image + "00" + images[1] + ".jpg"elif len(images[1]) < 4:register_image = register_image + "0" + images[1] + ".jpg"else:register_image = register_image + images[1] + ".jpg"verify_image = image_path + images[0] + "/" + images[0] + "_"if len(images[2]) < 2:verify_image = verify_image + "000" + images[2] + ".jpg"elif len(images[2]) < 3:verify_image = verify_image + "00" + images[2] + ".jpg"elif len(images[2]) < 4:verify_image = verify_image + "0" + images[2] + ".jpg"else:verify_image = verify_image + images[2] + ".jpg"content = compare(register_image, verify_image)content = str(content)content = content.strip('b\'')content = json.loads(content)if (int(count / 300)) % 2 == 0:flag = 1else:flag = 0if 'confidence' in content.keys():score = content['confidence']else:score = '-1'if flag == 1:res_file1.write(line + '\t' + str(score) + '\t' + str(flag) + '\n')elif flag==0:res_file2.write(line + '\t' + str(score) + '\t' + str(flag) + '\n')count += 1time.sleep(3)lfw_file.close()res_file1.close()res_file2.close()compare_test()附加:
py文件中的編碼
utf-8是 unicode的一種實現(xiàn)方式,unicode、gbk、gb2312是編碼字符集.
Python 默認(rèn)腳本文件都是 ANSCII 編碼的,當(dāng)文件 中有非 ANSCII 編碼范圍內(nèi)的字符的時候就要使用"編碼指示"來修正一個 module 的定義中,如果.py文件中包含中文字符(嚴(yán)格的說是含有非anscii字符),則需要在第一行或第二行指定編碼聲明:# -*- coding=utf-8 -*- 或者 #coding=utf-8
其他的編碼如:gbk、gb2312也可以;否則會出現(xiàn):
python 編碼轉(zhuǎn)換函數(shù)
unicode 轉(zhuǎn)為 gb2312,utf-8等,使用 encode(encoding)
s = u'中國' s_gb = s.encode('gb2312')utf-8,GBK轉(zhuǎn)換為 unicode 使用 unicode(s,encoding) 或者 s.decode(encoding)
s = u'中國' #s為unicode先轉(zhuǎn)為utf-8 s_utf8 = s.encode('UTF-8') assert(s_utf8.decode('utf-8') == s)?
總結(jié)
以上是生活随笔為你收集整理的阿里云平台的人脸识别接口测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】直流无刷电机工作及控制原理
- 下一篇: 梳理百年深度学习发展史-七月在线机器学习