電通総研 テックブログ

電通総研が運営する技術ブログ

フォトグラメトリによる3Dモデル作成ワークフロー(前編)

みなさんこんにちは! ISID 金融ソリューション事業部の松崎です。
前回の記事では、フォトグラメトリを用いた3Dモデル作成手法を紹介しました。まだご覧になっていない方は、是非読んでいただけると嬉しいです!

今回からは、2回に分けてフォトグラメトリを用いた3Dモデル作成のワークフローを紹介していきます。
この記事は前編です。

はじめに

まず初めに、フォトグラメトリについて概要を説明します。
フォトグラメトリとは、被写体をさまざまなアングルから撮影し、そのデジタル画像を解析・統合して写実的な3Dモデルを作成する技術です。3Dスキャナのような特殊な機器が不要で、通常の写真だけで生成できることが特徴です。
被写体の大きさや求める3Dモデルのクオリティにもよりますが、およそ数十枚~数百枚のデジタル画像を用いて3Dモデルを生成します。
LIDERなどセンサーを用いた手法と比較した場合、フォトグラメトリの強みとしては写真からハイクオリティなテクスチャを抽出できることが挙げられます。

(画像:被写体(車)に対してフォトグラメトリ用の写真を撮影するイメージ)

ワークフロー一覧

フォトグラメトリによる3Dモデル作成のワークフローは、大きく分けて以下に分けられます。

  1. 機材の準備
  2. 被写体の確認、撮影環境のロケハン
  3. 被写体の撮影
  4. 撮影画像のRAW現像
  5. メッシュモデル作成
  6. テクスチャ貼り付け・ローポリ化

前編では、1~3についてご紹介します。

1.機材の準備

フォトグラメトリを行うにあたって、必要となる機材を紹介します。
本記事で紹介する機材一覧を以下に示します。

  • カメラ
  • PC
  • 三脚/一脚
  • コンパクトカメラ (+ 伸縮ロッド)
  • ドローン
  • 回転台 (+ 背景布/グリーンバック)
  • 照明
  • 露出計/カラーチェッカー
  • 偏光フィルター

1-1.カメラ

フォトグラメトリ用の写真を撮影する際、重要になるポイントを2つ紹介します。
また、参考として私たちが使用しているカメラを紹介します。

1-1-1.画質

フォトグラメトリは、写真から3Dモデルを作成するという特性上、写真の画質が3Dモデルのクオリティに直結します。
その為、よりリアルな3Dモデルを作成したい場合は高画素数のカメラを使うことが望ましいです。
一方、高画素数カメラは一つ一つの受光素子が小さくなる関係で、「ノイズや手振れが起こりやすくなり、暗所にも弱い」というデメリットが存在します。
「とりあえず高画素数のカメラを使う」のではなく、自分が求めるクオリティと撮影環境(明るさ確保や手振れ対策が可能か等)を照らし合わせて選定することが望ましいです。

(画像:低画素と高画素の受光素子イメージ)

1-1-2.画角

フォトグラメトリのワークフローにおいて、大きく手間がかかる部分は写真の「撮影」と「処理」になります。
被写体が小さい場合はそこまで手間もないですが、部屋や建物を対象とする場合は、数百~数千の写真を撮影・処理することになります。その為、「撮影枚数をいかに減らすか」といった部分がとても重要になります。
通常のズームレンズの焦点距離は35~50mmが一般的ですが、広角レンズ(焦点距離14~20mm程度)を用いることで、画角を1.5~2倍程広くできます。この場合、単純概算で写真枚数を0.5~0.7倍程に減らせることになりますので、可能な限り広角レンズを使うことが望ましいです。

(画像:レンズの焦点距離と画角の変化)

一方、広角レンズを用いると写真の端部分を中心に歪みが発生するといったデメリットが存在します。
フォトグラメトリソフトウェアによっては広角写真を補正する機能(RealityCaptureにて確認済)がありますので、各種機能を駆使しながら、できる限りの広角レンズを使用することが望ましいです。

