画像分類器の作成のためのソリューション


閉じるこの動画はお気に入りから削除されています.私が使いたいイメージを見つける前に、永遠にかかるようです.coderとして、私はこれの解決があるかどうか疑問に思うことができません.全体のアルバムを整理する方法がありますか?さて、画像分類と呼ばれるサービスを使用して画像分類器を開発する方法を見てみましょう.

開発準備


1 .使用するSDKのMAVENリポジトリアドレスを設定します.
repositories {
    maven { 
url'https://cmc.centralrepo.rnd.huawei.com/artifactory/product_maven/' }
}
2 .画像分類SDKを統合します.
dependencies {
    // Import the base SDK.
    implementation 'com.huawei.hms:ml-computer-vision-classification:3.3.0.300'
    // Import the image classification model package.
    implementation 'com.huawei.hms:ml-computer-vision-image-classification-model:3.3.0.300'

プロジェクト構成


1 .アプリの認証情報を設定します.
この情報はAPIキーまたはアクセストークンで設定できます.
SetAccessStokenメソッドを使用して、アプリケーションの初期化中にアクセストークンを設定します.これは一度だけ設定する必要があります.
MLApplication.getInstance().setAccessToken("your access token");
または、アプリケーション初期化中にAPIキーを設定するためにSetapiKeyを使用します.これは一度だけ設定する必要があります.
MLApplication.getInstance().setApiKey("your ApiKey");
2 .デバイスの静的イメージ検出モードで画像分類アナライザを作成します.
// Method 1: Use customized parameter settings for device-based recognition.
MLLocalClassificationAnalyzerSetting setting = 
    new MLLocalClassificationAnalyzerSetting.Factory()
        .setMinAcceptablePossibility(0.8f)
        .create(); 
MLImageClassificationAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalImageClassificationAnalyzer(setting);
// Method 2: Use default parameter settings for on-device recognition.
MLImageClassificationAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalImageClassificationAnalyzer();
3 . MLFrameオブジェクトを作成します.
// Create an MLFrame object using the bitmap which is the image data in bitmap format. JPG, JPEG, PNG, and BMP images are supported. It is recommended that the image dimensions be greater than or equal to 112 x 112 px.
MLFrame frame = MLFrame.fromBitmap(bitmap);
4 . AsyncAnalseseFrameを呼び出して画像を分類します.
Task<List<MLImageClassification>> task = analyzer.asyncAnalyseFrame(frame); 
task.addOnSuccessListener(new OnSuccessListener<List<MLImageClassification>>() {
    @Override
    public void onSuccess(List<MLImageClassification> classifications) {
        // Recognition success.
        // Callback when the MLImageClassification list is returned, to obtain information like image categories.
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(Exception e) {
        // Recognition failure.
        try {
            MLException mlException = (MLException)e;
            // Obtain the result code. You can process the result code and customize relevant messages displayed to users.
            int errorCode = mlException.getErrCode();
            // Obtain the error message. You can quickly locate the fault based on the result code.
            String errorMessage = mlException.getMessage();
        } catch (Exception error) {
            // Handle the conversion error.
        }
    }
});
5 .認識完了後、アナライザを停止します.
try {
    if (analyzer != null) {
       analyzer.stop();
    }
} catch (IOException e) {
    // Exception handling.
}

デモ



備考


イメージ分類能力は、オン・デバイス静的イメージ検出モード(雲静的イメージ発見モード)とカメラ・ストリーム発見モードを支持します.ここでのデモは最初のモードのみを示します.
私はアプリケーションのシナリオの束の画像分類を使用して、例えば:教育アプリを思い付いた.画像分類の助けを借りて、そのようなアプリは、ユーザーが別のアルバムに期間中に撮影画像を分類することができます旅行アプリ.画像の分類は、そのようなアプリは、彼らが撮影されているか、または画像内のオブジェクトによって、画像を分類することができますファイル共有アプリ.イメージ分類は、この種のアプリのユーザーがイメージカテゴリーによってアップロードして、イメージを共有するのを許します.
イメージ分類Development Guide
開発者議論に加わるReddit
サンプルコードをダウンロードするGitHub
統合問題を解決するStack Overflow