パノラマ画素数と撮影枚数
パノラマ雲台の設計製作、パノラマ撮影、パノラマ合成で、これまで積み重ねてきた知識やノウハウを公開します。
パノラマ雲台の設計製作、パノラマ撮影、パノラマ合成で、これまで積み重ねてきた知識やノウハウを公開します。
パノラマ画像の臨場感において、画素数は重要な要素です。視力に対して画素数が少ないと、臨場感が損なわれる可能性があります。
作成したパノラマの画素数が、視力でいくつに相当するか、気になるところです。
視力は、「2点を分離して認め得る最小の視角(単位は分)の逆数」とのことです。
視力検査表で、Cの文字の隙間の方向が判別できれば、この隙間の間隔を視角に換算し、逆数にしたものになります。
視力2.0なら、1/2.0/60=0.0083 [度] の、隙間の間隔を識別できることになります。
Cの文字の隙間を判別できる=Cの文字の隙間が、画像の1ピクセル相当、として単純計算すると、
パノラマ横画素数 ≒ 360*60*視力
視力1.0なら、360*60*1.0 = 21600[画素]
視力2.0なら、360*60*2.0 = 43200[画素]
ストリートビューの最大画素数(17320*8660画素)は、視力では 17320/360/60 = 0.8 相当
思ったよりも、多くの画素数が必要になります。視力測定は、隙間をぎりぎりで判別できる境界を測定するため、単純計算した画素数は、これ以上画素数を多くしても差異を識別できなくなる画素数です。臨場感を追求すると、テレビなどの表示デバイスには、差異を識別できない程度の大きな画素数が必要になりそうですが、表示するコンテンツの場合、コントラストが高い画像なら、画素数を少し少なくして、ディスプレイに拡大表示しても、視覚上は大きな影響はない、という可能性もあります。
21600画素のパノラマを作成できる機材で撮影した場合、17320画素(ストリートビューの最大画素数)に縮小しても、視力1.0相当を確保できそうな感じがしています。
VRヘッドセットの機種により、解像度が違うようですが、水平視野角120度で横2560画素なら、単純計算のパノラマ横画素数は、360/120*2560 = 7680[画素]になるため、思ったよりも少ない画素数で良さそうです。
パノラマ雲台で撮影した画像から合成できる、最適な(最大の)パノラマ画素数は、簡易的に計算することができます。
撮像素子中央の画素ピッチに対応するレンズ入射角[rad]を求め、横1周の角度=2*パイ[rad]に敷き詰めると、何画素になるか、を計算することで、カメラの画素数で決定される、最適な(最大の)パノラマ画素数を求めることができます。
パノラマ横画素数 ≒ 2*π*レンズの焦点距離[mm]/撮像素子の画素ピッチ[mm]
[α7+Samyang18mmF2.8での計算例]
レンズの焦点距離(Hugin上)=18.3mm、撮像素子の横サイズ=35.8mm、横画素数=6000、から、
パノラマ横画素数 ≒ 2*3.1415926*18.3/(35.8/6000) = 19271[画素]
→ ストリートビューの最大画素数=17320*8660画素、のパノラマ画像を作成できます。
単純に、レンズの焦点距離が長く(画角が狭く)、画素ピッチが狭いほど、パノラマ画素数を大きくできます。
この計算で使用するレンズの焦点距離は、レンズ中心での像倍率から計算した焦点距離であり、ステッチソフトでレンズパラメータを最適化したときの焦点距離になります。レンズの焦点距離は、画角から計算する(周辺歪曲の影響を受ける)場合もあり、レンズの公称値から少しズレる場合が多いようです。
カメラの画素ピッチを狭く(撮像素子サイズが同じなら、カメラの画素数を大きく)すると、大きな画素数のパノラマ画像を作成できますが、実際の解像度はレンズの解像度により制限されるため、画素数が増えても、解像感が改善しなくなる場合があります。
レンズの解像度による、実用的なパノラマ画素数を計算すると、
パノラマ横画素数 ≒ 2*π*レンズの焦点距離[mm]*レンズの解像度[LP/mm]*2
2倍になっているのは、レンズ解像度の単位がLP/mm(1mmあたりのラインペア)で、撮像素子の2画素分に相当するためです。
[α7+Samyang18mmF2.8での計算例]
レンズの焦点距離(Hugin上)=18.3mm、レンズの解像度=3000[LW/PH]、PH=23.8[mm]から、
パノラマ画像の横画素数 ≒ 2*3.1415926*18.3*(3000/23.8/2)*2 = 14494[画素]
→ ストリートビューの最大画素数=17320*8660画素、のパノラマ画像を作成すると、解像感が少し不足します。
(注)ネットで見つけたレンズ測定データは、解像度の単位がLW/PH(画像高さ当たりのライン幅)だったので、
画像高さPH=レンズ測定に使用した撮像素子の縦サイズ=23.8[mm]と、ライン幅とラインペアでの2倍の違いも考慮して、
レンズ解像度[LP/mm]=レンズ解像度[LW/PH]/PH[mm]/2
で換算しています。
α7+Samyang18mmF2.8の、Huginでの最適画素数は19556*9778画素で、ストリートビューの最大画素数14142*7071画素にステッチすると十分な解像感が得られ、ストリートビュー投稿のメイン機材として運用していました。ストリートビューの最大画素数が緩和されて、17320*8660画素にステッチすると、解像感の不足を感じました。計算結果は、この印象と一致しています。(現在の、ストリートビュー投稿のメイン機材は、α7+20mmF1.8で、カメラの画素数から計算すると20272画素、レンズの解像度から計算すると17695画素になりました。)
パノラマ雲台で撮影するときの、撮影段数、横1周の枚数は、レンズの焦点距離から、簡易的に計算することができます。
魚眼レンズは、投影方式により計算式が違ってくるため省略し、歪曲のない通常レンズで計算します。
歪曲のないレンズは、ピンホールレンズとして計算できるため、
長辺の画角[度] ≒ 360/π*ArcTan(撮像素子の長辺の長さ[mm]/2/レンズの焦点距離[mm])
短辺の画角[度] ≒ 360/π*ArcTan(撮像素子の短辺の長さ[mm]/2/レンズの焦点距離[mm])
パノラマ合成ソフトでは、複数枚の画像のオーバーラップ部分から、2つの画像で一致している点(コントロールポイント)を抽出して、対応する点が重なるようにレンズ画角と画像配置を最適化します。オーバーラップ領域が、雲のない青空、何もない水面、模様の無い壁、だけの場合はコントロールポイントを抽出できないため、オーバーラップ領域が狭いと、パノラマ合成が困難になります。
また、歪曲のあるレンズに対応するため、歪曲の係数とレンズ中心座標も最適化して、対応する点のズレが最小になるように計算します。歪曲の係数を最適化する場合、画像内のコントロールポイントが、画像全体に分散しているほうが正確に計算できます。歪曲の大きなレンズでは、オーバーラップ領域が大きくなるように撮影するとステッチしやすくなります。(魚眼レンズは大きなオーバーラップが必要)
通常は、画像周囲(上下左右)に、角度換算で20%以上のオーバーラップが必要(25%程度を推奨)です。
カメラを縦位置で撮影し、短辺の画角をオーバーラップ(角度換算)の分だけ狭くした画角で、1周=360[度]を割ることで、
水平1周の撮影枚数 ≒ 360/(短辺の画角[度]*(1-オーバーラップ[%]/100))
この計算で決定した枚数で撮影したとき、オーバーラップ(短辺の画角基準)は、
水平方向のオーバーラップ[%] ≒ (1-360/水平1周の撮影枚数/短辺の画角[度])*100
[α7+Samyang18mmF2.8での計算例]
レンズの焦点距離(Hugin上)=18.3mm、撮像素子の短辺サイズ=23.9mm、オーバーラップ=25%、から、
短辺の画角 ≒ 360/3.1415926*ArcTan(23.9/2/18.3) = 66.2895[度]
水平1周の撮影枚数 ≒ 360/(66.2895*(1-25/100)) = 7.241[枚]
水平1周を7枚で撮影したときの、オーバーラップ(短辺の画角基準)は、
水平方向のオーバーラップ ≒ (1-360/7/66.2895)*100 = 22.42[%]
真上を1枚、真下を1枚撮影し、その間を縦位置で撮影する、撮影段数を計算します。
真上と真下は各1枚なので、方位により、長辺の画角~短辺の画角まで変化します。真上と真下の画像は、短辺の画角で計算し、間の画像は長辺の画角で計算します。オーバーラップは、長辺にも、短辺にも、長辺の画角基準を適用して計算すると、
撮影段数 ≒ (180-短辺の画角[度]+長辺の画角[度]*オーバーラップ[%]/100)/(長辺の画角[度]*(1-オーバーラップ[%]/100))
この計算で決定した段数で撮影したとき、オーバーラップ(長辺の画角基準)は、
上下方向のオーバーラップ[%] ≒ (短辺の画角[度]+撮影段数*長辺の画角[度]-180)/(撮影段数+1)/長辺の画角[度]*100
[α7+Samyang18mmF2.8での計算例]
レンズの焦点距離(Hugin上)=18.3mm、撮像素子の短辺サイズ=23.9mm、長辺サイズ=35.8mm、オーバーラップ=25%、から、
短辺の画角 ≒ 360/3.1415926*ArcTan(23.9/2/18.3) = 66.2895[度]
長辺の画角 ≒ 360/3.1415926*ArcTan(35.8/2/18.3) = 88.7338[度]
撮影段数 ≒ (180-66.2895+88.7338*25/100)/(88.7338*(1-25/100)) = 2.04[段]
2段で撮影したときの、オーバーラップ(長辺の画角基準)は、
上下方向のオーバーラップ ≒ (66.2895+2*88.7338-180)/(2+1)/88.7338*100 = 24.0[%]
真上1枚と真下1枚が必要で、必要なら底面撮影(三脚下画像、三脚影消し画像)も追加して
合計の撮影枚数 = 2+水平1周の撮影枚数*段数+(三脚下画像の枚数)+(三脚影消し画像の枚数)
[α7+Samyang18mmF2.8での計算例]
水平1周の撮影枚数 = 7[枚]
撮影段数 = 2[段]
18mm広角レンズは画角が広く、太陽の位置が高い時は影が短いため、三脚下画像と三脚影消し画像を1枚で撮影することも可能ですが、必要範囲が画角からはみ出す、撮影ミスが心配なので、三脚下画像を1枚、三脚影消し画像を1枚、別々に撮影するほうが安全です。(魚眼レンズなら、1枚で兼用しても安心です。)
合計の撮影枚数 = 2+7*2+1+1 = 18[枚]