AutoStakkertの「品質評価」を評価する2025/05/10

SER開始状態
長年に渡って月や惑星、太陽のスタックに使ってきたAutoStakkert!(以下AS)ですが、どうにも品質選定やスタッキングで思い通りにいかにないことが多く、気になっていました。良画像が弾かれたり、弾くべき画像が残ったり…。数十フレーム程度なら力技で除外できることも、惑星などは一度に数万フレームも撮るので見返すことすらできません。世界中で使われているソフトですし、ケチをつけるつもりもありませんが、みなさんは品質選定の精度についてどう感じますか?(※スタック精度とは別のことです。)

ある時ふと、撮影動画ではなくゼロから生成したSER動画をASにかければ評価アルゴリズムの優劣を客観的に判断できるのではないかと思いつきました。しばらく頭で寝かせておいたアイディアですが、明け方の土星撮影を機に「評価用SERファイル」を作って試すことにしました。

個人的には空や天文そのものを題材にしたいため、ブログに機材やソフトなどの「裏方」を引っ張り出してあれこれ書くのは極力避けているのですが、偶然にも「ほしぞloveログ」のSamさんが「serファイルの上位フレームの選択」についての記事を書かれていたので、良いタイミングと思い、現状で私が実験したことを簡単な記事にしておきます。

今回作った評価用SERは曖昧さを排除するため、何かの流用ではなく自作プログラムで完全にゼロから作りました。まず白黒8ビット・500×500ピクセルの黒背景に半径100ピクセル・レベル(以下LV)200の円を描き、一定の処理を経て「中央がLV200のまま、縁がLV0になる」ようなグラデーション円像にします。これを動画1フレーム目として、100フレームを保有する4種のSERを以下の通り生成させました。左上図はガウスぼかし1フレーム目ですが、他のSERも1フレーム目はこれと一緒です。

  • ガウスぼかし:グラデーション円像をだんだんぼかしてゆく。
  • 背景レベルアップ:背景のみだんだん上昇する。
  • 全体レベルアップ:グラデーション円像を含めた全体のレベルが上昇する。
  • ランダムドリフト:グラデーション円像の中心位置のみがランダムに変化(画像中央基準にガウス分布)。

下A・B・C図はそれぞれの動画の100フレーム目、下D図はドリフト量の大きなフレーム例です。ヒストグラムを比べていただければ動画の状態や、どんな意図で作ったかが分かるでしょう。

  • ガウスぼかし終了状態

    A.ガウスぼかし
  • 背景レベルアップ終了状態

    B.背景レベルアップ
  • 全体レベルアップ終了状態

    C.全体レベルアップ
  • ランダムドリフト終了状態

    D.ランダムドリフト


ガウスぼかしでは全体がぼけて大きくなる代わりに暗くなります。いわゆるPSFが平坦に広がる星空をシミュレートしたようなもので、シーイングがすこぶる悪い状態ではこんな見え方ですね。ASではありませんが、カメラや動画界隈で使われる有名な評価アルゴリズムのひとつに、ラプラシアン・フィルターを使う方法があります。(ハードウェアのフィルターではなく、数学的な処理のことです。)これも偶然ながらつい先日に天リフさんのブログコーナーでJUN1WATAさんのブログが紹介されており、ラプラシアン・フィルターを使ったプログラムで太陽動画の良像を選別しつつ動画を作る記事が掲載されていました。ラプラシアン関数は比較的手軽に鮮明さやボケ具合を数値で評価することができます。

背景レベルアップと全体レベルアップは違う効果をもたらします。背景のみの場合はカメラをだんだん温めてアンプノイズを増やすような状況で、言わば洪水のように高地の高さは変わらないため島として残っているけれど、浸水域がだんだん高いところに迫るような状態。対して全体レベルアップは光害や薄明が進むような「全域にゲタを履かせる」ケースで、洪水なのに地形ごと浮いてしまい上限に達したところは白飛びになります。(今回は白飛びしない範囲にほぼ抑えています。)また、ランダムドリフトは位置だけがかわるので、円像そのものは全フレーム一緒、つまり画質評価は本来変わってはいけないことになります。

