百度人脸识别sdk-转
https://ai.baidu.com/ai-doc/FACE/Qk37c1mzc
目錄
1、簡介1.1 產品概述1.2 規格信息1.3 兼容性1.4 授權方式1.5 產品定價 2、SDK詳細介紹2.1 名詞解釋2.2 SDK簡介2.3 SDK文件結構2.4 激活工具2.5 Demo示例工程2.6 特征抽取模型選擇 3、功能接口3.1 人臉檢測及設置3.1.1 人臉檢測track接口(傳入圖片)3.1.2 人臉檢測track接口(傳入二進制圖片buffer)3.1.3 人臉檢測track_max_face接口3.1.4 人臉檢測track_max_face接口(傳入二進制圖片buffer)3.1.5 人臉檢測設置接口3.1.6 USB攝像頭檢測3.1.7 人臉檢測track接口(傳入opencv的mat)3.2 人臉對比及識別接口3.2.1 人臉對比接口3.2.2 人臉對比接口(傳入二進制圖片buffer)3.3 特征值提取接口3.3.1 特征值提取接口(通過傳入圖片)3.3.2 特征值提取接口(通過傳入二進制圖片buffer)3.3.3 特征值提取接口(通過傳入opencv的視頻幀)3.3.4 特征值比對接口3.4 屬性及質量接口3.4.1 人臉屬性(通過傳入圖片)3.4.2 人臉屬性(通過傳入二進制圖片buffer)3.4.3 人臉質量接口(通過傳入圖片)3.4.4 人臉質量接口(通過傳入二進制圖片buffer) 4、錯誤碼及錯誤信息 5、常見問題?
1、簡介
?
1.1 產品概述
人臉離線識別SDK,包含人臉采集、活體檢測、人臉對比/識別、人臉庫管理等能力,并全部離線化、本地化。此SDK一經授權激活,可完全在無網環境下工作,所有數據皆在設備本地運行處理,可根據業務需要進行靈活的上層業務開發。核心能力分布如下圖所示,后文會詳細介紹。
適用場景特點
- 網絡:無網、局域網等情況,無法連接公網。如政府單位、金融保險、教育機構等。
- 安全:行業特點所帶來的人臉數據敏感性,即使可以連接公網也不可請求。
- 速度:由于各地網絡線路、機房部署等諸多原因,網絡請求速度存在不可控因素。
- 穩定:需要盡可能避免網絡抖動、機房故障等影響,進一步控制可用性影響因素。
?
1.2 規格信息
- 包大小:~500M
- 最小人臉檢測大小:50px * 50px
- 可識別人臉角度:yaw ≤ ±30°, pitch ≤ ±30°
- 檢測速度:100ms 720p*
- 追蹤速度:30ms 720p*
- 人臉檢測耗時:~= 100ms
備注:以上指標,由最新版SDK運行在真實設備上,采用真實數據集所得,但算法性能受實際運行設備、實際數據集等情況影響,以上數字僅供參考。
- 提供一個鑒權激活工具:tool_ubuntu.sh、tool_centos.sh,可根據平臺選擇對應的sh文件運行
?
1.3 兼容性
- Centos6.3 gcc4.8.2 以及 Ubuntu16.04 gcc5.4.0上編譯
- 推薦基于vs2015進行開發
?
1.4 授權方式
按設備授權
離線識別SDK授權方式為以設備維度為主,每臺硬件設備需要一個獨立的授權,此授權的校驗是基于設備的硬件指紋(指紋的獲取SDK初始化時會自動讀取并展示),被授權的設備,將在有效期內可以運行SDK。
重新拉取授權的情況:設備授權不變,僅需要重新激活而已。
- 刪除SDK或基于SDK開發的應用
- 重新安裝Windows系統
授權失效的情況:需要重新購買序列號,之前的序列號失效。
- 激活一臺設備后,此設備硬件變更
- 硬件損壞
序列號
序列號為管理授權的依據。每臺被授權的設備,都將對應一個序列號,用于標識對應的設備信息及授權記錄。序列號的形式為16位隨機英文數字組合,如:3G59-M5JK-889A-7LQA。您在管理后臺購買SDK授權時,購買成功后系統將會發放對應數量的序列號。序列號不限制平臺版本,任何開發平臺的離線SDK,都可以使用此序列號激活。序列號不限制賬號,可供任何設備激活使用。
激活
已購買的序列號,是用于激活的唯一憑證,激活流程主要是將序列號與具體的硬件進行綁定(硬件指紋),從而生成對應硬件設備的授權文件(License),SDK運行前,將會校驗授權文件是否和實際硬件信息相匹配。
注意:激活時,設備系統時間需要和當前時間一致,如果差距太大(例如偏差5min以上),激活則無法完成。
聯網激活
此種激活方式,適用于設備可首次聯網的情況,優勢在于激活過程極為簡單。您只需將SDK安裝到需要激活的設備上,然后填寫已經購買的序列號,在界面上點擊激活即可(為使用方便,我們為您設計了一個簡單的激活用戶界面)
如激活成功,將會立即在界面上有明確的彈窗提示,請留意查看;如激活失敗,也會反饋具體的錯誤信息。
離線激活
此種激活方式,適用于設備完全不可聯網的情況,優勢在于可避免聯網激活,滿足業務對網絡的嚴格要求,以及設備批量注冊需求。您需要在后臺配置好硬件指紋并完成和序列號的綁定,然后將授權文件放到SDK的指定位置。
授權有效期
申請通過后,每個賬戶給2個測試序列號,用于激活及SDK試用,有效期為自激活日期后的3個月。這兩個序列號在有效期內完全免費,您可以用于進行產品試用。試用期到期后也可以在后臺申請延期,填寫具體延期理由即可。
正式購買
正式購買的序列號,試用期限為永久有效。此「永久」是指綁定到具體設備維度,但如已綁定的硬件設備變更后,授權則可能會失效。
?
1.5 定價方式
離線SDK的授權基于設備維度,每個序列號僅可以授權一臺設備。每個賬號購買的序列號會累計計算,累計購買量越多,單價越便宜。具體如下所示:
| 0~1000 | 299元/個 |
| 1001~5000 | 249元/個 |
| >5000 | 199元/個 |
立即去購買
?
2、SDK詳細介紹
?
2.1 名詞解釋
| SDK | Linux離線人臉識別sdk |
| gcc | Linux平臺下c++代碼編譯器 |
| License | 人臉識別激活所需要的激活文件,可利用激活工具生成 |
| key | 人臉激活所需的序列號,可從百度官網申請及購買(ai.baidu.com) |
| feature | 人臉特征值,用來表示人臉特征的512個浮點值 |
| face_token | 對應人臉圖片的唯一編碼,若一個人上傳了2張不同圖片,則可能有2個不同的face_token,它和圖片一一對應 |
?
2.2 SDK簡介
本SDK適應于Linux(Centos、Ubuntu)平臺下的人臉識別系統,分別在Centos6.3 gcc4.8.2 以及Ubuntu16.04 gcc5.4.0上編譯(其他版本或平臺的linux不保證兼容)。SDK采用動態庫so方式提供給開發者,另外隨sdk附帶一個鑒權激活工具(可運行腳本 tool-ubuntu.sh或tool-centos運行,這2文件分別對應不同的OS),通過該激活工具可生成正常接入SDK的激活license文件(生成兩個文件license.ini和license.key)達到通過鑒權,正常使用SDK的目的。
?
2.3 SDK文件結構
Sdk提供動態庫BaiduFaceApi.so及頭文件baidu_face_api.h。另外有附帶的demo例子代碼test-face-api以及鑒權激活工具tool。在此之外,還附帶支撐sdk使用的人臉識別模型文件等在文件夾face-resource中,該文件夾在test-face-api例子工程里面(該文件夾存放路徑請參考test-face-api,默認存放路徑為您要開發的可執行文件路徑同一目錄下。若存放不對,可能會影響sdk正常使用,另外請勿刪除該文件夾)。
為運行您開發的可執行文件,需要用到一些底層的庫文件支持,相關庫文件在test-face-api的lib3目錄中(主要有opencv庫,ffmpeg庫,json,curl庫等)。此外,隨工程還有一些編譯用的Makefile文件及sh腳本文件等,可通過Makefile編譯工程,sh腳本文件運行編譯的可執行文件。Makefile文件分別命名為Makefile_centos6.3及Makefile_ubuntu,若要編譯相應平臺版本,請把他重命名為Makefile。
?
2.4 激活工具(tool)
在百度官網申請系列號Key后,在test-face-api工程下有個tool_ubuntu.sh和tool_centos.sh。可根據您的OS平臺選擇對應sh文件運行,在運行之前,先修改腳本文件的最后一行,把如05QU-ATMA-SCWY-CAUB字樣的key修改為您在百度官網申請到的key,然后再運行sh腳本文件(若是centos平臺,輸入sh tool_centos.sh即可)。激活成功后會在激活目錄生成license.ini以及license.key文件,這2個文件是作為sdk通過鑒權使用的配置文件,請勿刪除。
如果你不方便使用網絡,可以通過離線激活進行操作:
通過如上的激活工具,獲取到設備指紋信息,通過序列號管理后臺找到需要綁定的序列號,選擇「離線激活」,填入指紋設備信息,即可下載獲取到license.ini文件和license.key文件,把這2個文件拷貝到test-face-api目錄下,運行可執行文件亦可通過鑒權。
?
2.5 Demo示例工程
Demo示例工程代碼在test-face-api中的cpp目錄里面,其中的test_face.cpp里面有入口方法main(),展示了如何集成百度人臉識別離線SDK。即正確編寫Makefile文件及引入頭文件include以及對應的一些庫文件。另外為了示例視頻人臉跟蹤等,用到了一些opencv的庫文件以及一些實現demo的支持文件,如json等。(這些支持文件均為代碼開源或是開源庫)
在test-face-api中的test_face.cpp的main()方法中,有使用sdk的各個接口方法示例。接入sdk及其簡單,分3步3行代碼。如下:
BaiduFace *api = new BaiduFaceApi(); // 第一步:實例化人臉SDKapi->sdk_init(); // 第二步:初始化人臉SDKstd::string res = api->face_attr(“方法的傳入參數,此處省略”); // 第三步,調用功能接口,user_add為人臉注冊接口,res為調用功能接口后的返回。如上,即為調用sdk功能的最簡單3步3行代碼,當然調用SDK后,在程序退出后,需要釋放sdk防止內存泄漏,需要刪除SDK實例化的指針delete api;
示例工程中:分別有以下幾個示例cpp文件對應幾個常用sdk的調用demo。
| setting.cpp | 人臉檢測、識別等參數設置 |
| compare.cpp | 人臉1:1比對、1:N 搜索,人臉特征值提取,特征值對比等 |
| liveness.cpp | USB攝像頭視頻信息人臉實時檢測,圖片檢測人臉信息等 |
| cv_help.cpp | 繪制人臉跟蹤框、人臉關鍵點位等的工具類 |
?
2.6 特征抽取模型選擇
模型介紹
v1.1版本起,SDK提供生活照和證件照兩種特征抽取模型,主要適用場景如下:
- 生活照模型:如手機拍攝的圖片、較為清晰的證件照片、USB鏡頭實時采集的圖片、網絡攝像頭實時采集的圖片等。
- 證件照模型:如身份證芯片照、各類證件照(工卡、學生卡、會員卡照片等)、人臉的像素普遍小于80px的圖片等。
使用方法
在SDK初始化方法中控制:sdk_init(true); //傳入true為使用證件照模型,傳入fasle為普通生活照模型
注意事項
溫馨提示:一經選擇一個模型,則所有業務流程的特征抽取處理,都會使用此模型,兩個模型不可同時作用。如業務中設計證件照的特征抽取,請務必選擇使用證件照模型。
?
3、功能接口
SDK實現的主要功能有人臉實時跟蹤檢測、人臉特征值提取、1:1人臉對比、特征值的比對和通過USB或筆記本自帶攝像頭檢測視頻幀,返回識別出的人臉信息等,另外支持對人臉檢測進行設置,達到根據設置進行識別的目的。各接口功能及傳入參數和返回結果(返回結果一般為json格式的字符串)描述如下:
?
3.1 人臉檢測及設置
3.1.1 人臉檢測track接口(傳入圖片)
方法名
track
方法說明
人臉檢測,返回人臉信息
請求信息
| out | 是 | std::vector | 返回的檢測到的人臉圖片信息結構體 std::vector *& out 通過傳入TrackFaceInfo的結構體指針引用,在檢測到人臉信息后,用該引用返回人臉信息。TrackedFaceInfo結構體為檢測到的人臉信息,其中:box為檢測到的人臉框(為FaceInfo結構體,包含人臉框大小,中心點坐標,人臉寬度等信息)landmarks為檢測到的人臉關鍵點,一般為144個。score為人臉打分headPose的向量組為人臉x,y,z的三個角度 |
| image | 是 | string | 人臉圖片信息,根據image_type,傳入圖片內容 |
| img_type | 是 | int | 傳入的圖片類型。為1時候表示base64編碼的圖片,為2時候表示傳入圖片的本地路徑。BASE64:圖片的base64值;FACE_FILE:圖片的本地文件路徑地址; |
| maxTrackObjNum | 是 | int | 最多檢測人臉數量,默認為1,最大不超過5 |
返回信息
返回結果為int,表示檢測到幾個人臉信息,1為1個人,0為沒檢測到人臉。
3.1.2 人臉檢測track接口(傳入二進制圖片buffer)
方法名
track_by_buf
方法說明
人臉檢測,返回人臉信息
請求信息
| out | 是 | std::vector | 返回的檢測到的人臉圖片信息結構體 std::vector *& out 通過傳入TrackFaceInfo的結構體指針引用,在檢測到人臉信息后,用該引用返回人臉信息。TrackedFaceInfo結構體為檢測到的人臉信息,其中:box為檢測到的人臉框(為FaceInfo結構體,包含人臉框大小,中心點坐標,人臉寬度等信息)landmarks為檢測到的人臉關鍵點,一般為144個。score為人臉打分headPose的向量組為人臉x,y,z的三個角度 |
| image | 是 | Unsigned char * | 人臉圖片信息,二進制圖片buffer內容 |
| size | 是 | int | 二進制圖片的大小 |
| maxTrackObjNum | 是 | int | 最多檢測人臉數量,默認為1,最大不超過5 |
返回信息
返回結果為int,表示檢測到幾個人臉信息,1為1個人,0為沒檢測到人臉。
3.1.3 人臉檢測track_max_face接口
方法名
track_max_face
方法說明
檢測最大人臉。
請求信息
| out | 是 | std::vector<TrackFaceInfo> | 返回的檢測到的人臉圖片信息結構體 std::vector *& out 通過傳入TrackFaceInfo的結構體指針引用,在檢測到人臉信息后,用該引用返回人臉信息。TrackedFaceInfo結構體為檢測到的人臉信息,其中:box為檢測到的人臉框(為FaceInfo結構體,包含人臉框大小,中心點坐標,人臉寬度等信息);landmarks為檢測到的人臉關鍵點,一般為144個;score為人臉打分;headPose的向量組為人臉x,y,z的三個角度 |
| image | 是 | string | 圖片信息(數據大小應小于10M) |
| image_type | 是 | int | 為1時候表示base64編碼的圖片;為2時候表示傳入圖片的本地路徑。BASE64:圖片的base64值;FACE_FILE:圖片的本地文件路徑地址; |
返回信息
返回結果為int,表示檢測到幾個人臉信息,1為1個人,0為沒檢測到人臉。
3.1.4 人臉檢測track_max_face接口(傳入二進制圖片buffer)
方法名
track_max_face_by_buf
方法說明
檢測最大人臉。
請求信息
| out | 是 | std::vector<TrackFaceInfo> | 返回的檢測到的人臉圖片信息結構體 std::vector *& out 通過傳入TrackFaceInfo的結構體指針引用,在檢測到人臉信息后,用該引用返回人臉信息。TrackedFaceInfo結構體為檢測到的人臉信息,其中:box為檢測到的人臉框(為FaceInfo結構體,包含人臉框大小,中心點坐標,人臉寬度等信息);landmarks為檢測到的人臉關鍵點,一般為144個;score為人臉打分;headPose的向量組為人臉x,y,z的三個角度 |
| image | 是 | Unsigned char * | 人臉圖片信息,二進制圖片buffer內容 |
| size | 是 | int | 二進制圖片的大小 |
返回信息
返回結果為int,表示檢測到幾個人臉信息,1為1個人,0為沒檢測到人臉。
3.1.5 人臉檢測設置接口
請參考SDK工程中的代碼示例及頭文件baidu_face_api.h中的定義及setting.cpp里的代碼注釋。
3.1.6 USB攝像頭檢測
請參考TestFaceApi中的示例liveness.cpp中的usb_track_face_info,該方法中用到了人臉檢測track視頻幀,接口如下3.1.7:
3.1.7 人臉檢測track接口(傳入opencv的mat)
方法名
Track
方法說明
人臉檢測,返回人臉信息。
請求信息
| out | 是 | std::vector<TrackFaceInfo> | 返回的檢測到的人臉圖片信息結構體 std::vector *& out 通過傳入TrackFaceInfo的結構體指針引用,在檢測到人臉信息后,用該引用返回人臉信息。TrackedFaceInfo結構體為檢測到的人臉信息,其中:box為檢測到的人臉框(為FaceInfo結構體,包含人臉框大小,中心點坐標,人臉寬度等信息);landmarks為檢測到的人臉關鍵點,一般為144個;score為人臉打分;headPose的向量組為人臉x,y,z的三個角度 |
| Mat | 是 | Opencv格式的單幀圖片mat | 人臉圖片信息 |
| maxTrackObjNum | 是 | int | 最多檢測人臉數量。默認為1,最大不超過5 |
返回信息
返回結果為TrackedFaceInfo的向量指針,向量組為0時候表示沒檢測到人臉。TrackedFaceInfo結構體為檢測到的人臉信息,其中:box為檢測到的人臉框(為FaceInfo結構體,包含人臉框大小,中心點坐標,人臉寬度等信息);landmarks為檢測到的人臉關鍵點,一般為144個;score為人臉打分;headPose的向量組為人臉x,y,z的三個角度。
?
3.2 人臉對比及識別接口
3.2.1 人臉對比接口
方法名
match
方法說明
人臉對比接口(本接口中的image_type為1表示base64圖片編碼,為2表示文件路徑,為3表示face_token)
請求信息
| image1 | 是 | string | 需要對比的第一張圖片,小于10M |
| imgae1_type | 是 | int | 圖片1類型,必選擇以下三種形式之一 BASE64:圖片的base64值; FACE_FILE:圖片的本地文件路徑地址; FACE_TOKEN:face_token 人臉標識; |
| image2 | 是 | string | 需要對比的第二張圖片,小于10M |
| image2_type | 是 | int | 圖片2類型,必選擇以下三種形式之一 BASE64:圖片的base64值; FACE_FILE:圖片的本地文件路徑地址; FACE_TOKEN:face_token 人臉標識; |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
| log_id | string | 請求日志標識 |
| result | array | 識別結果列表 |
| score | string | 相似度分值,0-100,百分制,保留后2位小數點 |
3.2.2 人臉對比接口(傳入二進制圖片buffer)
方法名
match_by_buf
方法說明
人臉對比接口(傳入二進制圖片buffer)
請求信息
| image1 | 是 | Unsigned char * | 需要對比的第一張圖片,小于10M |
| size | 是 | int | 圖片1的大小 |
| image2 | 是 | Unsigned char * | 需要對比的第二張圖片,小于10M |
| size | 是 | int | 圖片2的大小 |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
| log_id | string | 請求日志標識 |
| result | array | 識別結果列表 |
| score | string | 相似度分值,0-100,百分制,保留后2位小數點 |
?
3.3 特征值提取接口
3.3.1 特征值提取接口(通過傳入圖片)
方法名
get_face_feature
方法說明
提取人臉特征值,為512個浮點值,已加密 (本接口image_type 為1表示base64圖片編碼 為2表示文件路徑)
請求信息
| image | 是 | string | 需要檢測的人臉圖片,小于10M, 圖片類型根據image_type參數定 |
| imgae_type | 是 | int | 圖片類型,必選擇以下2種形式之一。 image_type為1代表BASE64,為2代表FACE_FILE。 BASE64:圖片的base64值; FACE_FILE:圖片的本地文件路徑地址; |
| feature | 是 | const float* | 通過傳入const float*指針的引用,來返回提取的人臉特征值 |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
int類型的特征抽取向量數。正常提取成功則返回特征值向量個數(512),若不為512則為返回的錯誤碼.
3.3.2 特征值提取接口(通過傳入二進制圖片buffer)
方法名
get_face_feature_by_buf
方法說明
提取人臉特征值,為512個浮點值,已加密 (傳入二進制圖片buffer)
請求信息
| image | 是 | Unsigned char* | 需要檢測的人臉圖片,小于10M |
| size | 是 | int | 二進制圖片大小 |
| feature | 是 | const float* | 通過傳入const float*指針的引用,來返回提取的人臉特征值 |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
int類型的特征抽取向量數。正常提取成功則返回特征值向量個數(512),若不為512則為返回的錯誤碼.
3.3.3 特征值提取接口(通過傳入opencv的視頻幀)
方法名
get_face_feature
方法說明
提取人臉特征值,為512個浮點值,已加密 (本接口image_type 為1表示base64圖片編碼 為2表示文件路徑)
請求信息
| Mat | 是 | string | 需要提取特征值的OpenCV視頻幀(單幀) |
| feature | 是 | const float* | 通過傳入const float*指針的引用,來返回提取的人臉特征值 |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
int類型的特征抽取向量數。正常提取成功則返回特征值向量個數(512),若不為512則為返回的錯誤碼.
3.3.4 特征值比對接口
方法名
compare_feature
方法說明
對人臉特征值進行比較,可返回人臉特征相似分值(百分制)
請求信息
| feature1 | 是 | std::vector | 512個浮點型的特征值,傳入const的特征值引用 |
| feature2 | 是 | std::vector | 512個浮點型的特征值,傳入const的特征值引用 |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
相似度結果:float類型,百分制的分值
?
3.4 屬性及質量檢測接口
3.4.1 人臉屬性(通過傳入圖片)
方法名
face_attr
方法說明
人臉屬性檢測接口(本接口 image_type 為1表示base64圖片編碼 為2表示文件路徑)
請求信息
| image | 是 | string | 需要檢測的人臉圖片,小于10M, 圖片類型根據image_type參數定 |
| imgae_type | 是 | int | 圖片類型,必選擇以下2種形式之一。 Image_type為1代表BASE64為2代表FACE_FILE。 BASE64:圖片的base64值; FACE_FILE:圖片的本地文件路徑地址; |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
| age(年齡) | int | 人臉年齡范圍0-100,若為-1表示不完整的人臉。 |
| race(種族) | int | 正常人臉標注 0:黃種人 1:白種人 2:黑人 3:阿拉伯人,不完整的人臉標注-1 |
| expression(表情) | int | 0:中性表情,1:微笑,2:大笑 |
| gender(性別) | int | 0: 女 female,1: 男 male,-1: 嬰兒或不好辨別性別 |
| glasses(是否戴眼鏡) | int | 0:不帶眼鏡 no glasses,1:普通透明眼鏡 glasses,2:太陽鏡 sunGlasses |
3.4.2 人臉屬性(通過傳入二進制圖片buffer)
方法名
face_attr_by_buf
方法說明
人臉屬性檢測接口
請求信息
| image | 是 | unsigned char * | 需要檢測的圖片,小于10M,二進制圖片buffer |
| size | 是 | int | 二進制圖片大小 |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
| age(年齡) | int | 人臉年齡范圍0-100,若為-1表示不完整的人臉。 |
| race(種族) | int | 正常人臉標注 0:黃種人 1:白種人 2:黑人 3:阿拉伯人,不完整的人臉標注-1 |
| expression(表情) | int | 0:中性表情,1:微笑,2:大笑 |
| gender(性別) | int | 0: 女 female,1: 男 male,-1: 嬰兒或不好辨別性別 |
| glasses(是否戴眼鏡) | int | 0:不帶眼鏡 no glasses,1:普通透明眼鏡 glasses,2:太陽鏡 sunGlasses |
3.4.3 人臉質量接口(通過傳入圖片)
方法名
face_quality
方法說明
人臉質量檢測接口
請求信息
| image | 是 | string | 需要檢測的人臉圖片,小于10M, 圖片類型根據image_type參數定 |
| imgae_type | 是 | int | 圖片類型,必選擇以下2種形式之一。 Image_type為1代表BASE64為2代表FACE_FILE。 BASE64:圖片的base64值; FACE_FILE:圖片的本地文件路徑地址; |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
| bluriness | float | 光照 |
| illum | float | 模糊度 |
| occl_l_eye | float | 左眼遮擋度 |
| occl_r_eye | float | 右眼遮擋度 |
| occl_nose | float | 鼻子遮擋度 |
| occl_mouth | float | 嘴巴遮擋度 |
| occl_l_contour | float | 左臉遮擋度 |
| occl_r_contour | float | 右臉遮擋度 |
| occl_chin | float | 下巴遮擋度 |
3.4.4 人臉質量接口(通過傳入二進制圖片buffer)
方法名
face_quality_by_buf
方法說明
人臉質量檢測接口
請求信息
| image | 是 | unsigned char * | 需要檢測的圖片,小于10M,二進制圖片buffer |
| size | 是 | int | 二進制圖片大小 |
返回信息
errno信息:
- errno=0 : Success
- errno>0 : 錯誤碼對應的詳細msg
data信息:
| bluriness | float | 光照 |
| illum | float | 模糊度 |
| occl_l_eye | float | 左眼遮擋度 |
| occl_r_eye | float | 右眼遮擋度 |
| occl_nose | float | 鼻子遮擋度 |
| occl_mouth | float | 嘴巴遮擋度 |
| occl_l_contour | float | 左臉遮擋度 |
| occl_r_contour | float | 右臉遮擋度 |
| occl_chin | float | 下巴遮擋度 |
?
4、錯誤碼及錯誤信息
| 0 | SUCCESS | 成功 |
| 1 | SYSTEM ERROR | 系統錯誤 |
| 2 | UNKNOWN ERROR | 未知錯誤 |
| 1001 | NOT_AUTH | 授權校驗失敗 |
| 1002 | REQUEST PARAMS ERROR | 請求參數錯誤 |
| 1003 | DB_OP_FAILED | 數據庫操作失敗 |
| 1004 | NO_DATA | 沒有數據 |
| 1005 | RECORD_UNEXIST | 記錄不存在 |
| 1006 | RECORD_ALREADY_EXIST | 記錄已經存在 |
| 1007 | FILE_NOT_EXIST | 文件不存在 |
| 1008 | GET_FEATURE_FAIL | 提取特征值失敗 |
| 1009 | FILE_TOO_BIG | 文件太大 |
| 1010 | FACE_RESOURCE_NOT_EXIST | 人臉資源文件不存在 |
| 1011 | FEATURE_LEN_ERROR | 特征值長度錯誤 |
| 1012 | DETECT_NO_FACE | 未檢測到人臉 |
?
5、常見問題
Q:激活工具激活時候,提示timeout或者unsupport protocl
A:若提示timeout,請確認設備是否能聯網;若提示unsupport protocl,請確認是否安裝了openssl。
Q:工程運行過程中,提示face-resource不存在
A:SDK需要一些模型文件,在demo工程的face-resource文件夾中,該文件夾需要放置在exe所在路徑的上級目錄下。若放置不正確,可能出現找不到模型文件,沒法進行人臉識別。
Q:工程激活過程中,提示segment fault
A:這是因為工程若沒有激活,便直接執行腳本文件運行可執行文件,請先完成激活操作。
Q:激活后是否可以把激活文件license.ini和license.key拷貝到其他設備運行?
A:不能,離線sdk和設備綁定,每個設備對應一個key和一個license文件,換設備無法運行。
總結
以上是生活随笔為你收集整理的百度人脸识别sdk-转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 调用百度的人脸识别SDK实现人脸检测
- 下一篇: V831 人脸识别