gggggraziegrazie

graizegrazieさんのやったこと、学んだことを記録する雑記帳です

Kaze特徴量

Kazeは、非線形拡散フィルタを用いて算出する特徴量。SIFTやSURFなどのガウシアンフィルタ(線形拡散フィルタ)を使った特徴量は、物体のエッジ部分がぼやけてしまい、局所的な特徴がうまく取れないことがあった。それに対し、非線形拡散フィルタを使うKazeは、非等方的な計算を行うためにエッジ部分がぼやけず、局所的な特徴が取りやすくなっている。非線形拡散フィルタとしては、Additive Operator Splitting (AOS) を使っている。

一般物体認識と特定物体認識

一般物体認識とは、画像中に存在する物体について、「魚」などのカテゴリー名を特定する技術である。
f:id:graziegrazie:20170729210614p:plain
Fig. 一般物体認識の認識結果例[2]

それに対し特定物体認識とは、画像中から一意に特定できる物体を検出する技術である。例えば「あべのハルカス」などのランドマーク、「Nitendo Switch」などの大きな個体差のない工業製品などが対象である。

ヒューリスティックアルゴリズム

ヒューリスティックアルゴリズムと聞くことがあるが、何を意味するのかずっとわからないままだった。そのため今回ヒューリスティックアルゴリズムが何を指すのか調べて見た。その結果、

だとわかった。つまりヒューリスティックアルゴリズムとは、経験則から導き出した・考え出したソフトウェアの処理手順・方式である。

フィッシャーの情報量(情報行列)

(シャノンの)情報量

 情報量といった場合、シャノンの情報量を指すことが多い。そもそも情報量とは、ある事象が起こった時、その事象の発生がどれだけ珍しいかを表す量である。事情が珍しい程、値は大きくなる。実生活においても、珍しい出来事が起こった場合、そのインパクトは大きい。そのため、直感的にも納得しやすい定義に感じる。
 情報量には「自己情報量」と「平均情報量」があり、それぞれ

  • 自己情報量:

 ある事象xについての情報量で、下式(1)で表現される。
 {I(x) \  = \  -log_2(P(x)) \tag{1} }
 ここで{P(x)}は事象の発生確率を表すものとする。

  • 平均情報量:

 ある確率分布についての情報量で、下式(2)で表現される。エントロピーとも言われる。
 {\displaystyle H(P) \  = \  - \sum_{x \in \Omega} P(x) log_2(P(x)) \tag{2} }

フィッシャー情報量(情報行列)

 一方フィッシャー情報量とは、シャノンが定義した情報量とは異なり、尤度に注目した情報量である。対数尤度関数の二階の導関数の値の絶対値で表し、値が大きいほど情報量が高い(珍しい)となる。事象が1変量の場合は、"情報量"と呼称する。事象が多変量の場合は、"情報行列"となる。

Probabilistic Robotics - Chap.10 Simultaneous Localization and Mapping

10.1 Introduction

SLAM問題は、環境地図へのアクセスが出来ない且つ自分の位置もわからない時に発生する
ただしこの時、全ての観測ベクトル{z_{1:t}}と制御ベクトル{u_{1:t}}は既知とする。

SLAM問題にはオンラインSLAMとフルSLAMの2種類ある。

  • オンラインSLAM:ロボットのある瞬間の姿勢についての事後分布を求める

 事後分布
{p(x_t, m | z_{1:t}, u_{1:t}) \tag{10.1}}
の推定には、時刻{t}のみ考慮する。多くの場合、オンラインSLAMのアルゴリズムはインクリメンタルである。

  • フルSLAM:ロボットの移動経路ついての事後分布を求める

 SLAM開始時点から現時点までの姿勢全てを考慮した事後分布を求める。SLAM開始時点から現時点までの姿勢の列は、ロボットが現在地に到達するまでにとった姿勢の集合を意味する。つまり、事後分布
{p(x_{1:t}, m | z_{1:t}, u_{1:t}) \tag{10.2}}
は、ロボットの移動経路の事後分布を意味する。

SLAMの重要な特徴の2つ目は、推定問題の本質の部分
 地図上の物体の位置やロボット自身の姿勢変数を維持する必要がある

EKF Localizationと同様に、SLAMを連続で行うには一致変数を使うとよい。一致変数を導入することで、{式(10.1)、(10.2)}は、下記のようになる。
{(10.1) \rightarrow p(x_t, m, c_t | z_{1:t}, u_{1:t}) \tag{10.4}}
{(10.2) \rightarrow p(x_{1:t}, m , c_{1:t}| z_{1:t}, u_{1:t}) \tag{10.5}}

ただしフルSLAMを続けるのは下記2点のため、演算量・メモリ使用量が膨大になり難しい。
1)変数(Ex. {x_{1:t}})の次元が高次になる
2)一致変数の次元が膨大になる(時間と共に指数的に大きくなるので、実際には近似を用いる必要がある)

10.2 SLAM with Extended Kalman Filters

10.2.1 Setup and Assumptions

