解析ごっこ・検証ごっこ

SharpCapの新機能でホットピクセルが軽減?

★SharpCapに新機能、だと?
あぷらなーとは、天体用CMOSカメラを使う際には、基本的にSharpCapばかりを愛用しています。
不器用故に、一度慣れた環境からは脱却できないのも理由のひとつですが、アップデートの度に次々と新機能が実装される点もお気に入りのポイントです。
ところで、先日シベットさんから大変興味深い情報が寄せられました


これは、「ダークフレームを用いずにホットピクセルを軽減する」機能のように見えます。
もしこれが本当なら、お気軽星雲撮影や電視観望時に威力を発揮するかも知れません。

さっそく手持ちのSharpCapの制御パネルを見てみると・・・おお、たしかにありますねぇ。
SharpCapの新機能でホットピクセルが軽減?_f0346040_12270366.jpg
撮像パラメータの中の「前処理」グループの中には元々「ダーク補正」の項目があったのですが、これはあらかじめ用意したダークフレームを指定して撮像と同時にダーク減算させる用途でした。ところが、最近のバージョンではここに「Hot Pixcel Removal Only」という選択肢が新設されています。
直感的には、ステライメージのホット除去フィルタなどのように周辺ピクセルよりも異常に高輝度な輝点を検出した場合にこれを消去する機能のように予感されます。
このオプションを有効にすると、次のように、「ホットピクセル感度」という設定が現れます。
SharpCapの新機能でホットピクセルが軽減?_f0346040_12294127.jpg
恐らく、これが何をホットピクセルだと識別するかを指定する閾値なのではないでしょうか。では、さっそくこの新機能を試してみることにしましょう


★Uranus-Cのダーク撮影時にこの機能を試してみる
まずは、テスト第一段階として、PlayerOneの非冷却カラーカメラUranus-Cを接続してSharpCapでダークフレームを撮像し、その際に「ホットピクセル除去」機能の有無で残存ホットピクセルの挙動がどう変わるかを試してみることにしました。(注:本来は、なんらかの事情でダーク減算ができない場合にライトフレーム撮影時にこの機能を併用するのが正解だとは思いますが、その挙動を確かめるために、あえてダークフレームの撮影時に用いました。)

<テスト方法>
 ①Uranus-Cを「オフセット50・ゲイン180・30秒露光」に設定する
 ②SharpCapのホットピクセル感度を5にした場合と無効にした場合のそれぞれについてダークフレームを64コマ撮像する
 ③それぞれ現像前に64コマを加算平均コンポジットする。
 ④それぞれデモザイク(ディベイヤー)して効果を比較する。

すると・・・

ででん!!
SharpCapの新機能でホットピクセルが軽減?_f0346040_12475431.jpg
Uranus-Cには元々ホットピクセルを軽減するDPS機能が実装されているのですが(Xena-Mなどよりもその効きが弱めに調整されているらしく)生き残ったホットピクセルが散見されます。ところが、SharpCapのホットピクセル除去機能を併用することで、見事にホットピクセルが滅殺されたことが分かります。
(※Uranus-CのDPS機能のロジックについては、後日考察ごっこレポートを書きます。今のところはDPSは『ピクセルマッピング的ななにか』だと解釈してください)

