텐센트 AI 플랫폼을 이용한 안면 인식
import hashlib
import urllib
from urllib import parse
import urllib.request
import base64
import json
import time
url_preffix='https://api.ai.qq.com/fcgi-bin/'
def setParams(array, key, value): #
array[key] = value
def genSignString(parser):
'''
ai
md5 ,
'''
uri_str = ''
for key in sorted(parser.keys()):
if key == 'app_key':
continue
uri_str += "%s=%s&" % (key, parse.quote(str(parser[key]), safe=''))
sign_str = uri_str + 'app_key=' + parser['app_key']
hash_md5 = hashlib.md5(sign_str.encode('utf-8'))
return hash_md5.hexdigest().upper()
class AiPlat(object):
def __init__(self,app_id = ' ID',app_key = ' KEY'):
self.app_id = app_id
self.app_key = app_key
self.data = {}
self.url_data = ''
def invoke(self, params):
self.url_data = urllib.parse.urlencode(params).encode("utf-8") # url
req = urllib.request.Request(self.url, self.url_data) # ai
try:
rsp = urllib.request.urlopen(req) # ai, rsp
str_rsp = rsp.read() # rsp , str_rsp
dict_rsp = json.loads(str_rsp) # json ,
return dict_rsp
except Exception as e:
print(e)
return {'ret': -1}
def face_detectface(self, image, mode):
self.url = url_preffix + 'face/face_detectface'
setParams(self.data, 'app_id', self.app_id) # self.data app_id
setParams(self.data, 'app_key', self.app_key) # self.data app_key
setParams(self.data, 'mode', mode) # self.data mode
setParams(self.data, 'time_stamp', int(time.time())) # self.data time_stamp
setParams(self.data, 'nonce_str', int(time.time())) # self.data nonce_str
image_data = base64.b64encode(image) #
setParams(self.data, 'image', image_data.decode("utf-8")) # utf-8 , image
sign_str = genSignString(self.data) # self.data hash(MD5)
setParams(self.data, 'sign', sign_str) # hash , sign
return self.invoke(self.data) # self.invoke self.data,
ai_obj = AiPlat() # AI
with open('1.jpg', 'rb') as bin_data: #
image_data = bin_data.read() # image_data
rsp = ai_obj.face_detectface(image_data, 0) # AI,rsp AI ,
print(rsp)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.