2020年9月28日月曜日

RICOH THETAの天頂補正

瀬戸大橋を渡るときに、RICOH THETA Vで静止画のインターバル撮影を行いました。

画像を確認すると、水平が取れているものや大きく傾いているものなど、バラバラでした。

車での移動時の撮影は、天頂が狂いやすいのでしょう。

傾いている画像の修正方法をexiftoolを使っていろいろ試してみました。

結論は、下記のコマンドで修正出来ました。

exiftool -Accelerometer="0.38 0.61" -PosePitchDegrees=0.6 -PoseRollDegrees=0.4 TARGET.JPG

画像の傾き(天頂)を決めるタグは、次の5つのようです。

  • Accelerometer
  • Pose Pitch Degrees
  • Pose Roll Degrees
  • Ricoh Pitch
  • Ricoh Roll

Ricoh PitchとRicoh Rollは、exiftoolで読み取りは出来ますが、書き込みは出来ません。ただし、Accelerometerの値を変えると連動して同じ値になります。

THETAアプリは、Accelerometerで天頂を決めているようで、Accelerometerがない画像は、Ricoh PitchとRicoh Rollの値は無視されます。

天頂補正手順

インターバル撮影を行った画像の Accelerometer、Pose Pitch Degrees、Pose Roll Degreesの値を下記コマンドで読み取ります。

画像のフォルダをカレントフォルダにした後、
exiftool -Accelerometer -PosePitchDegrees -PoseRollDegrees .

結果は次のとおりです。

======== ./20200918_082725.JPG
Accelerometer                   : 342.68 0.16
Pose Pitch Degrees              : 0.2
Pose Roll Degrees               : -17.3
======== ./20200918_082729.JPG
Accelerometer                   : 5.71 0.2
Pose Pitch Degrees              : 0.2
Pose Roll Degrees               : 5.7
======== ./20200918_082733.JPG
Accelerometer                   : 8.64 -1.2
Pose Pitch Degrees              : -1.2
Pose Roll Degrees               : 8.6
======== ./20200918_082737.JPG
Accelerometer                   : 357.82 3.49
Pose Pitch Degrees              : 3.5
Pose Roll Degrees               : -2.2
======== ./20200918_082913.JPG
Accelerometer                   : 4.13 -1.04
Pose Pitch Degrees              : -1.0
Pose Roll Degrees               : 4.1
======== ./20200918_082917.JPG
Accelerometer                   : 341.76 -3.51
Pose Pitch Degrees              : -3.5
Pose Roll Degrees               : -18.2
======== ./20200918_082922.JPG
Accelerometer                   : 0.38 0.61
Pose Pitch Degrees              : 0.6
Pose Roll Degrees               : 0.4
======== ./20200918_082926.JPG
Accelerometer                   : 353.81 2.1
Pose Pitch Degrees              : 2.1
Pose Roll Degrees               : -6.2
======== ./20200918_082930.JPG
Accelerometer                   : 6.16 2.26
Pose Pitch Degrees              : 2.3
Pose Roll Degrees               : 6.2
======== ./20200918_082935.JPG
Accelerometer                   : 354.78 -1.59
Pose Pitch Degrees              : -1.6
Pose Roll Degrees               : -5.2
======== ./20200918_082939.JPG
Accelerometer                   : 353.72 -9.52
Pose Pitch Degrees              : -9.5
Pose Roll Degrees               : -6.3
======== ./20200918_082943.JPG
Accelerometer                   : 4.39 10.86
Pose Pitch Degrees              : 10.9
Pose Roll Degrees               : 4.4
======== ./20200918_082948.JPG
Accelerometer                   : 3.02 3.31
Pose Pitch Degrees              : 3.3
Pose Roll Degrees               : 3.0
======== ./20200918_082952.JPG
Accelerometer                   : 5.08 10.61
Pose Pitch Degrees              : 10.6
Pose Roll Degrees               : 5.1
======== ./20200918_083002.JPG
Accelerometer                   : 349.46 -6.3
Pose Pitch Degrees              : -6.3
Pose Roll Degrees               : -10.5
======== ./20200918_083009.JPG
Accelerometer                   : 3.37 -22.09
Pose Pitch Degrees              : -22.1
Pose Roll Degrees               : 3.4
======== ./20200918_083013.JPG
Accelerometer                   : 349.4 -17.41
Pose Pitch Degrees              : -17.4
Pose Roll Degrees               : -10.6
======== ./20200918_083018.JPG
Accelerometer                   : 0.72 -8.05
Pose Pitch Degrees              : -8.1
Pose Roll Degrees               : 0.7
======== ./20200918_083022.JPG
Accelerometer                   : 354.3 -1.73
Pose Pitch Degrees              : -1.7
Pose Roll Degrees               : -5.7
======== ./20200918_083026.JPG
Accelerometer                   : 359.19 6.06
Pose Pitch Degrees              : 6.1
Pose Roll Degrees               : -0.8
======== ./20200918_083030.JPG
Accelerometer                   : 1.2 18.72
Pose Pitch Degrees              : 18.7
Pose Roll Degrees               : 1.2
======== ./20200918_083035.JPG
Accelerometer                   : 337.98 -32.02
Pose Pitch Degrees              : -32.0
Pose Roll Degrees               : -22.0
======== ./20200918_083039.JPG
Accelerometer                   : 0.01 -13.59
Pose Pitch Degrees              : -13.6
Pose Roll Degrees               : 0.0
======== ./20200918_083043.JPG
Accelerometer                   : 356.98 -5.54
Pose Pitch Degrees              : -5.5
Pose Roll Degrees               : -3.0
======== ./20200918_083048.JPG
Accelerometer                   : 344.14 -8.74
Pose Pitch Degrees              : -8.7
Pose Roll Degrees               : -15.9

