第21回の記事で、機械学習を用いて画像から顔・人を検出する技術を紹介しましたが、動画像中から人物の行動を認識する技術もあります。
第27回目となる今回は、その行動認識のために開発された「Dense Trajectories」(参考文献:H. Wang, A. Klaser, C. schmid, and C. Liu, “Action Recognition by Dense Trajectories”, in CVPR2011)を紹介します。

Dense Trajectoriesとは?

Dense Trajectoriesは、簡単に言うと、密な特徴点追跡と特徴記述の2つの要素技術からなります。
特徴点追跡によって得られる、密な特徴点の軌跡を用いることから、Dense Trajectoriesと呼ばれています。

密な特徴点追跡

Dense Trajectoriesでは、フレーム間(時刻tと時刻t+1)のOptical Flow(各特徴点のフレーム間の動き)を計算し、得られたOptical Flowを時系列方向に連結していくことで特徴点の軌跡を得ます。

具体的には、映像を段階的に縮小することで解像度の異なる複数の画像系列を生成し、その各解像度の画像系列ごとにOpenCVにも実装されているFarneback Optical Flowを用いて時刻tと時刻t+1の間のOptical Flowを計算します。そして、Median FilterによりフィルタリングしたOptical Flowを連結していくことで、特徴点のTrajectory(軌跡)を生成します。

特徴記述

特徴記述では、得られたTrajectoryごとに特徴量を抽出します。具体的には図1のとおり、各Trajectoryの周辺領域から、局所特徴量であるHistograms of Oriented Gradients(HOG)、Histograms of Optical Flow(HOF)、Motion Boundary Histograms(MBH)、さらに特徴点の軌跡の形状特徴を求めます。HOGについては、本ブログの第21回で紹介しています。

HOF、MBHについては、フレーム間の動きの情報をヒストグラム化した特徴です。次回以降に紹介しますので、今回は概要だけ説明すると、HOFは、Optical Flowの方向・強度をヒストグラム化した特徴量です。MBHは、密なOptical Flowを空間方向(横軸方向、縦軸方向)に微分した結果から、HOGと同じ枠組みでヒストグラム特徴を生成します。そして、軌跡の形状特徴には、時刻tと時刻t+1の間のOptical Flowの変化量を用います。

図1 Dense Trajectoriesの特徴記述(出典:H.Wang, A. Klaser, C. schmid, and C. Liu, “Action Recognition by Dense Trajectories”, in CVPR201)

図1 Dense Trajectoriesの特徴記述
(出典:H.Wang, A. Klaser, C. schmid, and C. Liu,
“Action Recognition by Dense Trajectories”, in CVPR201)

Dense Trajectoriesによる行動認識

Dense Trajectoriesによる行動認識は、各Trajectoryから取得した局所特徴量から、Bag-of-wordsやFisher Vectorにより特徴量ベクトルを生成し、SVMなどの機械学習を用いて人物の行動を認識します。このDense Trajectoriesを用いることで、歩く、走る、サイクリング、握手などの行動を高精度に認識することが可能となります。

しかし、いくつか欠点もあります。1つ目は、行動の速さが異なると得られる特徴量が変化してしまうことです。2つ目は、動作の方向が逆の場合に同じ特徴量が得られないことがあげられます。そして3つ目は、カメラ位置(人の行動を撮影している角度)が変わると、得られる特徴が変化するため性能が低下することです。Dense Trajectoriesを利用する際は、これらの欠点を考慮して設計する必要があります。

Dense Trajectoriesのコードは公開されていますので、興味のある方はダウンロードして試してみてください!

次回は、今回紹介したDense Trajectoriesでも採用されている、Histogram of Optical Flow(HOF)、Motion Boundary Histograms(MBH)について説明します!