今回はパーティクルフィルタを簡単に紹介。 (Wikipedia: 粒子フィルタ – Wikipedia) これは、一般状態空間モデルにおける状態ベクトルの推定法で、 Wikipediaではなにやら難しげに書かれているように見えますが、 要は、条件付き分布をたくさんのサンプル点で近似表現するだけの手法です。 この手法は、逐次モンテカルロ法とも呼ばれているように、 ランダムサンプリングによるモンテカルロ近似によって状態推定を行います。 パーティクルフィルタを物体追跡に適用するためには、 ・システムモデル(状態遷移関数) ・観測モデル(尤度関数) の2つを設計する必要があります。 今回は状態遷移に線形予測モデル、つまり等速直線運動を仮定し、 尤度(ゆうど:もっともらしさ)は “赤色らしさ” とします。 この尤度関数の設計はOpenCVのサンプルコードからお借りしました。感謝。 wonderflに
First, thanks for the nice example, it is really helpful. Second, a question in order to include velocity the following modification, is enough: int dim = 4; // including velocity ... ... // including velocity float minRange[] = { 0, 0, -1.0, -1.0 }; float maxRange[] = { xRange, yRange, 1.0, 1.0 }; CvMat LB, UB; cvInitMatHeader(&LB, 4, 1, CV_32FC1, minRange); cvInitMatHeader(&UB, 4, 1, CV_32FC1, m
今回はパーティクルフィルタ(ConDensation)を使ったトラッキングを紹介します。 パーティクルフィルタは、モデルの状態を多数の粒子で近似する方法です。 ゴリ押しです。 OpenCV.jpのサンプルでは、尤度(ゆうど)関数がRGB色空間でのユークリッド距離でしたが、 任意色をとるには使いにくいので、本サンプルでは「指定した色の重心との距離」を尤度としています。 #include "ardrone/ardrone.h" #include "opencv2/legacy/legacy.hpp" #include "opencv2/legacy/compat.hpp" #define KEY_DOWN(key) (GetAsyncKeyState(key) & 0x8000) #define KEY_PUSH(key) (GetAsyncKeyState(key) & 0x0001) //
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く