スタジオグラフィックス プロが教えるデジタルカメラの写真撮影&レタッチテクニック 公式 Official WebSite
SGギャラリー

小林孝稔のパノラマVR撮影講座
第11回 PTGui Proによるスティッチ解説06~ ワークフロー05


kobayashi_panorama_vr_vol11

TOPIX

PTGui Proによるスティッチ作業の6回目です。今回は「 三脚の穴を消す 」~ 「 出力 」までのワークフローを解説しております。最近はストリートビューで店舗内を閲覧できるサイトが多いですが、パノラマ撮影のために使用した三脚穴がそのままのケースもあります。三脚穴消しカットを用いた穴消し手法を解説しています。 by 編集部

引き続きPTGui Proでのワークフローを解説します。今回は底面に写り込んだ三脚部分を三脚消し用カットを用いて合成( 三脚を消す )する方法から、仕上げの微調整、そして最終的なファイルの出力方法までを解説します。

■ 底面の三脚を消す

前回までの作業内容で水平と天地カットのスティッチが済みましたので、次は三脚が写り込んだ底面部分の合成処理を行います。既にマスクで三脚が写り込んでいた箇所は消してありますが、このままでは画像ファイルとして出力してもマスクで消した部分が黒くなってしまうので、三脚消し用のカットを用いて合成処理を行い、三脚を消し込んだ状態にします。

既に三脚が写り込んでいた箇所はマスクで消してありますが、このままでは画像ファイルを出力してもマスクで消した箇所が黒く出力されてしまいます。

既に三脚が写り込んでいた箇所はマスクで消してありますが、このままでは画像ファイルを出力してもマスクで消した箇所が黒く出力されてしまいます。

三脚消し用のカットをPTGuiにドラッグ&ドロップするか、Imagesメニュー > Add..から選択してプロジェクトに追加します。

三脚消し用カットを追加して読み込んだ様子

三脚消し用カットを追加して読み込んだ様子

三脚消し用のカットを読み込んだら、Maskタブを開き、不要な写り込みを赤色のマスクで塗りつぶします。

底面( 地 )カットと同様に、三脚消し用カットも不要な写り込みをマスクで処理します

底面( 地 )カットと同様に、三脚消し用カットも不要な写り込みをマスクで処理します

次に、Optimizerタブを開き、左上の「Advanced >>」ボタンをクリックします。

Optimizerタブの画面、左上の「Advanced >>」ボタンをクリック

Optimizerタブの画面、左上の「Advanced >>」ボタンをクリック

この画面は、Optimize( 最適化 )実行時にコントロールポイントを基に画像合成を行う画像を管理しており、通常開いた状態では先頭の画像( Image 0 )を除く全ての画像の「 Yaw 」、「 Pitch 」、「 Roll 」の項目にチェックが入っているかと思います。本連載の第6回で説明した通り、画像合成時の位置決定は「Yaw(ヨー = 横)」、「 Pitch(ピッチ = 縦)」、「 Roll(ロール = 回転)」の3種類のパラメーターを使って行われます。この画面の状態は、先頭の画像( Image 0 )が「 基準となる画像 」の役割を果たしており、他の画像( Image 1〜 )が基準となる画像に対して位置決定を行っていた事を示しています。

Optimizerタブ画面からAdvance >> ボタンをクリックして画面を開いた様子

Optimizerタブ画面からAdvance >> ボタンをクリックして画面を開いた様子

この作例では水平6カット、天1カット、地2カット、三脚消し1カットの計10カットを使っていますが、既に水平と天地カットのスティッチは済んでいるので、今後、Optimize実行時にコントロールポイントを基に水平と天地カットの画像合成を行う必要はありません。従って、三脚消し用カット( この作例では最後に読み込んだImage 9 )を除く「 Yaw 」「 Pitch 」「 Roll 」のチェックを全て外します。

三脚消し用カット以外のパラメーターを全て外します。全て選択した状態でキーボードのスペースキーを押すと一括でチェックのON/OFFが行えます

三脚消し用カット以外のパラメーターを全て外します。全て選択した状態でキーボードのスペースキーを押すと一括でチェックのON/OFFが行えます

