FOSSツールでタイムラプスの画像のスタックを調整する方法


7

タイムラプスシーケンスに処理するつもりのフレームのシリーズをいくつか取りました。StopMotionを実行してそれらをムービーシーケンスに処理したところ、2つの主な理由で画像がぎくしゃくしたように見えました。

  • 一部のシリーズは、風の強い条件で撮影され、カメラの三脚が少し揺れました。
  • その他は、HDRモードのスマートフォンカメラで撮影されました。これらの画像はすでに処理されているため、視野は多少異なります。これは、順番に表示すると表示されます。ズームレベルがわずかに変更されているように見えますが、変化が1つの軸に沿っているだけで、画像がわずかに歪んでいる場合があります。これは後処理アーティファクトであるため、レンズジオメトリに依存するツールはここでは機能しない可能性があります。その部分は別の質問にしました

これらの画像を整列して、対応する画像シーケンスがぎくしゃくしないようにするにはどうすればよいですか?制約は次のとおりです。

  • Linuxで利用可能なFOSSツールのみ
  • 各シーケンスは約250画像(25 fpsで10秒に相当)で構成されているため、高度な自動化が必要です。ここで紹介するアプローチのいくつかは、3回の露出のHDRシーケンスに適していますが、より長いシーケンスには適していません。

回答:


10

HuginのWebサイトにチュートリアルがあり、良い出発点になりました。

必要なツール:

  • Hugin
  • ImageMagick
  • バッシュシェル

Huginプロジェクトを作成する

Huginを起動して、必ずInterface> Advancedを選択してください(Expertも同様です)。パノラマスティッチャーウィンドウに移動します。

視野(スマートフォンのカメラでは50°が適切に機能しました)、レンズパラメータ、および投影タイプを設定します。ほとんどの場合、直線が機能します。

シーケンスの画像を読み込みます。

コントロールポイントを作成する

コントロールポイントは、Huginが位置合わせに使用する画像内の機能です。連続するフレームの各ペアは、適切に位置合わせするためにコントロールポイントを共有する必要があります。

引き続き[ 写真 ]タブの[ 機能の照合 ]で、コントロールポイントを作成する方法を選択します。画像スタックの整列は私にとってはうまくいきました。少し実験する必要があるかもしれません。

これを初めて行う前に、時系列的に連続した画像のペアの間にコントロールポイントが作成されていることを確認する必要があります(デフォルトでは、画像を露出で並べ替えます)。行く[ファイル]> [プリファレンスにナビゲートコントロールポイントの検出器のタブ。[ 画像スタックの整列 ]を選択し、[ 編集… ]をクリックします。[ 引数]に、を追加し--use-given-orderます。次に、OKで両方のダイアログを閉じます。

写真の最初の束を選択し、[ コントロールポイントの作成 ]をクリックします。残念ながら、Huginは一度に128をわずかに下回る画像しか処理できません。シリーズに120を超える画像がある場合は、120の画像のバッチでこの手順を繰り返します。各バッチの最後の画像も次のバッチに含めるようにしてください。処理にはしばらく時間がかかる場合があります。

次に、[ コントロールポイント ]タブに移動します。左側のペインで画像#0を選択し、右側の画像で画像#1を選択します。画像間で共有されているコントロールポイントが表示されます。右矢印ボタンをクリックして、シリーズを進めます。連続する画像の各ペアは、一連のコントロールポイントを共有する必要があります。(カメラが動いているとき、たとえば、動いている車両からタイムラプスシーケンスを撮影しているとき、これは常に機能するとは限りません。)

シーケンスに雲の大部分がある場合、前の手順で空にいくつかの制御点が作成された可能性があります。これらは配置をめちゃくちゃにするので、削除する必要があります。[ 写真 ]タブに戻り、すべての画像を選択し、リストを右クリックして[ コントロールポイント]> [クラウドのコントロールポイントを削除]を選択します。これにはしばらく時間がかかります。一部のコントロールポイントを見逃す可能性がありますが、私の経験では、配置が期待どおりに機能するのに十分な数に減少しています。

注:Huginの最新バージョンでは、選択した戦略に応じて、コントロールポイントの作成中に既に曇っている領域を除外できるようです。

レンズパラメーターを確認する

高速パノラマプレビューウィンドウに移動し([表示]> [高速プレビューウィンドウ])、球体のプレビューを確認します。画像は球の一部のみを塗りつぶし、四角形に近い輪郭とエッジの歪みを最小限に抑える必要があります(旧式のCRT TVと同様)。

画像の輪郭がほぼ円形の場合は、レンズパラメータを再調整する必要があります。(これはHDR画像で発生したことがわかりました。デバイスでの後処理によりレンズ情報が破棄されるようです。)パノラマスティッチャーに戻り、[ 写真 ]タブですべての画像を選択してリストを右クリックします。次に、いずれか:

  • それらを既知の良好なレンズパラメータ(レンズ)に変更します。同じデバイスからの非HDR画像を以前に処理したことがある場合は、カメラのレンズがデータベースにあるはずです。
  • または、視野を手動で設定します(画像変数の編集)。

次に、[ 高速パノラマプレビュー]でもう一度確認します。

アライメントを計算する

[ パノラマスティッチャー]ウィンドウに戻り、[ 写真 ]タブの[ 最適化]> [ジオメトリック ]で次のいずれかを選択します。

  • カメラの動きのみを修正する位置(y、p、r)
  • 位置とビュー(y、p、r、v)により、HDR処理のアーティファクトも排除されますこれは、上記のアーティファクトではまだ機能しません。画像は1つの軸に沿ってわずかに歪んでいます。まだこれに対処する方法を理解しようとしています...

計算をクリックします。これにはしばらく時間がかかります。

整列とトリミング

変更し、高速パノラマプレビューウィンドウ。

上の投影タブ、あなたのレンズタイプと同じ投影を選択します。移動/ドラッグ ]タブをクリックしフィットして、上のクロップタブを選択HDRオートクロップを

