先日解析したPROSACをホモグラフィ推定に使用できるようにコーディングしてました。



ぶっちゃけ、期待したほどではない感じです。

もうちょっと高精度且つ高速になるのかなー、と思ったけどそうでもない。

まぁまだパラメータチューニングが出来ていないだけだと思ってます。

それでもRANSACよりも精度が上がったし、効果は間違いなくある。

ただサンプリングの性質上、全体的にある程度高品質なマッチング結果がないと高速化されないようで・・・。



ORBに高精度を求められてもな~。
PROSACも一旦落ち着いたところで、特徴点抽出の高速化を図ってます。

「Cascaded FAST」 とは何ぞや?の方は以下を御参照下さい。


ttps://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjGx-f0ypDLAhWHj5QKHdooDuwQFggcMAA&url=http%3A%2F%2Fwww.vision.cs.chubu.ac.jp%2Fflabresearcharchive%2Fbachelor%2FB12%2FPaper%2Fhasegawa.pdf&usg=AFQjCNHHuNLFc2gIiJLQBuedmhDWiI3YqA&sig2=kFOe2udOhkZ3cBWDwQFvWg


現在は4枚のピラミッドイメージを構成し、それぞれから特徴点抽出を行っています。

2週間前くらいからちょこちょこ高速化を図って、160ms → 45ms くらいまでになりました。

これ以上は可読性を犠牲にしそうで嫌だなぁ・・・。

ここら辺で手打ちかな。





まだ続く?
ようやくPROSACの解析が完了しました。



で、早速テストしてみました。


テスト内容は単純なもの。

y=x に従って200点を生成し、そこへ一定範囲の乱数で800点生成したものをあわせます。

プロット結果は以下のもの。






ここから2点を選択、直線の式のパラメータ(傾き、切片)を計算します。

計算されたパラメータから直線と全ての点の距離を計算し、一定以内の距離ならインライヤとします。

この処理を繰り返し、インライヤの数が最も多いパラメータを最終パラメータとして出力します。



とまぁ良くありがちなものですね。

以下に結果を載せます。





縦軸が処理回数、横軸がテスト回数となります。

尚、最大処理回数は1000回とし、テスト回数は100回としました。

また、RANSACの打ち切り判定は暫定インライヤ数が200を超えた場合としています。

ちょこちょこ1000になっているのは、推定に失敗した場合です。



なんだかよく分からないので拡大します。






ふむふむ。

ぱっと見た感じは

   RANSAC : ときどきPROSACの処理より早いが、安定性に欠け、推定の失敗も見られる。
   PROSAC : 処理回数が安定しており、(今回のテストでは)推定の失敗がない。

ってところかな。

これはなかなか期待できそう・・・。



あ、ちなみに平均処理回数は

   RANSAC : 18.49回 (1000回の場合を除く)
   PROSAC : 5.01回

となました。




テンションあがってきた!