OpenCVの物体追跡
目次 1. OpenCVの物体追跡の概要 1.1 物体追跡とは 1.2 OpenCV 2. 実験 2.1 環境の準備 2.2 コード 2.3 結果の動画 1. OpenCVの物体追跡の概要 1.1 物体追跡とは 物体追跡とは,与えられた動画から,指定した対象が各画像間でどのように移動したかを推定することです。動画の中を移動する物体の動きをトラッキング(追跡)することが出来れば、その物体の変位や速度、加速度といった物理量を計算することが出来ます。 1.2 OpenCVの物体追跡 OpenCVには物体追跡アルゴリズムがopencv-contrib-pythonとして提供されています。画像処理の方法がOpenCVに6つ実装されています。 MIL(Multiple Instance Learning) 考え方としてはBoostingにとても近いけど、分類対象の場所の近傍のサンプルについてもいくつか正の場所として扱うことが特徴です。 cv2.TrackerMIL_create() KCF(Kernelized Correlation Filters) MILの近傍サンプルにはそれぞれ同士でオーバーラップする部分があって、その領域を加味することで性能を上げたらしいです。 cv2.TrackerKCF_create() TLD(Tracking, learning and detection) 性質上、似たような他のものとの入れ替わりには引っ張られたりすることがあります。ただ、長い間遮られたりするものやスケールが大幅に変わるものには適しているらしいです。 cv2.TrackerTLD_create() MedianFlow オブジェクトを時間的に順方向および逆方向の両方で追跡して、これらの軌跡間の差異を測定します。 cv2.TrackerMedianFlow_create() GOTURN 深層学習を使ったトラッキング手法なため、向いているハードウェアに搭載すればとても早いらしいです。 cv2.TrackerGOTURN_create() MOSSE …