デジタル一眼レフのノイズ解析ごっこ①

★冷却CMOSカメラのノイズ解析をしていて・・・
先日来、MATLABを用いた冷却CMOSカメラのノイズ解析遊びを進めていたのですが・・・

ここで、「デジタル一眼のノイズ解析もしてみたいなぁ・・・」と思い立ち、少し解析作業を中断して『浮気』してみることに。
以前のテストでは、

上記の記事のように、D700・D300・D7000・D90・D5000・D40・D3100について調べて見たのですが、今回は対象機種を広げ、
D3・D810A・D810・D610・D300・D7000・D90・D70S・D5000・D3300・D3100の11機種について調べて見ましょうかねぇ。

それも、全機種について、ISO1600・30秒露光時のダークファイル32コマとバイアスファイル32コマについて、その『時間ノイズ』と『空間ノイズ』の傾向を調査するという、ヒマ・・・もとい、壮大なプロジェクトです。

ふはははは。
アマチュア天文界隈広しといえども、さすがにこれだけのボリュームの基礎テストを敢行した猛者は居るまい。


★作業①:センサー仕様調べ
冷却CMOSカメラ用に書いたMATLABの解析コードをデジタル一眼レフ用に書き直すにあたり、まず最初に行うべきは各機種のセンサー仕様の調査です。
冷却CMOSと異なり、ベイヤー構造の型や実ピクセル数(有効ピクセル数とは異なる)は明記されていないことが多いからです。
まず、通常の風景などをRAWで撮影した画像をステライメージにベイヤー構造のまま読み込んで、XYそれぞれのピクセル数を調べます
次に、色々なタイプのベイヤー構造の型を用いて、どの型の時に正常な色を再現するか調べます

その結果、各カメラのセンサー仕様は下記の通りだと判明しました。
結構手間だったのと、今後の自分用メモとして重要なので、まとめておきましょう。
デジタル一眼レフのノイズ解析ごっこ①_f0346040_15294977.jpg
本当は、プログラム上で機種名を選択するとその仕様が自動的にロードされるように書けば良いのですが、先を急ぎたいので、ベタ打ちのコメントブロックを作って、必要に応じてコメントを外す方針で行きます。
ははは、人様にはお見せできねぇな、この汚いコード(笑)
デジタル一眼レフのノイズ解析ごっこ①_f0346040_15390995.jpg
デジタル一眼レフのノイズ解析ごっこ①_f0346040_15391677.jpg
★作業②NEFからFITSへの変換
DELPHIで各種解析ごっこをしていた時から、データの形式はFITSに慣れているので、ニコンのカメラで撮影したNEFファイル(ニコン版RAW形式)は全てステライメージでベイヤー構造のままFITSに変換してから解析に入りました

ちなみに、ステライメージでNEFファイルをFITSファイルに一括変換するウラ技は・・・・
 ①1コマだけNEFファイルを読み込む。
 ②メインメニューから「設定」→「ワークフロー」を実行
 ③ワークフローウインドウで「記録」実行
 ④メインメニューから「階調」→「レベル調整」実行
 ⑤レベル調整ウインドウで何もせずに「記録」実行
これで、RAWデータをベイヤー構造のまま何もいじくらずにFITSファイルに変換するワークフローが組めます。
あとは、対象となる画像を一気に読み込んで、保存先に一括保存するだけです。

これで、以前作った冷却CMOSカメラ解析用のMATLABコードが(ほとんど変更無く)走ります。
ただし、唯一のCCD機であるD70Sだけは、長辺の実ピクセル数がどうにも理解に苦しむ奇数個なので、演算時に少しゴニョゴニョしています。
※ベイヤー構造は、理論的には縦横ともに偶数個であるのが普通なんだけど・・・ねぇ。