一体何が起こっているのでしょうか?
画像を見ただけではその傾向が分かりにくいので、少し統計処理をしてみましょう。
次のグラフはUranus-Cで30秒露光ダークを撮像する際にSharpCap側の「ホットピクセル(検出)感度」を0・5・10に変化した場合について、R画素の輝度ヒストグラムを比較したものです。(光電子ショットノイズの影響を緩和するため、横軸は64コマの輝度平均値にしています。)
SharpCapの新機能でホットピクセルが軽減?_f0346040_12584556.jpg
確かに、検出感度を0→5→10と上げる毎にヒストグラムの右すそ野にあるホットピクセルがグングン減っていくのが分かります。
では次に、「お約束」の時系列解析グラフをプロットしてみます
SharpCapの新機能でホットピクセルが軽減?_f0346040_13235245.jpg
これはRピクセルそれぞれについて、横軸に64コマ間の輝度メジアン・縦軸に輝度ゆらぎ(標準偏差)をプロットしたものです。
なお、ザックリとした見方は下記のようになります。
SharpCapの新機能でホットピクセルが軽減?_f0346040_13115327.jpg
Uranus-CのDPS機能は優秀で、もともと上記の水色部分(クールピクセル)と赤色部分(ホットピクセル)は相当にカットされていることが分かります。
ここでSharpCapのホットピクセル除去機能を併用することで、より理想に近い形(右方向・上方向のピクセルが減る)に補正されていることがうかがえます。
SharpCapの新機能でホットピクセルが軽減?_f0346040_13242483.jpg
ただし、上図のように詳細に観察すると、いくつか不可思議な特徴が見えてきます。果たして何が起こっているのでしょうか?
ところで、こうした補正機能がカメラ側に実装している場合は、その機能のON-OFFが不可能なために詳細を追跡することは困難(実質不能)です。ところが今回観察している効果はソフトウェア側の機能なので、同一ピクセルについて補正機能をON-OFFすることでどう変化したのかが丸見え(笑)です。

では、さっそくSharpCapの補正機能によって「どのピクセルが(グラフ上の)どのポジションに移動したのか」を追跡してみましょう。


★SharpCapの補正で何が起こったのか?
先ほども述べましたが、補正機能ONによって時系列解析グラフ中の位置が左下(ホットピクセルの明るさが暗くなりその揺らぎも小さくなる)に移動するのが理想的なのですが、実際には、左上に移動(ホットピクセルが暗くなったが揺らぎが悪化)したり右上に移動(全てが悪化)するケースがあることを見つけました。
SharpCapの新機能でホットピクセルが軽減?_f0346040_13362361.jpg
一体何が起こっているのでしょう?
そこで、上記の2ケースについて64コマ間で実際の輝度が(補正なしと補正ありで)どのように揺らいでいるのかを観察してみました。

まずは「空間ノイズは改善されたが時間ノイズが悪化した」(左上移動)ケースです。
SharpCapの新機能でホットピクセルが軽減?_f0346040_13442763.jpg
左のグラフ中、水色は補正無しの輝度推移でオレンジが補正ありの輝度推移です。要するに、補正前は『安定したホットピクセル』だったものがSharpCapの補正によって『酩酊ピクセル(点滅する)』に化けてしまったということです。

次に「全てが悪化した」(右上移動)ケースです。
SharpCapの新機能でホットピクセルが軽減?_f0346040_13502710.jpg
ここで補足しておくと、「全てが悪化した」という表現は少し問題があります。上のグラフ中の緑囲みキャプションを見ていただくと分かるように、正確には「輝度揺らぎは悪化し、輝度メジアンは効果無し」です。実は全体的な輝度が少し明るくなった主要因はSharpCap側の問題ではなくUranus-Cが非冷却カメラであることに関係します。要するに、SharpCapの補正機能をONにしてダークを撮像した時は運用開始から時間が経過しているためセンサー温度が上昇したことが効いています。

もちろん、センサー温度の上昇に関わらず美しく補正できてていたり、元が難敵『酩酊ピクセル』であっても撃退に成功したケースも多数観察されました。たとえば、こんな感じです。
SharpCapの新機能でホットピクセルが軽減?_f0346040_15025517.jpg
SharpCapの新機能でホットピクセルが軽減?_f0346040_15030971.jpg
もはやキャプションが不要なほど見事な補正結果ですね♪

さて、これらの解析結果を総合して考えると、SharpCapのホットピクセル機能は「常に補正成功する」のではなく「ときどき補正に失敗する」ために、時間ノイズ(輝度ゆらぎ)が悪化するケースが見られるということになりそうです。


