解析ごっこ・検証ごっこ

露光とゲインとノイズについての検証ごっこ

★星ナビさんの記事を連載する前に

だいぶ前の事になりますが、星ナビさんに「Deepな天体写真・市街地で星雲を撮る」の記事を書く際に、いままでモヤモヤしていたことを事前テストしてました。
それは、「短時間露光・多数枚コンポジット」と「長時間露光・少数枚コンポジット」ではどちらが有利なのだろう?という定番のテーマです。本題に入る前に、ここまでの経緯をまとめてみます。(知識も才能もないくせに勉強嫌いというあぷらなーとの悪戦苦闘ぶりをお楽しみください。)


★総露光時間が同じならOK?
最初に試みたのは、実写した画像を目視で比較するということで「短時間露光+多数枚コンポジット」と「長時間露光+少数枚コンポジット」ではそれほどの差は出ないということ光子ショットノイズのモデル化で説明しようとする遊びでした。もこれが2017年のはじめで、かれこれ5年も前のことになります(笑)


また、その後で「本当に光子がパラパラと飛んできているのか?」を確認するために、天体の実写像解析と理論的なフラックス(光子が飛んでくる頻度みたいなもの)計算との比較から、この描像(光子がパラパラ)がオーダーレベルで合っていそうなことを確かめました。



この「光子がパラパラ」というショットノイズの例えは結構お気に入りなので、天リフ超会議「ガチ天」講演や、星ナビ2021年10月号記事などでも使っています。




★なぜ短時間露光が不利に見えるのか?
ただ、最初の記事中でも触れているように「では、なぜ短時間露光+多数枚コンポジットの方が若干負けて見えるのか」についてはよく分からなかったので、『脳内談義』することで考えを整理してみました。
(文献を調べれば分かることですが、それでは面白くないので、あえて答えは見ずに自力で悩む過程を楽しむという悠長な遊びである点はご理解ください。)

ここで、「シャッターを切る毎に生じるリードノイズを考えると、短時間露光+多数枚コンポジットが不利である点を説明できそうだ」という着想を得ました。
要するに、ショットノイズは統計学上、コンポジット枚数をN倍にすると1/√Nに軽減されるが、リードノイズは逆に√N倍に悪化するので、総露光時間が同じならできるだけ撮影枚数が少ない(1コマの露光時間が長い)方が有利だろうと考えました。
これが2019年のはじめですから3年前のことです。(ここまでに2年間を費やしたことになりますねw)


ちょうど同じ頃、本格的な検証ごっこを始める前にある程度の測定精度と解析精度を手に入れるために、1コマのバイアスフレーム内に生じる輝度揺らぎからリードノイズを見積もる方法を自分なりに考えて、解析コードを書いてみる遊びに取りかかりました。

その結果、メーカーのカタログスペックをほぼ再現できる解析精度が手に入ったので、解析ごっこする環境がようやく見えてきました。

ただし、DephiとExcelを用いた解析では、あまりにも膨大な時間が掛かってしまうため、使用言語をMATLABに乗り換えるという大決断をします。

MATALBコードの書きやすさのおかげで、今までアイディアだけ考えて実装に四苦八苦していた「時間ノイズの測定」や「ピクセル1個ごとの特性解析」などが一気に進みました。これが2019年の初め、ちょうど2年前の出来事です。

この辺の経緯はMATLABを販売しているMathWorksさんにもインタビューされて公式サイトに掲載していただきました♪


★機は熟した!!
星ナビさんの記事を書く上で悩んだのは「誤解を与えるとマズい」という点です。
一応誌面でも明記したように
・光害のある市街地での星雲撮影を想定 →光害軽減の工夫
・視界が狭く複雑な制御はタイムロスがあり不能 →時短の工夫
・高級機材よりも安価な機材を使いたい →経費削減の工夫
の3つを大前提としてネタを展開してはいますが、万が一「都会の方が良く写るのか」とか「高い機材は無駄なのか」とか「長時間露光よりも短時間露光の方が良いのか」などという誤解を与えてしまうと悲しいからです。

そこで、(誌面には書かなくても)執筆時のバックボーンとして、ある程度の実証ごっこをしておく必要は不可欠だと考えました。

そして、水面下で色々と試行錯誤をして、諸説ある「短時間露光・多数枚コンポジット」と「長時間露光・少数枚コンポジット」ではどちらが有利かについて、自分なりの答えを得ておくことにしました。

というわけで、今更ですが去年の取り組みと、その結果について書いてみようと思います。


