• 記事をシェア
  •  
  •  
  •  
  • B! 
  •  

ドローン空撮ビデオ・写真から3DCGモデルを生成する / Meshroomとblenderの使い方

DJI Mini2による空撮ビデオをMeshroomで3DCGモデル化してblenderで表示
Meshroom とは、2020年7月に設立された非営利団体ALICEVISION協会が開発した、複数の写真を読み込んで3Dモデルを生成することができるフリーのソフトウェアです。 ドローンで撮影した空撮ビデオを複数の写真に分解して、Meshroomで処理すると、".obj"形式の3DCGオブジェクトを生成することができます。 ここでは、空撮ビデオから3DCGオブジェクトを生成し、フリーの3Dモデリングソフト:blenderで取り込んで編集・表示するまでを解説します。

空撮ビデオから3DCGモデルを生成するのに必要なもの

DJI Mini2
必要なものはドローンとパソコン、そしてフリーソフトのみです。今回使用した機材は・・・
ドローンは初心者でも扱える DJI Mini2 です。4K解像度、フレームレート30FPSの空撮ビデオを使用しました。
パソコンは性能が良ければ良いほど早く処理が終わります。 とはいえ今回使用したパソコンは2011年に組んだもので、CPUはCOREi7-2600、メモリは8GB、グラフィックボードはNVIDIA GeForce GTX 1060(3GB)を搭載しています。 これでMeshroomを使って613枚の写真を処理すると、3Dモデルを生成するのに約24時間かかりました。
フリーソフトは ビデオをjpeg画像に分解するのに VLC media player 、 そして Meshroom と 3Dモデリングソフト blender の3つだけです。
完成したモデルは3DCGとして自由な方向から映像化したり、3Dプリンタを使って立体化することも可能です。
今回3Dモデル化に挑戦したのは、日本の初代南極観測船「宗谷」です(下のビデオ)。
初代南極観測船「宗谷」
YouTubeで見る

手順をビデオで紹介

まずは今回の手順をビデオで簡単に紹介しましたので、ご覧ください。
ドローン空撮ビデオから3DCGモデルを生成する
YouTubeで見る

ビデオから静止画を取り出す

Meshroomの入力には静止画が必要です。 ドローンで撮影したビデオは静止画に分割する必要があります。 これにはフリーのビデオ再生ソフト:VLC media playerが使えます。 この手順の詳細については下記をご覧ください。 今回使用したシーンフィルターの設定は以下の通りです。
項目 設定値
画像形式 jpg
画像の幅 3840
画像の高さ 2160
レコーディングレシオ 30
レコーディングレシオを30に指定したので、DJI Mini2で撮影した30FPSのビデオでは、1秒に1コマの割合でキャプチャされます。 Meshroomで生成されるモデルの精度を上げるには、できるだけ多くの写真が必要です。 一方Meshroomは、ターゲットの被写体だけではなく、背景に写るビルや木などもすべてモデル化しようとします。 キャプチャ作業が終了したら、被写体があまり大きく写っていない画像や、被写体以外のものが写っている画像は極力削除してください。
なお、海(水面)などの鏡面、光を反射して白飛びしている部分、影に入って黒くなっている部分など、位置や形が確定しずらい部分は正しくモデル化されません。
今回、被写体を4K/30FPSで空撮した合計13分ほどのビデオを使い、それを3840x2160ピクセルのjpeg画像に分解しました。被写体がうまく写っていない写真を削除して、残りの合計613枚の写真を利用しました。

Meshroomのインストール

PC Meshroomは オフィシャルサイト からダウンロードします。 対応OSはWindows(64bit)とLinux(64bit)です。
また、Meshroomを動作させるには、パソコンに NVIDIA CUDA ( cuda-10 / compute capability 3.0 - 7.5 ) に対応したビデオカードを搭載している必要があります。 2015年の製品である NVIDIA GeForce GTX 960 搭載のビデオカードでも動作したので、最近のNVIDIAのビデオカードを増設していれば問題ないと思います。
Meshroomにはインストーラーはありません。 Meshroomをダウンロードすると「Meshroom-2021.1.0-win64.zip」といったファイルが得られます。 ただこれを任意のフォルダで解凍すればインストール完了です。

Meshroomで写真を3DCGモデル化