次に、三脚消し用カットに対してコントロールポイントを手動で打ちます。Control Pointsタブを開き、片方には地のカットを、もう片方には三脚消し用のカットを開き、それぞれの画像内で一致する箇所にコントロールポイントを打ちます。この際、コントロールポイントは「 三脚の周辺 」かつ「 平坦な場所 」に打つようにしてください。

地カット、三脚消し用カット、それぞれの画像内で一致する箇所(床の模様、木目など、特徴がある箇所を頼り)に手動でコントロールポイントを手動で打ちます。また、Zoomを100%以上にして行うと視認性に優れて良いでしょう。

地カット、三脚消し用カット、それぞれの画像内で一致する箇所(床の模様、木目など、特徴がある箇所を頼り)に手動でコントロールポイントを打ちます。この際、Zoomを100%以上にして行うと視認性に優れて良いでしょう。

コントロールポイントは5個から10個程度打てば十分です。コントロールポイントを打ち終えたらOptimizeを実行します。思い出して欲しいのですが、三脚消し用のカットは水平と天地カットの撮影ポイントから大きく移動させて撮影を行っているので、当然の事ながら水平と天地カットとはノーパララックスポイントが大きくズレています。従って、Optimize実行後、画面下部のコントロールポイント情報を見るとDistanceの値には大きな値が表示されます。

コントロールポイントを打ち終え、Optimizeを実行した様子。この作例ではDistanceの最大値が29となりました

コントロールポイントを打ち終え、Optimizeを実行した様子。この作例ではDistanceの最大値が29となりました

このままの結果では三脚消し用のカットは上手く合成されず、スティッチが破綻します。

Panorama Editorで確認した様子。Distanceの値が大きいので綺麗には合成されていません。テーブルの脚などが大きくズレている他、床の木目もズレています

Panorama Editorで確認した様子。Distanceの値が大きいので綺麗には合成されていません。テーブルの脚などが大きくズレている他、床の木目もズレています

次に、もう一度Optimizerタブに戻り、三脚消し用カットの「 Viewpoint 」にチェックを入れます。これは視点補正と呼ばれる機能で、三脚消し用カットの様なノーパララックスポイントが大きくズレいて、他の画像との間で視差が生じている画像であっても、視差の影響を考慮して画像合成を行ってくれる機能です。ただし、視点補正が有効に作用するのは「平面」に限られるので、先述の通りコントロールポイントは「平坦な場所」に打つ必要がありますが、多少の段差がある場所なら有効に作用する事もあります(例:屋外の凸凹した土の上、小さな岩場の上など)。

では、Viewpointにチェックを入れた状態で再度Optimizeを実行します。

Viewpointにチェックを入れてOptimizeを行った結果、Distanceの値が変化しました

Viewpointにチェックを入れてOptimizeを行った結果、Distanceの値が変化しました

Distanceの最大値が11まで減少しましたが、これでは未だDistanceの値が大きすぎます。この結果では、最大値の「 11 」だけが突出して大きいので、恐らくはここだけコントロールポイントを打ち間違えたと考えられます。このコントロールポイントを修正するか、あるいは削除して結果が改善されるかを確認しましょう。既に十分な数のコントロールポイントが打ってあるので、ここでは削除する事にしました。削除した後に再度Optimizeを実行します。

Distanceの値が大きなコントロールポイントを削除して再度Optimizeを行った結果、Distanceの最大値がぐっと小さくなりました

Distanceの値が大きなコントロールポイントを削除して再度Optimizeを行った結果、Distanceの最大値がぐっと小さくなりました

削除した結果、Distanceの最大値が2まで小さくなりました。この値であれば問題ありません。やはり、先程のコントロールポイントは打つ場所を誤っていた様子です。先の連載で述べたように、三脚消し用カットでも他のカットと同様に、コントロールポイントの修正、あるいは削除を繰り返してコントロールポイントのDistance値が小さくなる様にします。修正を終えたらPanorama Editorで底面の合成結果を確認してみましょう。

底面が綺麗に合成されました。Detail Viewerを起動して底面を確認してみましょう。三脚を消した部分と周辺で多少の明暗差が生じていますが、後で補正するので問題ありません

底面が綺麗に合成されました。Panorama Editor内からDetail Viewerを起動して底面の合成箇所を確認してみましょう。三脚を消した部分と周辺で多少の明暗差が生じていますが、後で補正するので問題ありません

