RAW撮影ができるRICOH THETA Z1が出た!
* この記事におけるHDR・HDRI、はすべてCGライティング、IBL(Image Based Lighting)用のデータ画像としてのHDRを示すものです。 *
2020/05/09>こちらも合わせて御覧ください CGWORLD vol. 262(2020年6月号)第1特集「コスパ最高のHDRI制作術」寄稿
2019年5月発売のRICOH THETA Z1は1.0型センサーになり、RAW撮影機能と絞りが新しく搭載され、簡易HDRI作成の品質をぐっと上げることが可能になりました。
約13万と高級な機種となりますがうまく活用することで高品質なHDRIを手軽に作成することができ、コストパフォーマンスには優れた機材だと思います。
https://theta360.com/ja/about/theta/z1.html
絞りが付いたことと、1/25000秒のシャッタースピードにより屋外においても通常の一眼レフと魚眼レンズを使用したものに近いクオリティのHDRIを作成可能です。
解像度は約7Kとなるので車なのど高反射対象のリフレクションマップとしてはやはり一眼レフを使用した16k以上の高解像度HDRI撮影が必要になるかと思います。
プラグインが使える?
THETA VとTHETA Z1にはプラグイン機能があり、プラグインストア ではAuthydra というプラグインがありインストールすることで内部でブラケット撮影からEXRのHDRI合成まで自動処理してくれます。HDR2EXR という同様のプラグインもありますがこちらは同作者でTHETA Vのみ対応の旧バージョンとなります。
見る限りすごく良いのですが、内部ではJPGのブラケット撮影を行いHDRI作成を行うため、残念ながらZ1のRAWデータを生かせません。※AuthydraはRAW対応がTodoリストに含まれていますが内部で適切に現像処理まで行うのはさらに処理時間が伸びそうです。
また、Z1には対応したばかりで試した限り挙動が不安定でした。JPEG撮影のためどうしても撮影枚数は増えていまう点と、撮影後HDR変換が走るため工程を入れると最低でも1ショット3分以上かかります。さらにデノイズを有効にした場合デノイズ用にもブラケット撮影(枚数指定分)するためかなり撮影時間が長くなります。例えば2EVで9ブラケットに対してデノイズ3枚だとすると撮影だけでも27枚になり+デノイズ合成+HDR化EXR変換も走り5分よりかかり現場運用には向かなくなります。
V以下のモデルでHDRIを作成したい場合は以前個人ブログの方でまとめてあります>RICOH THETAでHDRI ように標準機能のブラケット機能やアプリ購入(ブログ情報古めです)でHDRI作成が可能です。が屋外HDRI作成は厳しいです。
Z1のRAWデータを使って高品質なHDRIを作る
Z1はせっかくRAWで撮影できるので、高品質のHDRIを作成するため大事なカラーマネージメント、デノイズ、HDR化を適切に行いたいので後処理はPC上で行うことが前提となります。でも撮影は高速に行いたいということで、弊社ではRAWのみのを高速ブラケット撮影が行えるプラグイン等ができないか検討していますが標準APIのみでは撮影の高速化が現状難しいことが分かり現在さらに調査中となります。ブラケット枚数のプリセット選択して撮影するものは出来そうなので一旦そちらを検討中。
ということでひとまず今回撮影はTHETA標準アプリを使用しブラケット撮影したデータをCGライティングに使用できるHDRIに変換するまでの手順をまとめました。
撮影設定
ということで今回は標準撮影アプリを使いブラケット撮影をします。
設定からファイル形式をRAWに変更し、撮影モードをマルチブラケット撮影に切り替え初めは少し面倒ですが1つ1つブラケット設定を行います。
画像の01~06までのブラケット設定はあくまで参考値ですが、6枚3EVステップで照明下であればほぼ大抵のシーン(19.9EV~5EV)を撮影可能な設定になります。
汎用設定なので晴天の屋外だと01~04の4枚撮影で十分です。夜など暗い環境はさらに適時追加してください。
※通常の一眼レフカメラでのHDRI撮影では絞りは変えない方が良いですがTHETAの場合ほぼ影響がないため少しでも撮影スピードを短くするため絞り値も変えています。
マイセッティング
マイセッティングで本体に設定を保存できます。設定は一つのみの保存ですが、一度保存しておくと本体のモード切替からMY(マイセッティング)に切り替えることで本体のみでも設定値でブラケット撮影が可能になります。また本体から設定を呼び出せるため、複数人で持ち回る際に自分のスマホやタブレットにすぐ設定を呼び出せるようにできます。
基本的にブラケット撮影なので撮影時はTHETAが動かないよう三脚等に設置固定し撮影をします。高さは基本的には合成するCGの中心位置くらいの高さにします。汎用であれば1m~1.5m前後くらいでしょうか。
太陽光であればレンズと太陽が向き合うようにすることでフレアやハレーションを抑えられ、ステッチもキレイに行なえます。
撮影時間は1枚約5秒なので上記6枚のブラケット撮影で1回約30秒かかります。
また実写プレートとの合成がある場合別途カラーチャートの撮影も必要になります。こちらはフルオート撮影で一枚のみのRAW撮影できていればOKです。
※今回のフローであればHDRマージ処理のみ飛ばしてステッチ処理まで行っても色がズレたりはほぼしないため、チャートが白飛びさえしていなければチャートは色調整に使えます。現像でいじらない場合ホワイトバランスは合わせとく方が後工程が楽です。
取り込み、現像
PCに接続しDNGデータを取り込みます。現像にはdarktable を使用しましたAdobe Lightroomは内部カラー処理が入るためHDRIのための適切な現像には向かないので注意してください。darktable選択の理由としましてはDNGが現像でき、デノイズが適切に行えること、ニュートラルカラーで書き出せることをいくつか検証し一番THETAのRAWと相性が良かったためです。
複雑なことはしていませんが現像設定の説明は面倒なため現像設定プリセット=スタイルを配布します。
スタイルをダウンロード後、スタイルからインポートします。
次に選択画像をエクスポートの設定します。必要に応じてディレクトリ設定、ファイルフォーマット>TIFF16bit、プロファイル>sRGB、インテント>相対的な色域を維持、スタイル>THETA_Z1_HDRIを選択。
※プロファイル設定にIinear Rec2020があり、こちらを使用すると高色域のHDRIを作成可能となりますが、IinearTIFFになるため後工程で読み込みに注意が必要です。今回はsRGBでの説明で進めます。今回のスタイルにはカメラ プロファイル・IDT( Input Device Transform )などの処理は一切含まれません。
※ファイルフォーマットからEXRの選択ができますがメタデータが無くなるため後工程で使えません。TIFFを選択してください。
※デノイズの値は空のノイズが消えるよう少し強めの設定になっています。そのため細部のディテールが潰れる場合があります。
後は取り込んだ画像を読み込み選択、エクスポートで現像は完了です。エクスポート設定からスタイルを適応しているため個々の画像にスタイルの適応、現像設定は不要です。
ステッチ処理・HDR化 PTGui編
PTGui Pro(有償)を使うとDNGデータそのまま読み込みステッチ処理からHDRI作成までできますが、カラーマネージメント、デノイズが行えません。THETAに限らず最低限現像フローは行う方がよいかと思います。
PTGui Pro(11以降)ではTHETAのデータをメタデータから自動認識してくれるのでプロジェクトアシスタントを利用してかなり簡単にHDRIを作成可能です。処理も早いです。
しかし、今回はフリーソフトのみでPTGui Proを使わない手法で説明します。手数はと処理時間は伸びます。
ステッチ処理・HDR化 フリーソフト編
HDR化
まずHDR化するための画像のマージ処理にHDRI Havenで公開されているHDR-Mergeを使用します。
ツールの経緯含めHDRI作成のハウツーが書かれている公式ブログ記事>How To Create High Quality HDR Environments
こちらは現像にRawTherapeeを使用していますが基本やっていることは同じです。ニュートラルカラー現像で色の違いもありません。
GitHubの使い方にかかれている通り別途Blender2.79とLuminance HDR v2.4.0が必要になりますのでダウンロードしてください。
説明通りセットアップしてhdr_brackets.exeを実行し、現像したTIFFフォルダパスを選択しCreate HDRsで実行し処理が終わるのを待ちます。
同フォルダ内に複数のブラケットが入っていれば自動認識で一括処理もしてくれます。
バックグラウンドではメタデータを元に露出設定を算出しBlenderで画像のマージ処理が行われ、処理後にLuminance HDRでトーンマップ適応のプレビュー用JPGが書き出されています。
終了音が鳴り処理が終わるとMergedというフォルダ内にexrとjpgフォルダが作られマージされたHDRIが生成されているのが確認できると思います。
exrフォルダ内にbracket_sample.blendというデータも書き出されていますがマージ処理のBlenderデータなのでマージに問題なければ削除しても大丈夫です。
merged_000.exrを確認し、工程に問題がなければ適切にマージされていると思います。
位置ずれ補正や動く人物や雲などのゴースト処理はされませんが最小限のブレンド処理なので結構きれいにマージがされます。
ステッチ処理
ステッチにはフリーソフトのHugin – Panorama photo stitcherを使います。
まずはHuginをダウンロードしてインストールしてください。
次にステッチの仕方ですが、これも工程書き始めると大変なのでテンプレートを配布します。THETA Z1の個体差がどこまであるか不明ですが、良い感じにキャリブレーション出来ているので基本的にそのまま使用できるはずです。
HDRI_000.ptoがmerged_000.exr用のテンプレートで、HDRI_000_preview.ptoがmerged_000.jpg用になります。JPGのステッチが不要な場合こちらはいりません。
相対パスになっているのでHDRI_000.ptoをmerged_000.exrと同じフォルダに、HDRI_000_preview.ptoをmerged_000.jpgと同じフォルダに入れます。
一括処理を行いマージファイルの名前がmerged_001だったりする場合.ptoをテキストで開きファイル名の部分を合うよう書き換えてください。
.ptoをHugin – Panorama editorで普通に開きステッチでもよいですが一括処理したいので、
※画像はInterface設定をExpertに切り替えた際のウィンドウです。インストール直後のSimple Interfaceのパノラマ書き出しから書き出すと設定が適切でなくなります。
PTBatcherGUI – Batch processorを立ち上げ、HDRI_000.pto、HDRI_000_preview.ptoをドラックアンドドロップで追加し、一括処理します。
ステッチ後のデータを確認し問題なければ完了です。
必要に応じて露出調整と、ホワイトバランス等の調整が必要です。
太陽光源を完全に撮影はできないので光源修正、またはCGソフト上でSunライトを追加or置き換えをして使用します。
リフレクションで影響がある場合は三脚や三脚影等の除去をします。
※撮影時THETAが傾いていた場合必要に応じてeditor上で水平調整してください。
※テンプレートでは書き出し解像度を7200×3600にしています。検証環境では解像度を大きくした場合処理エラーが出たためこの値にしています。
※Huginからも同時にステッチ済みのJPGが書き出せますが露出が適切にならなかったのと。Huginの場合jpgとHDR書き出しは結局2回処理が走ってるだけなのでHDR-Mergeからすでに出てる画像を生かして今回は個別処理しています。HDRI化したEXRをLuminance HDRで改めてトーマッピング処理をする方がステッチ処理にズレは生じません。
※HuginのEXR書き出しは16bit floatになりますので若干のデータ劣化ありますがライティング用途であれば問題ありません。PTguiは設定で32bitに切り替えれます。
※サンプル画像がキャリブレーション元なので遠景重視のステッチになっています。狭い室内などで利用した場合近景のステッチが大きくずれます。
※まれにマージ処理に使用されているEnblendがキレイに処理してくれずマイナス値等が発生する場合があります。ブレンドを内蔵に変えることでマージの精度は落ちますが回避出来ます。
PTGuiを使うより工程も手間も増えましたがすべてコマンドライン制御可能なので単一ツール化してしまえば画像取り込み以降を一括処理も可能だと思います。
一からHuginでステッチ処理を行いたい場合の参考チュートリアル
サンプルデータ
今回の説明に使っているRAWデータを含むオリジナルのデータ
その他サンプルHDRI
いづれもsRGB現像によるものです。光源修正なしの今回のフローに準拠。
ライセンスCC0
Blenderでの使用例
Blender上での太陽の位置合わせにはHDRI Sun Alignerという無料Addonが便利です。
Iinear Rec2020での現像
darktableでIinear Rec2020で現像した場合画像はTIFFですがガンマはIinearの画像として書き出されます。このままではHDR-MergeでHDRI結合時、Blender内ではsRBG(gamma2.2)として読み込まれ適切に処理が行えません。
そこで、
HDR-Merge-master\build\blender\blender_merge.py
をテキストで開き
img = bpy.data.images.load(img_path).colorspace_settings.name = ‘Linear’
を記述すると強制的に画像をIinearとして読み込ませることができ、適切に処理が行えます。
実際のZ1がセンサー的にどこまでの色域をRAWで持っているか情報はなく検証もしていません。Rec2020のカラースペースのHDRIになるのでCGソフトでの読み込みカラースペースも合わせる必要があります。NukeなどでACEScgなどに変換した方が使いやすいかもしれません。
※RawTherapeeの方がACESなどカラープロファイルは多く用意されており、ガンマも任意変更できます。
おまけ①RICOH THETA Stitcherでステッチ
RICOH公式のRICOH THETA StitcherというのがAdobe Lightroom Classic向けプラグインとして公開されています。
初期設定が分かりづらく、インストールフォルダに入っているマニュアルを見てLightroomから起動できるように設定します。
単独起動してくれるとありがたいのですが、できません。しかしLightroomが起動した状態でRICOH THETA Stitcher.exeにTIFFデータをドラックアンドドロップすると一応使用できます。
同階層に元のDNGファイルが必要です。またOKを押すとTIFFはステッチ済みデータで上書きされます。16bitTIFFも処理できます。
公式のレンズ補正値を使用するためステッチは一番きれいです。ただ数値も画像のメタデータから毎回自動入力されるので、一枚一枚手動で直してブラケット分揃える必要があり作業フローとしては現実的ではありません。
Apr. 23,2020 Version 2.00.0 のアップデートで複数画像のバッチ処理に対応しています。
おまけ②Nukeでステッチ
NukeのSpherical Transformを使ったステッチです。Spherical TransformはBBox分を処理してくれないのでつなぎ目のブレンド処理ができませんが思ったより十分きれいにつながりました。ライティング用ならこれで十分ですよね。
また、検証はしてませんが有償プラグイン(NukeX12に統合されるらしい)のCara VR使えばステッチできそうですね。高コストですが。
レンズのクロップ>レンズのセンターが微妙にずれているため修正>190°ちょっとのレンズなので画角が180°になるようスケールで調整>魚眼レンズからの変形>マージ
nukepediaにあるJ_OpsというNuke用の無料プラグインの中にHDR mergingというHDR化してくれるツールが有りこれを使うと現像後Nukeのみでの完結も可能ですが残念ながらNuke8対応以降の更新がなく最新バージョンのNukeで利用が出来ません。同様のプラグイン、Gizmo他に無いんですよね。
当然HDRI HavenのHDR-MergeもバックではBlenderのコンポジットノードで処理されているようにNukeやNatronで自分で組むことは可能かと。
特にTHETAの場合撮影ルールがズレにくいので毎回メタデータから値を引っ張る必要も無いのでテンプレート化はしやすいと思います。
おまけ③Natron(Nuke)でステッチ
ここまでフリーソフトでやったんだからNatronでもなんとか出来ないかと思いました。しかしNukeと同じSpherical Transform相当のノードはありません。
そこで、STMapが使えないかと。これならNukeでもNatronでもどっちでもいけます。
素のSTMap>HuginでSTmapを読み込み変形のみ適応>NatronでSTMap適応
当然マージ部分の処理はマスクでぼかしてるだけなのでHuginのような画像結合処理はされてません。しかし少しマスクを切って露出調整するだけでかなり十分な結果が出せます。
万能ではありませんが一度テンプレ化してしまうと処理は一番早く、32bit処理になるので、Huginの16bit処理になってしまう欠点も解決出来ます。解像度はHugin合わせの7200×3600です。
なんかこれで良い気もしますよね。という事でこちらのデータも配布しちゃいます。STMapA,B、Mask、Naronデータ
おまけ④Gimpによる補正。
Gimpの色調整に入っている色温度調整が便利でしたので紹介。
任意(現像時)の色温度から指定の色温度に変更できて便利です。
また16bit float、32bit floatどちらでもクローンブラシや修正ブラシが使えるのでちょっと消したいものがあるときも便利です。