★露光と撮影枚数を変えた場合の測定ごっこ
天リフ超会議「ガチ天」でもお話ししたのですが、ノイズ退治を考える際に最も重要なのは「支配的(影響が大きく優先度の高い)なノイズからやっつける」ということだと考えます。カレーライスが食べたくて買い物してる際に「カレールゥ」と「シチュールウ」のどちらを手に取るかという局面では、「隠し味はコーヒーにするか、チョコにするか」を悩んでいる場合ではありませんので(笑)

また、複数の条件を変えられるときに同時に2つ以上のパラメータを変えると、一体どちらが効いたのかが分からなくなります。ちなみに学生時代に海外の標高5000m超級の高山で宇宙線観測していた際の私に与えられた最重要任務は「高山で美味いご飯を炊く」ことだったのですが、「お米の量」「水の量」「火力」「加熱時間」「圧力鍋内の空間形状」など複数のパラメータを一度に変えて「ボス、今日のご飯はおいしいでしょ?」などとやってたときには「対照実験してデータを取れ、バカ者!」とよく怒られてました(汗)。一度に正解に近づこうとすると迷宮入りするという悪いお手本ですね。

今回の検証ごっこの方針は、下記の通りです

①LEDトレース台を用いたフラット光源を題材にする
②使用カメラは手持ちの最良個体を用いる
③使用カメラは充分に冷却(-10℃)する
④ゲインは300で固定する
⑤総露光時間は1秒~4096秒まで変化させる
⑥1コマの露光時間は1秒~32秒まで変化させる
⑦十分な量のダークフレームを用いて固定ノイズは排除する

これは、我ながら身の毛もよだつほど難儀な作業になりますが、誰かが一度はやっておかないといけないでしょう。


★まずは選手を選定する
まずは、テスト本番に用いるカメラの選定のための予選です。
理屈上、コンポジット枚数を増やすほどショットノイズは軽減されていきますが、この特性が崩れすぎている個体はリードノイズ以外の問題を抱えたいわば不良個体だからです。またダークフレームの減算効果が不気味な個体もテストには向いていません。

エントリーしたのは、ASI1600MM-Cool2個体とASI1600MM-Pro1個体の合計3機の選手です。
これらは全く同一のセンサーを用いたカメラで、カタログスペック上はフルウェルもリードノイズもゲイン特性も全く同じです。
ところが、実写してみるとまるで別物の絵が吐き出されてしまうのですね。

予選のテストは、下記の2種目を実施しました。
<種目①>
コンポジット枚数によるノイズ低減効果が理論値に近いかテスト
<種目②>
ダーク減算に用いるダークフレームを増やすと期待通り画質が上がるかテスト

今回はこれが本題ではないので、軽く最終結果だけを発表しましょう。

ででん!
露光とゲインとノイズについての検証ごっこ_f0346040_14450720.jpg
詳しい説明は省きますが、同じ機種とは思えないほど個性豊かであることは分かると思います。

<予選審査結果>
1600MM1号機コンポジット枚数を増やしてもその効きが理論よりも相当に弱く画質が上がりません。またダークフレームの枚数を増やしてもすぐにその効果が切れて報われません。これはクールピクセルが異常に多い個体であることに起因します。あまり望ましくない個体ですので予選落ちですね。

1600MM2号機ダーク減算の効果が早く現れすぎています。これは本来のダークノイズではなくバイアスに含まれる固定ノイズとしてのオフセットノイズが大きいことを示唆します。ASI1600MM系のモノクロカメラは元々カラーカメラであった頃の名残が親知らずのように残っているように見受けられます。その証拠に2号機のような個体だとモノクロカメラなのにベイヤーパターンが明瞭に写ってしまうのですね(笑)。恐らくはデータの転送経路が(カラーカメラであった頃の)G1&G2ピクセルチーム用とR&Bチーム用の2本用意されていて、それぞれ別なオフセット調整ができる設計だと思うのですが、このオフセット調整を出荷前に忘れたかミスったという貴重なエラー個体なのだと思います。非常に特殊な個体なので、これも予選落ち決定です

1600MM-Proは手持ちの最新の個体で、上記2個体が示す不具合が見事に解消されており、非常に素直な特性を持っていることが分かります。
本戦出場選手としては、最適でしょう。

