Darkside(https対応しました) |
2022年7月1日(金) 21:25
撮影後のソフトウェア手ぶれ補正のキモは、いかに正確に手ぶれ量を推測するか?である。
カメラやレンズに内蔵されたセンサーを元にしてほぼ正確な手ぶれ量を推測できる撮影時手ぶれ補正とは、そこが根本的に異なる。ただし、手ぶれ量を推測し易い状況(歩かずその場で止まって撮影)や推測し易い映像であれば、露光中にブレは別として撮影時手ぶれ補正に負けない効果を発揮できることもある。
センサーには誤差やノイズがあるが、事後処理では映像そのものを補正に使える。コントラスト検知式のAFが、精度では有利なことと同様。
歩きながらの撮影ではそのような有利さが減少し、かなり補正し難くなる。
手ぶれ量の推測では以前書いた通り、トレードオフに悩まされる。基準フレームと最新フレームを比較して変化量を推測するが、基準フレームから離れるほど推測精度が落ちる。だからと言って基準フレームを頻繁に切り替えると、今度は推測誤差が累積する。いかに適切なタイミングで基準フレームを切り替えるかが、推測の正確さを決める。
本来なら三脚を置きたい状況で手持ち撮影するなら、基準フレームは先頭フレーム固定で良い。1フレームの間の変化が閾値より大きな場合に基準フレームを切り替える、というていどのロジックで効果的に手ぶれ補正できる。基準フレームは1〜2分に1回切り替わるかどうか、である。
歩きながらの手持ち撮影では、そんな理想的な状況はまず発生しない。
推測座標の変化が一定値を超えたら切り替えるとか、フレームの一致度があるていど下がったら切り替えるとか、これまで試行錯誤したが決定版はない。
だが、もっとシンプルな切り替え方法があることに気付いた。
基準フレームと最新フレームを比較して移動量を推測し、結果として最新フレームと1つ前のフレームの移動量も推測できる。これが、基本的な推測動作である。
それとは別に、最新フレームと1つ前のフレームを比較して移動量を直接推測する。
前者は誤差が累積せず、後者は最新の移動量に関する限りにおいては精度が高い。
そこで、前者による最新フレームと1つ前のフレームの移動量と、後者が直接推測した移動量を比較。それが大きく食い違っていれば基準フレームを切り替える、というアルゴリズムである。
これにより誤差の累積を抑止しつつ、精度の低下も抑止できるのではないか?
試すと確かに効果はあるが、いまいち。フレーム間の座標ズレが閾値(1ドットなど)を超えたら基準フレームを切り替える、という初期の方法が一番マシに感じる。
あれこれ試した結果を見比べると、別の疑惑が浮かんだ。これ単純に、基準フレームを切り替える頻度が上がるほど、手ぶれ補正もうまく行ってないか?
だとすると、誤差の累積を気にするよりとにかく精度優先が正解では?
ならば、実験だ。
無条件ですべてのフレームで基準フレームを変更。すなわち、常に直前フレームとの比較でズレ量を検出し、誤差の累積は気にしない。どうやらコレが正解だったようだ。
誤差の累積は停止状態での三脚代用撮影では問題だが、歩きながらの場合は移動平均を取る。変化量の積分により誤差が累積して推定座標がズレても、移動平均もそれに従ってズレるので影響は打ち消される。
written by higashino [Virtual Reality] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4