本章では、ランドマークと特徴量の一致がわかっていると仮定。
EKF SLAMはオンラインSLMAの一種で、最尤データの関連付けを行う。
EKF SLAMはfeature mapを使用しており、map中のランドマーク数は少ない(1000以下)ことが多い。
EKFを使う場合、対象(ランドマーク)の特徴がハッキリしているほど良い結果を残す。
EKF SLAMでは、ロボットの運動・知覚にガウスノイズを仮定する。

10.2.2 SLAM with Known Correspondence

一致がわかった状態のSLAMは、SLAMの連続的な部分しか言わない
EKF Localizationとの重要な違いの1つは、EKF SLAMは経路上の全てのランドマークの座標を推定する点
結合状態ベクトル{y_t = \left( \begin{matrix} x_t \\ m \end{matrix} \right) \\
= ( x \  y \  \theta \  m_{1, x} \  m_{1, y} \  s_1 \  ... \  m_{N,x} \  m_{N,y} \  s_N )^T
}
ここで、{s_i}はランドマークのIDである。
EKF SLAMは、オンライン事後分布{p(y_t | z_{1:t}, u_{1:t}}を求める

SLAMで求める事後分布の重要な特徴は、ロボットの姿勢に関する情報を得ると、その情報は以前に観測したランドマークへも波及することである。
つまりロボットの姿勢推定結果が改善されると、以前観測したランドマークの位置の確からしさも改善される。

10.3 EKF SLAM with Unknown Correspondences

10.3.1 The General EKF SLAM Algorithm

前章ではランドマークと特徴量の一致がわかっていると仮定したが、本章ではその仮定を取り去った一般EKF SLAMを取り上げる。
一般EKF SLAMでは、インクリメンタルな最尤推定器が一致を決める。
一般EKF SLAMでは、一致が未知のため、入力から一致変数{c_t}が消える
その代わり、その時のランドマーク数{N_{t-1}}を入力する
運動モデルの更新手順は10.2と同じだが、観測モデルの更新手順は異なる
新規ランドマークは、既知のランドマークとのマハラノビス距離が閾値を超えた場合に生成する
最終的に一般EKF SLAMは、新しいランドマーク数{N_t}と、その時の平均{\mu_t}、共分散{\Sigma_t}を出力する

10.3.3 Feature Selection and Map Management

実際にEKF SLAMをロバストにするには、地図管理のための技術が追加で必要になる。
それらの技術はガウスノイズは非現実的であり、ノイズ分布の最後は嘘の観測結果が求まることに関係する。
嘘の観測結果により、嘘のランドマークが求まる。
そうした外れ値の除外する上で最も簡単な方法は、仮のランドマークリストを作ることである。
検出したランドマークは、まずは仮のリストに登録する。
このリスト中のランドマークは、ロボットの姿勢のadjustには使わない。
リスト中のランドマークが継続的に観測され、不確かさが小さくなると、通常の地図に組み込む。
この手法は、物理的に存在するランドマークは残しつつも、地図中のランドマーク数を減らす傾向がある。

問題の救済には、下記2つの手法を用いることが多い。

  • 空間整理

ランドマーク間の距離が遠ざかると、ランドマークを取り違える可能性が減る。
またランドマークが増えすぎると、取り違える可能性が高まる。
一方ランドマークが少なすぎると、取り違える可能性が高まるだけでなく、ロボットの自己位置推定が困難になる。

  • 記号

物体は固有の色や寸法などを持っている。これらを使って識別すると便利。

EKF SLAMの重要な制限事項は、正確なランドマークを選択する必要がある点である。
EKF SLAMは、通常大量のセンサ情報を破棄する(使わずに垂れ流す)ため、情報の欠除を招く。
これにより、地図上の特徴量が{10^6}個以上でないと、EKF SLAMは使えない。
比較的低次元のマップは、データの関連付けが困難な傾向がある。
インクリメンタルな最尤データ関連付けは、大量の特徴量を持った密な地図で動作するが、特徴量が少ない地図では不安定化する傾向がある。
しかしEKFは、密な地図では地図更新が複雑になるため、疎な地図を求めている。

論文紹介:Information-based Active SLAM via Topological Feature Graphs

どんなもの

 Topological Feature Graph(TFG)を使ったActive SLAMの提案。占有格子地図(Occupancy Grid Map)に比べ、地図のスケールの精度や長時間実行時のドリフトが少ない。

先行研究と比べてどこがすごい?

 特徴量ベースなトポロジカルマップでActive SLAMを可能にしたこと。

Active SLAM

 未知領域に対し、ロボット自身がパスプランニングして行うSLAM

技術の手法やキモはどこ?

 

どうやって有効と検証?

 シミュレーション上で、変数の数やCPUのアイドル時間、位置・姿勢の誤差を比較した。姿勢の誤差を除き、全て占有格子地図を使ったActive SLAM(nearest-frontier exploration algorithm)よりもよい性能を示した。

議論はある?

 比較対象が、占有格子地図(メトリックマップタイプの地図)のSLAMであるため、TFGと同じトポロジカルマップのActive SLAMと比べる必要がある。

次に読むべき論文?

 今は思いつかず