本記事では、Global Tracking Transformersと呼ばれる機械学習手法を用いて、動画の物体追跡を行う方法をご紹介します。
Global Tracking Transformers
概要
Global Tracking
Transformers(GTR)は、動画中の複数のオブジェクトを追跡するTransformerベースの物体追跡技術(global
multi-object tracking)です。
GTRは、動画から生成したフレーム画像からオブジェクトの特徴量をエンコードし、trajectory
queriesを使用してそれぞれのオブジェクトを追跡します。
また、ペアワイズなどの組み合わせの関連付けを必要とせず、物体検出と物体追跡をEnd
to Endにトレーニング可能にしています。
MOT17ベンチマークや、検出クラス数の多いTAOデータセットなどで従来技術に匹敵、あるいは上回るパフォーマンスを示しています。
詳細はこちらの論文をご参照ください。
本記事では、上記手法を用いて、任意の動画の物体追跡を実施する方法をご紹介します。
デモ(Colaboratory)
それでは、実際に動かしながら物体追跡を行っていきます。
ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。
GitHub - Colaboratory demo
また、下記から直接Google Colaboratoryで開くこともできます。
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
環境セットアップ
それではセットアップしていきます。 Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。
GTRの動作に必要なdetectron2をインストールします。
論文発表元のGitHubからGlobal Tracking Transformersのコード取得します。
ライブラリをインストールします。
以上で環境セットアップは完了です。
学習済みモデルのセットアップ
続いて、論文発表元より提供されている学習済みモデルをセットアップします。
gdownを使用して、/content/GTR/pretrained
にモデルをダウンロードしています。
テスト動画のセットアップ
任意の動画をGoogle Colaboratoryにアップロードします。
本記事では、こちらのPexels様の動画を使用させて頂きます。
物体追跡
それでは物体追跡を実行します。
オブジェクトの追跡結果を追記した動画がoutputで指定したディレクトリに出力されます。
約8秒ほどの動画で3分ほど処理時間を要しました。検出クラスの多さからか、やや遅めといった印象です。
出力された動画を表示します。
出力結果は以下の通りです。
人物の追跡もさることながら、多くのオブジェクトが追跡されています。
まとめ
本記事では、Global Tracking Transformersを用いた物体追跡を行いました。
追跡可能なオブジェクトは非常に多いですが、処理速度が気になるところです。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
0 件のコメント :
コメントを投稿