今回の作例の様に三脚( 撮影ポイント )の周辺に段差や物体が存在している場合は、正しくコントロールポイントを打っても平坦な場所( 平面 )以外が綺麗に合成されない場合があります。その様な場合は、三脚消しの合成に必要な平面部分だけを残して、段差がある箇所や物体が存在している箇所全てを赤色のマスクで塗りつぶしてしまうのも有効です。上手く出来なかった時に試してみてください。

段差や物体が存在している箇所の合成が上手く出来なかった場合は、地のカットと三脚消し用のカット両方の画像で合成に必要な平面部分以外を全て赤色マスクで塗りつぶしてみましょう。これで解消される場合もあります

段差や物体が存在している箇所の合成が上手く出来なかった場合は、地のカットと三脚消し用のカット両方の画像で合成に必要な平面部分以外を全て赤色マスクで塗りつぶしてみましょう。これで解消される場合もあります

以上でスティッチが完了しました。続いて最終仕上げに入ります。

Go To Top

■ ビネット補正、露出補正、微調整

パノラマVRは露出等の値を固定した状態で全てのカットの撮影を行いますが、光源の条件等によってはカット毎に僅かな明暗差が生じてしまうので、それらの明暗差を補正します。

Exposure / HDRタブを開きます。画面中段のAutomatic exposure and color adjustment内のSettings..ボタンをクリックします。

HDRタブを開いた様子。中断のSettings..ボタンをクリックして開きます

HDRタブを開いた様子。中断のSettings..ボタンをクリックして開きます

ここでは、下記の補正が行えます。

Optimize Vignetting : ビネット( 周辺光量落ち )補正
Optimize Exposure:露出補正
Optimize White Balance:ホワイトバランス補正
Optimize Flare:フレア補正
Camera Response Curve:カメラレスポンスカーブ

Settings..の項目

Settings..の項目

これらを順番、各項目で設定可能なパラメーターと共に解説します。

●Optimize Vignetting : ビネット( 周辺光量落ち )補正
Disabled( 無効 ):次回Optimize時にビネットカーブ( 曲線 )は削除されます。
Enabled( 有効 ):次回Optimize時に新しいビネットカーブが決定されます。
Keep current( 保持 ):現在のビネットカーブが保持されます。

●Optimize Exposure:露出補正
Only if necessary( 必要な場合のみ ):画像のEXIFデータに露出情報が含まれている場合は、そのデータが使用され、追加の露出補正は行われません。EXIFデータに露出情報が含まれていない場合は完全な露出の最適化が行われます。
Disabled(無効):露出は最適化されず、全ての画像の露出補正は次回Optimize時にリセットされます。
Enabled ( fine tune only )( 有効、微調整のみ ):EXIFデータにおおよそ正しい露出情報が含まれている場合は、それらを更なる露出最適化の基準点として使用します。
Enabled ( full ):( 有効、完全に ):全てのEXIFデータを無視して、完全な露出の最適化を実行します。
Keep current( 保持 ):現在の露出パラメーターは保持されます。

●Optimize White Balance:ホワイトバランス補正
Only if necessary(必要な場合のみ):1つ、または複数の画像のEXIFデータがオートホワイトバランスで撮影された事を示す場合、ホワイトバランスの最適化が行われます。
Disabled( 無効 ):ホワイトバランスは最適化されません。全ての画像のホワイトバランスのパラメーターは、次回Optimize時にゼロにリセットされます。
Enabled( 有効 ):ホワイトバランスが最適化されます。
Keep current( 保持 ):現在のホワイトバランスのパラメーターが保持されます。

●Optimize Flare:フレア補正
Disabled(無効):フレアは最適化されず、全ての画像のフレアのパラメーターが次回Optimize時にゼロにリセットされます。
Enabled(有効):フレアが最適化されます。
Keep current(保持):現在のフレアのパラメーターが保持されます。