★作業③ダークファイルの撮影
今回は、常温(14~16℃)下において、下記の統一データでダークファイルを取得しました
 ○ISO:1600
 ○WB:デイライト
 ○テイスト:ニュートラル(D70Sだけ「普通」)
 ○ADL:弱め
 ○記録bit数:各機種の最大bit数
 ○露光:30秒
 ○ノイズ処理:高感度・長秒時ともにOFF
 ○撮影枚数:100コマ連写

★作業④ダークファイルの解析
実際の解析では、下記の演算をMATLABで行いました。
 ①ダークFITSファイル32コマのロード
 ②全ピクセル情報を32層の三次元配列に格納
 ③各ピクセルについて32コマの平均輝度・輝度中央値・輝度標準偏差を演算
 ④必要に応じて異常ピクセルを弁別する処理
 ⑤G1・G2・R・Bの各チャンネル毎に集計処理
 ⑥「輝度中央値」-「輝度標準偏差」のスキャッタプロット(散布図)描画
 ⑦必要に応じてヒストグラムや時系列折れ線グラフなどを演算
 ⑧ホットピクセル・『酩酊ピクセル』・『双子ピクセル』などの詳細を観察
これはもう、今までのようにDELPHIとEXCELでやってたのでは、何年かかるか分かりません。
とにかくMATLABはコンパイラではなくて、インタプリタであることがお気に入りポイントでして、プログラムコードを走らせてしまった後からでも変数を指定して好きなグラフを描画したり、コマンドライン上からコードを直接打って追加処理や修正演算ができるのがスゴいところです。また、個人的には任意のブロックを「一気にコメント文に変え」たり「一気に実行文にもどし」たりできる点もありがたいですね。また、必要に応じてEXCEL用のテーブルを「いきなりXLSファイルで」書き出したり、行列変数を「表計算ソフト風」に表示させたりできるのも素敵です。


★邪道流・解析結果の見方
あくまで自己流なのですが、今回の解析で得られる「珍妙なグラフ」の見方は、およそ下記の通りです。
デジタル一眼レフのノイズ解析ごっこ①_f0346040_16413693.jpg
ま、所詮はスキャッタプロットなので、ザックリとした傾向をつかみ取ることしかできませんが、実はあぷらなーとは学生時代「スキャッタプロットの解釈遊びが1番好き」だったので、もう少しお付き合いください。ま、乱暴な言い方をすれば、これはカメラの特徴を表した指紋の様なものです。

※イレギュラーな値を弾いて真面目に統計処理して得られる定量的な分析は、後日のお楽しみということで・・・。


では、結果発表いきますよ-
ででん!!

★D5000
デジタル一眼レフのノイズ解析ごっこ①_f0346040_16573673.jpg
ある意味現在の『主力機』。とにかく安い(実売で1万5千円程度)くせに良く写るので4台も保有している大好きなカメラ。
特徴は「変なクセが全く無いこと」。今回は、このD5000を基準として、他のカメラを評価してみます

★D90
デジタル一眼レフのノイズ解析ごっこ①_f0346040_17011728.jpg
正直、D5000と全く見分けがつかない結果。発売時期も近く、センサーのピクセル数やベイヤー構造も全く同じなので、同一のセンサーなのかも知れない。


★D300
デジタル一眼レフのノイズ解析ごっこ①_f0346040_17052149.jpg
かつてのAPS-Cフラッグシップモデルだが、天体の実写ではノイズがやや目立つ機種。解析グラフでは宇宙線ヒットイベントの分布幅が広く、全体的にグラフの右(高輝度)になってもピクセル数・揺らぎの分布変動が少ない。要するに、ダークノイズのヒストグラムがややフラットで、ノイズの大きなピクセルが多いということ。また標準偏差の値や輝度中央値自体が全体的に高めだが、(12bitのD5000と異なり)14bit機(輝度・標準偏差ともに高めに出る)であることを考慮に入れると、評価が難しい


