Android整合百度人臉識別SDK詳細流程
最近需要對接百度的人臉識別採集,並且呼叫百度的api,進行人臉比對,在這裡做一個總結,讓後來的碼友少走一些坑。
前提準備
註冊
進入https://console.bce.baidu.com此地址進行百度賬號的註冊以及登入,登陸之後選擇人臉識別進行建立應用,找不到的直接進入https://console.bce.baidu.com/ai/#/ai/face/overview/index此地址建立新應用,新建立的應用有6個月的測試時間,6個月足夠我們測試上線了。
建立應用
建立應用時人臉識別是預設勾選的,如果有其它功能可自行選擇,將其按照規定填寫完畢之後,點選立即建立就好了。
基礎資訊認證
建立應用之後選擇自己的需求,我這邊需要離線採集SDK,另外有離線識別SDK可供選擇,區別自己去看百度文件吧,我這裡的流程按照離線採集sdk,離線識別sdk與此流程基本一樣,選中之後需要進行資訊認證,如下圖介面:
此處稽核通過後會有簡訊通知,一般來說一天直接就可以稽核通過,當時2個小時我的就稽核通過了。
授權
申通通過之後再次選中離線識別sdk進入,會讓使用者新建授權,如下介面:
此處的的安卓簽名MD5需要注意一下,點選什麼是安卓簽名MD5,如何讓獲取,會有獲取步驟。當時我電腦jdk版本為jdk-13.0.1
,使用此處的方法獲取不到MD5,只有SHA1以及SHA256,後來百度搜出的結果可能是10以上版本獲取不到MD5,這個時候我下載了jdk1.8.0_202
版本,配置環境後,成功獲取到MD5,建立成功後有6個月有效期。
開發資源下載
下滑會看到以下介面,選擇Android,進行下載對應的SDK就可以了,
此處會自動下載配置好Android Studio專案,下載好修改buile.grade中的
classpath 'com.android.tools.build:gradle:3.5.2'
為你之前專案的版本,並且開啟grade->wrapper->gradle-wrapper.properties
也修改為distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
之前專案的版本,以上操作是為了使用Android Studio開啟此專案的時候不會因為版本不匹配而報錯,這個時候使用Android Studio開啟此專案基本上沒什麼問題了。
此時執行的時候可能還有一些包名路徑錯誤問題,刪除重新匯入就好了。還需要注意一下把百度文件說明中需要修改的key,id這些東西填寫一下,並且有的地方包名會報錯,修改一下就好了。
我為什麼不選擇上方這種方案,原因有二:
- 這種方式適用於專案剛開始階段,像我之前已經寫好了,只需要加入百度人臉採集的這種,需要把程式碼搬運進來,或者把百度人臉採集搬運過去,這個時候我選擇了把百度官方下載的程式碼搬運過去。
- 官方下載的Android Studio是使用3.0以下版本的Android Studio寫的,專案比較老舊,而我使用的是3.0以上版本,這個時候我果斷放棄上方方案。
匯入百度SDK
- 將其demo中assets下的idl-license.face-android拷貝到新專案中
- 將其demo中 facesdk拷貝到新專案目錄下,
在app下的build.grade中加入
implementation project(":facesdk")
在settings.grade中的incluse後加入
,":facesdk"
最後點選Sync now
-
-在app下的build.grade中加入以下程式碼,並且填寫對應的引數,以下def alias對應你簽名時的別名,def password對應簽名密碼,def
filePath對應簽名路徑,填好之後點選右上角Sync Nowdef alias = "您的keyAlias" def password = "您的keyPassword" def filePath = "您的storeFile" //簽名檔案路徑 如:../faceprint.jks debug { keyAlias alias keyPassword password storeFile file(filePath) storePassword(password) } release { keyAlias alias keyPassword password storeFile file(filePath) storePassword(password) } } ```
-
在app下的build.grade中新增依賴:
implementation 'com.squareup.okhttp3:okhttp:3.6.0'
此依賴是demo中獲取token而使用,不想要使用okHttp可以自己換一種方法。
- 這個時候在新專案中新建資料夾,將其demo中的所有java檔案以及xml佈局檔案拷貝進來,拷貝進來之後會有包名路徑不對的問題,在java檔案中進行刪除重新導包就行了,有些可能還會遇到找不到RecycleView,這個時候可以自己新增RecycleView依賴:
implementation 'com.android.support:recyclerview-v7:25.1.0'
這時還需要將demo中values下的dimens.xml(整個檔案)以及strings.xml(自定義的字串)也貼上到新專案中,在demo下的mipmap-xxhdpi有兩張圖片也複製一下,在AndroidManifest.xml中新增相對應的activity,例如:
<activity
android:name=".ui.activity.DetectActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
<activity
android:name=".ui.activity.TrackActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
<activity
android:name=".ui.activity.AttrActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
將其程式入口路徑改為拷貝進來的MainActivity.java。
到這時基本上已經差不多了,還有最後一步。
在Config.java檔案中
public static String apiKey = 替換為你的apiKey(ak);
public static String secretKey = 替換為你的secretKey(sk);
public static String licenseID = "mattress-face-android";
public static String licenseFileName = "替換為你的licenseFileName";
替換為你申請應用的key就可以了,licenseFileName 就是剛開始時assets中新增檔案的名字。
專案中需要更改開啟哪個攝像頭,百度提供前置攝像頭,後置攝像頭以及usb攝像頭,
private void setCameraType(CameraImageSource cameraImageSource) {
// TODO 選擇使用前置攝像頭
//cameraImageSource.getCameraControl().setCameraFacing(ICameraControl.CAMERA_FACING_FRONT);
// TODO 選擇使用usb攝像頭
cameraImageSource.getCameraControl().setCameraFacing(ICameraControl.CAMERA_USB);
// 如果不設定,人臉框會映象,顯示不準
previewView.getTextureView().setScaleX(-1);
// TODO 選擇使用後置攝像頭
// cameraImageSource.getCameraControl().setCameraFacing(ICameraControl.CAMERA_FACING_BACK);
// previewView.getTextureView().setScaleX(-1);
}
執行的時候全域性搜尋一下自己更新一下就可以了。
對於程式碼中註釋挺全的,根據自己需求更改就好。
相關文章
- Android平板百度人臉識別開發Android
- 百度人臉識別模組使用分享
- java 百度人臉識別 介面程式碼Java
- 美顏SDK人臉表情識別技術詳解
- 百度開放人臉識別離線SDK 一個SDK打包三大能力
- 百度人臉對比
- SpringBoot整合Mybatis超詳細流程Spring BootMyBatis
- 智慧人臉識別門禁系統開發,人臉識別開鎖流程
- 美顏sdk中的人臉美型實現流程詳解
- Android 超簡單整合活體檢測技術 快速識別“假臉”Android
- 深度人臉識別中不同損失函式的效能對比函式
- 直播美顏SDK的人臉識別技術進階知識
- 如何在移動應用中整合美顏SDK實現人臉識別和美化功能
- java 呼叫百度人臉對比api介面JavaAPI
- 模型僅有7M:輕量級高精度人臉識別方法DBFace模型
- 小程式--人臉識別功能(百度ai)AI
- 人臉美化和人臉識別在美顏SDK中的具體應用
- 虹軟人臉識別SDK - Java服務端的那些事Java服務端
- Java 離線人臉識別SDK 支援arcface 2.0 最新版Java
- 美顏SDK與人臉識別技術有哪些關聯?
- 基於Android平臺實現人臉識別Android
- 人臉識別全志T509工業級Android晶片商湯演算法sdk說明Android晶片演算法
- 關於美顏sdk中人臉識別專案的設計思路
- opencv 人臉識別OpenCV
- 如何最佳化並改進美顏sdk人臉識別技術?
- 美顏sdk人臉識別技術在其它領域有哪些作用?
- 影片美顏SDK工具中人臉識別技術的發展歷程
- 機器視覺之人臉識別的流程及主要技術視覺
- 車牌識別SDK
- Android Service和IntentService知識點詳細總結AndroidIntent
- RK3399 android7.1 wifi晶片識別流程AndroidWiFi晶片
- 人臉識別之特徵臉方法(Eigenface)特徵
- 美顏sdk的人臉表情識別是依靠什麼技術實現的?
- 人臉識別之Python DLib庫進行人臉關鍵點識別Python
- 以美顏sdk為例,詳解sdk接入流程
- 美顏api中2D人臉識別的技術流程API
- 名片識別,史上最簡單的整合攻略來啦!附有SDK包
- 如何從零開始整合DTM Android SDKAndroid