★補正のロジックを推理する
当然ソフトウェアのソースコードは見られませんので、実際にどのような演算が行われているのかは全く不明です。ただし、これまでSV405CCやASI294MCの補正ロジックを推理ごっこしてきたように、撮像後の画像を解析するだけでおよその方向性は推定できます。ここで誤解無きように添えておくと、別に補正ロジックの良し悪しについて意見するつもりは全くなくて、単に「傾向を把握することで、実際の画像処理の方向性を決める時に役立てよう♪」というだけのことです。

ちなみに、
ZWOのASI294MC(後日解析結果を書きますが、PlayerOneのDPSも同様と推測しています)は
 ①出荷前に不良ピクセルの座標をメモリーする
 ②補正対象のピクセルについて、同じカラーチャンネル内で隣接する上下左右4個の輝度平均を取る
 ③輝度平均の小数点以下を切り捨てて整数値化する
 ④もとめた補正値を対象ピクセルの輝度と置き換える
と推測(あくまでも推測)されました

また、SVBONYのSV405CC
 ①撮影画像内の全ピクセルを補正対象とする
 ②対象ピクセルと同じカラーチャンネル内に隣接する上下左右の4ピクセルを母集団として平均値と標準偏差を求める
 ③対象ピクセルの輝度偏差値が70より大(+2σ超)の時には、参照ピクセルのうち上から2つめの輝度で置き換える
 ④対象ピクセルの輝度偏差値が30未満(-2σ未満)の時には、参照ピクセルのうち上から3つめの輝度で置き換える
 ※要するに±2σで補正対象を随時弁別して5ピクセルのメジアンで補正する
と推測(あくまでも推測)されました

※下記記事へのコメントでnekomeshi312さんに指摘していただいたとおり「2σでカットは誤り」です。対象を含む5ピクセルでの偏差は統計上2σを超えることができないからです。

上記2つのリンク先にも書いたのですが、素人なりに思いついた補正方式は下記の35通りです。
SharpCapの新機能でホットピクセルが軽減?_f0346040_07065361.jpg
この35パターンそれぞれの補正を行うコードを書いて、それが何フレーム連続でヒット(矛盾無しと判定されたか)したかを解析し、確率的に偶然起こったのか意図的に演算されたものかを判定してみました。

すると・・・

でで・・・ん??
なんと「全部ハズレ」という悲惨な結果となりました。

ぐぬぬぬ・・・・恐るべしSharpCap!
あぷらなーとごとき素人に分かるような補正痕跡は残していないようです。


あまりに悔しいので、ここで頭を冷やし、とりあえず「平均値系」か「メジアン系」のどちらに近いかを見分けるため、補正後に全く同じ輝度値を示すピクセルが並んでいないかどうかを解析してみることにしました。

本当はこの作業がとても難儀した(面白かった)のですが、過程を書くと長くなるので割愛して、一気に結論に飛びます。


★ついに見つけた!!
色々な方法で解析ごっこした結果、当初は想像もしていなかった補正ロジックが(統計的に十二分な精度で)ヒットしました。

それは・・・

ででん!!
SharpCapの新機能でホットピクセルが軽減?_f0346040_14322798.jpg
意外ッ!!
なんと、左に隣接するピクセルの輝度をそのままコピーしてるだけ!!
(※正確には右隣接ピクセルをコピーしてる可能性もありますが、今後の謎解き課題とさせてください。)

補正に関して重み付けや複雑な条件判断が入っているのかなぁと随分悩みましたが、灯台もと暗し。
まさかこんなにシンプルな仕掛けだったとは・・・いやー、やられました。


★撮影後に補正する手段はあるか?
要するに、SharpCapに新規実装されたホットピクセル除去機能
 ①「感度」パラメータに応じて、撮像画像からリアルタイムにノイズ判定をする
 ②補正対象のピクセルは消し、同チャンネルの左隣接ピクセルの値に書き換える
  ※正確には、②の「左」は「右」かもしれない