●Camera Response Curve:カメラレスポンスカーブ
Generate new( 新規生成 ):画像を分析してレスポンスカーブを決定します。カーブは、プロジェクトに異なる露出で撮影された重なり合うピクセルが含まれている場合にのみ正確に決定が行えます。従って、このオプションはHDRのプロジェクトのみに使用してください。
Use a default curve( 規定のカーブを使用する ):レスポンスカーブを特定しないでください。代わりに標準のカーブを使用します。
Keep current( 保持 ):現在のレスポンスカーブが保持されます。
Automatic ( default )( 自動、デフォルト ):HDRプロジェクトの場合はカメラのレスポンスカーブが決定されます。HDRプロジェクトで無い場合はデフォルトのカーブが使用されます。

以上、やや難解に感じられるかも知れませんが、それぞれのポイントは下記です。

●Optimize Vignetting : ビネット( 周辺光量落ち )補正
撮影した画像に対してビネット補正を施してない場合には使用しますが、予めビネット補正が施されている場合は不要です。

●Optimize Exposure:露出補正
基本、Only if necessary( 必要な場合のみ )を選択すれば良いでしょうが、結果に満足できない場合はEnabled ( fine tune only )(有効、微調整のみ)、Enabled ( full ):( 有効、完全に )も試してみると良いでしょう。

●Optimize White Balance:ホワイトバランス補正
基本、ホワイトバランスを固定した状態で撮影を行うので不要です。

●Optimize Flare:フレア補正
例えば日中の太陽光の下で撮影を行い、画像内に盛大なフレアが存在する場合は有効にするとフレアの軽減が期待できますが、コントラストが強くなる傾向があります。使用する場合はコントラストの変化に注意してください。

●Camera Response Curve:カメラレスポンスカーブ
基本、Automatic ( default )( 自動、デフォルト )を選択しておけば構いません。HDRについては次回解説します。

以上、設定を終えたらOptimize now!ボタンをクリックします。ビネットカーブとカメラレスポンスカーブが決定します。

それぞのカーブが決定された様子

それぞのカーブが決定された様子

同時にPanorama Editorの画像にも結果が反映されるので確認します。

カーブ値が反映された状態。この作例はビネット補正が施されていない画像を使用したのでビネット補正をEnabled(有効)に、露出補正をEnabled (full):(有効、完全に)にして明暗差を補正しました

カーブ値が反映された状態。この作例はビネット補正が施されていない画像を使用したのでビネット補正をEnabled(有効)に、露出補正をEnabled (full):(有効、完全に)にして明暗差を補正しました

次に、下段のFine tuneの項目で露出とホワイトバランスの微調整を行います。

微調整の様子

微調整の様子

以上で完成です。ファイルへ出力する前にプレビュー機能を使って完成したパノラマVRを確認しましょう。Previewタブを開き、ダイアログに適当な数値(数千程度)を入力し、PreviewボタンからOpen in PTGui Viewerをクリックします。画像のレンダリングが終わるとPTGui Viewerが自動で起動します。

PreviewタブからPTGui Viewerを起動します

PreviewタブからPTGui Viewerを起動します

Go To Top

■ ファイルを出力する

ファイルを出力します。Create Panoramaタブを開き、出力する画像サイズ( 単位:ピクセル )を入力します。本連載の第1回で述べた通りエクイレクタングラー画像の比率は1:2なので、この比率となる数値を入力しますが、Link width and heightにチェックを入れておくと、一方の数値を入力するだけでもう一方には自動で比率に合致する数値が入力されます。また、Set optimum sizeのボタンをクリックするとスティッチされた画像と同等のサイズ、すなわち出力可能な最大サイズが自動で反映されます。(下記図1)

Metadata..ボタンをクリックして、必要に応じて「Camera location(撮影地情報の緯度・経度を入力。EXIFデータに含まれる場合は自動で反映されます)」、「 Orientation( 方角、パノラマの中心の表示方向を入力。0度は北、90度は東など。これもEXIFデータに含まれている場合は自動で反映されます )」、「Resolution( 解像度、単位はppi。印刷用途で使用する場合は指標となる数値を入力します )」を設定します。( 下記図2 )

File formatでは出力するファイル形式を選択し、右隣のSettings:ボタンでそのファイル形式で使用可能なオプションを選択します。出力可能なファイル形式は「 JPEG(.jpg)」「 TIFF(.tif)」「 Photoshop(.psd)」「 Photoshop Large(.psb)」「 Quick Time VR(.mov)」です。Quick Time VRは事実上サポートが終了してしまったので使う事は殆どないでしょう。(下記図3)

