如今手機攝影越來越方便,隨手一拍就能記錄美好生活,但照片越多,整理越麻煩,有的時候我們想對照片進行二次加工、分享,需要不停翻找相冊,HMS Core機器學習服務(ML Kit)提供了圖片分類服務,方便用戶在多個場景下快速篩選圖片集、定義圖片題材并標注分類資訊,比如,期末老師時常會要求家長和孩子一起制作親子成長手冊,教育服務類App集成圖片分類服務后可以把一個學期以來的所有照片分類匯總成相冊;出去玩了多個景點或途徑不同城市,旅游分享類App可以幫助用戶整理基于某個位置或某個實物進行圖片分類;在全場景下手機相冊需要把照片同步到大屏上輪播,檔案分享類App可以設定分享規則,分類上傳,
接下來,請開發者們通過以下開發實戰進行體驗,同時期待大家將便捷的圖片分類服務進一步帶給用戶~
開發實戰
1 開發準備
在進行開發前需要配置HMS Core SDK的Maven倉地址:
repositories {
maven {
url'https://cmc.centralrepo.rnd.huawei.com/artifactory/product_maven/' }
}
并集成本SDK:
- dependencies {
- // 引入基礎SDK
implementation 'com.huawei.hms:ml-computer-vision-classification:3.3.0.300' - // 引入圖片分類模型包
- implementation 'com.huawei.hms:ml-computer-vision-image-classification-model:3.3.0.300'
}
然后請參見云端鑒權資訊使用須知,設定您應用的鑒權資訊
2 編輯工程集成
2.1 設定應用的鑒權資訊
可以通過api_key或者Access Token來設定應用鑒權資訊,
通過setAccessToken方法設定Access Token,在應用啟動時初始化設定一次即可,無需多次設定,
MLApplication.getInstance().setAccessToken("your access token");
通過setApiKey方法設定api_key,在應用啟動時初始化設定一次即可,無需多次設定,
MLApplication.getInstance().setApiKey("your ApiKey");
2.2 創建靜態圖片檢測器
// 方式一:端側識別使用自定義引數配置,
MLLocalClassificationAnalyzerSetting setting =
new MLLocalClassificationAnalyzerSetting.Factory()
.setMinAcceptablePossibility(0.8f)
.create();
MLImageClassificationAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalImageClassificationAnalyzer(setting);
// 方式二:端側識別使用默認引數配置,
MLImageClassificationAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalImageClassificationAnalyzer();
2.3 創建MLFrame
// 通過bitmap創建MLFrame,bitmap為輸入的Bitmap格式圖片資料,支持的圖片格式包括:jpg/jpeg/png/bmp,建議圖片尺寸不小于112*112像素,
MLFrame frame = MLFrame.fromBitmap(bitmap);
2.4 呼叫asyncAnalyseFrame方法進行影像分類
Task<List<MLImageClassification>> task = analyzer.asyncAnalyseFrame(frame);
task.addOnSuccessListener(new OnSuccessListener<List<MLImageClassification>>() {
@Override
public void onSuccess(List<MLImageClassification> classifications) {
// 識別成功,
// 遍歷回傳的串列MLImageClassification,獲取分類名稱等資訊,
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
// 識別失敗,
// Recognition failure.
try {
MLException mlException = (MLException)e;
// 獲取錯誤碼,開發者可以對錯誤碼進行處理,根據錯誤碼進行差異化的頁面提示,
int errorCode = mlException.getErrCode();
// 獲取報錯資訊,開發者可以結合錯誤碼,快速定位問題,
String errorMessage = mlException.getMessage();
} catch (Exception error) {
// 轉換錯誤處理,
}
}
});
2.5 識別完成后停止分析器
try {
if (analyzer != null) {
analyzer.stop();
}
} catch (IOException e) {
// 例外處理,
}
3 演示及說明
3.1說明
圖片分類功能包含靜態端側、靜態云側、動態檢測,以上示例僅為靜態端側功能,
3.2 演示

了解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導檔案
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間了解 HMS Core 最新技術資訊~
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/458096.html
標籤:其他
