読者です 読者をやめる 読者になる 読者になる

ぬうぱんの備忘録

技術系のメモとかいろいろ

作った曲一覧はこちら

復元結果の3Dモデルをニコニ立体にアップロードする手順

CV Tips

この記事は

 bundlerとか使って画像から復元した結果の3Dモデルをニコニ立体にうぴーしてweb上でぐりぐりして遊びたいけどどうやればいいんだ…? って調べて四苦八苦したのでその方法についてのメモ。

前提条件

  • 復元結果の色付きのモデル(.plyとかのmeshlabで読めるモデル)が手元にある
  • 作業は全部meshlabで

モデル自体

たこやきシーンをカメラで10枚くらい撮って、ラボメンの後輩ちゃんに写真を渡したらbundlerでサクッと3次元復元してくれました。
コツとかは

  • SfMに基づいているのでカメラ位置を動かし過ぎない(連続するフレームになるように撮る)
  • EXIF情報(主に焦点距離)があると計算が非常に安定する
  • 当然ながら解像度が高いと(計算が上手くいけば)密な復元結果が得られる
  • カメラの絞りを限界まで開いてたこ焼き器以外がボケるようにしたら綺麗にたこ焼き器だけが復元された

こんなところでしょうか。

アップロードまで

 復元結果はただの点群で面が張られていないので自動で面を貼ってしまいましょう。

  1. 法線再計算:「Filters > Normals, Curvatures and Orientation > Compute normals for point sets > Apply」
  2. メッシュ張る:「Filters > Remeshing simpleification and Reconstruction > Surface Reconstruction: Ball Privoting > Apply」
  3. メッシュ間引き:「Filters > Remeshing, simplification and reconstruction > Quadric Edge Collapse Decimation > Apply」
  4. ???:「Texture > Parametrization:Trivial Per-Triangle > Inter-Triangle border(px)=0 > Method=Basic > Apply」
  5. 一度plyとして保存:「File > Export mesh as... > ファイル形式でplyを選択」※Saving Optionsは全てにチェックを入れる
  6. テクスチャ書き出し:「Texture > Transfer Vertex Attributes to Texture(between 2 meshs) > Assign Textureにチェック > Apply」
  7. objとして保存:「File > Export mesh as... > ファイル形式でobjを選択」※Saving Optionsは全てにチェックを入れる
  8. hoge.obj」と「hoge.obj.mtl」と「hoge_color.png」をまとめてzip圧縮
  9. まとめたzipをニコニ立体にアップロード

1.と5.は要らないかも?

アップロード後

 主に光源をしっかり設定しないと黒くなったり白んだりで大変なことに。
光源の強さはものすごく小さい値で良さ気。

わかんないこととか

  • マテリアルの鏡面反射や拡散反射を切って環境光のみのマットなシェーディングにしたくてもやり方がわからないナリ…

実際にうpったモデルとか

こんな感じの画像を10枚使って3次元復元


f:id:NU_Pan:20150727185208j:plain

復元結果のモデルはこちら

感想

アップロードなんて余裕っしょwwwwwとか思ってたら思いの外時間がかかった。
たこ焼き美味しかった。