Log画像を活用したハイダイナミックレンジなフォトグラメトリワークフロー

青森立佞武多のフォトグラメトリ

今回は業務にてお手伝いしました、青森立佞武多(たちねぷた)のフォトグラメトリのメイキングになります。

弊社ではハンディスキャナでの3Dスキャン依頼が多いため、数少ないフォトグラメトリのみの事例となっています。

株式会社 LIL様からのご依頼で 星野リゾート 青森屋 みちのく祭りやのショー映像制作向けとして、青森五所川原にある「立佞武多の館」に展示されている3体の立佞武多のフォトグラメトリ制作を行いました。

ブラケット撮影

今回の対象は中に照明があり、提灯のようになっています。
また展示施設の照明は立佞武多に合わせて暗めとなっており、通常の撮影では白飛び・非発光箇所は黒つぶれが発生しやすい対象です。
そのためテスト撮影後の写真を確認してHDRブラケット撮影を実施しようと判断しました。

対象の高さは約23m前後ありますが展示施設が螺旋スロープになっており、下から上までぐるっと見て回れるためロングポールやドローン等を使った特殊撮影は無しで行いました。

また、立佞武多自体が台座ごと回転できるような展示になっているため、どうしてもアングル的に撮影が難しい場所は最後に立佞武多自体を回転してもらい補足撮影しています。

実際の使用する映像では下からのアングルでしか見せない事を確認していたため、撮りきれない頭上になる部分等は欠損していても問題ない想定で撮影を行いました。

撮影は三脚使い、Sigma FP-L(9.5k)とSony RX100Ⅶの2台体制でRAW保存での多段露出ブラケット撮影を4時間ほどかけて撮影しました。
テストを踏まえ実際の処理にはFP-Lのデータのみを使用しています。

FP-Lで±3EVでブラケット撮影した3枚

ブラケットのHDR現像

撮影後はPhotomatix ProでブラケットデータをHDRフォトのトーンマップを充てたJPGとリニアなEXRに書き出しました。

Photomatix Proを選択した理由はバッチによる一括変換が一番効率よく行え、書き出したJPGには焦点距離等のメタデータの引き継ぎが行えたためです。
厳密な色精度求める場合あまり良いと言えませんが、今回はそこの正確さは不要だったので効率重視としました。

以下トーンマッピングが適応されてHDRフォト状態の画像です。
白飛びなく暗部も潰れも少なくできました。

フォトグラメトリでのメッシュ化とテクスチャリング

フォトグラメトリの処理はRealityCaptureで行っています。

まずはトーンマップのかかったJPGでアライメントを行いました。特徴点の塊のような被写体ですが、台座部分の4面似たような図柄の為、いくつかアライメントがうまく行えずコントロールポイントでの調整も行っています。

その後EXRデータに差し替え処理を想定していましたが、RealityCaptureでのEXRの露出調整の処理があまり良い結果にならなかったためフローを改め、一度NukeでEXRをALEXA LogCのLog状態に変換し、JPGとして書き出しました。

これをトーンマップのあたったJPGとフォルダと差し替え、テクスチャ処理を行いました。※RealityCaptureはディレクトリ指定での一括画像差し替えが出来ないため、ファイル名も対にしておいたJPGをフォルダごと差し替えることで画像の差し替えを行った。

その後、書き出したUDIMテクスチャを再度LogCからリニアに戻し、EXRとして書き出すことで暗部から光源の明るい部分まで保持したHDRIテクスチャを備えたフォトグラメトリデータを作成できました。
UDIMを使用することでNuke上で連番として一括処理が行なえます。

このフローで生成したテクスチャでの発光確認を、含めたターンテーブル映像になります。適切に明暗部の情報を保持できています。

実際にはこのような横長のプロジェクション映像として使用されたようです。

Q:初めからLogのJPGでフォトグラメトリを行わないのはなぜ?

A:Logの状態ではコントラストが低すぎて特徴点が拾われにくいため、アライメント率が下がりやすくメッシュ品質も落ちる為です。対象によってはLogの状態からでもアライメント出来ますが今回の対象には向きませんでした。

Q:Log変換後JPGで保存している理由は?

A:RealityCaptureの問題もありますが、フォトグラメトリは複数画像をブレンド処理し、書き出しは16bitで行えるためソース画像が8bitでも階調は画像間で補完されるため大きな問題は起きにくいためです。画像差し替えのためにフォーマットを揃えていると言う理由もあります。JPGの圧縮率は抑えています。


S-Logの活用

立佞武多は光源もあり、ダイナミックレンジも必要だったため露出ブラケット撮影を行いました。

このフローをもう少しお手軽にするにあたって、SonyのカメラでS-Logを活用した撮影のやり方もあります。※動画であればその他カメラでも可。※要:対応OCIO/Lut

検証ではSony RX100Ⅶを使用しています。Sonyの高級コンデジや一眼カメラは動画だけでなく、スチルでもピクチャープロファイル機能でS-LogのJPG撮影が行なえます。
RAWには適応されないためJPG保存とはなりますが上記でも述べたようにフォトグラメトリでの使用ではそこまで問題は出にくいです。※以下の検証結果はRX100Ⅶのもので他機種で同様とは限らない点ご注意下さい。