★D3
デジタル一眼レフのノイズ解析ごっこ①_f0346040_17161600.jpg
かつてのフルサイズデジタル一眼のフラッグシップモデル。絶対的なノイズ量としては、D300と傾向が似ているが細かく見ると差異があり、分布の左右真ん中に下に突き出る『こぶ』状の群や、右上にヒョロヒョロと伸びた群、あるいは高輝度エリアでサチったように垂れた群などはD300には見られない構造。まだハッキリとは言えないけれど、輝度がふらつく群の中には、同一色の最近某隣接ピクセルと輝度推移が完全同期している現象が多数見つかった。天文界隈では、微光星が消えたり盛大な偽色が出たり等、あまり評判がよろしくなかった機種なので、なんらかの特殊なノイズ処理がRAW段階でなされているのかもしれない。


★D7000
デジタル一眼レフのノイズ解析ごっこ①_f0346040_17273421.jpg
D5000と並び、4台保有している大好きな機種。ZWOのASI071MCと同じセンサーであることや、星座撮影でも偽色の発生が軽微なため、もしも天文用で中古ニコン機を選ぶなら自信を持ってオススメできる機種。D3で見られた下向きの『こぶ』状の群が上にも突きだした印象。ただし、宇宙線ヒット群の幅は比較的狭いことから比較的低輝度のピクセルが多いことが分かる。14bit機であることを考慮に入れるとD5000と比べて輝度揺らぎの相対量は小さいと言える。


★D610
デジタル一眼レフのノイズ解析ごっこ①_f0346040_17371187.jpg
宇宙線ヒットの分布幅を見ても明らかなように、とにかくバックグラウンドが暗い。またD7000と似たような分布形状に見えながら、その輝度揺らぎの絶対量が圧倒的に小さい。要するに、ホットピクセルを除くと時間ノイズが非常に少ないのが特徴と言える。ある意味、バックグラウンドの「黒さ」「なめらかさ」は特筆すべき結果が得られることが予想される解析結果。まあ、実際は盛大なアンプノイズに悩まされるという弱点はあるのだけれど・・・。


★D3100
デジタル一眼レフのノイズ解析ごっこ①_f0346040_17434951.jpg
リモートコードが使えなかったD40やD3000と異なり、リモートコード端子が実装されたニコン初のエントリーモデル。比較的新しい機種なので期待していたが、宇宙線ヒットの群がやや高輝度側によっていること、輝度標準偏差のピクセル間差異が大きく(分布が太く)、またホットピクセルと思われる高輝度群が『本体から切り離されている』のが特徴。時間ノイズ・空間ノイズともに安定せず、実際の画像処理には悪戦苦闘しそうなことが予想される。


★D3300
デジタル一眼レフのノイズ解析ごっこ①_f0346040_17510157.jpg
先述のD3100の系統なので、似たようなノイズ特性かと思いきや、誰が見てもその異様さが際立つ結果。一見、高輝度部分のヒゲが突出したように見えるが、輝度中央値を読み取れば明らかなように、実は、D7000に見られる『下向きのコブ』から左側の群がバッサリと切り落とされた構造。宇宙線ヒット群の幅が極めて狭いことや、分布が極端に非対称なことから、オフセットでは全く説明できない。


★D70S
デジタル一眼レフのノイズ解析ごっこ①_f0346040_17580564.jpg

今回のテスト機の中で唯一のCCD機。D3300を除くCMOS機が『三角形』あるいは『扇形』の分布だとすると、D70Sは『長方形』。しかも宇宙線ヒットイベントが(その後、詳細に解析してみたが)ほぼ皆無。根本的に何かが異なっていることは明らか。時間ノイズが多いとは思えないが、とにかく空間ノイズが盛大に出ることが予想される。


★D810とD810A
さて、今回のハイライトは、この2機種の比較です。これは興味持たれている方、多いのでは??
では、行きますよ-。

