見出し画像

AI知覚サービスに使用されるDeepStreamコンテナには、YOLOv8モデルから最適化されたNVIDIA TensorRTエンジンを作成し、モデルの出力を解析するためのカスタム機能を含むライブラリを使う

問題は、インテリジェント交通システム(ITS)の導入とその効果的な運用に関する課題です。

背景として、ITSは都市の交通を効率化し、安全性を向上させ、環境への負荷を軽減するために設計されています。これにより、リアルタイムの交通データを分析し、交通の流れを最適化し、混雑を減らすことが可能になります。特に、NVIDIAのJetPack 6.0とYOLOv8を使用したシステムは、エッジコンピューティングを活用し、ビデオデータをリアルタイムで処理することで、迅速かつ正確な交通インサイトを提供します【5†source】。

ITSの重要性は、交通管理が都市の発展に直結する点にあります。交通の混雑は経済的損失を引き起こし、環境に悪影響を及ぼします。また、交通事故の減少や交通法規の遵守促進により、市民の安全を確保することも不可欠です。さらに、リアルタイムの交通データを活用することで、都市計画や公共交通機関の運営においても重要なデータを提供することができます。

ITSアプリケーションの構成要素として、ビデオストレージツールキット(VST)サービス、AI知覚サービス、AI分析サービスの3つが主要な役割を果たします。VSTはビデオデータのエントリポイントであり、Jetsonベースのプラットフォームでカメラとビデオストリームを効率的に管理し、複数のビデオソースからハードウェアアクセラレーションビデオデコード、ストリーミング、ストレージを提供します。このセットアップでは、ビデオ入力ファイルはRTSPを使用してVSTにストリーミングされます。次に、ビデオデータは、高いスループットのためにYOLOv8オブジェクト検出モデルを使用してNVIDIA DeepStream SDKを活用するAI Perceptionサービスに流れ込み、続いてNvDCFトラッカーを使用してオブジェクトを追跡します。パイプラインは、NVIDIA Metropolisスキーマに基づいてメタデータを生成し、シーンで検出されたさまざまなオブジェクトのクラスとローカリゼーション情報をキャプチャします。

YOLOv8(You Only Look Onceバージョン8)は、リアルタイムの物体検出において比類のないスピードと精度を誇る最先端のモデルです。このモデルは、エッジデバイスに展開するために特に設計されており、NVIDIA Jetsonプラットフォームと組み合わせることで、交通監視システムにおいて非常に効果的に機能します。YOLOv8は、車両、歩行者、交通標識などの物体をリアルタイムで検出して分類する能力を持ち、これにより交通の流れの管理と最適化、道路の安全性の向上、自動交通システムのサポートに必要なデータを提供します。

YOLOv8モデルのセットアップには、ultralytics GitHubリポジトリからモデルをダウンロードすることから始まります。この投稿では、YOLOv8のリリースバージョンがトレーニングされたCOCOデータセットの車、バス、トラッククラスを使用しています。ユーザーは、各データセットライセンスが目的に適合していることを確認する責任があることに注意してください。次に、モデルをNVIDIA TensorRT実行エンジンに変換し、NVIDIA Jetsonのハードウェア機能に最適化する必要があります。DeepStreamマイクロサービスコンテナには、このプロセスを合理化するのに役立つスクリプトが付属しています。

セットアップスクリプトを実行するには、まず、Jetsonプラットフォームサービスドキュメントのクイックスタートセクションに記載されている手順に従って、マイクロサービス、リファレンスアプリケーション、およびNVStreamerをインストールする必要があります。その後、RTSPを介して入力として使用されるビデオファイルをストリーミングするようにNVStreamerを設定します。

例えば、Jetson AGX Xavierの場合、以下のコマンドを実行します:

sudo docker run -v ./yolov8s:/yolov8s -v ./config/deepstream:/ds-config-files --rm --runtime nvidia nvcr.io/nvidia/jps/deepstream:7.0-jps-v1.1.1 /yolov8s-files/yolov8s_setup.sh --agx

このコマンドは、YOLOv8モデルをPyTorchからONNX形式に変換し、TensorRTエンジンを生成するプロセスを含みます。セットアップには約15〜30分かかり、以下のファイルが生成されます:

  • ./yolov8s/calib.table

  • ./yolov8s/model_b4_gpu0_int8.engine

  • ./yolov8s/yolov8s-dependencies/yolov8s.onnx

AI知覚サービスに使用されるDeepStreamコンテナには、YOLOv8モデルから最適化されたNVIDIA TensorRTエンジンを作成し、モデルの出力を解析するためのカスタム機能を含むライブラリも含まれています。これにより、DeepStream推論プラグインを設定するために必要なカスタム関数を定義できます。

アプリケーションの実行準備が整ったら、Docker Composeを使用してアプリケーションをデプロイします。例えば、Jetson AGX Xavierの場合、以下のコマンドを使用します:

sudo docker compose -f compose_agx_yolov8s.yaml up -d --force-recreate

これにより、AI-NVRスタックが起動し、車両トラフィック分析を実行できるようになります。車両トラフィック分析は、AIアナリティクスサービスのTripwire(ラインクロッシング)およびTrajectory機能を使用して実行されます。これらの分析を設定するには、REST APIを使用します。例えば、特定のセンサーに対してTripwire分析を設定するには、次のAPIを使用します:

POST /api/analytics/tripwire
{
  "sensor_id": "<SensorID>",
  "start_time": "2024-06-01T00:00:00Z",
  "end_time": "2024-06-01T23:59:59Z",
  "line_segments": [
    {"x1": 0, "y1": 0, "x2": 100, "y2": 100}
  ]
}

これにより、指定された時間範囲内で設定されたラインセグメントを横断する車両の総数を記録することができます。また、特定の時間範囲にわたる車両トラフィックの傾向やヒートマップを生成することも可能です。

さらに考慮すべき事項として、次の点が挙げられます:

  1. ITSの導入に伴うプライバシー保護の問題やデータセキュリティの確保。

  2. 新しい技術を既存のインフラストラクチャに統合する際の課題。

  3. 持続可能な交通システムの構築に向けた政策と規制の整備。

これらの要素を総合的に考慮し、ITSの導入と運用を進めることが、今後の都市交通の発展において重要です。

この記事が気に入ったらサポートをしてみませんか?