10-4 顔 / 頭部 / 身体検出機能のサンプルチュートリアル
In 10-3 人物検出機能のサンプルチュートリアル では、「人物検出」モデルをプロジェクトにインポートすることに成功しました。本章では、コードを大幅に書き換えることなく、モデルファイルを置き換えるだけで、ソフトウェアを瞬時に進化させ、「顔、頭部、男性の身体、女性の身体」の4つの異なる特徴を同時に認識するスーパーパワーを持たせます!
学習目標
この章を通じて、以下のことを学びます:
1. QDEEP AI エンジンの高度に「モジュール化」された利点を体験する。
2. 単一の API パラメータを変更するだけで AI モデルをシームレスに切り替える方法をマスターする。
3. 複数クラスのラベル ( Class Names ) と専用カラー ( Colors ) の配列を拡張し、豊富なマルチターゲットの視覚的マーキングを実現する。
準備作業
AI に新しい認識能力を持たせるには、「新しい頭脳に交換」する必要があります。
1. YUAN から提供された Face/Head/Body 検出モデルの圧縮ファイル(ファイル名に FACE.HEAD.BODY 関連の用語が含まれている可能性があります)を見つけてください。
2. 解凍後、QDEEP.OD.FACE.HEAD.BODY.CFG ( 設定ファイル ) と QDEEP.OD.FACE.HEAD.BODY.WEIGHTS ( 重みファイル ) をコピーして取り出します。
3. これら2つのファイルを、現在の Qt プロジェクトのビルド出力ディレクトリ(実行ファイルと同じ階層)に直接貼り付けます。

コア API はどう変更するのか?
前の章を思い返すと、オブジェクト検出エンジンを制御するために5つのコア API を使用しました。朗報なのは、今回のアップグレードでは、 QDEEP_CREATE_OBJECT_DETECT API のパラメータを変更するだけで済むということです!
QDEEP_CREATE_OBJECT_DETECT
これは、AI エンジンを作成し、頭脳(モデル)をロードするための最も重要な API です。ユーザーは、この API を通じて検出器を初期化する必要があります。
QDEEP_OBJECT_DETECT_BOUNDING_BOX 構造体
API は変わっていませんが、より多くの特徴を認識できる AI の頭脳に交換したため、返されるデータもより豊富になりました!
前の章で紹介した QDEEP_OBJECT_DETECT_BOUNDING_BOX 構造体を思い出してください。画像を入力すると、AI はこの構造体を通じてオブジェクトの nClassID (クラスインデックス) を返します。元の人物モデルでは、 nClassID は常に 0 ( Person を表す ) しか返しませんでした。しかし、この全く新しいモデルでは、nClassID は4つの異なるオブジェクトタイプを正確に定義します:


残りの START、 STOP、NV12 画像の供給 (SET_BUFFER)、および DESTROY の API ロジックは、変更する必要が全くありません!これが SDK の統一されたインターフェース設計の強力な点です。
コアコードの記述
10-3で完了したプロジェクトを開き、以下の2つの簡単な手順に従って変更を加えてください:
モデル読み込み名の変更

クラス名とカラー配列の拡張

最終確認
こんなに簡単です!わずか10行未満のコードを変更するだけで、AIシステムの巨大なアップグレードが完了しました。
では、左下の「Build and RUN」をクリックしてプロジェクトを実行してください:
1. カメラのRTSP URLを入力し、START RECEIVERをクリックして映像を取得します。
2. START DETECTIONをクリックして、マルチオブジェクトAI分析を起動します。

➤ テスト結果:人物が画面に入ると、非常に驚くべき視覚効果が見られます:
• AIは正確に人の顔に緑色の枠 ( Face ) を描画します。
• 頭部全体に青緑色の枠 ( Head ) を描画します。
• さらに同時に身体の特徴を判断し、青色の枠 ( Male Body ) または黄色の枠 ( Female Body ) を描画します!
➤ 温かいリマインダー ( 非常に重要 ):このソフトウェアを「初めて」開く ( プログラムを実行する ) 瞬間、インターフェースが表示されるまで少し待つ必要があるかもしれませんが、慌てないでください!これは、「AIモデルを読み込む」ロジックをプログラムのコンストラクタ内に記述しているためです。モデルの初回実行時には初期化設定を行う必要があり、この時システムは巨大なニューラルネットワークの重みファイルをGPUに読み込もうと懸命に処理を行っています。ソフトウェアが正常に開けば(初回読み込みの完了)、AIの頭脳がバックグラウンドで準備完了したことを意味します!今後、ソフトウェアを再度開く際には、この初期化の待機時間は必要ありません!
これら2つの章の実践を通じて、NexVDO SDKにおけるQDEEPエンジンの「オブジェクト検出 (Object Detection)」開発の真髄を完全にマスターしました。将来、どのようなオブジェクト認識機能であっても、どうすればよいかお分かりでしょう——モデルを変更し、配列を変更するだけで、すべて完了です!