1-1-3.カメラ紹介(参考)

私たちが使用しているカメラ・レンズを紹介します。
カメラやレンズ選定のご参考にしていただければと思います。

  • Sony α7R IV
    約6100万画素、35mmフルサイズセンサーのデジタル一眼ミラーレスカメ
    高解像度・高感度・低ノイズ性能が特徴です。

  • Sony Vario-Tessar T* FE 16-35mm F4 ZA OSS(SEL1635Z)
    35mmフルサイズイメージセンサーとマッチする、焦点距離16~35mmの広角ズームレンズ
    非球面レンズ5枚とEDガラス3枚が使用されており、画面端の高解像度化や歪曲収差が低減される点が特徴的です。

1-2.PC

PCは主にフォトグラメトリソフトウェアを動かす為に使用します。
私たちのチームでは、フォトグラメトリソフトウェアとしてRealiyCaptureを使用しておりますが、その要求スペックは以下のとおりです。(出典元

  • PC:64bit PC/ワークステーション
  • OS:64bit Microsoft Windows version 7 / 8 / 8.1 / 10 / 11 または Windows Server version 2008+
  • CPU:SSE4.2(Streaming SIMD Extensions 4.2)以降
  • RAM(メモリ):8GB以上
  • GPUNVIDIA graphics card with CUDA 3.0+ capabilities で 、VRAMが1GB以上
  • DRIVER:CUDA Toolkit 10.2, minimal driver version 441.22.

また、推奨スペックは以下になります。

前回の記事にて紹介した通り、RealiyCaptureは「アライメント ⇒ メッシュ作成 ⇒ テクスチャ作成」の順で処理を行います。この内、メッシュ作成はCPU・GPUの両方が使われていますが、アライメントとテクスチャ作成はCPUのみで行われます。その為、処理時間を短縮したい場合はCPU性能から向上させることが望ましいです。
また上記出典元では、RAMに関して「数千枚の高画質写真(30~80MP)を扱うには16GBで十分」と記載されています。
数千枚より多くの写真を用いる場合や、100MPを超えるような超高画質写真を使用する場合は32GB以上のRAMを検討しましょう。

こちらも参考までに、私たちが使用しているPCスペックを紹介します。
私たちの場合は、RealityCapture側のアップデート(1億ポリゴン対応等)に備え、推奨より高いスペックにて構成しています。

1-3.その他

フォトグラメトリを行う上で必須となる機材はカメラ・PCですが、それ以外にも「あったら便利」な機材がいくつか存在します。私たちのチームで検討中の機材も含め、そんな便利機材を紹介していきます。

1-3-1.三脚/一脚

フォトグラメトリにおいて「手振れ」は3Dモデルのクオリティ劣化に直結します。最近のカメラは手振れ補正機能が充実していますが、それでも激しく揺れた場合はブレが発生してしまいます。
また、同じ高さを維持して撮影したい時や、シャッタースピードを落として撮影したい時にも三脚/一脚が便利です。

1-3-2.コンパクトカメラ (+ 伸縮ロッド)

5m~10mの高所から撮影する場合、コンパクトカメラ等の小型・軽量カメラがあると便利です。
数枚程度の高所撮影であれば通常サイズのカメラで問題ないと思いますが、数十~数百枚の高所撮影をするときは軽いカメラが役立ちます。

1-3-3.ドローン

10m以上の高所から撮影する必要がある場合は、ドローンでの空撮が選択肢に入ります。
ただし、2023年6月現在はドローン使用に関する規制が厳しく、場所によってはドローン空撮が許可されない場合もあります。また、人が歩いている上空で行う「レベル4」の飛行には、国家資格「一等無人航空機操縦士」が必要になります。
その為、ドローンを用いた空撮は非常に難易度の高い要件と言えます。


(画像:ドローンとは何か

1-3-4.回転台 (+ 背景布/グリーンバック)

単体の物体、かつ回転台に乗る大きさの物体を被写体とする場合は、回転台を使用すると撮影の手間が省けます。
フォトグラメトリでは360°すべての角度から撮影する必要がありますが、回転台を用いることで、カメラを固定したまま一周分撮影することが出来ます。
注意点としては、被写体以外の背景部分が回転しないことです。この場合、被写体と背景部分の特徴点変化が釣り合わず、特徴点抽出が正常に働きません。
その為、グリーンバック等を用いて一色に統一し、背景部分をマスク処理等で除去できるようにする必要があります。

1-3-5.照明

屋内撮影にて単物体を被写体とする場合は、照明を用いることで光量を調節することが出来ます。
フォトグラメトリの特性上、物体に当たっている光量は直接テクスチャへ影響します。
カメラ側での露出設定や現像後処理にて調整することも可能ですが、最初から目的の光量に統一して撮影すると、細かい調整作業を省くことが出来ます。
また、設置式の定常光が置ける場合は問題ないですが、空間的制約などによって設置できない場合はストロボを使用することも検討します。

1-3-6.露出計/カラーチェッカー

露出計は、その場の光の強度を測定し、カメラの露出設定を導出する機械です。
フォトグラメトリでは対象を様々な角度から撮影する為、カメラの露出設定を一定にしている場合、角度によって露出が変化してしまいます。
適正露出を保つためには、露出計を用いて角度毎に露出設定を変更することが望ましいです。
また、ホワイトバランスの調整としてはカラーチェッカーがあると便利です。

1-3-7.偏光フィルター

偏光フィルター(PLフィルター)は、反射光を調整するフィルターです。
晴れの日の屋外で撮影する時など、物体からの反射光が強く出てしまうときに使用すると、物体本来の色彩を捉えやすくなります。


(画像:PL(偏光)フィルターの効果と使い方、使用例、選び方、特徴

2.被写体の確認、撮影環境のロケハン

ここからは被写体の大きさや屋内/屋外の条件ごとに、撮影前に必要となるロケハン内容を紹介します。

2-1.単体の物体

単体の物体を被写体とする際は、その物体を全方位から撮影できるだけの空間が必要になります。
コップや花瓶のような小物体の場合は机の上に置いて撮影できますが、大きなデスク等を被写体とする際は、周囲にそれなりの空間が要求されます。(被写体全体を写すには、ある程度離れる必要がある為)
全方位から撮影できる空間が取れない場合は、被写体を広い部屋に移動させて撮影することが望ましいです。


(画像:部屋の大きさに対して物体が大きい例)

その他の点として、光量を一定に保ちたい場合は照明を用いて調整しましょう。
また被写体が回転台に乗る大きさであれば、上記で紹介した「回転台 + グリーンバック」の機材で撮影を効率化できますので、これらの設置可否を検討しましょう。

2-2.部屋内観(屋内)

部屋全体を撮影する際に重要なポイントは、可能な限り部屋内の物体を減らすことです。
小さな物体がいくつかある程度であればよいですが、大きな物体があると撮影時に影部分(部屋全体を撮った写真内に映らない部屋の壁・床など)が増えてしまい、細かく何か所も撮影する必要が出てしまいます。
また、詳細は3章にて説明しますが、「部屋全体を撮影した写真」と「影部分となった箇所を個別に撮影した写真」をフォトグラメトリ上で1つのモデルとして繋げるには、それぞれの写真の間となる写真も必要になります。(RealityCaptureの場合は前後の写真にて最低60%の重なりを維持する必要あり)
その為、「影部分」は可能な限り作らないようにすることが最重要です。
3Dモデル化した後の利用を考えた際にも「既に物体が置かれている部屋」というのは扱いづらいですので、「部屋」と「内部にある物体」は別々にモデル化する方式が望ましいです。


(画像:部屋中央に物体がある際に発生する「影部分」)

また、GSD(地上解像度)の計算を行うことで、作成する3Dモデルのテクスチャ解像度を事前に想定することが出来ます。
GSDは「センサー幅」「焦点距離」「高さ」「画像幅(pixel)」「画像高さ(pixel)」を元に地上面における解像度を導出するものですが、「高さ」部分を「部屋内の最も遠い部分までの距離」とすることで、作成テクスチャ内の最も低い解像度箇所が導出できます。
テクスチャで担保したい解像度ラインがある場合は、あらかじめGSDを計算しておくと安心です。
参考:PIX4D TOOLS - GSD calculator

その他のポイントとしては、以下が挙げられます。

  • ガラス面や白一色の壁はフォトグラメトリで再現不可(特徴点として認識できない為)。対象箇所は新聞紙などでマスキングを施しておく(後続フローにて手作業の修正が必要)。
  • 撮影時の移動経路をあらかじめ想定し、目印としてマステなどを貼っておく。移動経路は一筆書きの動きでイメージし、写真同士が連続するように組む
  • 撮影の「始まりの写真」と「終わりの写真」がきちんと連続するように、撮影開始地点は特徴点の多い場所に定める。
  • 部屋の高さを確認し、場合によっては伸縮ロッドやコンパクトカメラの利用を検討する。

2-3.建物外観(屋外)

屋外にて建物外観を撮影する際のポイントは、太陽光と人払いです。

屋内と異なり、屋外では太陽光の影響を取り除くことが出来ません。
時間による太陽の位置変化や、雲から出た/隠れた際の日照量変化によって露出が変わってしまいます。
その為、屋外で撮影を行う際はあらかじめ移動ルートを確立しておき、曇りの日に短時間で撮影を完了させることが望ましいです。
また、写真は後処理で明るくすることが出来ます。(逆に暗くするのは難しいです)
黒潰れしない範囲で全体的に暗めに撮影しておき、後処理で明るくして全体の調整を行いましょう。

2点目は人払いです。
こちらは公共の屋内(美術館など)でも関係する話ですが、屋外での撮影は基本的に公共の場所・建築物の撮影になります。
フォトグラメトリ用の写真では、途中で人が入り込んでしまうと写真の連続性が維持できなくなってしまう為、公共の場所であっても人(その他の動く物体含む)が映らないよう配慮する必要があります。
上記のような場所を長時間に渡って占有する(他の人を近づけさせない)場合、大抵は管理者の許可が必要です。
占有自体が禁止されている場合もありますので、撮影対象に関するルールは事前に確認しておきましょう。
また、高所を撮影する際にドローンを使いたくなりますが、2023年6月現在ドローン使用に関する法規制はかなり厳しいです。(場合によっては国家資格も求められます)
その為、高所撮影は基本的に「小型カメラ+伸縮ロッド(1~10m程)」での実施を検討しましょう。

3.被写体の撮影

被写体の撮影時に注意するポイントを、場面ごとに紹介していきます。

3-1.共通

まず初めに、全場面に共通するポイントを紹介します。

3-1-1.前後の写真で70%以上の重なりを維持する

RealityCaptureに取り込んでアライメントを行う場合、最低60%(可能なら70%)の重なりが必要です。
ただし実際に「70%」を感覚的に行うのは難しいと思いますので、私なりのやり方を紹介します。

フォトグラメトリ用の写真撮影では、カメラの向きと垂直方向への移動(動きとしては横移動)が基本になります。
その為、まずは1撮影ごとの横移動可能な距離を感覚的に把握する必要があります。
カメラの向きを変えないまま横移動する場合、移動距離がそのまま写真に反映されるので、写真の横幅1/3程度(約30%)分移動できることになります。

(画像:カメラと垂直方向への移動イメージ)

実際に移動できる距離はカメラの広角性能によりますので、試しに何回か横移動しながら写真を撮り、
「写真上で横幅1/3分移動する自分の歩幅」を確認しましょう。

3-1-2.カメラの向きを変える際は、細かく移動(撮影)しながら変える

カメラの向きを変える際に、一点に留まって向きだけを変えると重なりのバランスが悪くなってしまいます。
向きを変える際は、細かめに移動しながら少しずつ向きを変えましょう。

(画像:方向転換方法による重なりの違い)

3-1-3.全体が鮮明な写真を撮影する(被写体深度を深くする)

フォトグラメトリにおいて、ボケ感のある写真は望ましくありません。
ポートレートのような被写体深度の浅い写真ではなく、全体がクッキリと映った写真を撮影しましょう。
具体的な設定方法としては、F値(絞り)を大きくします。
設定値はカメラの性能や周囲の明るさによりますが、低くても4以上が望ましいです。(可能であれば11や14など)

(画像:被写体深度によるピンボケの違い)

3-1-4.ノイズや手振れを発生させない

前項と関係する話になりますが、F値を上げるためにレンズを絞ると、レンズから入る光の量が減少してしまいます。
そのままだと暗い写真になってしまう場合、ISO感度シャッタースピードを調整して明るくする必要があります。
しかし、ISO感度は上げすぎるとノイズが発生してしまい、シャッタースピードは遅くすると手振れが発生しやすくなります。
両方をバランスよく調整して、ノイズや手振れを発生させないようにしましょう。
また、どうしてもノイズや手振れが発生してしまう場合は、「F値を下げる」または「三脚を使用する」ことを検討しましょう。

(画像:ノイズや手振れの発生例)

3-1-5.動く物体を撮影しない

上述した通り、フォトグラメトリでは画像の重なりがとても重要です。
人間などの動く物体が映り込んでいると写真間の重なりが正しく判定されなくなる恐れがあるので、静止した物体のみを撮影するようにしましょう。
また、撮影の途中で物体の向きや場所を変えるのも厳禁です。
撮影の開始と終了時で、撮影範囲内のすべての物体が変化しないようにしましょう。

※グリーンバックなどを用いて背景をマスク処理する場合は例外です

(画像:動物の映り込みが発生した例)

3-1-6.黒つぶれや白飛びを発生させない

黒つぶれや白飛びは現像段階にて調整することが出来ない為、撮影段階で発生させないようにしましょう。
最近のカメラは撮影時や再生時にヒストグラム(輝度分布)が表示されますので、黒つぶれ・白飛びが見られる場合は露出補正をかけて対処します。
なお、蛍光灯のように常に白飛びしてしまう部分や、テクスチャのクオリティを求めない黒い部分などは適宜妥協しましょう。

(画像:黒つぶれ・白飛びの発生例)

3-1-7.写真間の「明暗」・「色調」に大きな差を出さない

写真間の「明暗」・「色調」が異なる場合、テクスチャの色合いが場所ごとに変わってしまいます。
現像段階にて調整することも可能ですが、可能な限り撮影時に揃えておくことが望ましいです。
露出変化が激しい場所での撮影では、適宜露出計を用いての調整も検討しましょう。

(画像:撮影中に明暗が変化した例)

3-2.屋内空間(部屋全体など)

次に、屋内空間を撮影する時に意識するポイントを紹介します。

3-2-1.カメラの向きと垂直方向へ移動しながら撮影する

3-1-1で記載した通り、フォトグラメトリではカメラの向きと垂直方向への移動(横移動)が基本です。
屋内の場合、壁面の地上解像度が求めるクオリティに収まる範囲で壁面から距離を取り、そこから横移動して撮影します。
1セットで足りない場合は、壁面からの距離を変えて横移動の撮影を繰り返しましょう。

(画像:横移動のイメージ)

3-2-2.撮影開始地点と終了地点は特徴点の多い場所を選ぶ

1セットの開始地点と終了地点を特徴点の多い場所にすると、他セットの写真と接続しやすくなります。
部屋内に特徴点の多い場所が一点しかない場合は、常にその一点に行き着くようにセットを組みましょう。
注意点として、ある程度特徴点の多い場所であっても、部屋内に同じような場所が存在する場合は候補から外しましょう。

※この場合横移動だけでは撮影できない部分が出てきますので、適宜方向転換も行いながらの撮影になります。

(画像:特徴点の多い場所・少ない場所)

3-2-3.写真は「低い位置からの斜め上目線」と「高い位置からの斜め下目線」で撮影する

カメラの位置と向きに関しては、「低い位置からの斜め上目線」と「高い位置からの斜め下目線」の2パターンで撮影します。
理由としては、この目線が最も広範囲に部屋内を撮影できるからです。
「低い位置」は床付近、「高い位置」は可能な限り天井に近い場所になります。(適宜三脚などを利用しましょう)
なお、天井が高く上記の視点では天井・床に対して必要な地上解像度が得られない場合は、別の高さでの撮影も行う必要があります。

(画像:屋内撮影時のカメラ視点イメージ)

3-3.屋外

最後に、屋外での撮影時に気を付けるポイントを紹介します。

3-3-1.曇りの日に撮影する

3-1-7で記載した通り、写真間の「明暗」・「色調」は撮影段階で揃えておくことが望ましいです。
晴れの日など、短時間の日射量変化が激しい日は撮影に適しません。
また、快晴の日は晴れほど日射量変化は激しくないですが、後述するフレア・ゴーストが発生しやすくなります。
その為、曇りで日射量の少ない日が撮影に適しています。

(画像:理想の天気状況と、晴れた日の影響例)

3-3-2.逆光による光条・ゴーストを発生させない

逆光状態で撮影を行うと、光条やゴーストが発生してしまいます。
これはテクスチャに影響にしてしまうので、撮影角度や撮影時間を変えて、可能な限り発生させないようにします。
どうしても発生してしまう場合は、その写真をアライメントのみに利用し、テクスチャ作成時には取り除きましょう。

(画像:光条・ゴーストの発生例)

3-3-3無風状態のときに撮影する

3-1-5で記載した通り、フォトグラメトリでは撮影物体を静止させる必要があります。
屋外で撮影する場合、風の影響で木や葉が揺れてしまいますので、無風状態を狙って撮影しましょう。
無風状態で撮影できない場合は、別日での撮影を検討します。

(画像:撮影毎に木の枝が動いてしまった例)

おわりに

本記事では、フォトグラメトリワークフローの前編として、機材選定に関する部分と撮影前・撮影時の注意ポイントについて紹介しました。
これからフォトグラメトリを始める方で、「どんな機材を揃えたらいいんだろう?」「撮影前や撮影時に何を意識すればいいんだろう?」という悩みを持つ方の一助となれば幸いです。
後編ではRealityCaptureに取り込む前の現像処理や、RealityCaptureを用いてのモデル作成部分を紹介していきますので、こちらも御一読いただければ幸いです。

現在ISIDはweb3領域のグループ横断組織を立ち上げ、Web3およびメタバース領域のR&Dを行っております(カテゴリー「3DCG」の記事はこちら)。
もし本領域にご興味のある方や、一緒にチャレンジしていきたい方は、ぜひお気軽にご連絡ください!
私たちと同じチームで働いてくれる仲間を、是非お待ちしております!
ISID採用ページ

参考資料

日本写真印刷コミュニケーションズ株式会社:「フォトグラメトリ」とはどういうもの?
フジヤカメラ:カメラの画素数は多ければいいの!?画素数と画質の関係 高画素のメリット・デメリット
フジヤカメラ:PL(偏光)フィルターの効果と使い方、使用例、選び方、特徴
姫野ばら園:カメラコラム「レンズの焦点距離と画角の変化」
EpicGames:OS and hardware requirements
DRONE NAVIGATOR:ドローンとは何か
PIX4D:TOOLS - GSD calculator
STUDIO DUCKBILL 広域・環境フォトグラメトリの世界

執筆:@matsuzaki.shota、レビュー:@yamashita.yuki
Shodoで執筆されました