Hailo-8によるマルチカメラ複数人物再同定

オフィスビルを歩く人々のグループ。

異なるストリームにわたる複数人物の再同定は、マルチカメラによる追跡によって実現されるセキュリティや小売アプリケーションに不可欠です。これには、特定の場所で、時間をかけて特定の人物を複数回同定したり、複数の場所をつなぐ痕跡に沿って同定したりすることが含まれます。これを実現するには、ハイパフォーマンス・コンピューティングが必要です。Hailo-8 AIプロセッサは、エッジデバイス上で正確なリアルタイムの複数人物再同定に必要な効率性を提供すると同時に、ビデオ解析を強化し、人々のプライバシーを損なうことなくコストを抑えます。このブログ記事では、マルチカメラトラッキング技術を使用してこのタスクを正確に実行するためのエンドツーエンドのリファレンス・パイプラインをご紹介します。 

複数のビデオストリームでの複数人による再識別追跡は、ビデオ監視システムにおける共通機能です。この機能は通常、ディープラーニングによって実装され、さまざまなストリームやビデオ全体にわたって人物を検出し、識別することを目的としています。複数人物の再識別機能は、安全、セキュリティ、およびデータ分析に使用され、顧客、訪問者、従業員の行動に関する貴重な情報を明らかにします。一般的に広く使用されているテクノロジーと考えられていますが、遮蔽や各カメラのさまざまな条件(画角や照明など)により、正確なトラッキングには大きな課題が生じます。 

Multi-camera tracking system using Hailo-8
図 1 — 複数人物再同定出力のためのマルチカメラトラッキング。このシステムは、異なるフレームやビューを横断する複数の人物を再同定できます。 

エッジデバイス上で複数人物再同定アプリケーションを使用してマルチカメラトラッキングを実行する利点は次のとおりです:  

  • 未加工の動画を送信する必要がなくなるため、プライバシーを保護し、データ保護を向上します。 
  • リアルタイムアラートに不可欠な検出遅延を改善します。 

Hailo-8は、エッジデバイスで正確なリアルタイムの人物再同定を実現するのに最適なAIアクセラレータです。また、その計算能力は、高品質の再同定に不可欠な高い確度で、多数の人物を同時に高精度で処理することを可能にします。Hailo-8は、1台の AIアクセラレータ で複数のカメラをリアルタイムに処理できるため、設置やメンテナンスにかかるシステムコストを削減します。

Hailo TAPPAS マルチカメラ再同定およびトラッキング・パイプラインは、組み込みホスト上のGStreamerと、FHD入力解像度の4台のRTSP IPカメラでHailo-8をリアルタイムで実行(バッチ処理なし)することで実装されています。ホストはエンコードされたビデオをイーサネット経由で取得し、デコードします。デコードされたフレームは PCIe 経由で Hailo-8 に送られ処理され、最終出力が画面に表示されます。  

Hailo-8 processor powering multi-camera system
図2 — Hailo-8で動作するマルチカメラ複数人物用アプリケーションのシステム図.

アプリケーション・パイプライン

アプリケーション・パイプライン全体を次の図に示します。まず、エンコードされた入力がデコードされ、デワープされて、処理のために整列されたフレームが取得されます。デワーピングは、カメラによって生じる歪みを除去するために使用される一般的なコンピュータ・ビジョン・コンポーネントです。たとえば、魚眼歪みは監視カメラでよく見られます。次に、フレームはHailo-8AIプロセッサに送信され、各フレーム内のすべての人物と顔が検出されます。各ストリーム内のオブジェクトの初期トラッキングには、Hailo GStreamer トラッカーを使用します。最後に、各人物は元のフレームから切り取られ、再同定ネットワークに入力されます。このネットワークは、各人物を表す埋め込みベクトルを出力し、異なるカメラ間で比較することができます。埋め込みは「ギャラリー」と呼ばれるデータベースに保存され、その中を検索して、各人に最終的なIDを割り当てます。最終的な出力には、フレーム内の人物のプライバシーを保護するために、各々の顔をぼかす顔匿名化ブロックも含まれています。 