※あぷらなーとがあまりマニュアルとか文献とか先人の方が築き上げた結果を参照しないのは、上記のように目の前のカメラの特性が理論や設計値とかけ離れているケースが多々あるためです。極端に言えばカタログスペック(仕様)自体をあまり信用しない悪い子です。天体望遠鏡で例えるならば、カタログに載っている「分解能」とか「集光力」とかは、参考にしませんよね?これと同じ事だと思ってください。もちろん、自分で試行錯誤する過程自体を楽しむという方針であるのが1番の理由ですが(笑)

ともかく、本戦出場選手はASI1600MM-Proくんに決定です!!


★テスト撮影開始
ノイズ解析を行う際に留意する必要があるのは、解析時に光源ムラや周辺減光をノイズとして誤認してしまう恐れがある点です。

この測定に先立ち、PWM制御のLEDトレース台の発光量を下げるとフリッカーの影響があることを確かめていたため


トレース台はフル発光で用いることにします。
また、クロスセクションやパスレングスの影響などにより、意外なことに望遠鏡やレンズを用いずカメラだけをフラット光源に曝した場合でもかなり強めの周辺減光が出ます。予備実験で、これらの原因推測と、比較的影響が少ないフィルタ配置などについても調べておきました。



これらの考察ごっこから、本実験にはLEDトレース台を光源とし、ASI1600MMPに(適切な距離をとって)NDフィルタを装着して-10℃・ゲイン300・32秒露光でサチらないように調整をしてデータを取ることにしました。

露光とゲインとノイズについての検証ごっこ_f0346040_15234249.jpg
 ※ごめんなさい。これ個体がASI1600MMPではなくMM-Coolです。本戦の風景を撮り忘れました(汗)。

まずはフラットフレーム(解析する対象データ)の取得です。
露出時間については1秒、2秒、4秒、8秒、16秒、32秒の6パターンとし、それぞれの露出時間について総露光時間が4096秒になるまで連写します。例えば1秒露光は4096コマ、2秒露光は2048コマ・・・というように撮影を続けました。

というわけで、約7時間かけて合計8064コマのフラットフレームを取得しました。

次にダークフレームの撮影です。ダーク減算を行わないとホットピクセルをショットノイズやリードノイズとして誤認する恐れがありますが、かと言って中途半端にダークを減算するとダークフレーム中のショットノイズを解析時に拾ってしまう恐れがあります。予備実験で、ASI1600MM-Proの手持ち個体は、下記のように概ねライトフレームの枚数と同等の枚数を用いればダークフレーム減算の悪影響を回避できることを確かめたため、解析対象データと同数のダークフレームを取得しました。
露光とゲインとノイズについての検証ごっこ_f0346040_15543127.jpg
というわけで、ダークフレームも約7時間かけて8064コマを取得しました。

ふうー。ここまでくるともうグッタリです。
楽しい天体撮影ならともかく、ダークやフラットばかりを14時間かけて1万6千コマ以上撮影するなどというのは、まるで罰ゲームです。

でも、ここまでくればもう一息!


★解析ごっこ開始!
フラットやダークそれぞれのコンポジットやダーク減算処理などをステライメージの手作業でやると(組み合わせパターンが膨大故に)ヒューマンエラーでミスしそうです。そこで、目的の作業を全て自動で行うような解析専用コードをMATLABで書いて、一気に解析に回します
露光とゲインとノイズについての検証ごっこ_f0346040_15580750.jpg
さて、長年の謎(調べてないだけで、やった人は沢山いるとは思うけど)とされてきたテーマ
「短時間露光+多数枚コンポジット」VS「長時間露光+少数枚コンポジット」
の定量的な実測データがいよいよ目の前に現れますぞ!!


ででん!!
露光とゲインとノイズについての検証ごっこ_f0346040_16044352.jpg
さて、この表を見て「32秒露光×1コマが1秒露光×1コマよりもノイズが少ないな」と感じる方は、おそらくノイズの話題がお好きな方でしょう。
普通は訳が分からないと思いますので、少し加工してみたいと思います

というのも、実は天体撮影で露出時間を延ばすと、ショットノイズは悪化するんですね。
上記の表の最上部を見ても1秒露光よりも32秒露光の方がノイズが悪化しているのが分かりますので、これは正しい現象です。
では、なぜ「露光をN倍にするとショットノイズが1/√Nに減る」とされているのかと言うと、ここでいう『ノイズ』なるものは「適切に輝度調整した後に鑑賞者が不快に感じる明るさの乱れ」だからです。つまり露光アンダーのコマは画像処理で適正露光の写真に見えるように輝度を上げて仕上げるのですが、この時にノイズも一緒に強調されてしまうことが効いています。統計学的には露光時間をN倍にすると(真の)ショットノイズは√N倍に悪化しますが、画像処理で適正露出に見せる過程ではノイズが1/Nに減ったように見えるため、差し引き1/√Nに改善しているように感じられるというカラクリです。

