catalinaの備忘録スマートフォン用の表示で見るcatalinaの備忘録ソフトウェアやハードウェアの備忘録。後で逆引きできるように。OpenMVSで3D再構築する前回のエントリでOenMVGを使って三次元再構成ができることが確認できました。今回はさらに進んで、ジオメトリを再構成してみます。前回のエントリで生成したカメラ内部パラメータは間違えていました。正しくはこうなります。間違えていた原因としては、OpenCVのキャリブレーション関数でのRow/COlumnsの扱いが逆になっていたためでした。5として対応する画像上の点を生成するべきなのですが、rowとcolを逆に設定していたためにおかしなことになってました。opencvあるあるですね。いうわけで、キャリブレーションやりなおすとこうなりました。検出した画像座標上の点に対応する3次元上の点を作成する。画像の枚数個複製する。)PythonからOpenCVを使ってのキャリブレーションは、こちらのサイトを参考にさせていただきました。http://pynote.hatenablog.com/entry/opencv-camera-calibrationキャリブレーションで得たパラメータを使ってOpenMVGを叩くコードはこんな感じです。チュートリアルのままですが。https://gist.github.com/javoren/dd7075211776ee51ac45c06b3827d905これを実行するとimagesディレクトリの画像をもとに三次元点群を生成するtutorial_out/reconstruction_globalディレクトリに結果を出力するという感じに動きます。できあがったデータはこんな感じです。前回のエントリではキャリブレーションパラメータが間違えていて、何が何やら状態でしたが、これなら何か見えてきそうな気がしますね。openMVS形式にファイルを変換するできあがったデータはopenMVSにもっていきたいので、プロジェクトを変換します。openmvgのコンテナ内で次のコマンドを実行します。/mnt/work/scene.mvsこれで/mnt/work/scene.mvsという、OpenMVSで利用可能なファイルが完成しました。OpenMVSの用意openmvsのリポジトリ公式の手順をもとにdockerコンテナを作成します。まとめるのが下手なので、一旦個別にRUNしていくだけの簡単なものです。rootディレクトリにすべて展開しちゃってるのはご愛敬ということで。installこのコンテナを起動するdocker-compose.ymlは次のようになりました。"./work/images/:/openMVS_build/bin/undistorted_images"このコンテナに入って、次のコマンドを実行していけば三次元再構成ができます。/mnt/work/openMVS/scene.mvs密な点群にしてみるとこうなります。点の数がずいぶんと増えたので、キャラクタも武器も目視確認できますね。/mnt/work/openMVS/scene_dense.mvs点のままでは3DCGソフト上で扱いにくいのでメッシュにします。Blenderへのインポート時点でテクスチャがはがれてしまいましたが、ひとまず読み込みできました。試しにキャラクタ部分のみ残してみるようにしたところ、およそ20万ポリゴンでした。感想と今後の展望ゲームのスクリーンショットをもとに三次元再構成ができることの確認ができました。手直ししてあげれば3Dプリンタで出力することもできそうです。今回の手法は弱点も存在していて、「光沢部分が凸なポリゴンとして認識されてしまう」という課題があります。これはゲーム画面のレンダリング時は光沢として白色になるわけですが、分析時はその白色は凸のためにできたのか、もともと白かったからなのかという判断がうまくつかないからのようです。入力データを工夫して色々と試してみたいと思います。今回利用した手法(SfM)以外にも、DeepLearningを用いた手法もあるようなので、そちらも試していきたいと思います。それでは今回はこれくらいで。OpenMVSで3D再構築するTweet広告を非表示にする関連記事2019-09-23OpenMVGを試してみる(環境構築+α)夏が終わって秋らしい気候になってきました。秋は色々と創作意...2019-05-28MTGのカード情報の傾向分析を行う(準備編)GWが終わって、しばらく祝日なしの日が続きます。私は毎年この...2019-03-15OpenCV4.0をソースコードからインストールする想像以上に手間取りました。flask)そろそろWebSocketやってみようと思いました。...2019-02-13DockerでJenkinsとテスト用のコンテナを動作させるDockerでCI/CD環境を構築してみます。»プロフィールid:Catalina1344ソフトウェアやハードウェアの備忘録。後で逆引きできるように。OpenMVSで3D再構築するOpenMVGを試してみる(環境構築+α)父の日ですね月別アーカイブ忍者AdMaxはてなブログをはじめよう!Catalina1344さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。