【連載】

機械の目が見たセカイ -コンピュータビジョンがつくるミライ

30 動く人・物を追跡する(4) - OpenCVのトラッキング手法(後編)

30/40

第27回から第29回にわたって、OpenCVを用いたトラッキングの実装方法、トラッキング手法についてご紹介してきました。今回は、OpenCVに実装されているトラッキング手法のうち最後の1つであるKCFを紹介したいと思います。

KCFの特徴

KCF(Kernelized Correlation Filter)[1][2]は、Boosting、MILと同様に追跡中の物体の画像を随時学習しながら追跡します。しかし、Boosting、MILのようなSVMやBoostingなどの一般的な2クラス識別器を用いた手法(図1:上段)と異なり、KCF(図1:下段)はFFT(Fast Fourier Transform)によりメモリ使用量を抑えつつ、かつ高速に物体を学習し追跡することができます。また、一般的な2クラス識別器を用いた手法は、物体の予測位置の周辺からランダムに探索窓(subwindow)をサンプリングし識別処理を行いますが、KCFでは1画素ずつ密に探索窓をシフトさせた画像群をFFTにより解析的に処理することができるという特徴があります。

図1 2クラス識別器を用いた手法(上段)とKCF(下段)の比較

KCFの概要

KCFではSVMなどと同様に、入力x(画像の画素値の系列や特徴量ベクトル)に重みwを掛け、バイアスbを足すことで得られる出力値f(x)から画像中に映っている物体が対象としている物かどうかを判定します(式1)。式1は説明を簡単にするために線形識別関数としています。

式1

学習フェーズでは、この重みw、バイアスbの最適値を式2の目的関数を最小化することで求めます。L( )はロス関数で、推定結果f(x)と真値yの誤差が大きい程大きな値を取ります。λの掛かっている項は正則化項と呼ばれ、重みwが大きな値を取り複雑なモデルになり過ぎないようにするためのものです。

物体の追跡では、真値yは追跡対象の物体が1, それ以外が0となります。KCFでは、2クラス識別である必要が無いため、論文では追跡対象の物体を1、そこから位置がずれるにつれて0に近づくような真値を与え、回帰問題として解いています。

式2

KCFの最も興味深い点は、探索窓を追跡対象の物体領域周辺で1ピクセルずつシフトした画像群を生成し、それらを式1に示すcirculant matrixes(巡回行列)として扱うことです(式3)。この巡回行列では、1ピクセルずつシフトした画像は行列の各行に該当します。

式3 circulant matrix (巡回行列)

そして、この巡回行列とベクトルの積は、式4の通りフーリエ空間のみで計算することができます。この巡回行列の特性を用いることで、繰り返し処理が不要な高速処理が実現できるわけです。

式4

物体の追跡処理では、学習フェーズで求めた重みwとバイアスbを用いてf(x)の値を計算し、その最大値を追跡対象の物体位置とします。

KCFによるトラッキング結果は動画1の通りです。筆者が使ってみた感想としては、人間の手など見え方が変化する物体でも最も高精度に追跡することができていました。動きが速い物体の場合、巡回行列の生成範囲を超えてしまう可能性があるのでOpenCVのソースコードに手を加える必要があるかもしれません。実際に、TLDなどと性能を比較してみることをお勧めします。KCFの詳細について知りたい方は、参考文献[1][2]を読んでみて下さい!

動画1 KCFによるトラッキング結果

参考文献

[1] Henriques, J., Caseiro, R., Martins, P., & Batista, J. Exploiting the circulant structure of tracking-by-detection with kernels. In proceedings of the European Conference on Computer Vision, 2012.
[2] Danelljan, M., Khan, F. S., Felsberg, M., & Weijer, J. Van De.: Adaptive Color Attributes for Real-Time Visual Tracking. In CVPR2014.

著者プロフィール

樋口未来(ひぐち・みらい)
日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション技術の研究に携わる。

日立製作所を退職後、2016年6月にグローバルウォーカーズ株式会社を設立し、CTOとして画像/映像コンテンツ×テクノロジーをテーマにコンピュータビジョン、機械学習の研究開発に従事している。また、東京大学大学院博士課程に在学し、一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。

専門:コンピュータビジョン、機械学習

30/40

インデックス

連載目次
第40回 ハードウェアの基礎知識(4) - GPGPU
第39回 ハードウェアの基礎知識(3) - レンズ
第38回 ハードウェアの基礎知識 (2) - 電子シャッター
第37回 コンピュータビジョン分野で活躍する企業・フリーランサー インタビュー(3)
第36回 領域分割(3) - CRFを用いたSemantic Image Segmentation
第35回 領域分割(2) - Mean Shift法を用いたImage Segmentation
第34回 領域分割(1) - 概要編
第33回 見えないものを観る(3) - 目に見えない光「赤外線」を観る
第32回 見えないものを観る(2) - 絵画の下書きを観る
第31回 見えないものを観る(1) - 映像から音を復元する
第30回 動く人・物を追跡する(4) - OpenCVのトラッキング手法(後編)
第29回 動く人・物を追跡する(3) - OpenCVのトラッキング手法(中編)
第28回 動く人・物を追跡する(2) - OpenCVのトラッキング手法(前編)
第27回 動く人・物を追跡する(1) - OpenCVによるトラッキング
第26回 インターネット上の画像群からTime-lapse映像を自動生成する手法の概要
第25回 一人称視点(3) - Social Saliency
第24回 一人称視点(2) - Social Interaction
第23回 一人称視点(1) - 概要
第22回 行動認識(3) - Two-stream ConvNets
第21回 行動認識(2) - 動きの特徴量(HOF、MBH)
第20回 行動認識(1) - Dense Trajectories
第19回 視線計測(3) - カメラのみを用いた視線計測
第18回 視線計測(2) - 近赤外の点光源を用いた視線計測
第17回 視線計測(1) - 導入編
第16回 コンピュータビジョン分野における機械学習(4) - Deep Learning
第15回 コンピュータビジョン分野における機械学習(3) - 識別器
第14回 コンピュータビジョン分野における機械学習(2) - 顔検出・人検出
第13回 コンピュータビジョン分野における機械学習(1) - 導入編
第12回 コンピュータビジョン分野の市場分析(1) - 自動車編
第11回 コンピュータビジョン分野で活躍する企業・フリーランサー インタビュー(2)
第10回 カメラを用いた3次元計測(4) - Structure from Motion
第9回 カメラを用いた3次元計測(3) - サブピクセル推定
第8回 カメラを用いた3次元計測(2) - ステレオカメラ
第7回 コンピュータビジョン分野で活躍する企業・フリーランサー インタビュー(1)
第6回 カメラを用いた3次元計測(1)
第5回 意外と知らないカメラキャリブレーション
第4回 ハードウェアの基礎知識
第3回 コンピュータビジョンの要素技術と応用範囲(後編)
第2回 コンピュータビジョンの要素技術と応用範囲(前編)
第1回 普及期に入ったコンピュータビジョン

もっと見る



人気記事

一覧

イチオシ記事

新着記事