之前看到同事說人臉識別多么高大上之類的, 我就好奇搜索了一下, 本人是小白級別,喜歡用百度多一點,所以就使用了百度的人臉識別SDK進行研究。不得不說百度提供的完檔很詳細,在學習過程中很少出現不能解決的問題, 所以本人也偷個懶,把sdk文檔復制下來。
注:貌似有個bug,我在百度語音中菜單下創建的人臉識別,然后獲取API_key和Secret_key, 在學習嘗試過程中, 或多或少有請求量, 但是報表中卻沒有任何記錄, 難道是bug嗎? 我在想是不是可以無限制的調用了,作為嘗試, 沒去批量去測試,感興趣的小伙伴可以試試
准備工作:
1、需要有百度賬號(沒有的話可以注冊)
注冊地址: https://login.bce.baidu.com/
注冊登錄之后,在“產品服務” 菜單下找到人臉識別

點擊去創建自己的應用名稱,其實最主要的就是 API_key 和 Secret_key

有了這些就可以進一步去看 百度提供的SDK 文檔了。
這是百度的SDK地址:http://ai.baidu.com/sdk
選擇自己喜歡的開發語言進行研究, 里面文檔很詳細, 下載中有Demo
本人采用的是C# 進行研究。
參考地址:http://ai.baidu.com/docs#/Face-Csharp-SDK/top
主要接口:
| 接口名稱 | 接口能力簡要描述 |
|---|---|
| 人臉檢測 | 檢測人臉並定位,返回五官關鍵點,及人臉各屬性值 |
| 人臉比對 | 返回兩兩比對的人臉相似值 |
| 人臉識別 | 在人臉庫中查找相似的人臉 |
| 人臉認證 | 識別上傳的圖片是否為指定用戶 |
| 人臉庫設置 | 對人臉庫的相關操作,如注冊、刪除、更新、查找用戶信息等 |
快速入門
安裝人臉 C# SDK
人臉 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文件添加至工程即可。
使用SDK
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 |- 人臉 |- 人臉 .... .... |- 用戶組二 |- 用戶組三 |- 用戶組四 ....
說明:關於人臉庫的設置限制
- 每個開發者賬號只能創建一個人臉庫;
- 每個人臉庫下,用戶組(group)數量沒有限制;
- 每個用戶組(group)下,可添加最多300000張人臉,如每個uid注冊一張人臉,則最多300000個用戶uid;
- 每個用戶(uid)所能注冊的最大人臉數量沒有限制;
說明:人臉注冊完畢后,生效時間最長為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" }
人臉刪除
接口描述
用於從人臉庫中刪除一個用戶。
人臉刪除注意事項:
- 刪除的內容,包括用戶所有圖像和身份信息;
- 如果一個uid存在於多個用戶組內且沒有指定group_id,將會同時將從各個組中把用戶刪除
- 如果指定了group_id,則只刪除此group下的uid相關信息
請求說明
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文本包含以下參數:
- error_code:錯誤碼。
- error_msg:錯誤描述信息,幫助理解和解決發生的錯誤。
錯誤碼
| 錯誤碼 | 錯誤信息 | 描述 |
|---|---|---|
| 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 | 本次請求添加的用戶數量超限 |