と推測(あくまでも推測)されました。

ところで、あくまでも個人の感想なのですが、この手の「撮影時に随時ノイズ判定する」方式は厄介だと考えています。
某社のミラーレスのように微光星をノイズと誤判定して消してしまう『星喰い』現象が懸念されるのも理由のひとつですが、それ以前に原理的にダーク減算が不可能になってしまうからです。それはダークフレームと異なりライトフレーム中には撮影対象の天体画像が含まれているため、ホットピクセル周辺の輝度分布傾向がダークとは全く異なるためノイズ検出に失敗したり誤検出されるケースが考えられるからです。
(もちろん、電視観望などで生じる縮緬ノイズの撃退には非常に強力な武器になると思います。)

そこで、あえてSharpCap側の補正機能はOFFにして、後から同等の補正を行う方法(ダーク減算以外の方法で)を考えてみることにしました。
これは、そもそもSharpCapのホットピクセル検出「感度」が如何ほどかを探る遊びでもあります。

比較したのは、今回の解析結果を元にSharpCapの補正ロジックを模した機能を追加実装した自作プログラム『邪崇帝主(ジャスティス)』と、長年愛用しているステライメージです。
SharpCapの新機能でホットピクセルが軽減?_f0346040_15145812.jpg
このように、SharpCapのホットピクセル検出「感度5」はステライメージのホット除去フィルタの閾値50と似たような結果を生み、その検出閾値は邪崇帝主の2σよりは若干緩く3σよりは強いような印象を受けました。

では、時系列解析を用いてもう少し詰めてみます
SharpCapの新機能でホットピクセルが軽減?_f0346040_20571138.jpg
本格的な解析(識別感度とσの関係の推定)は温度変化の影響を受けない冷却カメラを用いて精度を上げないとダメなので、今後の課題としますが、乱暴に言えば「SharpCapのノイズ識別感度5は+2.25σ付近の閾値に相当する」と考えても矛盾しないという程度の気配は感じられました。


★電視観望で活用してみる
さて、お楽しみはこれからです。
Skywatcherの80mmF5アクロマートStarQuest80クローズアップレンズとPlayerOneのUranus-CとサイトロンジャパンのQBPⅢフィルタを装着してケンコーのスカイメモSに搭載し、馬頭星雲のお気軽電視観望にチャレンジしてみました。これはUranus-CのDPS機能とSharpCapのホットピクセル補正という2つの必殺技を併用するという戦法です。
SharpCapの新機能でホットピクセルが軽減?_f0346040_15290666.jpg
ちなみに、
 ①自宅周辺の光害 →QBPⅢで退治
 ②StarQuest80の盛大な色収差 →QBPⅢで退治
 ③StarQuest80の像面湾曲 →Pro1D ACNo3で退治
 ④スカイメモSの追尾エラーに伴う縮緬ノイズのうち
  ・通常のホットピクセル起因 →Uranus-CのDPSで退治
  ・通常のクールピクセル起因 →Uranus-CのDPSで退治
  ・生き延びたホットピクセル起因 →SharpCapで退治
  ・Uranus-Cの酩酊ピクセル起因 →SharpCapで退治
という、安価かつ邪悪な作戦です♪




うひゃー、大成功!
お気軽機材で電視観望という楽しみ方も良いですねぇ♪


★★★お約束★★★
①あぷらなーとは素人のため、解析ごっこの結果が正しい保証はありません
②SharpCapのノイズ検出感度が何σに相当するかは今後の検証ごっこ課題です
③本記事は、各種補正ロジックの良し悪しを評価するものではありません
④あくまでも素人の遊びですので、この記事をソースとしたメーカーさんへのお問い合わせ等はご遠慮ください