Layersでは「 Blended panorama only( 合成されたパノラマ )」、「 Individual layers only( 個々のレイヤー )」、「Blended and layers( 合成されたパノラマと個々のレイヤーの両方 」が選択できますが、通常は完成した一枚絵が出力される前者の「 Blended panorama only 」で構いません。後者の2つはレイヤー別に出力が可能なので、先述のFile formatは「 Photoshop」を、Layersは「 Blended and layers 」を選択して出力すれば、Photoshopに読み込んでレイヤーマスクを施す事が可能となります。PTGuiのマスクでも大抵の事は行なえますがPhotoshopのレイヤーマスクに慣れ親しんでいる方、あるいはより精度の高いマスク処理が必要な場合はこれらの選択肢を使うと良いでしょう。(下記図4)

Output fileには画像の出力先を選択します。通常はプロジェクトフォルダが自動で選択されていますが、必要に応じてUse defaultのチェックを外して任意の場所に変更する事も可能です。( 下記図5 )

Advancedの項目ではスティッチと画像のブレンドで使用するアプリケーションを選択しますが、いずれもPTGuiのままで結構です。Interpolatorは、パノラマを出力する際に「補完」と呼ばれる元画像のピクセル間でピクセル値を計算するためのアルゴリズムを選択します。各アルゴリズムには長所と短所があり、また出力する画像フォーマット(特にHDRの場合)によっては最適なアルゴリズムを選択しないと画像の周辺にジャギーや極端なハイコントラスト( ハロ )が生じてしまう事があります。通常はデフォルトの「 Lanczos 2 」を選択すれば良いでしょう。( 下記図6 )

設定を終えたらCreate Panoramaボタンをクリックします。レンダリングが開始され、プロジェクトフォルダに完成したパノラマ画像が出力されます。( 下記図7 )

ファイル出力画面

ファイル出力画面

以上で完成です。完成したパノラマをFacebookやGoogle ストリートビューにアップロードして楽しみましょう。なお、パノラマをインタラクティブに楽しんだり、WEBサイトへ埋め込んだりするには本連載の第1回で述べたオーサリングを行いますが、PTGuiにも機能は乏しいですがオーサリング機能が備わっています。

Toolsメニュー > Publish to Website..を開き、出力したパノラマを読み込みます。( 下記図1 )

任意のファイル出力先を選択します。( 下記図2 )

画面右側のセッティングはデフォルトのままで結構ですが、必要に応じて任意の値を入力して色々と試してみると良いでしょう。( 下記図3 )

WEBページのタイトルを入力します。( 下記図4 )

Convertボタンをクリックしてオーサリングを開始します。( 下記図5 )

Publish to Website画面

Publish to Website画面

ファイルの出力先にHTMLファイルが生成されるので、このHTMLファイルをWEBブラウザで開くとパノラマが展開されます。

出力されたファイルの様子。HTMLファイルをWEBブラウザで開きます

出力されたファイルの様子。HTMLファイルをWEBブラウザで開きます

WEBサイトに埋め込む際は、HTMLファイルや画像ファイルが入ったフォルダ毎をサーバーにアップロードし、HTMLファイルをリンクさせればOKです。

WEBブラウザでパノラマが見れる様になりました

WEBブラウザでパノラマが見られる様になりました

なお、Google Chrome等の一部のWEBブラウザではセキュリティの関係でローカルに保存したHTMLファイルを開くとエラーになる場合があります。これはローカル上に限った事なのでサーバーにアップロードすれば問題はありませんが、ローカルで確認したい場合には不便です。筆者が知る限りでは、FireFoxは特別な設定不要でローカル上のHTMLファイルを開く事ができます。もしも、この問題に遭遇した場合はFireFoxで試してください。

今回はここまで。次回をお楽しみに!

Go To Top
小林孝稔
著者について
小林孝稔( こばやしたかとし - Takatoshi KOBAYASHI ) | 1980年生まれ、長野県出身、東京都在住。尚美学園短期大学音楽情報学科卒業。業務で実写表現を用いたパノラマVRコンテンツの制作に携わり、その面白さに魅せられて制作を開始。主に広告分野でのパノラマVR制作を中心に活動中。その他、技術解説の執筆活動、レクチャー&セミナーの講師活動も豊富。
メルマガ登録