Intel RealSense SDKのバックグラウンドセグメンテーション





このドキュメントでは、開発者がIntel RealSense SDKのバックグラウンドセグメンテーション(BGS)を使用して、エキサイティングな新しいコラボレーションアプリケーションを作成する方法について説明します。 プログラムの予想される動作とさまざまなシナリオでのパフォーマンスについて説明し、製品を顧客に提供する前に開発者が覚えておくべき制限を指定します。 この記事の主な対象読者は、BGSおよびOEMを使用する開発チームです。



KDPV-BGSのアプリケーションの例としてのCyber​​link YouCam RXアプリケーション。



応用分野



バックグラウンドセグメンテーション(BGS)は、コラボレーションおよびコンテンツ作成アプリケーション向けのIntel RealSenseカメラの重要な機能です。 特別な機器や後処理なしでバックグラウンドをリアルタイムで分離する機能は、既存の電話会議アプリケーションにとって非常に興味深い追加機能です。



BGSテクノロジーを使用して、既存のアプリケーションを改良したり、新しいアプリケーションを作成したりする大きな可能性があります。 たとえば、消費者は、ビデオチャットセッション中に別のプログラムを通じてYouTubeで友人と共有コンテンツを表示できます。 従業員は、仮想会議の共通のワークスペースに重ねられた互いの画像を見ることができます。 開発者は、BGSを統合して、カメラや画面共有を使用するアプリケーションで背景や背景ビデオを変更するなど、新しい使用シナリオを作成できます。 上と下に、Intel RealSenseカメラを使用するアプリケーションを示します。 さらに、開発者は、セルフィーの撮影や背景の変更など、他の使用シナリオを考案し、コラボレーションツール(ブラウザー、オフィスアプリケーション)を使用して共有や共同編集を行い、たとえば異なる背景のカラオケビデオを作成できます。





BGSを使用してアプリケーションを個人する



バックグラウンドセグメンテーションを使用したサンプルアプリケーションの作成



必要条件



この記事では、開発者がサンプルアプリケーションの背景をビデオや他の画像に置き換える方法を説明します。 また、出力画像を背景画像と混合するためのコードスニペットを提供し、パフォーマンスへの影響について説明します。



現在のバックグラウンドセグメンテーションの実装は、YUY2およびRGB形式をサポートしています。 許容される解像度は、360pから720p(カラー画像の場合)および480p(深度画像の場合)です。



以下の図は、BGSパイプラインの一般的なビューを示しています。 深度とカラーフレームは、Intel RealSenseカメラによって記録され、メインSDK(つまり、Intel RealSense SDKランタイム)に転送されます。 アプリケーションから受信した要求に基づいて、フレームはUser Extractionブロックに配信され、RGBA形式のセグメント化された画像が形成されます。 他のRGB画像とのアルファブレンディングをこの画像に適用して、最終的な背景画像出力を生成できます。 開発者は任意のメカニズムを使用して画面上の画像を混合できますが、最高のパフォーマンスはGPUを使用して実現されます。





BGSコンベヤー



以下では、3Dセグメンテーションを開発者アプリケーションに統合する方法について説明します。



1.次のIntel RealSense SDKコンポーネントをインストールします。



2. Webインストーラーまたはスタンドアロンインストーラーを使用して、コアおよび個々のコンポーネントのみをインストールします。 ランタイムはUACモードでのみ設定できます。

intel_rs_sdk_runtime_websetup_x.xxxxxxxx --silent --no-progress --accept-license = yes --finstall = core、personify --fnone = all ''

次のIntel RealSense SDK APIを使用して、システムにインストールされているランタイムを確認できます。

// session is a PXCSession instance PXCSession::ImplVersion sdk_version=session->QueryVersion();
      
      





3. 3Dカメラを使用するインスタンスを作成します。 これにより、3次元アルゴリズムの操作用のパイプラインが作成されます。

 PXCSenseManager* pSenseManager = PXCSenseManager::CreateInstance();
      
      







