ジェスチャは背景を切り替え、ライブブロードキャスト配信をより没入感のあるものにします

序文

  今年の流行がさまざまな人々の買い物習慣を変えたため、eコマースの市場シェアは上昇を続け、まったく新しい取引方法としてのライブeコマースはトラフィックの流れを再形成しています。ますます多くの消費者がライブストリーミングを通じて参入しています製品ページ。したがって、より良いライブブロードキャスト効果を得るために、アンカーは製品のハイライト、優先措置、および表示リンクの準備により多くの時間を費やすことがよくあります。各リンクは、最終的なトランザクション結果に直接影響します。かつて、商人が固定の生放送室に商品を持ち込むと、観客に美的疲労を与えやすく、相手が見えないときは興味がないので立ち去ることが多かった。視聴者は元気であり、その結果、ライブ放送の視聴者数は、製品の導入に伴って増加するのではなく、減少する可能性があります。
  Huaweiの機械学習サービスによって開始された画像セグメンテーションテクノロジーの助けを借りて、さまざまな静的および動的シーンをさまざまな製品カテゴリとニーズに応じてリアルタイムでデジタルに置き換えることができ、さまざまなスタイルと背景の切り替えでライブ放送を生き生きと興味深いものにします。このテクノロジーは、セマンティックセグメンテーションを使用してアンカーのポートレートをセグメント化します。たとえば、家具製品を紹介するときは、すぐにホームスタイルの部屋に切り替えることができます。屋外のスポーツ用品を紹介するときは、リアルタイムで屋外に切り替えることもできます。この革新的な体験を通じて、視聴者は自分自身をより良く感じることができます。没入型の代替感。

特徴

  デモは、Huaweiの機械学習サービスが立ち上げた画像セグメンテーションと手のキーポイント認識の2つのテクノロジーに基づいており、ジェスチャーで背景を切り替える機能を開発しています。誤操作を防ぐために、このデモでは、手を強く振っ​​たときにのみ背景を切り替えるように設定されています。カスタム背景を読み込んだ後フォワードスイッチング(右にスワイプ)とバックワードスイッチング(左にスワイプ)をサポートします。操作方法は携帯電話と同じです。ダイナミックなビデオバックグラウンドをサポートします。同時に、バックグラウンドスイッチングやその他のジェスチャ効果にカスタマイズされたジェスチャを使用する場合は、次のことができます。カスタマイズされた開発のためにHuaweiMLKitハンドキーポイント認識を統合します。

ここに写真の説明を挿入
  それは非常に想像力豊かなインタラクティブな体験ですか?それがどのように達成されるかを見てみましょう。

開発ステップ

  1. HUAWEIagcpプラグインとMavenコードベースを追加します。