とりあえず最低限の手順で写真を3DCGモデル化してみましょう。
PC Meshroomを解凍したフォルダーにある「Meshroom.exe」をダブルクリックすると起動します。 最初にこのようなコンソール画面が起動します。 これは開いたままにしてしばらく待ちます。
なお、このコンソール画面は最後まで閉じないでください。
PC そして数秒待つとMeshroomのGUI画面が起動します。 画面左の「Drop Image Files / Folders」と書かれているところに、空撮ビデオからキャプチャした画像ファイルをすべてドラッグ&ドロップします。
PC つづいてメニューから[File]-[Save As...]を選びます。 するとファイル保存のダイアログボックスが表示されるので、このプロジェクトを".mg"形式のファイルとして、任意のフォルダに保存します。 Meshroomの処理結果は、ここで指定したフォルダの下に格納されます。
そして画面上部中央にある緑色の「Start」ボタンをクリックすると処理が開始されます。
なお処理結果データの出力容量は、処理する写真の枚数によって変化し、41枚で3GB程度、今回の613枚の写真の場合は30GB程度となります。
PC 処理中はこのような画面になります。 画面上部の「Start」ボタンの下には、処理の進捗が棒グラフで表示されます。 ここがすべて水色から緑色に変化したら完了です。
画面下部の「Task Manager」タブをクリックすると、「Progress」欄に、より詳しい進捗状況がグラフ表示されます。 実行中のタスクがオレンジで、完了したタスクが緑色で表示されます。
実行中のタスクをクリックすると、画面右下に、さらに詳細な情報が表示されます。
PC あとはひたすら処理が終わるのを待ちます。 Meshroomの処理時間は、オフィシャルサイトから入手できる サンプルデータ (dataset_monstree) (4032x3024ピクセル、41枚)で約50分、 DJI Mini2の空撮画像(3840x2160ピクセル、261枚)で約12時間、 そして今回の空撮画像(3840x2160ピクセル、613枚)で約24時間かかりました。
処理結果は、プロジェクト(".mg"形式ファイル)を保存したフォルダの下の 「MeshroomCache/Texturing/[記号フォルダ]」の下に格納されます。 3Dモデル(ポリゴンデータ)が".obj"形式のテキストファイルで、マテリアル(テクスチャファイルの名前とUV座標に関する情報)が".mtl"形式のテキストファイルで、またテクスチャ画像が複数の".png"形式で生成されます。

3Dビュアーで簡易表示

".obj"形式の3Dモデルは、Windows10に標準でインストールされている「3Dビュアー」でも表示することができます。
PC この図がMeshroomで生成された".obj"ファイルを3Dビュアーに読み込んだ直後の状態です。 モデルがひっくり返っているのと、周囲のビルなどもモデル化されているので、何が何だかわからない状態です。
PC マウスでドラッグすると、モデルを回転することができます。またマウスホイールをスクロールすると、拡大/縮小できます。 図の中央右下に赤線で囲った部分が、南極観測船「宗谷」です。 周囲のビルや木、桟橋など、ビデオに写っていたものがいろいろモデリングされています。
つづいて3Dモデリングソフト:blenderを使って、不要なポリゴンを削っていきます。

blenderのインストール

PC blenderは オフィシャルサイト からダウンロードします。 対応OSは Windows10, Mac(Intel/M1), Linuxです。
blenderのインストーラーをダウンロードすると「blender-2.93.1-windows-x64.msi」といったファイルが得られます。 これをダブルクリックするとインストールできます。 インストールに当たっては、特に注意するところはありません。 画面の指示に従えばOKです。
PC デスクトップにある (blender) のアイコンをクリックすると起動します。 最初はこのような初期設定画面が表示されます。 お好みで設定して「Next」をクリックします。
PC するとつづいてこのような画面が表示されます。 各メニューを選ぶと、新しいファイルを作成したり、最近作成した3Dモデルを開いたり、マニュアルを開いたりできます。
この画面は、[ESC]キーを押すか、このダイアログボックスの外をクリックすると、消えます。 これでblenderを使う準備ができました。

blenderでobjファイルを読み込む

