電通総研 テックブログ

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

回転台とグリーンバックによる本格フォトグラメトリ撮影(Adobe Photoshop × RealityCapture)

みなさんこんにちは! ISID 金融ソリューション事業部の松崎です。
前回の記事では、「フォトグラメトリによる3Dモデル作成ワークフロー(後編)」と題し、
フォトグラメトリで使用する写真撮影後の現像や加工手法、RealityCaptureを使ってのモデル作成方法について紹介しました。
まだご覧になっていない方は、是非読んでいただけると嬉しいです!

今回は、回転台とグリーンバックを使ったお手軽フォトグラメトリ方法を紹介します。

はじめに

フォトグラメトリにおいて、「写真撮影」は手間のかかる工程の1つです。
なぜなら、フォトグラメトリでは物体を様々なアングルで撮影する必要があるからです。
1、2つの物体を対象としている場合ならまだしも、小物を量産するなどで対象物体が何個もある場合は、撮影だけで非常に時間がかかってしまいます。
今回は、そんな撮影の手間を大幅に減らす方法を試してみました。

具体的な方法としては、「回転台を使って物体側を回転させる」というものです。
物体の方を回転させてしまえば、カメラは固定したまま様々なアングルで撮影することが出来ますので、簡単にハイクオリティな撮影が可能になります。

しかし、通常フォトグラメトリでは物体を静止させる必要があります。
理由としては、物体の位置・向きや背景情報を使って写真の撮影位置を推定しているからです。
物体の位置や向きが途中で変わってしまうと、背景情報との整合性が保てなくなり、位置推定が出来なくなってしまいます。

そこで、今回はグリーンバックを使用しました。
あらかじめ背景をグリーンバックで統一しておき、現像時にマスク化を行います。
これにより、対象物体の位置・向きのみを用いて撮影位置を推定させることが出来ます。

以下、その手順を説明していきます。

手順

  1. 写真撮影
  2. RAW現像
  3. マスク・切り抜き処理
  4. モデル作成

使用機材

  • 回転台
    3DCGモデルを作成したい対象物体を載せる回転台です。
    後に写真の回転台部分もマスク化処理をかけることを考えると、単色のものが望ましいです。
    また、種類によって「プレートの大きさ」「耐荷重」「回転できる角度」などが異なります。
    乗せる物体をある程度想定し、適切なものを購入しましょう。
    参考までに、私達が所持している回転台のスペックを記載します。
    • プレートの大きさ:40cm
    • 耐荷重:100kg
    • 回転できる角度:0.1°~90°

  • グリーンバック
    回転台や対象物体の背景に設置するグリーンバックです。
    グリーンバックは、なるべくシワや折り目がないようにしましょう。
    (クロマキー合成をするわけではないので、過剰に気にする必要はないです)
    私達の購入したグリーンバックは、購入時は折り目とシワがクッキリとついてしまっていました。
    色々とシワ解消方法を試しましたが、衣類用のスチームアイロンを使用するのが最も効果的でした。

  • 三脚
    カメラを固定する用の三脚です。
    今回はカメラを乗せて置いておくだけですので、ある程度の高さ調節機能があれば良いです。

1.写真撮影

まず初めに写真撮影を行います。
前述した通り、以下のように「カメラ/三脚」「対象物」「回転台」「グリーンバック」を配置しました。
三脚の最低高さが30㎝ほどあり、回転台を床に置くとかなり下向きな視点になってしまう為、ローテーブルの上に回転台を置いています。

上記の配置にて撮影した写真例を以下に示します。
ブログに載せる過程で画質が下がっておりますが、実際にはテーブルやグリーンバックまで鮮明に撮影しております。
回転台を用いた撮影では、対象物と周囲の境界が明確になることを心がけました。
(今回は黒・白・緑で周囲が埋まる様にした)
これにより、マスク処理を行う際に対象物が正確にマスクされやすくなります。(詳細は3章にて説明します)

