AI監視カメラを活用した画像解析技術は目まぐるしく進化しており、ビジネスの課題解決に導入される方が増えています。
いざ導入を決定して、自社で画像解析アプリケーションを開発することになれば、開発するための専用ツールを使いこなす必要があります。世の中には画像解析アプリケーション開発に関する情報は点在していますが、役立つ情報がまとめられているものは少なく、またソフトウェアエンジニアにとって全く新しい環境に慣れる必要があり、開発に苦労する方が多いという現状があります。
本記事では、画像解析アプリケーション開発をこれから始められる方や、すでに挑戦して挫折してしまった方に、全5話のシリーズ記事で、開発に必要となる基礎知識についてできる限り難しい言葉を使わずに解説します。
[AI画像解析アプリ開発に必要な知識]
第1話 NVIDIA DeepStream SDKとは
第2話 GStreamerとは
第3話 パイプラインの設計
第4話 アプリケーションの開発
第5話 プラグインの開発
IVAとは?
突然ですが、IVAという言葉をご存じでしょうか?IVAはIntelligent Video Analytics(インテリジェント・ビデオ分析)の略で、AIを応用することで、カメラ画像から優れた洞察をリアルタイムに得ることを可能とする技術です。小売店舗内で顧客の導線(動線)を解析して収益改善を図る、歩行者と車両の流れを解析して渋滞改善を図る、駐車場の空きをリアルタイムに把握、不審者や不審物を素早く見つけて防犯に役立てるなど非常に多くの応用が考えられます。
実際のIVAアプリケーションのデモ動画をご覧ください。
(「第4話 アプリケーションの開発」までご覧いただくと下記のようなデモを試していただけます。)
これらを実現するにはすでにパッケージ化されたアプリケーションを活用するか、自社で開発をするか、2つの選択肢があります。パッケージより精度を上げたりカスタマイズをしたい場合や、自社製品として販売したい場合は、後者のIVAアプリケーション開発をすることになります。
それでは、開発を進める上で必ず知っておくべきツールについてご紹介していきます。
DeepStream SDKとは?
DeepStream SDKとは、画像処理用のソフトウェア開発キットのことで、NVIDIA GPUを利用した高度なIVAアプリケーションの開発を容易にするものです。開発フローの中にはいくつかパターン化されている部分があり、それらを0から作るのではなくモジュール化することで開発を加速させることが可能です。
DeepStream SDKの仕組み
GStreamer
DeepStream SDKはGStreamerと呼ばれるマルチメディアフレームワークをベースに構成されています。GStreamerはプラグインと呼ばれる機能ブロック同士を接続してアプリケーションを構築します。その柔軟なプログラミングモデルによって多チャンネル入力対応のIVAアプリケーションを容易に実現できます。
GStreamerについては、「第2話 GStreamerについて」で詳しく解説しています。
NVIDIA TensorRT
DeepStream SDKにはNVIDIA TensorRTを利用した高速ディープラーニング推論機能が組み込まれているので、ユーザーの用意した学習済みモデルを高速に処理できます。
ビデオ・デコーディング機能
IVAアプリケーションに共通に必要とされる(GPUで高速化された)ビデオ・デコーディング機能も組み込まれており、IP監視カメラから配信されてきたH.264、H.265ビデオ・ストリームをハードウェアで効率的にデコードできます。
データ分析のフロー 出典:NVIDIA DeepStream SDK
DeepStream SDKを使う理由
幅広いユースケースと分野に対応
スマートシティー、小売店舗の購買解析、製造業の外観検査、物流など幅広いユースケースに対応したアプリケーションを構築できます
性能重視
NVIDIA社製GPUに最適化されており、低遅延と卓越した性能を発揮します
市場投入の時間短縮
すぐに使える機能ブロックとIPで、差別化部分の開発に注力できます
クラウド対応
クラウド上で動作するアプリケーション/サービスも構築できます
容易なデプロイメント
・Dockerコンテナとして容易にデプロイメントできます
・組み込み用Jetsonモジュールからデータセンター用Tesla GPUカードまで、NVIDIA社の幅広いGPU製品に対応します
柔軟性とカスタマイズ性
提供されるプラグインまたは独自に開発したプラグインをプラグ・アンド・プレイでつなぎ替えてアプリケーション開発できます
DeepStream SDKの処理性能
1080p30動画を入力し、物体の検出と追跡をする場合の処理チャンネル数(最大値)は以下のとおりで、非常に高い処理性能を発揮します。
NVIDIA製品 |
処理チャンネル数(最大値) |
|
H.264の場合 |
H.265の場合 |
|
Jetson Nano |
8 |
8 |
Jetson TX1 |
8 |
8 |
Jetson TX2 |
14 |
14 |
Jetson AGX Xavier |
32 |
49 |
Tesla T4 |
35 |
68 |
次はIVAアプリ開発者なら必ず知っておきたい、GStreamerについてご紹介!
本記事では、IVAアプリケーション開発を加速するNVIDIA DeepStream SDKについて、仕組みや使われる理由についてご紹介しましたが、いかがでしたでしょうか。
次回はGStreamerとは何か、その基本構成要素について解説します。
こんな方が2話以降をダウンロードしています
実際にダウンロードいただいた方の声をご紹介します。
「今行っている開発で、Jetson上でGStreamerのプラグインを作ろうとしているのですが、
検索したら丁度良い記事を見つけたのでダウンロードしてみました。今まさに見てるところですが大変ためになります!」
IVA開発をご検討の方は、ぜひお問い合わせください
IVAの導入に向けて、弊社ではハードウェアのNVIDIA GPUカードやGPUワークステーションの選定やサポート、また顔認証、導線分析、骨格検知のアルゴリズム、さらに学習環境構築サービスなどを取り揃えております。お困りの際は、ぜひお問い合わせください。