★202.11.10追記
記事中の最終グラフに数値のミスタイプ(2σを3σと誤記)がありましたので訂正しました。
ご指摘いただいたimarin0321さん、ありがとうございました!

Commented by シベット at 2022-11-05 12:22 x
わたくしの何気ないツイートからこのような綿密な検証に発展させていただき、お礼の言葉もございません(笑)。
SharpCapのホットピクセル除去機能、天体写真用途では「よけいな仕事」になってしまうかもですが、お気楽電視観望においてはちりめんノイズ軽減に大きく貢献しそうですね。個人的には、現状では普通のダーク減算と併用できないのが残念ではありますが、ピクセルマッピング機能を搭載したCMOSとの相性は良さそうです。当方の電視観望における主力CMOSが、カラー非冷却ASI294MC、モノクロAPOLLO-M-MAXなので、その意味でも心強い機能になるかも・・・待てよ、例の482って奴でもひょっとして驚異の相性を示したりして? いや無理か(笑)

しかし、SharpCapの更新と機能追加は信じられないペースで進行しておりますね!
Commented by supernova1987a at 2022-11-06 09:19
> シベットさん
こちらこそ、大変興味深いネタを発信していただきありがとうございました。
おかげさまで想像だにしなかった補正パターンを見いだすことができました。
ご推察の通り、DSP機能を持つPlayerOneのカメラで電視観望する時の相性もバッチリでした!

例の482くんもこの機能で活躍の場が広がるかも?
ぜひ実験してみてください♪
Commented by momitanne at 2023-01-08 16:34 x
あぷらなーとさん、ブログ上での機材解析やノイズ解析の記事楽しく読ませていただき参考にさせていただいています。
昨年末にSV605CCを入手したのですが、バンディングノイズに悩まされネットで検索していたところあぷらなーとさんのツィート(?)でSharpcapにバンディングノイズ削除の機能が搭載されているが、しきい値等詳細は不明との書き込みを読ませていただきました。
早速、Sharpcapでテストを行ったところ確かにバンディングノイズが消えました。
ただ、しきい値等の詳細が判らないためSharpcapのフォーラムで検索したところ下記の様な書き込みが。
ちょっと長くなりますが、DeepLで翻訳した内容を転記させていただきます。

技術的には、バンディング抑制強度は、SharpCapがフレームの全幅にわたって走る水平バンディングの特徴を滑らかにする量を制御し、しきい値は、フィルタが適用されない明るさのレベルを制御します。
しきい値を調整することで、適切な強度の抑制が適用され、最大の問題と思われる画像の暗い領域にのみ適用されるため、明るい領域で画像を劣化させないようにすることができます。

適用されるフィルターは以下の通りです(大雑把ですが)。

* 画像を水平方向に平均化し、各列の平均的な明るさを表す一連の図を作成する。
* 行の平均的な明るさのデータにランニング平均(長さは禁止抑制のために選択された強さに依存)を適用します。
* 平滑化された行の輝度データを平滑化されていない行の輝度データから減算し、各行に対して、その行が近傍の行よりもどの程度明るいかまたは暗いかを示すオフセットを作成する。
* 行の各ピクセル値から行ごとに計算されたオフセットを減算し、行が平均して明るくなる傾向、または隣接する行よりも明るくならない傾向を補正します。

元のツィートが見つからず、こちらへのコメントとなりましたが、不都合であれば削除して下さい。
Commented by supernova1987a at 2023-01-12 07:15
> momitanneさん
詳細な情報、ありがとうございます!
特にバンディングノイズが大きいASI174系カメラのコンポジットではAS!3のバンディングノイズ軽減機能を愛用していますが、SharpCapの機能も試してみたいです。
名前
URL
削除用パスワード
by supernova1987a | 2022-11-03 15:51 | 解析ごっこ・検証ごっこ | Comments(4)

あぷらなーとの写真ブログ


by あぷらなーと
PVアクセスランキング にほんブログ村