buildscript {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
    dependencies {
        ...
        classpath 'com.huawei.agconnect:agcp:1.4.1.300'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}
  1. 完全なSDKモードの統合。
dependencies{
     // 引入图像分割基础SDK
    implementation 'com.huawei.hms:ml-computer-vision-segmentation:2.0.4.300'
    // 引入多类别分割模型包
    implementation 'com.huawei.hms:ml-computer-vision-image-segmentation-multiclass-model:2.0.4.300'
    // 引入人像分割模型包
    implementation 'com.huawei.hms:ml-computer-vision-image-segmentation-body-model:2.0.4.300'
    // 引入手势识别基础SDK
    implementation 'com.huawei.hms:ml-computer-vision-handkeypoint:2.0.4.300'
    // 引入手部关键点检测模型包
    implementation 'com.huawei.hms:ml-computer-vision-handkeypoint-model:2.0.4.300'
}
  1. ファイルヘッダーに構成を追加します。
      適用プラグインの後に適用プラグイン:「com.huawei.agconnect」を追加:「com.android.application」


  2.   AndroidManifest.xmlファイルの機械学習モデルを自動的に更新します

    <manifest
    ...
    <meta-data
        android:name="com.huawei.hms.ml.DEPENDENCY"
        android:value="imgseg,handkeypoint" />
    ...
    </manifest>
  3. 画像セグメンテーション検出器を作成します。
MLImageSegmentationAnalyzer imageSegmentationAnalyzer = MLAnalyzerFactory.getInstance().getImageSegmentationAnalyzer();//图像分割分析器
MLHandKeypointAnalyzer handKeypointAnalyzer = MLHandKeypointAnalyzerFactory.getInstance().getHandKeypointAnalyzer();//手势识别分析器

MLCompositeAnalyzer analyzer = new MLCompositeAnalyzer.Creator()
                                    .add(imageSegmentationAnalyzer)
                                   .add(handKeypointAnalyzer)
                                   .create();
  1. 認識結果処理クラスを作成します。
public class ImageSegmentAnalyzerTransactor implements MLAnalyzer.MLTransactor<MLImageSegmentation> {
    @Override
    public void transactResult(MLAnalyzer.Result<MLImageSegmentation> results) {
        SparseArray<MLImageSegmentation> items = results.getAnalyseList();
        // 开发者根据需要处理识别结果,需要注意,这里只对检测结果进行处理。
        // 不可调用ML Kit提供的其他检测相关接口。
    }
    @Override
    public void destroy() {
        // 检测结束回调方法,用于释放资源等。
    }
}

public class HandKeypointTransactor implements MLAnalyzer.MLTransactor<List<MLHandKeypoints>> {
    @Override
    public void transactResult(MLAnalyzer.Result<List<MLHandKeypoints>> results) {
        SparseArray<List<MLHandKeypoints>> analyseList = results.getAnalyseList();
        // 开发者根据需要处理识别结果,需要注意,这里只对检测结果进行处理。
        // 不可调用ML Kit提供的其他检测相关接口。
    }
    @Override
    public void destroy() {
        // 检测结束回调方法,用于释放资源等。
    }
}
  1. アナライザと結果プロセッサのバインドを実現するように認識結果プロセッサを設定します。
imageSegmentationAnalyzer.setTransactor(new ImageSegmentAnalyzerTransactor());
handKeypointAnalyzer.setTransactor(new HandKeypointTransactor());
  1. LensEngineを作成する
Context context = this.getApplicationContext();
LensEngine lensEngine = new LensEngine.Creator(context,analyzer)
    // 设置摄像头前后置模式,LensEngine.BACK_LENS为后置,LensEngine.FRONT_LENS为前置。
    .setLensType(LensEngine.FRONT_LENS)
    .applyDisplayDimension(1280, 720)
    .applyFps(20.0f)
    .enableAutomaticFocus(true)
    .create();
  1. カメラを起動し、ビデオストリームを読み取り、認識します。
// 请自行实现SurfaceView控件的其他逻辑。
SurfaceView mSurfaceView = new SurfaceView(this);
try {
    lensEngine.run(mSurfaceView.getHolder());
} catch (IOException e) {
    // 异常处理逻辑。
}
  1. 検出が完了したら、アナライザーを停止し、検出リソースを解放します。
if (analyzer != null) {
    try {
        analyzer.stop();
    } catch (IOException e) {
        // 异常处理。
    }
}
if (lensEngine != null) {
    lensEngine.release();
}

総括する

  要約すると、この小さな黒いテクノロジーは、パッケージの導入、テストの確立、分析、結果の処理など、いくつかの簡単な手順ですばやく実現できます。さらに、画像セグメンテーション技術を通じて、ビデオWebサイトでのマスクされた弾幕や、人体を覆う弾幕を簡単に回避するためのフロントエンドレンダリング技術と組み合わせたり、既存の素材を使用してさまざまなサイズの美しい写真写真を作成したりするなど、さまざまなことができます。セマンティックセグメンテーションの大きな利点の1つは、セグメント化するオブジェクトを正確に制御できることです。ポートレートに加えて、食べ物、ペット、建物、風景、さらには花や植物もセグメント化でき、コンピューターでプロの画像編集ソフトウェアを使用する必要がありません。アップ。

Githubデモ

開発ガイドラインの詳細については、Huawei DeveloperAllianceの公式ウェブサイトを参照してください。https://developer.huawei.com/consumer/cn/hms/huawei-mlkit


元のリンク:https://developer.huawei.com/consumer/cn/forum/topic/0204395267288570031?fid=18作成
者:timer

おすすめ

転載: blog.51cto.com/14772288/2548295