今回は裏面も含めてモデル化を行いますので、対象物を裏返した状態でも撮影を行いました。
全て合計すると、230枚ほど撮影しています。(回転台は約7度ずつ回転)
以前、回転台を使わずに撮影した際は1時間以上かかりましたが、今回は20分ほどで撮影完了しました。

以上で、写真撮影は完了です。

2.RAW現像

次に、写真のRAW現像を行います。
今回は簡略化して紹介していますので、RAW現像に関する詳細な手順を知りたい方はこちらの記事をご参照ください。

撮影した写真をAdobe Bridgeにて開き、ファイル名を一括変更します。

ファイル名を変更した写真をAdobe Lightroomで開き、ヒストグラムを見ながら明暗・色味を調整して現像します。

RAW現像を行い、下記のようにJPG形式のファイルを生成しました。

3.マスク・切り抜き処理

写真のRAW現像が完了しましたら、マスク・切り抜き処理を行います。
なお、マスク・切り抜きには以下のアプリを使用します。

まず初めに、Adobe Photoshopを起動します。
起動しましたら、「ウィンドウ → アクション」でアクションウィンドウを表示させます。
アクションとはPhotoshopの自動化ツールの1つです。
今回は、「RAW現像した写真からモデル化対象物のみを切り抜く処理」をアクションとして記録していきます。

アクションウィンドウが表示されましたら、「新規アクションを作成」を選択します。

アクションの設定画面が表示されますので、アクション名を入力して、アクションの記録を開始します。
今回は、「背景削除」と命名しました。

記録が開始されましたら、先ほどRAW現像したファイルの一つを開きます。
「ファイル → 開く」でファイル選択画面を表示し、RAW現像したファイルが格納されているフォルダから、1つ選択します。
(この1つは、上記フォルダ内のファイルであればどれでも大丈夫です)

ファイルが開けましたら、「選択範囲 → 選択とマスク」を押下しマスク選択状態にします。

「被写体を選択」モードにした上で、画面上の被写体(モデル化の対象物)を左クリックします。
この際、被写体とその周辺の境界が曖昧ですと、被写体の選択範囲が正確に推定されないことがあります。
被写体の選択範囲が正確でない場合は、写真撮影をやり直すことが望ましいです。
(他の写真でも同様の事象が発生する可能性が高い為)

被写体が選択できましたら「出力設定 → 不要なカラーの除去」にチェックを入れ、「OK」を押してマスク選択を終了します。

「ファイル → コピーを保存」を選択し、RAW現像ファイルが格納されているフォルダと同じディレクトリに別フォルダを作成して保存します。ファイル形式はJPEGを選択します。

「保存」を押すと、JPEGオプションが表示されます。今回は最高画質を選択しました。

保存が完了しましたら、アクションの記録を停止します。
これにて、「RAW現像した写真からモデル化対象物のみを切り抜く処理」をアクションとして記録できました。

記録したアクションを利用して、RAW現像したすべての写真に切り抜き処理を適用させます。
「ファイル → 自動処理 → バッチ」を選択します。

バッチでは、以下のように設定を行います。

  • アクション:背景削除(上記で記録したアクション)
  • ソース:フォルダ
  • ソースフォルダ選択:RAW現像した写真が格納されているフォルダ(Developed)
  • "開く"コマンドを無視:ON
  • 実行後:フォルダ
  • 実行後フォルダ選択:アクション記録中に作成した別フォルダ(Masked)
  • "別名で保存"コマンドを省略:ON

設定が完了しましたら、「OK」を押して自動処理が完了するまで待ちます。

約230枚の自動処理に1時間30分ほどかかりました。
自動処理が完了すると、以下のように対象物のみ切り抜かれたファイルが作成されています。

念のため、対象物が正確に切り抜かれていることを確認します。
下図のように不自然に白くなっている部分がある場合などは、手動で切り抜き処理をやり直します。
何度試しても上手く切り抜けない写真は、テクスチャ作成時に使用しないなどの対処を検討しましょう。

4.モデル作成

