第27回では、OpenCVを用いたトラッキングの実装方法、トラッキング結果についてまとめました。今回は、OpenCVに組み込まれている5つのトラッキング手法のうち、Boosting、MIL、Median Flowの3つをご紹介します。
Boosting
Boostingを用いたトラッキング[1]の概要は図1のとおりです。まず追跡対象物の近傍領域からPositiveサンプル、その周辺の領域からNegativeサンプルを生成し、識別器(AdaBoost)を学習します。そして、探索領域内の各領域(sub-patches)が追跡対象物らしいか否かを識別器により求めます。そして追跡対象物らしさが最大となる箇所を新たな物体位置とするとともに、PositiveサンプルとNegativeサンプルを更新します。
MIL(Multiple Instance Learning)
MIL(Multiple Instance Learning)を用いたトラッキング[2]の概念は、図2(c)のとおりです。図2(a)、(b)はBoostingを用いたトラッキングの枠組みです。
Multi Instance Learningで用いる学習データは、「複数のサンプルの中にPositiveサンプルがあります」という形でサンプルの集合(bag)に対してラベルが与えられます。トラッキング中の物体の周辺からPositiveサンプルを切り出した際に、トラッキング誤差の影響ですべてのサンプルが本当にPositiveであるとは限りません。そこで、Multi Instance Learningの枠組みを導入することで、複数のサンプルをひとつの集合(bag)として扱い、そのbagのなかにPositiveサンプルだけでなくNegativeも入ってしまうことを許容したものが、MILを用いたトラッキングです。
Median Flow
Median Flow[3]の処理の概要は図3のとおりです。まず、追跡対象のBounding boxをグリッド状に分割します。そして、各グリッド内の点をLucas-Kanade Trackerにより追跡し、点の動き(Flow)を求めます。最後に、トラッキングエラーが大きいグリッドを除去し、残ったFlowの中央値を用いてBounding boxの座標を更新します。
次回ご紹介するTLD、KCFの方が新しい手法で、トラッキング精度も高いですが、今回ご紹介した3つの手法の概要だけでも頭の片隅に置いておくと良いでしょう。独自に新しいトラッキングアルゴリズムを開発するときに役に立つはずです。
参考文献
[1] Grabner, H., Grabner, M., & Bischof, H.: Real-time tracking via on-line boosting. In BMVC, 2006.
[2] Babenko, B., Yang, M. H., & Belongie., S.: Visual Tracking with Online Multiple Instance Learning. In CVPR, 2009.
[3] Kalal, Z., Mikolajczyk, K. & Matas, J.: Forward-Backward Error: Automatic Detection of Tracking Failures. In ICPR, 2010.
著者プロフィール
樋口未来(ひぐち・みらい)
日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション技術の研究に携わる。
日立製作所を退職後、2016年6月にグローバルウォーカーズ株式会社を設立し、CTOとして画像/映像コンテンツ×テクノロジーをテーマにコンピュータビジョン、機械学習の研究開発に従事している。また、東京大学大学院博士課程に在学し、一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。
専門:コンピュータビジョン、機械学習