4.目的の中間モジュールの電源を入れます。 アプリケーションに必要なモジュールのみを含めることをお勧めします。

 pxcStatus result = pSenseManager->Enable3DSeg();
      
      





5.アプリケーションに必要なプロファイルを指定します。 より高い解像度とより高いフレームレートで実行すると、負荷が増加します。 プロファイルを転送して、カメラから目的のストリームを取得します。

 PXC3DSeg* pSeg = pSenseManager->Query3DSeg(); pSeg->QueryInstance<PXCVideoModule>()->QueryCaptureProfile(profile, &VideoProfile); pSenseManager->EnableStreams(&VideoProfile);
      
      







6.カメラコンベアを初期化し、最初のフレームを中間レベルに移動します。 この段階は、すべての中間レベルに必要であり、コンベアの動作に必要です。

 result = pSenseManager->Init();
      
      





7.カメラからセグメント化された画像を取得します。 出力イメージは、中間レベルからRGBA形式で出力され、セグメント化された部分のみが含まれます。

 PXCImage *image=seg->AcquireSegmentedImage(...);
      
      





8.セグメント化された画像を独自の背景とブレンドします。

ご注意 GPUではなくCPUで実行される場合、混合はパフォーマンスに大きく影響します。 サンプルアプリケーションはCPUで実行されます。



以下は、画像をシステムメモリに転送するためのコードスニペットです。srcDataはpxcBYTE型です。

 segmented_image->AcquireAccess(PXCImage::ACCESS_READ, PXCImage::PIXEL_FORMAT_RGB32, &segmented_image_data); srcData = segmented_image_data.planes[0] + 0 * segmented_image_data.pitches[0];
      
      





ブレンドとレンダリング





性能



次の要因がアプリケーションの動作に影響します。



次の表は、第5世代Intel Core i5プロセッサーの負荷を示しています。

レンダリングなし CPUレンダリング GPUレンダリング
720p、30 fps 29.20% 43.49% 31.92%
360p、30 fps 15.39% 25.29% 16.12%
720p、15 fps 17.93% 28.29% 18.29%


独自のコンピューターでレンダリングの効果をテストするには、-noRenderパラメーターを指定して、このパラメーターを指定せずにサンプルアプリケーションを実行します。



BGSテクノロジーの制限



ユーザーのセグメンテーションはまだ進化しており、SDKの新しいバージョンごとに品質が向上しています。

品質を評価する際に覚えておくべきこと。



IntelがBGSテクノロジーをレビュー



ソフトウェアの品質を改善するには? あなたの最善の策は、フィードバックを残すことです。 開発者が新しいIntel RealSense SDKで再テストしたい場合、同様の環境でスクリプトを実行することは困難です。



異なる実行間の不一致を減らすには、問題を再現するために使用される入力シーケンスを削除して、品質が向上しているかどうかを確認することをお勧めします。



Intel RealSense SDKには、再生用のシーケンスを組み立てるのに役立つサンプルアプリケーションが付属しています。



デフォルトでインストールされている場合、サンプルアプリケーションはC:\ Program Files(x86)\ Intel \ RSSDK \ bin \ win32 \ FF_3DSeg.cs.exeフォルダーにあります。 アプリケーションを起動し、以下のスクリーンショットに示されている手順に従います。







画面に自分が表示され、背景が削除されます。



シーケンス再生



記録モードを選択すると、セッションのコピーを保存できます。 これで、アプリケーションFF_3DSeg.cs.exeを開き、再生モードを選択して記録を表示できます。



おわりに



Intel RealSenseテクノロジーの中間バックグラウンドセグメンテーションモジュールは、ユーザーに刺激的な新機能を提供します。 新しい使用パターンの中には、背景をビデオまたは他の画像に変更し、セグメント化された画像でセルフィーを作成するものがあります。



参照資料




All Articles