それぞれの条件で撮影した画像が「適正露出」に見えるように輝度調整した結果をまとめなおすと、下記のようになります。
露光とゲインとノイズについての検証ごっこ_f0346040_16035887.jpg
この表の見方は楽しくて、たとえば、
「1コマの露出時間が同じなら、コンポジット枚数が多いほど高画質」
「総露光時間が同じなら、コンポジット枚数が少ない(1コマ露光時間が長い)ほど高画質」
であることが一目瞭然ですね。

また、応用的な見方としては、下記のように
露光とゲインとノイズについての検証ごっこ_f0346040_16195603.jpg
「1秒露出の総露光時間4096秒は、32秒露光の総露光時間512秒にチョッピリ負ける」
などということが読み取れます。
つまり、1コマの露光時間を32倍にアップさせると、総露光時間を約1/8に減らせちゃうということです

最後に、これをグラフにまとめてみましょう
これが、今回の最終結論となります。

ででん!!
露光とゲインとノイズについての検証ごっこ_f0346040_16240851.jpg
なお、こういう効果を生む原因の1つは、「撮影枚数が増えるとシャッターを切る度にリードノイズが載ってくるから」と説明することが多いのですが、ここでいうノイズはダークノイズの用にONされるものではなくて、あくまでも揺らぎ(測定誤差)の累積です。たとえて言うならば、
「サイコロを1回振って出目の数値がポイント」という勝負をKaijiくんとHanchoくんがやるならば、最大の点差は6-1=5点ですが、「サイコロを8回振って出目の合計をポイントにする」という試合に変えると、最大の点差が6×8-1×8=40点に増えてしまうのと同様です。統計的にはコンポジット枚数をN倍に増やすとリードノイズの累積揺らぎは√N倍に悪化することになるので、これが悪さをしているということになります。

また、この厄介なリードノイズを軽減する方法は「ゲインを上げる」ことです。
リードノイズは、光子をピンポン球に例える際、その個数を測るメスシリンダーの最小目盛りのようなものですが、ピンポン球を巨大化させるのがゲインに相当します。これにより、測定精度が同じであってもより正確にピンポン球の個数を数えることができ、『ノイズ』が減ります。
露光とゲインとノイズについての検証ごっこ_f0346040_16364822.jpg
したがって、短時間露光×多数枚コンポジットを行う際には、ゲインを上げてリードノイズを減らす工夫が有効と考えます。


★ゲインアップで回避できるか?
では、最後に、ゲインを上げることで本当にノイズが減っているのかどうかを実験してみましょう。
分かると思いますが、これはさらに過酷で思い出したくもない程の作業ですので、過程は省略して最終結果だけ(笑)

露光とゲインとノイズについての検証ごっこ_f0346040_16403911.jpg



・・・というわけで
とりあえず長年の課題を1つやっつけました

これらの検証ごっこデータをどう解釈するかは撮影者のみなさんの自由ですし、撮影条件や画像処理の方針や機材の個体差によって結果も変わると思います。
でも「都市伝説」や「神話」レベルよりはチョッピリ客観的なデータが取れたかな?
と自画自賛♪

ふはあ・・・こんな罰ゲームみたいな遊び、もう二度とやらねぇ(笑)

★★★お約束★★★
①解析結果の解釈は、あくまでも個人的な感想です。精度は保証できません。
②各種の用語や説明には方便が多数含まれています。ご容赦ください。
③過程を楽しむのが生きがいですので、専門家の方は歯がゆいでしょうが、どうか「答え」を言わず、暖かく見守ってください。

Commented at 2022-06-12 10:40 x
ブログの持ち主だけに見える非公開コメントです。
Commented by supernova1987a at 2022-06-12 17:56
> uppashipさん
コメントいただきありがとうございます!
この手の検証ごっこは面倒くさいので、実際にやられる方は少ないように感じますが、私は「過程自体」も楽しめる性格なので、道楽として取り組んでいます。なにか参考になることがあれば、非常に嬉しいです♪
名前
URL
削除用パスワード
by supernova1987a | 2022-02-05 16:49 | 解析ごっこ・検証ごっこ | Comments(2)

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


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