前章にてモデル化に必要な素材写真がそろいましたので、RealityCaptureを用いてモデル・テクスチャを作成します。
今回は簡略化して紹介していますので、モデル・テクスチャの作成に関する詳細な手順を知りたい方はこちらの記事をご参照ください。

RealityCaptureを開き、対象物を切り抜いた写真が格納されているファイルを取り込みます。

続いて、アライメントを実行します。

アライメントの結果、2つのコンポーネントが作成されました。(所要時間:3分)
これは、対象物の表面・裏面を両方撮影している為です。

このままでは表面・裏面のモデルがそれぞれ作成されてしまうので、コントロールポイントを用いて2つのコンポーネントをマージします。
コントロールポイントとは、写真やコンポーネント上に目印となるポイントを設定できる機能です。
コンポーネント間の共通ポイントをコントロールポイントとして指定することで、異なるコンポーネントをマージすることが出来ます。
まず、「IMAGE 2D → TOOLS → Add Control Points」を選択し、コントロールポイント設定状態にします。

コンポーネント1にコントロールポイントを設定していきます。
画面上の点群から、コントロールポイントとして設定する点を左クリックします。
コントロールポイントの設定基準としては、以下を意識しましょう。

  • 両方のコンポーネントに存在する点
  • 対象物の中で特徴的な点(角部分や、色が変化している部分)

今回は、コントロールポイントを3点設定しました。
3次元のコンポーネントをマージすることを踏まえると、最低3点は設定することが望ましいです。

同様に、コンポーネント0にもコントロールポイントを設定します。
コンポーネント1で設定したコントロールポイントと同じ部分を設定しましょう。
コンポーネント間でコントロールポイントの位置が異なると、ズレた状態でマージされてしまいます)

次に、設定したコントロールポイントと各写真の位置推定結果に差がないことを検証します。
写真1枚ごとに「+」を押し、提案された全ての写真に対して検証を行いましょう。

検証結果に問題がない場合は、「アライメント → コンポーネントのマージ」からコンポーネントのマージを行います。

コンポーネントがマージされ、表面・裏面の両方が含まれる新規コンポーネントが作成されました。
マージ時にズレが発生していないことを確認した後、「Mesh Model → High Detail」を選択しメッシュモデルを作成します。

メッシュモデルが作成できました。(所要時間:80分)
次に、「Mesh Model → Tecture」からテクスチャを作成します。

テクスチャが作成されました。(所要時間:20分)

以上で、3DCGモデルの作成完了です。

おわりに

本記事では、回転台とグリーンバッグを用いたお手軽フォトグラメトリ方法について紹介しました。
回転台を使った撮影方法と、通常の撮影方法における「写真撮影~現像などの後処理」までの所要時間は以下になります。

  • 通常方式:写真撮影(約80分) + 後処理(約20分)= 約100分(人の作業時間:100分)
  • 回転台方式:写真撮影(約20分) + 後処理(約20分+約90分)= 約130分(人の作業時間:40分)

回転台方式では撮影時間を短縮できる一方、Photoshopでの切り抜き処理に時間を要してしまい、合計所要時間では通常方式が早い結果となりました。
一方、通常の撮影方法では人が100分間作業し続ける必要があるのに対し、回転台方式では後処理の90分間をPhotoshopが自動的に進めてくれます。人が作業する時間で考えると、回転台方式が圧倒的に早い結果となりました。
実際に運用する際は、Photoshopでの処理中に次の撮影を行うなど、時間を工夫して効率化を図ることが望ましいです。

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

参考文献

初歩からのフォトグラメトリ~RealityCaptureの使い方(ターンテーブル編)
フォトグラメトリによる3Dモデル作成ワークフロー(後編)
Adobe Photoshop 公式サイト
最新版Photoshopの「選択とマスク」で画像を切り抜く方法
Photoshopのアクション機能(自動処理)を使って複数の画像を一括編集する方法
はじめてのRealityCapture - 完全なモデルを作成する手順

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