[[太田研 公開用Wiki]] *小惑星画像の対応点決定を目的としたSIFTとAKAZEの性能比較 [#a0935d37] #contents *はじめに [#b0775548] 2014年に打ち上げられ、今現在宇宙空間を飛んでいるはやぶさ2は、2018年7月にC型の小惑星Ryuguに到着予定だ。はやぶさ2のミッションは、小惑星の物 質を持ち帰ることである。C型の小惑星は、構成物質に有機物や水が含まれ、地 球誕生の謎や、海の水の起源や生命の原材料となった有機物の起源を探ることが できる。これを小惑星で行う理由は、地球は大気や重力の影響から昔の情報が消 えてしまっているからである。~ さて、ミッションである小惑星の物質を持ち帰る方法は、小惑星にタッチダウン し、衝突装置の衝撃で撒きあがった物質(砂礫など)を採取するというものだ。こ こで、タッチダウンに関して重要なことは、出来るだけフラットな表面にタッチ ダウンしなければならないということだ。タッチダウンするためには数メートル 単位の精度で場所がわかっていないといけない。そこで、小惑星の形状復元を行 う。はやぶさ2は1年半、小惑星の上空に滞在し、その間に小惑星の画像を撮影 する。その小惑星の画像を用いて、画像処理で形状復元に必要な情報を得る。 具体的な方法としては、小惑星の同じ部分を異なる位置から撮影した2枚の画 像間において、1枚目の画像のある凹凸と同じものが2枚目の画像のどこにあるか を対応づける。これによって、カメラからのその凹凸の位置や角度が求まり、こ れを多くの画像間に対して行うことで形状復元ができる。~ その対応付けを自動で行うアルゴリズム(検出器、記述子)は、SIFT、SURF、 BRISK、ORB、KAZE、AKAZEなど、多くある。実際にこれらの性能を比較し たデータはあるが、それはあくまでも地球上で撮影されたものを対象としている。[1]では、地球上と宇宙空間では測光条件が異なることから、宇宙空間を対象とし て、小惑星画像を用いて AKAZE を除く多くのアルゴリズムの性能比較を行った ところ、SIFTが最も優れているという結果であった。しかしSIFTは特許の問題 から使用が容易ではないため、SIFTに代わるものとしてAKAZEが有用であるか を検証したのが本研究である。~ *SIFTとAKAZE [#d3916ec2] 本研究の実験結果などの考察の理解の補助となるようなSIFTとAKAZEの特徴について説明する。なお、SIFT、AKAZE共に既に論文がぞれぞれ[3]、[2]と発表されているので、詳細な理解についてはそちらを参考にされたい。SIFT、AKAZEは対応付けを自動で行うためのアルゴリズムであると「はじめに」で纏めたが、詳細に提示するならば、特徴点を検出する検出器と、複数の画像間で対応をとるための測光特性を記述する記述子で構成されている。 **SIFT [#gedf6e13] David Lowe氏が1999年に提案したもので、多くの検出器、記述子の中でもメジャーなものとして利用されている。特徴点の検出方法の流れを次に説明する。入力画像をガウシアンフィルタを用いて平滑化し、段階的に平滑化のレベル大きくして複数の平滑化画像を作る。その平滑化画像の中から平滑化段階の隣合うもの同士の差分画像(DoG画像という)を作成する。ここでDoG画像は複数できており、特徴点の候補を見つけるためには、段階的に並べられたDoG画像3枚が要求される。3枚中の中段階の画像の注目画素と、その周りの8近傍に、下段階、上段階の画像を対象に注目画素と同じ位置の画素を含めた周り8近傍で1枚の画像につき9画素分で計18画素を加えた計26画素とを比較し、注目画素が極値であった場合に、特徴点候補としている。ここで、出力されたのはあくまで特徴点候補であり、ここから、エッジ上の点であるか、コントラストが低い領域の点であるかを基準としてふるいにかけ、残ったものを特徴点としている。~ SIFTはオブジェクトのスケール変化、回転、照明変化にロバスト性をもっている。~ **AKAZE [#f18cdb8f] 2013年に提案された比較的新しい検出器、記述子であり、SIFTやSURFの欠点を改善したKAZEを基としている。[2]によれば、SIFTやSURFは、ガウシアンフィルタで画像を等方的にぼかすことでオブジェクト境界を保持しないことが欠点だとされている。画像をオブジェクト境界を保持するようにぼかすことが必要であり、それを実現する方法として、非線形スケール空間の特徴を検出することが挙げられる。非線形スケール空間の特徴を検出するには、非線形拡散方程式を解く必要があり、それを解くにあたって解析的な解はないことから、解を近似によって求めなければならない。KAZEはこれを実現したが、非拡散方程式を解く際にAOSスキームと呼ばれる手法によって計算量が多くなってしまった。AKAZEは、AOSスキームに代わるFEDスキームと呼ばれる手法をピラミッドフレームワークに組み込むことでKAZEに比べて劇的な高速化を図ったものである。ここまでがAKAZEの概要であり、[2]から引用したものであるが、AKAZEは端的に表現するならば、KAZEを加速(Accelerate)させたものである。~ 特徴点の検出方法の流れを次に説明する。SIFTと対象的に進めるならば、ガウシアンフィルタではなく、オブジェクト境界を保持するようにぼかすことのできる非線形空間におけるフィルタリングで作成した段階的な画像に対して、注目画素の検出器の応答値が8近傍中の最大値であり、指定された閾値よりも高ければ特徴点候補とし、下段階、上段階の近傍とも比較して最大値であれば特徴点としている。~ AKAZEはオブジェクトのスケール変化、回転、照明変化、Blurにロバスト性をもっている。~ ~ 本研究では、OpenCVに組み込まれたSIFTとAKAZEを使用して実験を行っている。~ *評価方法 [#o4e7a48c] SIFTとAKAZEで特徴点を検出し、画像間で特徴点を対応付けることができると述べた。特徴点の検出性能、画像間での特徴点の対応付けの性能の2つに焦点を当て、その評価方法の詳細を述べる。 **特徴点検出性能 [#fd0749c4] -特徴点数~ 小惑星の形状復元には、当然であるが一定数の特徴点数が必要となる。[1]より、はやぶさ初号機では最低限必要な特徴点数として70個が設定されていた。~ SIFTとAKAZEそれぞれに1枚の入力画像を与え、それぞれが検出した特徴点をカウントする。~ -特徴点の均一性~ [1]より、特徴点がほとんど検出されない領域では形状復元が失敗するため、均一に散らばっていることが望ましい。本研究では、2つの手法で均一性を調べた。まずは、2つの手法に共通する処理を説明する。~ 入力画像を40×40の計1600個のサブ領域(bin)に分けることを考える。次に、特徴点の画像上での位置から、すべての特徴点がそれぞれどこのbinに存在するかを調べ、それぞれのbinに特徴点が何個あるかという情報を作成する。40×40の計1600個に分けるのは、もし分ける数が少ないとすると、この後に説明する手法2において1つのbinに多くの特徴点が含まれる場合、アルゴリズムによってコンピュータの処理の影響からオーバーフローを起こしてしまうからである。以下、2手法に分けて説明する。~ ~ --手法1~ 確率変数のエントロピーを使った手法である。あるbinにある特徴点数を、全特徴点中何個の特徴点がそのbinに存在するかというように考える。~このエントロピーは起こり得る事象のあいまいさを表しており、極端な例としてサイコロを振ることを考えると、すべての目が同様の確率で出るサイコロのエントロピーは2.585bitとなり、細工された必ず1の目しかでないサイコロのエントロピーは0bitである。つまり、起こり得る事象が多ければ多いほど(曖昧であれば曖昧であるほど)エントロピーの値は大きくなる。特徴点の話に戻すと、ある特定のbinに集中して特徴点が存在しているよりは、多くのbinに特徴点が分布している方がエントロピーの値は大きくなり、あるbinに何個特徴点が存在しているかという情報も重みとして畳み込まれている。~ --手法2~ [1]、[5]、[6]、を参考にした、[1]と同様の手法である。こちらの手法も手法1と同様に、多くのbinに特徴点が分布している方が求まる値は大きくなり、あるbinに何個特徴点が存在しているかという情報も重みとして畳み込むことができる。ただし、全特徴点数がSIFTとAKAZEで大抵異なるので、組み合わせで計算を行っているこちらの手法では全特徴点数が多いほうが結果(求まる値)が大きくなってしまう。その問題を回避するために、全特徴点数が1000個となるように各binの特徴点数を正規化している。~ *実験と結果 [#z8c4dc40] 実験にはJAXAから頂いた小惑星の模型画像を使用した。5°刻みの様々な角度から撮影された画像がある。~ SIFT、AKAZE共にアルゴリズムを動かす前のパラメータの設定がある。このパラメータを操作することで、検出する特徴点の持つ性質が変わる。別の表現をするなら、特徴点の性質を利用して特徴点数を制限することができる。[1]では、パラメータを操作せず、すべてデフォルトパラメータに設定して実験を行っている。本研究では、実験によってパラメータを操作していることに注意されたい。~ **特徴点検出性能 [#ge911a7e] 計5枚の小惑星模型画像について、~ 計5枚の小惑星模型画像について、~~ - 特徴点数 - 特徴点の均一性 - SIFTとAKAZEで一致する特徴点数 - SIFTとAKAZEで一致する特徴点数~ ~ 以上の項目を調べた。5枚の画像は、お互いに離れた角度の画像(0°,5°,70°,135°,265°)を使用して、画像が似ていることによって似たような結果にならないように配慮した。~ パラメータの設定に関しては、SIFT、AKAZE共にデフォルトパラメータを指定した。図1は0°の画像に対してSIFTで特徴点を検出したもの、図2は0°の画像に対してAKAZEで特徴点を検出したもの、図3は図1と図2から、SIFTとAKAZEで一致する特徴点を検出したものを表している。~ この3つの図から見ても、SIFTが検出した特徴点数のほうがAKAZEの検出した特徴点数に比べて多いことが分かる。だが、その検出数の差によって目視による均一性については、これらの図からは分かり兼ねる。以下の表1に、実際にプログラムで調べた結果を示す。~ CENTER:#ref(SIFTKeyPoint.png,center,100%) CENTER:&size(14){図1:0°の画像に対してSIFTで特徴点を検出した結果};~ &br; CENTER:#ref(AKAZEKeyPoint.png,center) CENTER:&size(14){図2:0°の画像に対してAKAZEで特徴点を検出した結果};~ &br; CENTER:#ref(MATCHKeyPoint.png,center) CENTER:&size(14){図3:図1と図2から、SIFTとAKAZEで一致する特徴点を検出した結果};~ &br; CENTER:#ref(experiment.png,center,30%) CENTER:&size(14){表1:特徴点性能比較の結果};~ &br; まず、表1の緑色の部分を見ると、すべての画像に対してSIFTがAKAZEの約2倍の特徴点を検出していることが分かる。しかし、ここで抑えておくべきは、はやぶさ初号機では最低限必要な特徴点数として70個が設定されていたことである。したがって、SIFT、AKAZE共に特徴点検出数の性能としては問題ない。均一性については、表1の青色の部分を見ると、手法1の結果と手法2の結果を総合的に判断してSIFTの方が均一性は優れている。しかし両者に大きな差はない。~ 以上のことから、特徴点性能比較実験においては、AKAZEがSIFTの代用として小惑星の形状復元に利用することができると言える。~ **マッチング精度 [#re9ff0d9] 3つの小惑星模型画像群について、~ - 正しいマッチング数 - SIFTとAKAZEで一致する正しいマッチング数 - SIFTとAKAZEで一致する正しいマッチング数~ ~ 以上の項目を調べた。こちらも、3つの画像群はお互いに離れた角度の画像群(0°:5°, 135°:140°, 265°:270°)を使用して、画像が似ていることによって似たような結果にならないように配慮した。~ パラメータの設定に関しては、正しいマッチングデータを作成するにあたって、AKAZEはパラメータ操作する必要が生じた。3章で述べたように、本研究では正しいマッチングデータを目視で作成している。そのため、デフォルトパラメータで検出された1000を超える特徴点のマッチングに対して全て正解を与えるのは現実的ではない。したがって、マッチング精度の実験に際してはマッチング数を約100個、200個程度に制限して実験を行った。(補足:マッチングに関して、1枚目の画像で検出した特徴点数と、マッチング数は同じ数である。)"マッチング数、すなわち1枚目の画像で検出する特徴点数を制限する方法として、SIFTではデフォルトパラメータの特徴点検出結果からランク付けで指定数の特徴点を取ってくることが可能であったが、AKAZEは、検出器の応答値に閾値を設けて特徴点数を制限した。検出器の応答値が高いものが100個、200個程度残るという事になる。つまり、SIFTはデフォルトパラメータの特徴点検出結果からランク付けで100個200個程度を選出したものと、AKAZEでは検出器の応答値に閾値を設けて100個200個程度を選出したものを実験に使用している。~ このことによる性能比較の位置付けであるが、[1]ではすべての検出器、記述子についてデフォルトパラメータで実験を行い、SIFTが一番良好な結果を示したとされている。本研究ではSIFTはデフォルトパラメータでの検出結果のランク付け上位100個200個程度を選出した。つまり、AKAZEの設定に拠らず、100個200個でマッチングを行い、SIFTのマッチング結果に匹敵するならば、有用性を証明できるので、パラメータの操作によって性能比較に問題は生じない。~ ~ ここで、小惑星模型画像0°と5°で100個のマッチングをSIFT行った結果の画像を、イメージ図として図4に示す。~ 続いてマッチング精度とSIFTとAKAZEで一致する正しいマッチング数の割合を示したグラフを、それぞれ画像群別に図5, 図6, 図7に示す。~ マッチング精度の見方としては、図12を例として見ると、全対応点50個の約56%の対応、つまり28個の対応がSIFTのマッチングの中で正解のマッチングであるという意味である。SIFTとAKAZEで一致する正しいマッチング数の割合の見方としては、黄色の枠の対応一致割合で示しており、図12を例として見ると、全対応点50個の12%の対応、つまり6個の対応がSIFTとAKAZEで一致する正しいマッチング数である。~ 結果は、3つの画像群すべてにおいてAKAZEのマッチング結果が優れているというものであった。したがって、マッチング精度の比較において、小惑星の形状復元のためにAKAZEも有用であることが言える。参考までに、SIFTとAKAZEで一致する正しいマッチング数の割合は総評的に判断して、全特徴点数の20%程度であった。~ CENTER:#ref(sift000_005_100.png,center) CENTER:&size(14){図4:小惑星模型画像0°と5°で100個のマッチングをSIFT行った結果};~ &br; CENTER:#ref(exper2_1.png,center,50%) CENTER:&size(14){図5:小惑星模型画像0°と5°の実験結果};~ &br; CENTER:#ref(exper2_2.png,center,50%) CENTER:&size(14){図6:小惑星模型画像135°と140°の実験結果};~ &br; CENTER:#ref(exper2_3.png,center,50%) CENTER:&size(14){図7:小惑星模型画像265°と270°の実験結果};~ &br; *まとめ [#b73b01e6] 本論文では、はやぶさ2のタッチダウンのための小惑星の形状復元の1つの方法として画像間のマッチングを自動で行うアルゴリズムであるSIFTとAKAZEの性能比較を行った。[1]ではSIFTが目的のために良好だとしているが、特許の問題から使用が容易ではないため、SIFTの代わりにAKAZEも有用であることを検証した。~ 特徴点検出数では、すべての実験画像に対してSIFT、AKAZE共に最低限の必要量を超えた数を検出した。~ 特徴点の均一性では、概ねSIFTのほうが優れているという結果が出たが、両者に大きな差はなかった。~ マッチング精度の比較では、すべての実験画像に関してSIFTよりもAKAZEの方が正しいマッチングをしていた。~ 以上のことから、小惑星の形状復元にAKAZEも有用であることが言える。 今後の課題としては、目的のためには角度差の大きい画像間でのマッチングも必要になってくる。SIFTとAKAZEで小惑星の回転へのロバスト性の性能比較も行うべきである。~ *参考文献 [#fcaca86b] [1] Takeishi, N., Tanimoto, A., Yairi, T., Tsuda, Y., Terui, F., Ogawa, N., and Mimasu, Y.: Evaluation Of Interest-region Detector and Description for Automatic Landmark Tracking on Asteroids,Trans. Japan Soc.Aero. Space Sci. Vol. 58, No. 1, pp. 45-53, 2015~ [2] Alcantarilla, P., Nuevo, J., Bartoli, A.: Fast Explicit Diffusion for Accelerated Features in Nonlinear Scale Spaces, 2013~ [3] Lowe, D.: Distinctive Image Features from Scale-Invariant Keypoints, 2004~ [4] はやぶさ2特設サイト:http://fanfun.jaxa.jp/countdown/hayabusa2/instruments.html~ [5] 横尾 秀俊,"情報理論の基礎",共立出版,2004~ [6] 武石 直也,uniformity.pdf~ [7] 武石 直也,uniformity.m~