もちろん保険としてRAWの同時収録は行う方が良いでしょう。RX100ⅦではPP9:[S-Log3][S-Gamut3]の設定でテストを行いました。※PP7:[S-Log2][S-Gamut]も使用できます。

ピクチャープロファイル使用時も、sRGBとAdobeRGBの保存カラースペースが変えれてしまうのですが、基本はsRGBで問題有りません。
AdobeRGBの場合はS-Logから戻したあとに、さらに色域をAdobeRGBが入力として使用する色域に変換する必要があります。

簡単な検証では、若干AdobeRGBの方が高色域を保持できている所感ですが、この場合では変換によるズレの可能性もあり、一発でS-Logから戻せているsRGBのほうが適切かと思います。※検証不足のため正確にどちらが良いとはいえません。

参考に高演色の照明でHDRI記事で公開しているロゴスコープ様提供のIDT適応したTHETA Z1の現像データと、RX100ⅦでS-Log3 S-Gamut3で撮影したJPGデータをACEScg環境で比較した結果です。

THETA Z1と比較しているのは他の方もIDTを使用した同一環境で比較しやすいためです。

画像下段はチャート基準値との比較です。

モノクロのチャートは、ほぼズレがなくリニアライズされているのがわかります。

基準チャートと比べるとRX100Ⅶの方がズレが大きめなのが分かると思いますが、そこまで厳密さを求めないものであれば十分使用できるレベルだと思います。※比較の為Nuke上で露出とホワイトバランスのみ合わせる調整を行っています。

ピクチャープロファイルによる違い

テストでの弊社所感では以下のような結果になりました。

  • PP7:[S-Log2][S-Gamut]:暗部の階調が潰れやすい。カラーのバランスのズレが少ない
  • PP9:[S-Log3][S-Gamut3]:ハイで階調破綻、色ズレが出やすいが中間から暗部はきれいに出やすい。S-Log2より一部カラーが少し濃い。

暗部の階調を考えるとS-Log3の方が階調的に良いですが、白い壁などの面が多い場合S-Log2の方が良いと思います。先にも述べたように保険としてRAWとの同時収録を推奨します。

S-Log JPG撮影のメリットデメリット

●メリット
  • 通常のJPG撮影より広いダイナミックレンジを得られる
  • JPG保存ではカメラ内光学補正によるディストーション補正が行われるため比較的歪みのない画像を得られる。RX100Ⅶはズームレンズなので現像ソフトによっては適切に補正を出来ないこともあるため意外と重要なポイントです。
  • 下手に現像するより簡単にリニア画像に変換できる。S-Logからリニアに変換することで簡易的なIDT変換としてACESカラーへの変換や現像時のカラーマネジメントの手間をなくせる。
  • 色域的にはACESにも対応できる※カメラ機種の性能による
●デメリット
  • ピクチャープロファイル適応時、カメラモニターのプレビューも適応された表示となるため露出調整、ホワイトバランスを気をつける必要がある。LUTを適応できる外部モニター等が使えると良い。
  • S-Logからリニアに戻す際当然ながら元がJPGの為RAWと比べると情報量の欠損が起きる。
  • 撮影設定で露出レベルを注意しないとノイズが出やすい。標準露出~+1EV辺りにする。
  • きっちり計測したIDTとRAWを使用した現像データと比べると色域にズレが当然出る
  • 8bitの階調の限界とピクチャープロファイル変換による色転びや階調破綻が白のハイのエリアに出やすい。S-Log2使用で多少軽減可。※S-Log3の方が中間階調は豊かだが全体の収まりはS-Log2の方が良い。取り込み後LUT変換かけてみないとわからないので注意が必要

本当はSonyの公式現像アプリのImaging Edgeでカメラ内同様にS-Logのピクチャープロファイルを適用したあとに、16bit Tiffで保存することが出来れば光学補正の正確さ含め完璧なのですが、残念ながらそれは出来ませんでした。(Imaging Edgeではメーカー値でディストーション補正等されるため)

立佞武多の事例と違い、すでにLog状態なので必要に応じてトーンマップのあたったデータが必要になってきます。
S-Logからの変換はNukeでも行えますが、OCIOを搭載しているAffinityPhotoを使うことで一括変換も可能です。

スクリプト等によるバックグラウンド処理は現状出来ませんが、事前に作成したマクロを使い一括処理は行なえます。
写真のメタデータも引き継げるため写真データの場合、この方法が便利な場合もあります。Nukeでは連番としての一括処理ができるので効率は良いです。

OCIOではOut>sRGBかrec709を使えばプレビュー向きの簡易トーンマップの適用された画像にでき、Utility>TexturesRGB 等を使えはCGテクスチャとして使いやすいリニアでニュートラルな状態のsRGB画像に出来ます。

弊社でメインて使用しているハンディスキャナの処理ソフトのArtec Studio内にもフォトグラメトリを併用したテクスチャプロジェクション機能が実装されたのですが、他のフォトグラメトリソフト程は高機能ではないためディストーションも極力無い写真の方が良く、このS-Logを使用したフローはカラマネと光学補正を同時に行えるため、効率的に作業を行えています。

当然より高品質な結果が必要な場合はRAW現像を行ったデータを弊社でも使用しています。