はじめに
以前、様々な種類のベイズフィルタを使った
位置推定アルゴリズムの紹介をしました。
拡張カルマンフィルタを使用した自己位置推定MATLABサンプルプログラム - MY ENIGMA
Unscentedカルマンフィルタを使用した自己位置推定MATLABサンプルプログラム - MY ENIGMA
Particle Filterを使用した自己位置推定MATLABサンプルプログラム - MY ENIGMA
これらのアルゴリズムは、
事前にパラメータチューニングをすることにより、
ある程度の定常誤差に関しては対応することができます。
シミュレーションなどにおいては、そのままで問題無いことも多いですが、
実環境化のシステムでは問題が生じることがあります。
それは観測値の外れ値(アウトライヤー)です。
GPSによるマルチパスやカメラ画像の白とびなど、
定常誤差と比べると、ありえないほどの大きさの誤差が
位置計測用の観測値に発生することがあります。
そのような誤差をそのままフィルタに取り入れてしまうと、
フィルタの推定が不安定になり、
最悪の場合、フィルタが発散してしまうことがあります。
このような観測値の外れ値対策のために
移動ロボティクスでよく使用される方法が統計的検定です。
または、Fault Detection, Normalized Innovation Squared Test,
Validation Gateとも呼ばれます。
今回は、この外れ値除去の一般的な手法を紹介したいと思います。
カイの二乗検定による外れ値除去
ベイズフィルタにおける一般的な外れ値除去の手法は
統計的手法として有名な、カイの二乗検定を使用するものです。
この手法を一言で説明すると、
運動モデルによる推定位置と、
観測値による推定位置の統計的距離(マハラノビス距離)を計算し、
その距離をカイの二乗確率分布に従って閾値処理をするというものです。
この処理を数式化すると下記の式になります。
この式を満たす観測値を採用することになります。
ここで、x_dは運動モデルによる位置の推定値
x_zは観測値による位置の推定値、
Pはベイズフィルタによって推定されたx_dの共分散行列です。
この不等式の左辺の値は、マハラノビス距離と呼ばれる値で、
相関を考慮した距離を計算できます。
ここで、
各位置の推定値の誤差が正規分布になると仮定すると、
このマハラノビス距離の分布は
カイの二乗分布という確率分布に従うという特徴を利用します。
なぜこのマハラノビス距離の分布が、
カイの二乗分布に従うのかに関しては、下記の資料を見て頂けるとわかると思います。
あとは、この特徴を利用して統計的な検定を実施することができます。
下記のリンク先の表のように、各自由度における棄却確率を選びます。
付表:カイ2乗分布表 chi-square distribution ― 中川雅央(滋賀大学)
例えば推定したい位置が[x,y,yaw]の3次元の場合は、
自由度は3になり、棄却確率を1%にしたい場合は、
マハラノビス距離の閾値を11.3449にします。
そして、観測値を取得する度にマハラノビス距離を計算し、
その距離が閾値を超えた場合、
その観測値は外れ値だと判定し棄却するのです。
カイの二乗検定による外れ値除去の特徴
以上のような統計的検定を実施することで、
ある観測値が正規分布において、
どれくらいの発生確率になるかを判断することができ、
その確率があまりにも低い場合は
観測値を外れ値であると判定することができます。
また、ベイズフィルタの共分散行列を利用して
マハラノビス距離を計算することにより、
その時々の推定誤差の大きさに応じた検定を行うことができます。
例えば、GPSなどにより、頻繁に高精度な位置情報が得られている場合、
推定誤差は小さくなり、共分散行列の値は小さくなります。
するとマハラノビス距離は普段よりも大きな値になるため、
少しの観測誤差が生じた場合でも棄却されやすくなります。
一方、GPSの情報などが長時間得られない場合、
推定誤差は大きくなり、共分散行列は自ずと大きくなります。
するとマハラノビス距離は普段よりも小さい値になるため、
運動モデルの結果に対して、観測値に多少の誤差が生じていても
採用するようになるのです。
以上のように、現在の状況に応じて適切な外れ値除去を実施することができます。