10-13 人物仮想背景機能サンプルチュートリアル

画像セグメンテーションのもう一つの応用、仮想背景置き換えへようこそ。本章では、前章の画像セグメンテーションの「頭脳」を引き続き使用しますが、今回は「上位版」の Custom API を解放します。外部画像をデータストリームに変換し、AI エンジンへ直接注入する方法を学びます。これにより、AI が完璧なグリーンスクリーン級の背景除去合成を行ってくれます。

学習目標

本章を通して、以下を学びます。

1. 高度な属性 API (_EX)の理解 : 単一の数値(浮動小数点数)を渡す方式から、背景画像全体の配列データを下層へ渡す方式へ進みます。

2. 仮想背景の解像度制限の理解 : OpenCV の画像リサイズ (cv::resize) を実装し、下層エンジンが要求する厳格な 1920×1080 サイズ制限を満たします。

準備作業

「背景ぼかし」と「背景置き換え」は、どちらも下層では「人物の輪郭を見つける(Segmentation)」技術に依存しているため、モデルファイルは完全に共通です。プロジェクトのビルド出力ディレクトリに、前章と同じ QDEEP.OD.SEGMENTATION.PERSON.LIGHT.CFG と対応する重みファイルが存在することを確認してください。


image.png

 

コア API はどのように変更するのか

プロジェクトを開き、モデル設定タイプを変更してください。 QDEEP_CREATE_OBJECT_DETECT で、Enum を QDEEP_OBJECT_DETECT_CONFIG_MODEL_HUMAN_BACKGROUND_REMOVAL 変更します。

QDEEP_CREATE_OBJECT_DETECT

これは AI エンジンを作成し、「頭脳」(モデル)を読み込むための最も重要な API です。ユーザーはこの API を通して検出器を初期化する必要があります。

QDEEP_SET_OBJECT_DETECT_CUSTOM_PROPERTY_EX

10-12 では、 QDEEP_SET_OBJECT_DETECT_CUSTOM_PROPERTY を使用して 0~100  の  float 値を渡し、ぼかし強度を制御しました。しかし今回は、AI に渡すものは「1枚の画像」です。画像には大量の配列データが含まれるため、その 拡張版 API を使用する必要があります。

➤ 注意:現在、仮想背景画像は 1920×1080 のみサポートされています。

QDEEP_OBJECT_DETECT_BOUNDING_BOX 構造体

AI エンジンは、この構造体内の pImageResultBuffer パラメータを通して、計算済みの高画質画像ピクセル(BGRA 形式)をこのメモリ領域へ直接書き込み、私たちが取得できるようにします。


コアコードの作成

プロジェクトを開き、10-12 のコードに重要な微調整を加えます。

モデルを読み込み、外部画像を読み込み、_EX API を呼び出す

コンストラクタ MainWindow::MainWindow(...) の中で、仮想背景専用のモデル設定 QDEEP_OBJECT_DETECT_CONFIG_MODEL_HUMAN_BACKGROUND_REMOVAL に切り替えます。コンストラクタ内で検出器を作成した後、前章のぼかし API を削除し、以下の「画像読み込み、リサイズ、注入」の標準 S.O.P に置き換えてください。

まず、メモリを宣言し、デストラクタ内で画像メモリを安全に解放する必要があります。

image.png
 

次に、  malloc を使用して、ヘッダーファイルで宣言した m_pPictureBuffer  のメモリを確保します。必要なサイズは bgraImage.total() * bgraImage.elemSize() です。その後、 memset で初期化し、 memcpy を使って変換後の OpenCV 画像データをこのバッファへ安全にコピーします。


image.png

10-12 の ImageBuffer 処理アーキテクチャを再利用する

ここからは非常に簡単です。下層では同じように処理済みの高画質 BGRA 画像が出力されるため、接続成功時の Buffer 宣言や、OpenCV で表示画像を置き換えるロジックを変更する必要はまったくありません。

最終確認

左下の 「Build and RUN」 をクリックしてプロジェクトを実行してください。

1. プロジェクトの実行ディレクトリに、好きな風景画像を1枚用意し、 bk.jpgという名前にしてください。

2. 左下の 「Build and RUN」 をクリックしてプロジェクトを実行します。

3. 受信と検出を開始します。

image.png
 

カメラの前に入ると、まるでニューススタジオやハリウッドのグリーンスクリーン撮影スタジオにいるように見えるでしょう。背後にあった散らかったオフィスは完全に消え、代わりに先ほど注入した bk.jpg の風景画像が表示されます。さらに、輪郭部分の背景除去効果は非常に滑らかで自然です。

Copyright © 2026 YUAN High-Tech Development Co., Ltd.
All rights reserved.