新しい IBM Developer JP サイトへようこそ!サイトのデザインが一新され、旧 developerWorks のコンテンツも統合されました。 詳細はこちら

OpenCV と深層学習による動画内でのオブジェクト・トラッキング

概要

路上の自動車を数えるのであっても、コンベヤー・ベルト上の製品を数えるのであっても、動画を使用したコンピューター・ビジョンにはさまざまな使用ケースがあります。動画を入力として自動ラベリングを使用することで、手作業を減らし、より正確な分類子を作成できます。このコード・パターンでは、動いているオブジェクトを識別する分類子を作成する方法、その分類子を使用してオブジェクトをトラッキングする方法、そしてオブジェクトが指定の領域に入った時点でカウントする方法を説明します。

説明

自動車の通行量であれ、歩行者の数であれ、コンベヤー・ベルトの製品の数であれ、潜在的顧客や既存の顧客、あるいは製品やその他の資産をトラッキングするアプリケーションはさまざまにあります。ビデオ・カメラが至るところに設置されるようになっている中、企業は何らかのコンピューター・ビジョンを使用して、これらのビデオ・カメラから有用な情報を得ることができます。例えば特殊なハードウェアや人によって自動車の通行量をカウントするといった昔ながらの手法よりも、コンピューター・ビジョンを動画に適用するほうが遥かに実用的です。

このコード・パターンでは、IBM Maximo Visual Inspection Video Data Platform、OpenCV、Jupyter Notebook を利用して動画による自動車カウンターを作成する手順を説明します。この手順ではまず、ほんのわずかな手作業によるラベリングと、大々的な自動ラベリングによって、高速道路上の自動車を認識するオブジェクト分類子をトレーニングします。次に、自動車を撮影した別の動画を Jupyter Notebook にロードし、個々のフレームを処理して動画に注釈を付けます。

デプロイされたモデルを推測用に使って、処理後のフレームのサンプルから定期的に自動車を検出します。モデルで推測してから次に推測するまでは、OpenCV を使用してフレームごとに自動車をトラッキングします。検出した自動車をカウントする他、自動車が各車線の「ゴール」を越えた時点でカウントし、それらの自動車の数を毎秒示します。

このコード・パターンを完了すると、以下の方法がわかるようになります。

  • 自動ラベリングを使用して、動画からオブジェクト検出分類子を作成する
  • Jupyter Notebook、OpenCV、IBM Maximo Visual Inspection を利用して動画のフレームを処理する
  • IBM Maximo Visual Inspection を利用して動画フレーム内のオブジェクトを検出する
  • OpenCV を使用してフレームごとにオブジェクトをトラッキングする
  • 動いているオブジェクトが指定の領域に入った時点でカウントする
  • 境界ボックス、ラベル、統計情報によって動画に注釈を付ける。

フロー

フロー

  1. IBM Maximo Visual Inspection Web UI を使用して動画をアップロードします。
  2. 自動ラベリングを使用し、モデルをトレーニングします。
  3. トレーニングしたモデルをデプロイして IBM Maximo Visual Inspection 推測 API を作成します。
  4. Jupyter Notebook を使用して動画に映っている自動車を検出、トラッキング、カウントします。

手順

このパターンの詳細な手順については、README を参照してください。手順の概要は以下のとおりです。

  1. Video Data Platform 内でデータ・セットを作成します。
  2. モデルをトレーニングしてデプロイします。
  3. オブジェクトに自動的にラベルを付けます。
  4. ノートブックを実行します。
  5. 注釈付き動画を作成します。