optical flow(LUKAS KANADE法)での速度ベクトルの大きさの補正
Show older comments
opticalflowで(t-1)の画像フレームからtのフレームの解析をした場合に実際の画像データに重ねると速度ベクトルが過少もしくは過大になってしまいます。
移動量を正確に得たいのですが、どのように処理をすればいいか分かりますでしょうか?
LUKAS KANADE方でのオプティカルフローは以下のURLを参考にしています。
estimateFlow関数を使う方法でもなんでも構いません。
6 Comments
flower
on 9 Apr 2023
Atsushi Ueno
on 9 Apr 2023
Edited: Atsushi Ueno
on 9 Apr 2023
>表示されているベクトルは実際の動きよりも大きいように思えるのですが、それを補正する方法はないでしょうか?
プログラム中の u と v の値に倍率を掛け quiver 関数による矢印表示を拡大縮小する事であれば簡単に出来ます。(quiver 関数はUとV(矢印の大きさ)を正規化するので、'AutoScale'機能をOFFにする必要があります)。
% downsize u and v
u_deci = u(1:10:end, 1:10:end) * 10;
v_deci = v(1:10:end, 1:10:end) * 10;
%(中略)
quiver(X_deci, Y_deci, u_deci, v_deci, 'y', 'AutoScale','off');
% 下図の様に個々の矢印の長さが長く表示されます

> 移動量を正確に得たいのですが
演算方法 (畳み込みでエッジを検出し、部分毎に逆行列を演算する) を考えると、最終的に計算されるuとvの値は、窓の大きさ(w)とエッジが検出される「具合」即ち元画像のコントラストや色の違い等によって変わります。
flower
on 10 Apr 2023
Atsushi Ueno
on 10 Apr 2023
LUKAS KANADE法による演算で得られた移動量分布データから上図の様な奇跡を得るのですか。オクルージョン(オブジェクトの重なり)もあるので、車のオブジェクト認識枠が必要になると思います。元画像からオブジェクトを認識し、そのトラッキング処理を組み合わせるのが良いと思います。Computer Vision Toolboxのドキュメントに事例が多数あります。追跡と動き推定 - MATLAB & Simulink - MathWorks 日本
flower
on 12 Apr 2023
Answers (0)
Categories
Find more on 追跡と動き推定 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!