PC objファイルの読み込みには、メニューから[File]-[Import]-[Wavefront(.obj)]を選びます。
PC するとこのようなダイアログが表示されるので、objファイルを選択して「Import OBJ」ボタンをクリックします。
PC するとこのように読み込まれます。 オブジェクトのポリゴン数にもよりますが、読み込みには1分程度かかる場合があります。
PC 画面右上のScene Collection画面で、デフォルトで準備されている立方体オブジェクトとカメラ、光源は隠してしまいましょう。 それぞれの要素を右クリックして「Delete」メニューを選ぶと、削除してしまうこともできます。
PC 画面右上のアイコンをクリックしてシェーディング方法を切り替えると・・・
PC テクスチャが貼られた状態でオブジェクトが表示されました。 これから、オブジェクトを移動・回転して、不要なポリゴンを削っていきます。
なお、マウスのホイールをスクロールするとズームイン/ズームアウトします。また、[Shift]キーを押しながらドラッグすると、オブジェクトの表示位置を変更できます。 マウスのクリックホイールを押しながらドラッグすると、視点を回転させることができます。
PC なお、作業の途中で適宜[File]-[Save As../Save]を選び、blender(".blend")形式で保存しておきましょう。

blenderでオブジェクトを移動・回転する

ひっくり返っているオブジェクトを、ワールド座標系の中心に移動し、X,Y,Z軸に合わせて回転しましょう。
PC 正確な位置合わせを行うには、三面図で作業するのが便利です。 [View]-[Area]-[Toggle Quad View]を選びます。 このメニューを選ぶ度に、三面図が表示/非表示に切り替わります。
PC 位置合わせはローカル座標系で行いましょう。 座標系を「Local」に切り替えます。
PC 左に並ぶアイコンから「Move」を選ぶと、選択しているオブジェクトの平行移動ができます。
PC 図では見にくいですが、各面に表示されている、白い丸と3色の矢印からなるアイコン(Pivot Point)をドラッグすると、オブジェクトが移動します。 お目当てのポリゴン群(ここでは南極観測船を構成するポリゴン群)がワールド座標の中心に来るように移動します。
なお、マウスのホイールをスクロールするとズームイン/ズームアウトします。また、[Shift]キーを押しながらドラッグすると、オブジェクトの表示位置を変更できます。 マウスのクリックホイールを押しながらドラッグすると、視点を回転させることができます。
PC オブジェクトの位置を移動したら、ローカル座標の中心(オリジン:Pivot Point)を、ワールド座標の中心に移動しましょう。 3Dカーソルをワールド座標の中心に置いた状態で [Object]-[Set Origin]-[Origin to 3D Cursor] を選ぶと、ローカル座標の中心が3Dカーソルの位置に移動します。
PC つづいてオブジェクトをローカル座標内で回転させましょう。 左に並ぶアイコンから「Rotate」を選び、オブジェクトが目的の方向を向くように回転させます。
必要に応じて、上の手順を繰り返して、オブジェクトの中の、ターゲットのポリゴン群がワールド座標の中心に来るように調整してください。
PC 位置決めが終わったら、座標系を「Global」に戻しておきましょう。

blenderで不要なポリゴンを削る

PC ポリゴン(頂点)の編集を行うには、モードを[Layout]から[Modeling]に切り替えます。
PC するとこのような表示になります。 図の赤枠で囲った部分に、南極観測船宗谷のポリゴンがあります。 これ以外のすべてのポリゴン(頂点)を削除します。
PC マウスをドラッグするとラバーバンドが表示されます。 そしてラバーバンドに囲まれた部分の頂点がオレンジ色に変わり、「選択」された状態になります。
PC そして右クリックメニューから「Delete Vertices」を選ぶと削除されます。 視点から見て重なっている頂点は残ってしまうので、何度も同じ範囲を選択して削除を繰り返します。
なお、マウスのホイールをスクロールするとズームイン/ズームアウトします。また、[Shift]キーを押しながらドラッグすると、オブジェクトの表示位置を変更できます。 マウスのクリックホイールを押しながらドラッグすると、視点を回転させることができます。
PC 完成しました。 もともとMeshroomで3DCG化することなどは考えずに撮影した空撮ビデオであるため、ところどころ撮影されていない部分があり、ポリゴンに穴が開いてしまっています。
穴が閉じていれば、さらにこれを3Dプリンタで印刷して立体化することも可能です。 下記のサイトをご参照ください。
ドローン撮影 お台場ガンダムユニコーン 4K
YouTubeで見る

もっとドローンのことを知りたい