阿里云平台的人脸识别接口测试
需要導(dǎo)入的包:
必備模塊:import urllib
請(qǐng)求模塊:import urllib.request?
解析模塊:import urllib.parse??可以拆分URL,也可以拼接URL
數(shù)據(jù)交換格式:import json
需要輸入的參數(shù)是:
URL地址
method方式:POST
API_KEY:自己申請(qǐng)的號(hào)
body:字典,有type;POST的參數(shù):image_1:image的路徑+圖片
headers:請(qǐng)求頭部??{'content-type': 'application/json'}或者('Authorization', 'APPCODE ' + appcode)
涉及到的封裝好的方法:
data1 =?json.dumps(bodys):將輸入的body字典轉(zhuǎn)化成json格式(Python 對(duì)象編碼成 JSON 字符串)
data2 = data1.encode('utf-8'):將utf-8的編碼格式通過(guò)encode編碼成python對(duì)象是別的Unicode的格式
req1= urllib.request.Request(url, data) :使用request包里面的Request的方法,對(duì)該網(wǎng)址發(fā)出POST請(qǐng)求,還要附加data2
request.add_header('Authorization', 'APPCODE ' + appcode)和參數(shù)('Content-Type', 'application/json; charset=UTF-8')? 請(qǐng)求頭
response = urllib.request.urlopen(req1):將上述請(qǐng)求得到的結(jié)果,通過(guò)request里面的urlopen的方法,返回一個(gè)類(lèi)文件對(duì)象
content = response.read():對(duì)上述獲得的類(lèi)文件對(duì)象讀取內(nèi)容
然后就可以打印出讀取到的content,看看服務(wù)器給你響應(yīng)了寫(xiě)啥玩意
| json.loads | 將已編碼的 JSON 字符串解碼為 Python 對(duì)象 |
代碼
前面一個(gè)是,輸入兩張圖片,輸出兩張圖片的相似度
后面是,依次遍歷lfw人臉識(shí)別的數(shù)據(jù)集,每次輸入兩張圖片,對(duì)應(yīng)輸出一個(gè)結(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的一種實(shí)現(xiàn)方式,unicode、gbk、gb2312是編碼字符集.
Python 默認(rèn)腳本文件都是 ANSCII 編碼的,當(dāng)文件 中有非 ANSCII 編碼范圍內(nèi)的字符的時(shí)候就要使用"編碼指示"來(lái)修正一個(gè) module 的定義中,如果.py文件中包含中文字符(嚴(yán)格的說(shuō)是含有非anscii字符),則需要在第一行或第二行指定編碼聲明:# -*- coding=utf-8 -*- 或者 #coding=utf-8
其他的編碼如:gbk、gb2312也可以;否則會(huì)出現(xiàn):
python 編碼轉(zhuǎn)換函數(shù)
unicode 轉(zhuǎn)為 gb2312,utf-8等,使用 encode(encoding)
s = u'中國(guó)' s_gb = s.encode('gb2312')utf-8,GBK轉(zhuǎn)換為 unicode 使用 unicode(s,encoding) 或者 s.decode(encoding)
s = u'中國(guó)' #s為unicode先轉(zhuǎn)為utf-8 s_utf8 = s.encode('UTF-8') assert(s_utf8.decode('utf-8') == s)?
總結(jié)
以上是生活随笔為你收集整理的阿里云平台的人脸识别接口测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【转】直流无刷电机工作及控制原理
- 下一篇: 安居客房源信息爬取