すべてのニューラルネットワーク(NN)モデルは、Hailo データフローコンパイラ を使用してコンパイルされ、事前学習済みのウェイトとコンパイル済みモデルは Hailo Model Zooでリリースされました。Hailo Model Zooには、他のシナリオへの適応が容易になるように、カスタムデータセット用の再学習ドッカー環境も提供します。すべてのモデルは比較的一般的なユースケースで学習されており、特定のシナリオに合わせて(サイズ/精度/fpsの点で)最適化できることに注意してください。

Multi-camera tracking system using Hailo-8
図3 — Hailo-8によるマルチカメラ複数人物再同定アプリケーションのCVパイプライン。青色は Hailo-8 デバイス上で実行されるブロック、オレンジ色は組み込みホスト上で実行されるブロック。 

複数人/顔検出

人物/顔検出ネットワークはYOLOv5sをベースにしており、人物と顔の2つのクラスがあります。YOLOv5は、2020年にリリースされた高精度な 1段階の物体検出器であり、Pytorchで学習されています。検出ネットワークを学習するために、いくつかの異なるデータセットをキュレートし、それらを同じアノテーションフォーマットに揃えました。COCO、Open Imagesなどの公開データセットには、人物または顔のアノテーションしか含まれていない場合があり、それらを使用するために両方のクラスに完全な注釈を生成したことにご留意ください。顔へのアノテーションには、公開されているデータセットで学習された最先端の顔検出モデルを使用しました。YOLOv5などの強力なNNを使用して人物や顔を検出すると、高精度かつ遠距離で検出できるため、小さな物体でも検出および追跡できます。

Parameters  Compute (MAC) Input Resolution Training Data Validation Data Accuracy

7.25M

8.38G

640x640x3

149k images
(internal dataset)

6k images
(internal dataset)

47.5mAP*

 

*YOLOv5s network trained on COCO2017 achieves only 23AP on the same validation dataset.

人物再同定

人物再同定ネットワークはrep-VGG-a0に基づいており、クエリごとに長さ 2048 の単一の埋め込みベクトルを出力します。ネットワークは、以下のリポジトリを使用してPytorchで学習されました。検証データセット(Market-1501)のRank-1の精度を向上させるために、さまざまな再同定データセットを1つの学習手順に統合しました。より大規模で多様な(複数のソースからの)学習データを使用することで、現実世界のシナリオをより適切に一般化できる堅牢なネットワークを構築することができました。Hailo Model Zooでは、再学習の手順と、事前学習したウェイトからネットワークを学習するための完全なドッカー環境を提供しています。 

Parameters  Compute (MAC) Input Resolution Training Data Validation Data Accuracy

9.65M

0.89G

256x128x3

660k images
(internal dataset)

3368/15913
queries/gallery images
(Market-1501)

90% Rank1

 

AI surveillance with multi-camera tracking
図 4 — 再同定ネットワークの例。ネットワークは各人物のベクトルを出力するので、それを人物のギャラリーと比較して、最終的な検証精度を得ることができます。 

Hailo TAPPASを使ったパイプラインの展開

Hailo TAPPASの一部としてアプリケーションをリリースしました。サンプルアプリケーションは C++ の GStreamer を使用してパイプラインを構築し、ビデオファイルまたは RTSP カメラから実行できるようにします。アプリケーションを制御できるその他の引数には、検出器(検出閾値など)、トラッカー (キープ/ロストフレームレートなど)、品質推定 (最低品質閾値) のパラメータ設定などがあります。 

Hailo Model Zooでは、独自のデータでNNを再学習し、TAPPASアプリケーションに移植することで、迅速なドメイン適応とカスタマイズを行うこともできます。マルチカメラによる複数人物再同定アプリケーションの目標は、Hailo-8と組み込みホストプロセッサ上で監視パイプラインを構築するための迅速なプロトタイピングと強固なベースラインを提供することです。 