同じ角度で撮ったものですが、値は変わっています。

ひとつひとつ、THETA アプリで表示させると 20200918_082922.JPG で水平が取れていました。

======== ./20200918_082922.JPG
Accelerometer                   : 0.38 0.61
Pose Pitch Degrees              : 0.6
Pose Roll Degrees               : 0.4

大きく傾いている 20200918_083035.JPG を 20200918_082922.JPG の値にexiftoolを使って変更します。

======== ./20200918_083035.JPG

Accelerometer                   : 337.98 -32.02
Pose Pitch Degrees              : -32.0
Pose Roll Degrees               : -22.0

コマンド
exiftool -Accelerometer="0.38 0.61" -PosePitchDegrees=0.6 -PoseRollDegrees=0.4 20200918_083035.JPG

値を修正した 20200918_083035.JPG をTHETAアプリで確認すると水平が取れています。

補足

  • Accelerometerの値を変えると、THETAアプリでもGoogleフォトでも水平が取れます。同時に、Ricoh PitchとRicoh Rollの値がAccelerometerと同じ値に変更されます。

  • THETAアプリは、Accelerometerの値で天頂補正し、Pose Pitch DegreesとPose Roll Degreesの値は無視します。そのため、Accelerometerタグがない画像については、補正無しで表示するようです。

  • Googleフォトは、Accelerometerがある場合、この値を優先し、Pose Pitch DegreesとPose Roll Degreesの値は無視します。
    Accelerometerタグがない画像については、Pose Pitch DegreesとPose Roll Degreesの値で補正しているようです。

Accelerometerタグがない場合

  • exiftoolでは、Accelerometerの書き込みが出来ないため、タグで調整出来ないので画像そのものを傾きがないように修正します。
  • 使用するソフトは、ステレオフォトメーカーで、実行ファイルは、stphmkr.exe、ポータブルアプリです。http://stereo.jpn.org/theta/thetalevel.html
    1. [ファイル]>[シングル画像を開く]
    2. [編集]>[THETA画像編集]>[THETA画像変形処理]で、X軸とY軸を交互に移動して水平を出します。
    3. 保存するとexifデータが消えてしまうので、タグを全削除してから、オリジナルのタグを全コピーをします。
      exiftool -overwrite_original -all= update.jpg
      exiftool -overwrite_original -tagsFromFile source.jpg -codedcharacterset=utf8 update.jpg
    4. 天頂補正が0となっていますので次のコマンドを実行します。そうしないとGoogleフォトで水平が取れません。
      exiftool -overwrite_original -PosePitchDegrees=0  -PoseRollDegrees=0  update.jpg