研究開発テーマ:複数の3次元画像を使って上方からの2次元の見取り図を作成する

複数画像の合成と特徴点検出方法"SURF"からもう一つの"SIFT"での検出の試み

報告者  : 竹内文雄
報告日  :2017年7月27日


複数画像の合成
①複数画像を合成し、その合成画像からオブジェクト検出をするという考えのもと、まずは合成画像を作成するプログラムを作成。

《技術面》
合成する関数としてopencvからfindhomographyという関数を使用した。これは射影変換行列(ホモグラフィ)を用いており、ある平面を別の平面に射影することができる変換です。斜めから見たものをもし正面から見たらどのように写るのかを計算できるものであり、前回から引き続き使用している特徴点検出の"SURF"から得た、特徴点を配列に格納し射影変換行列を算出することで合成画像を作成する。

画像1枚目:室内(研究室)の違う角度からの写真
画像2枚目:"SURF"による特徴点検出
画像3枚目:射影変換行列による合成画像

画像を見ていただくと、合成画像は下の台形のような形をした箇所だけが合成されておりそれ以外は合成されなかった。結果としてはあまり使えないようなできだった。しかし景色のような広いところで取られた写真の合成は、遠くから見ても角度があまり変わらないためうまく合成された。

・特徴点検出方法"SURF"からもう一つの"SIFT"での検出の試み
②特徴点検出方法の違いとしてSURFとSIFTがあるが、
今まで使っていたSURFは計算時間が短いが特徴点検出が少し荒くなる。
一方で、SIFTは計算時間が長くなるが精度が良くなるため合成がうまくいくと考えSIFTでもトライしてみた。

《技術面》
SIFTfeaturedecoderに書き換えて実行。

画像4枚目:"SIFT"による特徴点検出
画像5枚目:射影変換行列による合成画像

結果は、SIFTにしてもあまり大きな検出精度の増加はみられなかった。気持ち良いかな程度だった。合成も結果はSURFと同じだった。
これよりSIFTでも SURFでも特徴点検出はある程度できることがわかったが、合成がうまく行かないことが多い。これは、室内の角度の違った複数画像はそれぞれのオブジェクトの見え方も角度の違いにより異なる。これが遠い景色などになると少しは合成がうまくいくが、近場であるとうまく合成画像が作成されない要因だと考察する。
それより、今後の方法としてより良い合成画像を作ることも考える必要があるが、バラバラの複数画像からオブジェクトを捉えてその位置を把握することも後々やる必要があるため、同時に後者の方を優先的に進めていくことにした。
しかしながら、今現在どのようにして特徴点からオブジェクトととして認識させるや、丸型のものだや四角いなどを認識させるかが思いつかないため、情報を探していく。

image1

image2

image3

image4

image5