ででん!!
デジタル一眼レフのノイズ解析ごっこ①_f0346040_18064953.jpg
デジタル一眼レフのノイズ解析ごっこ①_f0346040_18070394.jpg
上がD810で下がD810Aです。
<共通特性>
①とにかく、ダークのバックグラウンド(低輝度部)が無茶苦茶に『明るい』!!
②でも、バックグラウンドの揺らぎ量は少ない
③傾向としては、単なるオフセットというよりはD3300に見られるような低輝度部のカットオフに近い。
宇宙線ヒットイベント分布幅が非常に狭い。つまりヒストグラムが鋭い。

<両者の差異>
①D810AにはD810に見られる高輝度エリアに伸びたヒゲが無い。つまりホットピクセルが少ない。
②D810AのRチャンネルにおいては、ホットピクセルがほぼ皆無
③D810AのRチャンネルだけ、輝度揺らぎが異常に少ない

極端な言い方をすれば、特別にノイズの少ないセンサーをセレクトした上で、赤い星雲がノイズ無く滑らかに写るようにチューニングを施した『特別仕様機』というところか・・・・。これはもう、別なカメラと言うしか無いですなぁ。いや、たしかに別モデルなんですが、IRカットフィルタ周りの差異だけではなく、根本的に・・・。

「無印とは違うのだよ、無印とはッ!!」



★というわけで
のべ66億3千万ピクセルのデータを解析して、ピクセル毎にフレーム間の揺らぎ(時間ノイズ)を測定するという無謀なチャレンジ、第一幕、これにて終了。
この他に類を見ない(?)ノイズ解析遊び、いかがでしたか?

この新しいノイズ解析図を見ただけで、機種名を当てられるようになれば、あなたも『ノイズマスター』!!


★★★お約束★★★
①天文クラスタ住人なのに、どうしてキヤノンのデータが出てこないのだ?とご不満の方へ。
あぷらなーとは子供の頃から『敬虔なニコン信者』なので、浮気はしないのですよ。はっはっは。
※これだけノイズ特性がバラエティに富むなら、「ニコンは・・・」とひとくくりにDisる必要もなかろうかと・・・

②自前のMATLABコードによる解析のため、バグが潜んでいる可能性は否定できません。

③各機種のノイズ特性に対するコメントは、あくまでもあぷらなーと個人の『感想』です。

④そもそもノイズって何なの?
 ISOとゲインの関係は?
 ノイズとダイナミックレンジの関係は?
 結局ゲインを上げるとノイズは増えるの?それとも減るの?
 バイアスはどうなのだ。バイアスは?
 冷却CMOSの解析の続報はどうなった?
 実写!実写ではどうなのだ?
 『酩酊ピクセル』って実在するの?
 『双子ピクセル』ってなんなのよ?
 いつになったら画像処理に踏み込むの?
 『時間ノイズ』とランダムノイズは違うのか?
 『空間ノイズ』と固定ノイズは違うのか?

ごめんなさい。
諸般の事情で本業が修羅場っているので、落ち着いたら記事にします。期待せず、のんびりとお待ちください。

⑤あぷらなーとはノイズに関しては『ど素人』です。誤った解釈が散見されたとしても見逃してくださいませ。


★今後の展開に期待を抱くためのチラ見せ
デジタル一眼レフのノイズ解析ごっこ①_f0346040_18383681.jpg
うひゃー、
D70S のホットピクセルって、たった16分間の間に輝度が5倍になっちゃうのかッ!!

とか、
デジタル一眼レフのノイズ解析ごっこ①_f0346040_18395429.jpg
ほう、
D810Aのバイアスノイズって、ピークが『二山』になってるのかッ!!

とか、

デジタル一眼レフのノイズ解析ごっこ①_f0346040_19275093.jpg

エエッ、
D3の揺らぎが大きなピクセルって、なんかみんな時間とともに輝度が増している上に、完全に値が同期してるくない??

とか、

とにかく、まあ、面白い『新発見』がザクザク出るわ出るわで、収集つかないんですよぉ。


