2017-08-17 - 2018-05-30 (update) |
|
|
*カルマンフィルタとは
主に,時系列的に変化する物体の位置や姿勢を推定するときに利用するアルゴリズムです.求めたいパラメータや観測値に含まれるあいまいさを考慮して計算を行うため,ノイズに対して安定した推定が可能です.
図1はカルマンフィルタを使って画像上の位置を推定する例を示します.ここでは,ランダムにノイズを加えた黒丸の位置を手掛かりに,尤もらしい位置を推定しています.
[img:pngx]
{{small:図1 カルマンフィルタを使った位置の推定 黒丸:観測値,青丸:推定値}}
カルマンフィルタついて詳しく学びたい場合,[1]の文献や[2]のWebサイトが参考になります.
{{small:[1]足立修一, 丸田一郎, "カルマンフィルタの基礎", 東京電機大学出版, 2012}}
{{small:[link:https://www.amazon.co.jp/カルマンフィルタの基礎-足立修一/dp/4501328908/ref=sr_1_1?ie=UTF8&qid=1502946448&sr=8-1&keywords=カルマンフィルタ] }}
{{small:[2]Wikipedia カルマンフィルター}}
{{small:[link:https://ja.wikipedia.org/wiki/カルマンフィルター] }}
*サンプルコード (C++)
ライブラリ:[link:simplesp]
サンプルコード:simplesp/sample/gl/kalmanfilter
円運動する点にノイズを加えたテストデータを観測値として,カルマンフィルタを利用して位置を推定します.
*応用事例
カルマンフィルタの応用事例を紹介します.
**ロケットの制御[3]
ロケットに搭載されているセンサの観測値から,ロケットの状態を推定します.アポロ計画では,ノイズを含む観測値から正確な推定を行うために,カルマンフィルタを利用していたようです.
[img:xwz9]
{{small:図2 カルマンフィルタを使ったロケットの制御 画像出典[3]}}
{{small:[3]A.Kucharski, "Understanding the unseen", Plus magazine}}
{{small:[link:https://plus.maths.org/content/understanding-unseen] }}
**Visual SLAM[4]
画像上の特徴の2次元位置を入力として,カメラの位置姿勢と特徴の3次元位置をカルマンフィルタによって推定します.
[youtube:mimAWVm-0qA]
{{small:[4]AJ.Davision, ID.Reid, ND.Molton, O.Stasse, "MonoSLAM: Real-Time Single Camera SLAM", IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 2007}}
{{small:[link:https://www.doc.ic.ac.uk/~ajd/Publications/davison_etal_pami2007.pdf] }}
**1 point RANSAC[5]
カルマンフィルタでは,不十分な数の観測値からパラメータを推定できます※.その特徴を利用して少数のサンプルでRANSACを行います.これにより,サンプルに外れ値の点が含まれる確率が低くなるため,RANSACの計算効率を向上させることができます.
{{small:※その場合,パラメータの推定精度は落ちるのですが,RANSACにおける外れ値の判断には使えるようです.}}
[youtube:O7aNtlGqQ-U]
{{small:[5]J.Civera, OG.Grasa, AJ.Davison, JMM.Montiel, "1-Point RANSAC for EKF-Based Structure from Motion", Intelligent Robots and Systems (IROS), 2009}}
{{small:[link:http://webdiis.unizar.es/~josemari/civera_etal_iros09.pdf] }}
>> ご意見・ご質問など お気軽にご連絡ください.info