Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Photogrammetryのキャプチャー結果にパッチを当てる

More than 1 year has passed since last update.

Photogrammetyで写真から実物大のモデルを作るのは楽しいです
しかし、特徴点が少ない平面や反射・透過の物体は苦手です
例えば、こちらのケーキのポップは虫食いみたいで見た目がよくありません
200217a.png

今回は簡易に穴ぼこを補修する方法を紹介します
RealityCaptureとBlenderを使いました

注意:
確実に成功するとは限りません
Blenderで行うモデルの修正内容やExportの状態に依存するようなのですが、完全に原因を把握できていません
少しずつ補修部分を増やしていく方が良いと思います

1. RealityCaptureでモデルを出力する(FBX形式)

とりあえず、Reality Captureで最低限度の状態のモデルを生成し、結果をFBX形式でExportします
今回はスマホのカメラの写真44枚だったので、使用料金は1.08$です
Imagesに入っている写真に対して課金されるので、以降のExportにはお金がかからないのが助かります
(課金額は決まった単位があるので、実際は29.9€で買った8000Mpix分のクレジットから切り崩して使います)
200217a3.png

2. Blenderで穴が開いている部分に別のメッシュを置く

先ほど作ったFBXファイルをImportします
商品名のプレートは板なので、planeをextrudeして、モデルと合うように大きさと位置を調整します
Before
200217b.png
After
200217c.png

3. BlenderからObj方式でモデルを出力する

Importしたオブジェクトと追加したオブジェクトをJoinで一つにまとめ、選択・アクティブにして、Obj形式で出力します
チェック欄の一番上のSelection Onlyにチェックを入れます
方向のUpがZupですが、Forwardは-Xか-Yのどちらかを選択します
200217d2.png

実は、だいぶ成功確率は上がってきたのですが、この時の設定を完全に把握できていません
ExportしたいモデルをJoinでまとめなかったり、Materialのチェックを外さなかったら、次のステップでエラーが出て進めなかったことがあったり、挙動が安定しなかったです
200217e.png

詳しい方のコメントをいただけると助かります

4. FBX出力した同じファイルに、作成したObjファイルをImportする

RealityCaptureに戻り、ReconstructionにあるImport Modelを選び、さきほど作ったObjファイルを読み込みます
200217f.png
必要に応じてUnwrapします
200217f2.png
Sceneのscene renderをSweetにすると、こんな感じに表示されます
200217f3.png

Blenderで追加したオブジェクトのメッシュが大きすぎると、Textureの解像度が低くなってしまいました
Unwrapのテクセルサイズの調整で対応できなかったら、Blenderに戻って追加するオブジェクトのメッシュの大きさをloop cutなどで小さくします

5. RealityCaptureでTextureを貼る

こちらのようになりました
200217f5.png
ちなみにBeforeはこのような感じでした
200217g.png

まとめ

結局、写真からメッシュの位置を再構成して、カメラの位置から貼るべきテクスチャを選んで貼っているはずなので(と理解していますが)、対応したスケールでモデルのメッシュを補ってあげれば、反射などでキャプチャーできなかった平面も再現できるのでしょう

他にも良い方法がありましたら、ご教示いただけますよう、よろしくお願いします

nakmura
カメラ、ゲーム関係の会社に勤めていますが、 こちらに登録している内容は業務外の検証活動です。 個人的な見解です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away