AS開始状態
この四種をそれぞれASにかけるのですが、ASは評価の段階でSurfaceモードとPlanetモードを持っており、またSurfaceモードもimage stabilization anchor(右画像、右側プレビューウインドウの緑矩形)の大きさや置く場所によって評価が変わる可能性があります。(※実際、変わってしまいました。)相当たくさん実験したのですが結果が膨大過ぎてブログに書き切れないため、要点のみ抜粋して書いておきます。

★ガウスぼかし
この動画は概ね「ぼけるほど品質が低い」という予想通りになりました(下E画像)。ただしコマ送りで見ると、必ずしも順番通りにならないところがあり、特に上位で入れ替わる傾向が大きいです。Surfaceモードでstabilization anchorの大きさや位置によっても順位の変化がありました。またこれくらいの大きさの像ではPlanetモードのほうが良いようです。プレビューの赤塗り部分は位置ずれが大きい方向に出ますが、円像の位置は全く変えていないので、中心がアンカー内にあっても大きくぼけると位置がずれていると誤判断していることが分かります。(スタビライズが品質に影響すると言うことです。)

★背景レベルアップ
円像の位置は変わってませんが、ガウスぼかし以上に上位の順番入れ替わりが多かったです。一番コントラストが良いはずの動画の先頭約10フレームの評価が何故か下がっていました(下F画像)。原因不明。面白いのは、プレビューの赤塗りが全方向に均等に発生したことです。これはガウスぼかしと違う結果ですね。一番明るいのは円の中央ですがLV200は変わりませんので、何がこのずれを引き起こしたのか疑問。まぁ、コントラストがどんどん低くなってるので、それ以外の原因は考えられないわけですが…。

★全体レベルアップ
各フレーム内で最低LVと最高LVの差は一定なのですが(最後の10フレームをのぞく)、SurfaceとPlanetとで評価が大きく変わってしまいました(下G1・G2画像)。Surfaceモードでは極端な階段状になっており、何が原因かさっぱり分かりません。またPlanetモードでは中心が白飛びしているラスト10フレーム以外すべて最高評価で、これは予想通り。Planetモードの品質評価はコントラストが支配的ということですね。白飛びが評価を下げることも分かりました。どちらのモードも位置ずれは極めて少なく、赤塗りが目立ちませんでした。

★ランダムドリフト
SurfaceとPlanetで似たような階段状評価なのですが、評価値や階段位置(フレーム数)が異なりました(下H1・H2画像)。Quality Graphを見ると、4種のSERのなかで灰色線と緑線とが最も異なる状態でした。円像そのものは不変ですから評価が一定にならなければ困る動画なのに、こんなにブレブレ。ということはガウスぼかし同様にスタビライズが品質に大きく影響するのですね。赤塗りもSurfaceとPlanetとで出方や量が異なっています。フレームごとに見るとPlanetのほうが精度良く位置合わせができていました。ピントが鋭く出て、狭い二重星もしっかり分離、惑星模様も良く見え変形も皆無なのに、細かい揺れが動画全体を包んでいるような撮影は低評価、ということでしょうか。星像の振動は必ずしも大気シンチレーション起因とは限らず、風、地震、車両交通、ガイドエラーなども考えられます。ただ、今回の評価用SERでは別な円との相対位置などを比較している訳ではないので、個人的にはちょっと納得できない結果でした。


ということで、ガラにもなくソフトウェアの評価をしてしまいました。円像の中に模様があったらどうかとか、位置は変えずに円周が変形したらどうかとか、カラーで青と赤が違う方向にずれたらどうかとか、試したいことは山ほどあります。他のスタックソフトとも比較したいし、そんな時間があったら自力で評価アルゴリズムを組んでしまいたいという気持ちもあります。実際の天体を撮影した動画では品質評価やスタック不良の原因が複雑に絡んで特定しづらいため、こうした評価用SERを使った実験は今後も続けたいと思います。

  • ASガウスぼかしQG

    E.ガウスぼかし
  • AS背景レベルアップQG

    F.背景レベルアップ


  • AS全体レベルアップQG

    G1.全体レベルアップ-Surface
  • AS全体レベルアップCOG-QG

    G2.全体レベルアップ-Planet


  • ASドリフトQG

    H1.ドリフト-Surface
  • ASドリフトCOG-QG

    H2.ドリフト-Planet