Commented by noritos1047 at 2020-03-18 21:50 x
新コロナが流行りですがお元気ですか。
難しいことは分かりませんが、巣ごもり中ですので、あぷらなーとさん推薦のD5000を手に入れて遊んで見ようなんて思ってます。
D810Aは特別なんですねぇ。大事にしようと思いました。
Commented by supernova1987a at 2020-03-19 23:10
> noritos1047さん
D5000、意外と良いですよ。
とにかく安いので気軽に改造に出せますし、液晶がバリアングルなのが重宝します。
もちろんD810Aほど卓越した性能ではないですが、十分実用になると思います。
Commented by 傍観人 at 2020-03-24 12:35 x
ノイズ特性やフィルター特性、アンプノイズは、FFT解析するともっと明瞭に個性が見えてくると思いますが、それを行わないのには何か理由が?
Commented by supernova1987a at 2020-03-25 01:51
> 傍観人さん
コメントありがとうございます。
FFT解析を行っていないのは、ひとえに知識不足が原因です。元理系ではありますが、理系から完全について離れて20年以上になりますし、そもそもFFTを用いた解析の経験自体が全くありません。

そこで(空間的・時間的な)周波数特性などを見る前に、素の状態をじっくりと観察している状態です。また、独自の弁別アプローチがないか探して遊んでいるという側面もあります。なにぶん文系寄りの素人の道楽ですので、理系の方から見られると誤りや歯がゆい点などが多々あるかもしれません。ご容赦くださいませ。
Commented by 傍観人 at 2020-03-25 04:32 x
シカゴ大の天文物理学者で弦理論をやっている エミール・マーティネック教授
https://www.google.com/search?client=firefox-b-d&q=Emil+Martinec
が、何故かデジカメのFFTノイズ解析をやった論文があります。
http://theory.uchicago.edu/~ejm/pix/20d/tests/noise/noise-p4.html
分かりやすくて良く整理されているので、まずは最低限ここから勉強をしてみては如何でしょう?
http://theory.uchicago.edu/~ejm/pix/20d/tests/noise/index.html
Commented by 傍観人 at 2020-03-25 04:49 x
マーティネック教授の原理論の講義は面白いです。
https://www.youtube.com/watch?v=vj_OiRpGnYo
本来はこちらが仕事なんですが、なんでデジカメごときを真面目に解析したのでしょう?
趣味だったのかもしれません。
20年前に、ニコンとソニーのRAWデータはノイズリダクションで改ざんした不正データとFFT解析で示してたんですが、
ニコン党のお兄さんたちは見て見ぬふりをしています。
Commented by 傍観人 at 2020-03-25 05:18 x
間違いを訂正します。
×原理論→〇弦理論
http://theory.uchicago.edu/~ejm/pix/20d/tests/noise/index.html
の読み方ですが、
his article addresses the following topics:
の目次の行をクリックするとそれぞれの詳細な説明があります。
ノイズ特性のグラフの解析因子について参考になると思います。
単にノイズのヒストグラム「だけ」をグラフにしても、得られるものはほとんど無いのです。
Commented by supernova1987a at 2020-03-25 05:52
> 傍観人さん
有用な文献のご紹介、ありがとうございます。
当方の環境が悪いのか、該当のアドレスにうまくアクセスできないので、日を改めて読んでみます。

なお、現在の私の主力カメラがニコンのデジタル一眼ではなくZWOの冷却CMOSカメラになっているのは、NEF画像の不気味さに起因します。ただ、それだと面白くないので、活用が許容できる条件や、弱点を軽減できる処理法を見いだせないか模索して遊んでいます。

近年は「使えない」と言われている機材をあえて活用する変態キャラで記事を書いているので、ご理解いただけると幸いです。
Commented by 傍観人 at 2020-03-25 07:02 x
あぷらなーとさんに、暴いていただきたいのは、「NikonのRawデータのからくり」です。
センサー本来のDRは14、しかるにノイズフロアの2ビットがあるので、オフセットして削除してカメラのDRは12。
が本来のDRですが、DxoのNikonデータでは、14ビットとかあり得ないDRになっている訳です。
私の推測では、カメラ内でオフセット削除してもういちど、12ビットから14ビットに改竄して読み替えているのではないか?と。
ここをデータを検証することによって、客観的な分析をお願いしたい。

