以前看到同事說人臉識別多麼高大上之類的, 我就好奇搜索了一下, 本人是小白級別,喜歡用百度多一點,因此就使用了百度的人臉識別SDK進行研究。不得不說百度提供的完檔很詳細,在學習過程當中不多出現不能解決的問題, 因此本人也偷個懶,把sdk文檔複製下來。數據庫
注:貌似有個bug,我在百度語音中菜單下建立的人臉識別,而後獲取API_key和Secret_key, 在學習嘗試過程當中, 或多或少有請求量, 可是報表中卻沒有任何記錄, 難道是bug嗎? 我在想是否是能夠無限制的調用了,做爲嘗試, 沒去批量去測試,感興趣的小夥伴能夠試試express
準備工做:windows
一、須要有百度帳號(沒有的話能夠註冊)後端
註冊地址: https://login.bce.baidu.com/api
註冊登陸以後,在「產品服務」 菜單下找到人臉識別 數組
點擊去建立本身的應用名稱,其實最主要的就是 API_key 和 Secret_key安全
有了這些就能夠進一步去看 百度提供的SDK 文檔了。服務器
這是百度的SDK地址:http://ai.baidu.com/sdk網絡
選擇本身喜歡的開發語言進行研究, 裏面文檔很詳細, 下載中有Demo app
本人採用的是C# 進行研究。
參考地址:http://ai.baidu.com/docs#/Face-Csharp-SDK/top
主要接口:
接口名稱 | 接口能力簡要描述 |
---|---|
人臉檢測 | 檢測人臉並定位,返回五官關鍵點,及人臉各屬性值 |
人臉比對 | 返回兩兩比對的人臉類似值 |
人臉識別 | 在人臉庫中查找類似的人臉 |
人臉認證 | 識別上傳的圖片是否爲指定用戶 |
人臉庫設置 | 對人臉庫的相關操做,如註冊、刪除、更新、查找用戶信息等 |
人臉 C# SDK目錄結構
Baidu.Aip ├── AipSdk.dll // 百度AI服務 windows 動態庫 ├── AipSdk.XML // DLL註釋 ├── Demo/ // Demo文件夾 └── thirdparty // 第三方依賴
支持平臺:.Net Framework 3.5 及以上版本
使用步驟
1.在官方網站下載C# SDK壓縮工具包。
2.解壓後,將 AipSdk.dll
和 thirdparty 中 的dll文件添加爲引用。
3.如需使用demo,將 Demo
文件夾中相關Demo文件添加至工程便可。
Baidu.Aip.Face
是主要命名空間,基本使用方法以下:
var APP_ID = "你的 App ID"; var API_KEY = "你的 Api Key"; var SECRET_KEY = "你的 Secret Key"; var client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY); var image = File.ReadAllBytes("圖片文件"); var options = new Dictionary<string, object>() { {"face_fields", "beauty,age"} }; // 過程當中發生的網絡失敗等系統錯誤,將會拋出相關異常,請使用 try/catch 捕獲。 var result = client.FaceDetect(image, options);
在上面代碼中,常量APP_ID
在百度雲控制檯中建立,常量API_KEY
與SECRET_KEY
是在建立完畢應用後,系統分配給用戶的,均爲字符串,用於標識用戶,爲訪問作簽名驗證,可在AI服務控制檯中的應用列表中查看。
注意:如您之前是百度雲的老用戶,其中API_KEY
對應百度雲的「Access Key ID」,SECRET_KEY
對應百度雲的「Access Key Secret」。
檢測請求圖片中的人臉,返回人臉位置、72個關鍵點座標、及人臉相關屬性信息。
檢測響應速度,與圖片中人臉數量相關,人臉數量較多時響應時間會有些許延長。
典型應用場景:如人臉屬性分析,基於人臉關鍵點的加工分析,人臉營銷活動等。
五官位置會標記具體座標;72個關鍵點座標也包含具體座標,但不包含對應位置的詳細位置描述。
圖片接受類型支持本地圖片路徑字符串,圖片文件二進制數組。
舉例,要對一張圖片進行人臉識別,具體的人臉信息在返回的result字段中。自定的參數在options字典中:
public static void FaceDetect() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var image = File.ReadAllBytes("圖片文件路徑"); var options = new Dictionary<string, object>() { {"face_fields", "beauty,age"} }; var result = client.FaceDetect(image, options); }
人臉檢測 請求參數詳情
參數 | 類型 | 描述 | 是否必須 |
---|---|---|---|
face_fields | string | 包括age、beauty、expression、faceshape、gender、glasses、landmark、race、qualities信息,逗號分隔,默認只返回人臉框、機率和旋轉角度。 | 否 |
max_face_num | number | 最多處理人臉數目,默認值1 | 是 |
image | byte[] | 圖像數據 | 是 |
參數 | 類型 | 是否必定輸出 | 描述 |
---|---|---|---|
log_id | number | 是 | 日誌id |
result_num | number | 是 | 人臉數目 |
result | array | 是 | 人臉屬性對象的集合 |
+age | number | 否 | 年齡。face_fields包含age時返回 |
+beauty | number | 否 | 美醜打分,範圍0-1,越大表示越美。face_fields包含beauty時返回 |
+location | array | 是 | 人臉在圖片中的位置 |
++left | number | 是 | 人臉區域離左邊界的距離 |
++top | number | 是 | 人臉區域離上邊界的距離 |
++width | number | 是 | 人臉區域的寬度 |
++height | number | 是 | 人臉區域的高度 |
+face_probability | number | 是 | 人臉置信度,範圍0-1 |
+rotation_angle | number | 是 | 人臉框相對於豎直方向的順時針旋轉角,[-180,180] |
+yaw | number | 是 | 三維旋轉之左右旋轉角[-90(左), 90(右)] |
+pitch | number | 是 | 三維旋轉之俯仰角度[-90(上), 90(下)] |
+roll | number | 是 | 平面內旋轉角[-180(逆時針), 180(順時針)] |
+expression | number | 否 | 表情,0,不笑;1,微笑;2,大笑。face_fields包含expression時返回 |
+expression_probability | number | 否 | 表情置信度,範圍0~1。face_fields包含expression時返回 |
+faceshape | array | 否 | 臉型置信度。face_fields包含faceshape時返回 |
++type | string | 是 | 臉型:square/triangle/oval/heart/round |
++probability | number | 是 | 置信度:0~1 |
+gender | string | 否 | male、female。face_fields包含gender時返回 |
+gender_probability | number | 否 | 性別置信度,範圍0~1。face_fields包含gender時返回 |
+glasses | number | 否 | 是否帶眼鏡,0-無眼鏡,1-普通眼鏡,2-墨鏡。face_fields包含glasses時返回 |
+glasses_probability | number | 否 | 眼鏡置信度,範圍0~1。face_fields包含glasses時返回 |
+landmark | array | 否 | 4個關鍵點位置,左眼中心、右眼中心、鼻尖、嘴中心。face_fields包含landmark時返回 |
++x | number | 否 | x座標 |
++y | number | 否 | y座標 |
+landmark72 | array | 否 | 72個特徵點位置,示例圖 。face_fields包含landmark時返回 |
++x | number | 否 | x座標 |
++y | number | 否 | y座標 |
+race | string | 否 | yellow、white、black、arabs。face_fields包含race時返回 |
+race_probability | number | 否 | 人種置信度,範圍0~1。face_fields包含race時返回 |
+qualities | array | 否 | 人臉質量信息。face_fields包含qualities時返回 |
++occlusion | array | 是 | 人臉各部分遮擋的機率, [0, 1] (待上線) |
+++left_eye | number | 是 | 左眼 |
+++right_eye | number | 是 | 右眼 |
+++nose | number | 是 | 鼻子 |
+++mouth | number | 是 | 嘴 |
+++left_cheek | number | 是 | 左臉頰 |
+++right_cheek | number | 是 | 右臉頰 |
+++chin | number | 是 | 下巴 |
++type | array | 是 | 真實人臉/卡通人臉置信度 |
+++human | number | 是 | 真實人臉置信度,[0, 1] |
+++cartoon | number | 是 | 卡通人臉置信度,[0, 1] |
該請求用於比對多張圖片中的人臉類似度並返回兩兩比對的得分,可用於判斷兩張臉是不是同一人的可能性大小。
典型應用場景:如人證合一驗證,用戶認證等,可與您現有的人臉庫進行比對驗證。
說明:支持對比對的兩張圖片作在線活體檢測
public static void FaceMatch() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var image1 = File.ReadAllBytes("圖片文件路徑"); var image2 = File.ReadAllBytes("圖片文件路徑"); var images = new byte[][] {image1, image2}; // 人臉對比 var result = client.FaceMatch(images); }
人臉比對請求參數:
全部圖片經base64編碼後的圖片數據總和不超過10M。如下可選參數放在接口最後的options參數中。
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
ext_fields | 否 | string | 返回質量信息,取值固定: 目前支持qualities(質量檢測)。(對全部圖片都會作改處理) |
image_liveness | 否 | string | 返回的活體信息,「faceliveness,faceliveness」 表示對比對的兩張圖片都作活體檢測;「,faceliveness」 表示對第一張圖片不作活體檢測、第二張圖作活體檢測;「faceliveness,」 表示對第一張圖片作活體檢測、第二張圖不作活體檢測 |
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求惟一標識碼,隨機數 |
result_num | 是 | number | 返回結果數目,即:result數組中元素個數 |
result | 是 | array | 結果數據,index和請求圖片index對應。數組元素爲每張圖片的匹配得分數組,top n。 得分[0,100.0] |
+index_i | 是 | number | 比對圖片1的index |
+index_j | 是 | number | 比對圖片2的index |
+score | 是 | double | 比對得分 |
ext_info | 否 | array | 對應參數中的ext_fields |
+qualities | 否 | string | 質量相關的信息,無特殊需求能夠不使用 |
+faceliveness | 否 | string | 活體分數「0,0.9999」(表示第一個圖不作活體檢測、第二個圖片活體分數爲0.9999)。活體檢測參考分數0.4494,以上則可認爲是活體(測試期間) |
返回樣例:
//請求爲四張圖片,第三張解析失敗 { "log_id": 73473737, "result_num":3, "result": [ { "index_i": 0, "index_j": 1, "score": 44.3 }, { "index_i": 0, "index_j": 3, "score": 89.2 }, { "index_i": 1, "index_j": 3, "score": 10.4 } …… ] }
用於計算指定組內用戶,與上傳圖像中人臉的類似度。識別前提爲您已經建立了一我的臉庫。
典型應用場景:如人臉閘機,考勤簽到,安防監控等。
說明:人臉識別返回值不直接判斷是不是同一人,只返回用戶信息及類似度分值。
說明:推薦可判斷爲同一人的類似度分值爲80,您也能夠根據業務需求選擇更合適的閾值。
public static void FaceIdentify() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var image1 = File.ReadAllBytes("圖片文件路徑"); var result = client.User.Identify(image1, new []{"groupId"}, 1, 1); }
人臉識別請求參數詳情:
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
group_id | 是 | string | 用戶組id(由數字、字母、下劃線組成)列表,每一個groupid長度限制48 |
image | 是 | byte[] | 圖像數據 |
ext_fields | 否 | string | 特殊返回信息,多個用逗號分隔,取值固定: 目前支持 faceliveness(活體檢測) |
user_top_num | 否 | number | 返回用戶top數,默認爲1,最多返回5個 |
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求惟一標識碼,隨機數 |
result_num | 是 | number | 返回結果數目,即:result數組中元素個數 |
ext_info | 否 | array | 對應參數中的ext_fields |
+faceliveness | 否 | string | 活體分數,如0.49999。活體檢測參考分數0.4494,以上則可認爲是活體(測試期間 |
result | 是 | array | 結果數組 |
+group_id | 是 | string | 對應的這個用戶的group_id |
+uid | 是 | string | 匹配到的用戶id |
+user_info | 是 | string | 註冊時的用戶信息 |
+scores | 是 | array | 結果數組,數組元素爲匹配得分,top n。得分[0,100.0] |
返回樣例:
{ "log_id": 73473737, "result_num":1, "result": [ { "group_id" : "test1", "uid": "u333333", "user_info": "Test User", "scores": [ 99.3, 83.4 ] } ] }
用於識別上傳的圖片是否爲指定用戶,即查找前須要先肯定要查找的用戶在人臉庫中的id。
典型應用場景:如人臉登陸,人臉簽到等
說明:人臉認證與人臉識別的差異在於:人臉識別須要指定一個待查找的人臉庫中的組;而人臉認證須要指定具體的用戶id便可,不須要指定具體的人臉庫中的組;實際應用中,人臉認證須要用戶或系統先輸入id,這增長了驗證安全度,但也增長了複雜度,具體使用哪一個接口須要視您的業務場景判斷。
說明:請求參數中,新增在線活體檢測
舉例,要認證一張圖片在指定group中是否爲uid的用戶:
public static void FaceVerify() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var image1 = File.ReadAllBytes("圖片文件路徑"); var result = client.User.Verify(image1, "uid", new []{"groupId"}, 1); }
人臉認證請求參數詳情:
可選參數均放在接口最後的options參數中。
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
uid | 是 | string | 用戶id(由數字、字母、下劃線組成),長度限制128B |
image | 是 | byte[] | 圖像數據 |
group_id | 是 | string | 用戶組id(由數字、字母、下劃線組成)列表,每一個groupid長度限制48 |
top_num | 否 | number | 返回匹配得分top數,默認爲1 |
ext_fields | 否 | string | 特殊返回信息,多個用逗號分隔,取值固定: 目前支持 faceliveness(活體檢測) |
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求惟一標識碼,隨機數 |
result_num | 是 | number | 返回結果數目,即:result數組中元素個數 |
result | 是 | array | 結果數組,數組元素爲匹配得分,top n。 得分範圍[0,100.0]。推薦得分超過80可認爲認證成功 |
ext_info | 否 | array | 對應參數中的ext_fields |
+faceliveness | 否 | string | 活體分數,如0.49999。活體檢測參考分數0.4494,以上則可認爲是活體(測試期間) |
返回樣例:
{ "results": [ 93.86580657959, 92.237548828125 ], "result_num": 2, "log_id": 1629483134 }
用於從人臉庫中新增用戶,能夠設定多個用戶所在組,及組內用戶的人臉圖片,
典型應用場景:構建您的人臉庫,如會員人臉註冊,已有用戶補全人臉信息等。
人臉庫、用戶組、用戶、用戶下的人臉層級關係以下所示:
|- 人臉庫 |- 用戶組一 |- 用戶01 |- 人臉 |- 用戶02 |- 人臉 |- 人臉 .... .... |- 用戶組二 |- 用戶組三 |- 用戶組四 ....
說明:關於人臉庫的設置限制
說明:人臉註冊完畢後,生效時間最長爲35s,以後即可以進行識別或認證操做。
說明:註冊的人臉,建議爲用戶正面人臉。
說明:uid在庫中已經存在時,對此uid重複註冊時,新註冊的圖片默認會追加到該uid下,若是手動選擇
action_type:replace
,則會用新圖替換庫中該uid下全部圖片。
舉例,要註冊一個新用戶,用戶id爲uid,加入組id爲group1, 註冊成功後服務端會返回操做的logid:
public static void FaceRegister() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var image1 = File.ReadAllBytes("圖片文件路徑"); var result = client.User.Register(image1, "uid", "user info here", new []{"groupId"}); }
人臉註冊請求參數要求:
全部圖片經base64編碼後的圖片數據總和不超過10M。
人臉註冊返回數據參數詳情:
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
uid | 是 | string | 用戶id(由數字、字母、下劃線組成),長度限制128B |
image | 是 | byte[] | 圖片數據 |
group_id | 是 | string | 用戶組id(由數字、字母、下劃線組成),長度限制48 |
user_info | 是 | string | 新的user_info信息 |
action_type | 否 | string | 若是爲replace時,則uid不存在時,不報錯,會自動註冊。 不存在該參數時,若是uid不存在會提示錯誤 |
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求標識碼,隨機數,惟一 |
返回樣例:
// 註冊成功 { "log_id": 73473737, } // 註冊發生錯誤 { "error_code": 216616, "log_id": 674786177, "error_msg": "image exist" }
用於對人臉庫中指定用戶,更新其下的人臉圖像。
說明:針對一個uid執行更新操做,新上傳的人臉圖像將覆蓋此uid原有全部圖像。
說明:執行更新操做,若是該uid不存在時,會返回錯誤。若是添加了action_type:replace,則不會報錯,並自動註冊該uid,操做結果等同註冊新用戶。
舉例,要更新一個用戶,用戶id爲uid, 更新成功後服務端會返回操做的logid:
public static void FaceUpdate() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var image1 = File.ReadAllBytes("圖片文件路徑"); var result = client.User.Update(image1, "uid", "groupId", "new user info"); }
人臉更新請求參數詳情:
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
uid | 是 | string | 用戶id(由數字、字母、下劃線組成),長度限制128B |
image | 是 | byte[] | 圖片數據 |
group_id | 是 | string | 用戶組id(由數字、字母、下劃線組成),長度限制48 |
user_info | 是 | string | 新的user_info信息 |
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求標識碼,隨機數,惟一 |
// 更新成功 { "log_id": 73473737, } // 更新發生錯誤 { "error_code": 216612, "log_id": 1137508902, "error_msg": "user not exist" }
用於從人臉庫中刪除一個用戶。
人臉刪除注意事項:
public static void FaceDelete() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var result = client.User.Delete("uid"); result = client.User.Delete("uid", new []{"group1"}); }
人臉刪除請求參數要求:
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
uid | 是 | string | 用戶id(由數字、字母、下劃線組成),長度限制128B |
group_id | 是 | string | 刪除指定group_id中的uid信息 |
人臉刪除返回數據參數詳情:
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求標識碼,隨機數,惟一 |
返回樣例:
// 更新成功 { "log_id": 73473737, } // 更新發生錯誤 { "error_code": 216612, "log_id": 1137508902, "error_msg": "user not exist" }
用於查詢人臉庫中某用戶的詳細信息。
舉例,要查詢指定用戶的信息:
public static void UserInfo() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var result = client.User.GetInfo("uid"); }
用戶信息查詢請求參數要求:
如下可選參數放在接口最後的options參數中。
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
uid | 是 | string | 用戶id(由數字、字母、下劃線組成),長度限制128B |
group_id | 否 | string | 選擇指定group_id則只查找group列表下的uid內容,若是不指定則查找全部group下對應uid的信息 |
用戶信息查詢返回數據參數詳情:
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求標識碼,隨機數,惟一 |
result | 是 | array | 結果數組 |
+uid | 是 | string | 匹配到的用戶id |
+user_info | 是 | string | 註冊時的用戶信息 |
+groups | 是 | array | 用戶所屬組列表 |
返回樣例:
{ "result": { "uid": "testuser2", "user_info": "registed user info ...", "groups": [ "grp1", "grp2", "grp3" ] }, "log_id": 2979357502 }
用於查詢用戶組的列表。
舉例:
public static void GroupList() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var result = client.Group.GetAllGroups(0, 100); }
組列表查詢請求參數詳情:
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
start | 否 | number | 默認值0,起始序號 |
num | 否 | number | 返回數量,默認值100,最大值1000 |
組列表查詢返回數據參數詳情:
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求標識碼,隨機數,惟一 |
result_num | 是 | number | 返回個數 |
result | 是 | array | group_id列表 |
返回樣例:
{ "result_num": 2, "result": [ "grp1", "grp2" ], "log_id": 3314921889 }
用於查詢指定用戶組中的用戶列表。
舉例:
public static void GroupUsers() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var result = client.Group.GetUsers("groupId", 0, 100); }
組內用戶列表查詢請求參數詳情:
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
group_id | 是 | string | 用戶組id |
start | 否 | number | 默認值0,起始序號 |
num | 否 | number | 返回數量,默認值100,最大值1000 |
組內用戶列表查詢返回數據參數詳情:
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求標識碼,隨機數,惟一 |
result_num | 是 | number | 返回個數 |
result | 是 | array | user列表 |
+uid | 是 | string | 用戶id |
+user_info | 是 | string | 用戶信息 |
返回樣例:
{ "log_id": 3314921889, "result_num": 2, "result": [ { "uid": "uid1", "user_info": "user info 1" }, { "uid": "uid2", "user_info": "user info 2" } ] }
用於將已經存在於人臉庫中的用戶添加到一個新的組。
說明:並非向一個指定組內添加用戶,而是直接從其它組複製用戶信息
舉例:
public static void GroupAddUser() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var result = client.Group.AddUser(new []{"toGroupId"}, "uid", "fromGroupId"); }
組間複製用戶請求參數詳情:
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
src_group_id | 是 | string | 從指定group裏複製信息 |
group_id | 是 | string | 須要添加信息的組id列表 |
uid | 是 | string | 用戶id |
####返回說明
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求標識碼,隨機數,惟一 |
返回樣例:
// 正確返回值 { "log_id": 3314921889, } // 發生錯誤時返回值 { "error_code": 216100, "log_id": 3111284097, "error_msg": "already add" }
用於將用戶從某個組中刪除,但不會刪除用戶在其它組的信息。
說明:當用戶僅屬於單個分組時,本接口將返回錯誤,請使用人臉刪除接口
舉例:
public static void GroupDeleteUser() { var client = new Baidu.Aip.Face.Face("Api Key", "Secret Key"); var result = client.Group.DeleteUser(new []{"groupId"}, "uid"); }
組內刪除用戶請求參數詳情:
參數 | 是否必選 | 類型 | 說明 |
---|---|---|---|
group_id | 是 | string | 用戶組id列表 |
uid | 是 | string | 用戶id |
字段 | 是否必選 | 類型 | 說明 |
---|---|---|---|
log_id | 是 | number | 請求標識碼,隨機數,惟一 |
返回樣例:
// 正確返回值 { "log_id": 3314921889, } // 發生錯誤時返回值 { "error_code": 216619, "log_id": 815967402, "error_msg": "user must be in one group at least" }
若請求錯誤,服務器將返回的JSON文本包含如下參數:
錯誤碼 | 錯誤信息 | 描述 |
---|---|---|
4 | Open api request limit reached | 集羣超限額 |
17 | Open api daily request limit reached | 天天流量超限額 |
18 | Open api qps request limit reached | QPS超限額 |
19 | Open api total request limit reached | 請求總量超限額 |
100 | Invalid parameter | 無效參數 |
110 | Access token invalid or no longer valid | Access Token失效 |
111 | Access token expired | Access token過時 |
216015 | module closed | 模塊關閉 |
216100 | invalid param | 參數異常 |
216101 | not enough param | 缺乏必須的參數 |
216102 | service not support | 請求了不支持的服務,請檢查調用的url |
216103 | param too long | 請求超長,通常爲一次傳入圖片個數超過系統限制 |
216110 | appid not exist | appid不存在,請從新檢查後臺應用列表中的應用信息 |
216111 | invalid userid | userid信息非法,請檢查對應的參數 |
216200 | empty image | 圖片爲空或者base64解碼錯誤 |
216201 | image format error | 圖片格式錯誤 |
216202 | image size error | 圖片大小錯誤 |
216300 | db error | 數據庫異常,少許發生時重試便可 |
216400 | backend error | 後端識別服務異常,能夠根據具體msg查看錯誤緣由 |
216401 | internal error | 內部錯誤 |
216402 | face not found | 未找到人臉,請檢查圖片是否含有人臉 |
216500 | unknown error | 未知錯誤 |
216611 | user not exist | 用戶不存在,請確認該用戶是否註冊或註冊已經生效(須要已經註冊超過35s) |
216613 | fail to delete user record | 刪除用戶圖片記錄失敗,重試便可 |
216614 | not enough images | 兩兩比對中圖片數少於2張,沒法比較 |
216615 | fail to process images | 服務處理該圖片失敗,發生後重試便可 |
216616 | image existed | 圖片已存在 |
216617 | fail to add user | 新增用戶圖片失敗 |
216618 | no user in group | 組內用戶爲空,確認該group是否存在或已經生效(須要已經註冊超過35s) |
216631 | request add user overlimit | 本次請求添加的用戶數量超限 |