複数枚の写真から三次元再構成

2021年01月22日

M1の土屋です。近年の研究ではカメラは距離センサの代わりとなって活躍する可能性のあるセンサとされています。カメラで撮った画像から三次元空間の推定が可能になってきているということです。今回はカメラで撮った複数枚の画像から三次元再構成が可能なNeRFという手法を使って三次元再構成を行った結果を共有します。

ハードウェア&ソフトウェア

  • Ubuntu 18.04
  • ROS melodic
  • GPU搭載PC (GeForce GTX 1050 Ti)
  • NeRF
  • COLMAP

下準備

NeRFは強化学習ベースの三次元再構成手法なのですが、学習の際に必要になるデータは複数枚の画像の他にその画像一枚一枚のカメラ内部パラメータと外部パラメータが必要となります。このパラメータの真値をとる方法がなかったため、以前B4の海保が記事にしていたCOLMAPを使用し三次元再構成のためではなくカメラパラメータ推定のために利用しました。これによって撮影した複数の写真からそれぞれの写真のカメラパラメータを推定することができました。(画像の赤く記されているのが推定されたカメラの位置) img

学習

実際にNeRFを使って学習を進めてみたのですが上記の環境で写真100枚(800x800)でそれらしく三次元再構成できるのに1日間ほどかかりました。さらに写真は背景などが無く物体単体を撮影したものでないとエラーが出てしまったため、今回はデータセットとして用意された画像を使ってカメラパラメータを推定するところから学習を行いました。

結果

img 周りにノイズが多くブルドーザーの土砂を書き出す部分が認識できる程度の結果となりました。学習方法がパラメータ決定などに問題があったのか、カメラパラメータ推定がうまくできていなかったのか原因不明ではありますが、写真から三次元再構成をきれいに行うことはなかなか難しいと思いました。

参考