フレームをレンダリングする

パノラマスティッチャーウィンドウに戻り、[ スティッチャー ]タブに移動します。

下では、視野、クリックビューの計算フィールドを。(これはすでに正しく設定されている可能性があります。)

下にキャンバスサイズ、クリック計算最適なサイズ次に、[ 切り抜き ]で、[ 切り抜きを画像に合わせる ]をクリックします。 (一部の画像の境界付近に空白の領域が残る可能性があるため、ここではトリミングオプションを使用しないでください。)

パノラマ出力の下にあるすべての選択を解除します

下にリマップ画像、選択していないん露出補正、低ダイナミックレンジを

ステッチをクリックします。プレフィックスを選択するように求められます。これは、生成された各ファイルの前に付加されるパスと文字列です。生成されたファイルを別のディレクトリに配置することをお勧めします。

フレームのレンダリングには、しばらく時間がかかります。

画像のクリーンアップ

Huginの作業が完了すると、一連の画像が作成されます。不足しているものは2つだけです。

  • 画像はTIFF形式です。これはHuginが内部で使用する形式であり、変更する方法はありません。
  • Huginは画像を位置合わせした後、シリーズのすべてのフレームで収束する部分に画像をトリミングしました。したがって、結果の画像は元の画像よりもわずかに小さくなります。

幸い、これら2つのことは1つのステップで修正できます。おまけとして、ムービーシーケンスのターゲット解像度よりも高い解像度で露出を行った場合、この手順によって露出もサイズ変更されます。

を起動しbash、生成されたファイルを含むディレクトリに移動して、次を実行します。

for i in *.tif ; do convert $i -resize 1920x1080^ -gravity center -extent 1920x1080 `echo $i | sed s/.tif/.jpg/` ; done
rm *.tif

(ターゲットの解像度が1920×1080以外の場合は、それに応じて最初の行を変更します。)

これにより、各画像がターゲットの解像度に合わせて拡大縮小され、比率が適切に合わない場合はサイズにトリミングされます。2行目はHuginによって生成されたファイルを削除します。

それでおしまい!次に、お気に入りのツールを使用して、結果の画像シーケンスをムービークリップに処理します。


2
1)バッシュは、ここで必要とされず、任意のPOSIXシェルは、例えば使用)2を行い、あなたの変数を引用します"$i"代わりに、$i3)使用パラメータ展開の代わりにecho'ing sed、例えばconvert "$i" "${i%.tif}.jpg"4)を使用するmogrify代わりに、convertあなたはループを必要としないようにします。例mogrify -resize '1920x1080^' -gravity center -extent 1920x1080 -format jpg -- *.tif
Marco
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.