# api_azure **Repository Path**: lin_shiying/api_azure ## Basic Information - **Project Name**: api_azure - **Description**: No description available - **Primary Language**: Unknown - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-10-21 - **Last Updated**: 2021-01-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # api_azure ## azure人脸验证 #### Create 请求成功200 返回空字符串 IN ``` import requests # 1、create 列表 # faceListId faceListId = "wx_0001" #学生填写 create_facelists_url = "https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/{}" #学生填写 subscription_key = "f212f71663134b73bdec4a5a9aece2f0" #学生填写 assert subscription_key headers = { # Request headers 'Content-Type': 'application/json', 'Ocp-Apim-Subscription-Key': subscription_key, } data = { "name": "api_facelist", "userdata": "相册集", "recognitionModel": "recognition_03", # 学生填写 } r_create = requests.put(create_facelists_url.format(faceListId),headers=headers,json=data) #学生填写 ``` ``` r_create.content ``` OUT ``` b'' ``` IN ``` get_facelist_url = "https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/{}" r_get_facelist = requests.get(get_facelist_url.format(faceListId),headers=headers) ``` ``` r_get_facelist.json() ``` OUT ``` {'persistedFaces': [], 'faceListId': 'wx_0001', 'name': 'api_facelist', 'userData': '相册集'} ``` #### 添加face IN ``` #先加一张脸试试 # 2、Add face add_face_url = "https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/{}/persistedFaces" #学生填写 assert subscription_key headers = { # Request headers 'Content-Type': 'application/json', 'Ocp-Apim-Subscription-Key': subscription_key, } img_url = "http://huangjieqi.gitee.io/picture_storage/Autumnhui.jpg" #学生填写 params_add_face={ "faceListID":"wx_001", "userdata":"userdata", "url":"http://huangjieqi.gitee.io/picture_storage/Autumnhui.jpg", #学生填写 } r_add_face = requests.post(add_face_url,headers=headers,params=params_add_face,json={"url":img_url}) ``` ``` r_add_face.status_code ``` OUT ``` 200 ``` IN ``` r_add_face.json()#返回persistedFaceId ``` OUT ``` {'persistedFaceId': '9ff39ef7-ecb4-455b-8523-5398d0c8ec31'} ``` #### 封装成函数方便多次使用 IN ``` # 封装成函数方便添加图片 def AddFace(img_url=str,userData=str): add_face_url ="https://api-hjq.cognitiveservices.azure.com/face/v1.0/facelists/{}/persistedFaces" assert subscription_key headers = { # Request headers 'Content-Type': 'application/json', 'Ocp-Apim-Subscription-Key': subscription_key, } img_url = img_url params_add_face={ "userData":userData } r_add_face = requests.post(add_face_url.format(faceListId),headers=headers,params=params_add_face,json={"url":img_url}) return r_add_face.status_code#返回出状态码 ``` ``` AddFace("http://huangjieqi.gitee.io/picture_storage/Autumnhui.jpg","丘天惠") AddFace("http://huangjieqi.gitee.io/picture_storage/L-Tony-info.jpg","林嘉茵") AddFace("http://huangjieqi.gitee.io/picture_storage/TLINGP.jpg","汤玲萍") AddFace("http://huangjieqi.gitee.io/picture_storage/WenYanZeng.jpg","曾雯燕") AddFace("http://huangjieqi.gitee.io/picture_storage/XIEIC.jpg","谢依希") AddFace("http://huangjieqi.gitee.io/picture_storage/YuecongYang.png","杨悦聪") AddFace("http://huangjieqi.gitee.io/picture_storage/Zoezhouyu.jpg","周雨") AddFace("http://huangjieqi.gitee.io/picture_storage/crayon-heimi.jpg","刘瑜鹏") AddFace("http://huangjieqi.gitee.io/picture_storage/jiayichen.jpg","陈嘉仪") AddFace("http://huangjieqi.gitee.io/picture_storage/kg2000.jpg","徐旖芊") AddFace("http://huangjieqi.gitee.io/picture_storage/liuxinrujiayou.jpg","刘心如") AddFace("http://huangjieqi.gitee.io/picture_storage/liuyu19.png","刘宇") AddFace("http://huangjieqi.gitee.io/picture_storage/ltco.jpg","李婷") AddFace("http://huangjieqi.gitee.io/picture_storage/lucaszy.jpg","黄智毅") AddFace("http://huangjieqi.gitee.io/picture_storage/pingzi0211.jpg","黄慧文") AddFace("http://huangjieqi.gitee.io/picture_storage/shmimy-cn.jpg","张铭睿") AddFace("http://huangjieqi.gitee.io/picture_storage/yichenting.jpg","陈婷") AddFace("http://huangjieqi.gitee.io/picture_storage/coco022.jpg","洪可凡") AddFace("http://huangjieqi.gitee.io/picture_storage/lujizhi.png","卢继志") AddFace("http://huangjieqi.gitee.io/picture_storage/zzlhyy.jpg","张梓乐") ``` OUT ``` 200 ``` ### Find similars 返回相似置信度 IN ``` # 3、检测人脸的id # replace with the string from your endpoint URL face_api_url = 'https://api-hjq.cognitiveservices.azure.com/face/v1.0/detect' # 请求正文 image_url = 'http://huangjieqi.gitee.io/picture_storage/hjq.jpg' headers = {'Ocp-Apim-Subscription-Key': subscription_key} # 请求参数 params = { 'returnFaceId': 'true', 'returnFaceLandmarks': 'false', # 选择model 'recognitionModel':'recognition_03',#此参数需与facelist参数一致 'detectionModel':'detection_01', # 可选参数,请仔细阅读API文档 'returnFaceAttributes': 'age,gender,headPose,smile,facialHair,glasses,emotion,hair,makeup,occlusion,accessories,blur,exposure,noise', } response = requests.post(face_api_url, params=params, headers=headers, json={"url": image_url}) # json.dumps 将json--->字符串 response.json() ``` ``` [{'faceId': 'f3239442-c448-4eff-b0bc-1d3f82f1c100', 'faceRectangle': {'top': 264, 'left': 207, 'width': 277, 'height': 277}, 'faceAttributes': {'smile': 0.0, 'headPose': {'pitch': 1.7, 'roll': -19.8, 'yaw': -13.9}, 'gender': 'male', 'age': 21.0, 'facialHair': {'moustache': 0.1, 'beard': 0.1, 'sideburns': 0.1}, 'glasses': 'NoGlasses', 'emotion': {'anger': 0.0, 'contempt': 0.002, 'disgust': 0.0, 'fear': 0.0, 'happiness': 0.0, 'neutral': 0.969, 'sadness': 0.029, 'surprise': 0.0}, 'blur': {'blurLevel': 'medium', 'value': 0.44}, 'exposure': {'exposureLevel': 'goodExposure', 'value': 0.68}, 'noise': {'noiseLevel': 'medium', 'value': 0.39}, 'makeup': {'eyeMakeup': False, 'lipMakeup': False}, 'accessories': [], 'occlusion': {'foreheadOccluded': False, 'eyeOccluded': False, 'mouthOccluded': False}, 'hair': {'bald': 0.18, 'invisible': False, 'hairColor': [{'color': 'brown', 'confidence': 0.97}, {'color': 'black', 'confidence': 0.9}, {'color': 'red', 'confidence': 0.38}, {'color': 'other', 'confidence': 0.23}, {'color': 'blond', 'confidence': 0.15}, {'color': 'gray', 'confidence': 0.09}, {'color': 'white', 'confidence': 0.0}]}}}] ``` ``` findsimilars_url = "https://api-hjq.cognitiveservices.azure.com/face/v1.0/findsimilars" # 请求正文 faceId需要先检测一张照片获取 data_findsimilars = { "faceId":"f3239442-c448-4eff-b0bc-1d3f82f1c100",#取上方的faceID "faceListId": "wx_002", "maxNumOfCandidatesReturned": 10, "mode": "matchFace"#matchPerson #一种为验证模式,一种为相似值模式 } r_findsimilars = requests.post(findsimilars_url,headers=headers,json=data_findsimilars) ``` ``` r_findsimilars ``` OUT ``` ``` IN ``` r_findsimilars.json() ``` OUT ``` [{'persistedFaceId': '90980efb-07ce-4597-ac6f-0a696909541f', 'confidence': 0.29269}, {'persistedFaceId': '3af485d5-5381-4270-afbf-fe1d3cc6d054', 'confidence': 0.20908}, {'persistedFaceId': 'f8555acd-3cf9-4fa3-b149-9ae19ecff3f4', 'confidence': 0.17849}, {'persistedFaceId': '4188f3a6-b4ca-495c-a955-20a96f8b120c', 'confidence': 0.16209}, {'persistedFaceId': 'bf3c44b1-adf8-48f6-85ec-195bb5358ddc', 'confidence': 0.15023}, {'persistedFaceId': '5cbe8af6-4f67-4cc4-8bd8-52c6cbf42392', 'confidence': 0.101}, {'persistedFaceId': '0fb6fcce-03ff-4894-9a66-a936601df13d', 'confidence': 0.10034}, {'persistedFaceId': 'c8b4b19d-075c-4d16-a337-99ef5d79a872', 'confidence': 0.0999}, {'persistedFaceId': 'ec2f2e39-a2ec-4161-9945-c4626057ae52', 'confidence': 0.09503}, {'persistedFaceId': 'c17e7a4f-f527-40f8-9b4a-c01cd44eb723', 'confidence': 0.09405}] ``` IN ``` #facelist里面的数据 adf = pd.json_normalize(r_get_facelist.json()["persistedFaces"])# 升级pandas才能运行 adf ``` OUT ``` persistedFaceId userData 1 c5779143-83ff-4478-b5ad-8c78faae9fb8 丘天惠 2 3d6de908-a09a-40d5-bd72-547517e3da17 林嘉茵 3 c8449aa8-0372-4af9-964c-9d2c9d7f4f2a 汤玲萍 4 b21fbea3-6b7b-4316-8e21-eeee6ca95a15 曾雯燕 5 bde75ba4-c85a-4c0d-9e21-5642eb528171 谢依希 6 3759e84e-b5a2-4a13-874a-e1f69beb98e1 杨悦聪 7 91a524ee-aa27-4107-8b23-988390608ac2 周雨 8 10a6049c-5a7c-4e7c-9d2b-f700f70bb6cc 刘瑜鹏 9 6be2eee6-1015-4741-9620-a2c3fa06aedb 陈嘉仪 10 78f2eb76-0db7-4b9b-a46c-23c52661134a 徐旖芊 11 fafb402e-3d0d-418b-9dec-da6ae893b677 刘心如 12 89fc8cb1-ce61-4b2b-a737-2cb2cf7c6d78 刘宇 13 297ae90b-9e11-4375-a6dc-f16c52446637 李婷 14 83a0fc70-314a-4905-927b-6b9f7d5ac0a5 黄智毅 15 8b2189ee-cf34-4f96-a07d-a32a5f7d6e0b 黄慧文 16 ddc744e3-583f-408d-b249-8aeac83b546d 张铭睿 17 86897f4e-b017-480e-97a6-23195a31261d 陈婷 18 d9855ce5-1ce9-4600-b18c-44066531618f 洪可凡 19 7ea8a891-04de-4897-b354-490afad612a9 卢继志 20 bbf65461-1e33-4ec3-9fe7-e7de4539e4db 张梓乐 ``` IN ``` # 返回相似度的数据 bdf = pd.json_normalize(r_findsimilars.json())# 升级pandas才能运行 bdf ``` OUT ``` persistedFaceId confidence 0 78f2eb76-0db7-4b9b-a46c-23c52661134a 0.29269 1 297ae90b-9e11-4375-a6dc-f16c52446637 0.20908 2 ddc744e3-583f-408d-b249-8aeac83b546d 0.17849 3 6be2eee6-1015-4741-9620-a2c3fa06aedb 0.16209 4 fafb402e-3d0d-418b-9dec-da6ae893b677 0.15023 5 d9855ce5-1ce9-4600-b18c-44066531618f 0.10100 6 3d6de908-a09a-40d5-bd72-547517e3da17 0.10034 7 bbf65461-1e33-4ec3-9fe7-e7de4539e4db 0.09990 8 9ff39ef7-ecb4-455b-8523-5398d0c8ec31 0.09955 9 83a0fc70-314a-4905-927b-6b9f7d5ac0a5 0.09503 ```