HailoRT(Hailoのランタイム・ライブラリ)の一部として、Hailo-8チップ上で推論用のGStreamerプラグイン(libgsthailo)をリリースしました。このプラグインは、チップ上の設定と推論プロセス全体を処理するため、Hailo-8をGStreamerパイプラインに簡単かつシンプルに統合できます。また、複雑なパイプラインを容易にするために、単一のHailo-8チップ上でマルチネットワーク・パイプラインの推論を可能にします。当社が導入したもう 1 つの HailoRT コンポーネントはネットワーク・スケジューラです。このHailoRTコンポーネントは、ネットワークの切り替えを自動化することで、単一のHailoデバイス上で複数のネットワークを実行する使い方を簡素化します。どのネットワークをいつ実行するかを手動で決定する代わりに、ネットワーク・スケジューラは各ネットワークの実行時間を自動的に制御します。スケジューラを使用することで、Hailo-8を使ったパイプラインの開発は、より簡潔にシンプルで効率的なものになります。 

HailoRTとは別に、このアプリケーションでは以下のGStreamerプラグインも導入しました。 

  • デワーピング: TAPPASに実装されたGStreamerプラグインを使用すると、カメラの歪みを修正できます。デワーピングはOpenCVを使用して実装されており、現在、魚眼の歪みを修正しています。 
  • ボックスの匿名化: TAPPASに実装されたGStreamerプラグインを使用すると、予測されたボックスに含まれた画像内のボックスをぼかすことができます。たとえば、すべての顔を予測した後に、画像内の顔の匿名化を行います。 
  • ギャラリー検索: GStreamer プラグインは、パイプラインにデータベース・コンポーネントを追加します 。ギャラリー・コンポーネントにより、新しいオブジェクトを追加し、データベース内で一致するオブジェクトを検索できます。このアプリケーションでは、再同定ベクトルをプッシュして新しいベクトルと比較し、異なるカメラやタイムスタンプ間の予測を関連付けます。

このように、RSC101は6台のカメラと500ドルの予算で、中小企業に必要なすべての監視機能を効果的にサポートします。実際、RSC101の性能は必要要件を上回っています。すべてのビデオ分析に統合された高い計算能力を持つAIプロセッサを活用することで、最先端の深層学習アルゴリズムを使用することができ、その結果、高性能で高度な機能を実現できました。26TOPS の AI 計算能力により、さまざまなイベント検出タイプの最先端の深層学習アルゴリズムへの移行をサポートすることで、将来のエンハンス開発を保証します。RSC101の機能により、最高の費用対効果のソリューションとして使用することができます。既存の監視システムに4~8台のカメラを追加することで、ビデオ解析用の計算能力がすでにフル活用されている場合にも対応できます。

性能

次の表は、FHD入力解像度(1920×1080)の4台のRTSPカメラを使用した、Hailo-8およびx86ホストプロセッサ上のマルチカメラ複数人物トラッキング・アプリケーションの性能と、NNスタンドアロン性能の内訳をまとめたものです。

FPS Latency Accuracy

Full Application

30 (per stream)

90% Rank-1

Standalone person/face detection

379

5.93ms

47.5mAP

Standalone Re-ID

1015

1.77ms

90% Rank-1

* Measured with Compulab (x86, i5)

Hailo マルチカメラ複数人物再同定アプリケーションは、Hailo TAPPASでGStreamerに展開されたリファレンス・パイプライン全体と、Hailo Model Zooによるカスタマイズを可能にする各NNの再学習機能を提供します。このアプリケーションは、Hailo-8を使用してVMS製品を構築するためのベースラインを提供します。詳細については、TAPPAS documentationをご覧ください。 

この記事は、タミール・タプヒ、アミット・クリンガー、オマー・ショレフ、ロテム・バー、ユヴァル・ベルザーの共著です。 

Don’t miss out

Sign up to our newsletter to stay up to date