一方、一般写真や、難しい処理をしない天体写真では、
メーカーがあらかじめNRをかけてノイズの少ないデータの
ニコンやソニーのカメラは普通の人には喜ばれています。特に動画ですね。
何も科学計測で正しいデータだけが写真ではありませんから、
「お気軽」な撮影で十分という人には最適なのは言うまでもありません。
Commented by supernova1987a at 2020-03-29 14:57
> 傍観人さん
ようやくご紹介いただいた資料を読み事ができました。
量子化に伴う階調の不連続性を回避するために、あえてノイズによる攪拌(ディザリング)を用いることの有用性や、ピクセルサイズが2倍になるとノイズが2倍になるがSN比は2倍に向上すること、ADLを有効にした場合の実効ISOが設定値よりも低めに作用することでサチレーションを回避していること等々、これまで色々と推測してきたことが誤ってはいないようで、安心しました。NEFファイルのおける非可逆性に関しては、機種毎にそのロジックが異なる可能性が高いと考えていますので、該当資料から12年が経過した今、どのように変化してきているのか興味があります。

※なお、本ブログにおけるDRは「フルウェルキャパシティをリードノイズで割り、2の対数をとったもの」と定義していますので、一般的な意味でのDR(階調の広さ・滑らかさ)とは若干意味合いが異なる点、ご了承ください。
Commented by supernova1987a at 2020-03-29 15:29
追記です。 随分昔のことなので忘れていましたが、ニコンD70などの一眼レフのRAWは「長秒時ノイズリダクション」(ダーク減算)がOFFになっていても露出開始から1秒前後取得したダークノイズ情報を強制的にRAWから減算(フィルタリング)してるため、それを回避する目的で、「シャッターを閉じる時にシャッター操作では無く強制的に電源を切ることで、バッファ内に格納されているダークファイルを演算する前に強制データ保存させることができる」
という面白いウラ技が流行ったことがありましたね。最近のカメラではどうなんでしょうねぇ??
興味が尽きません。
Commented by 傍観人 at 2020-03-29 23:47 x
最近、天体写真はFITSデータで記録するようにしてるんですよ。何故かというと、天体の座標からエアマス、被写体の撮影仰角、カメラの増幅ゲインからADUあたりの感度、オフセット、気圧・湿度・大気透明度、光害指標などの気象条件も一緒に記録できるので管理しやすい。撮影仰角とエアマスは、PIのソフトで歪補正の基本データとして使われる。キャノンのカメラで撮影してもダイレクトにFITSで記録してくれる撮像ソフトが少数あるので、それを使うと冷却CCDと同様な扱いが可能ということもある。
キャノンは昔から、オフセットを付けて記録しているので、何の問題も無いが、「ニコンはオフセットは、NRの痕跡と一緒に消してしまっているのでマイナスのノイズの記録は出来ていない」と某カメラメーカーの人はバラシていたが、今は心を入れ替えたのだろうか? あんまりそのようには見えないが、みんなA810aで満足しているからそれでいいのかな?
Commented by supernova1987a at 2020-04-06 06:09
> 傍観人さん
FITSデータは各種パラメータを読み出しやすくて便利ですね。また画像処理自体もNEFファイルを用いるよりも格段に高速なので気に入っています。冷却CMOSばかりを使うようになった要因のひとつにいきなりFITSで記録できる点があります。さて、今回の解析ごっこでは、D3300・D810A・D810の3機種だけオフセットされている事は分かりましたが、これでマイナス側に振れていた輝度が拾えているのかどうかは不明です。
名前
URL
削除用パスワード
by supernova1987a | 2020-03-15 18:47 | Comments(13)

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


by あぷらなーと