しつこいようですが、いまだにコンバージョンファクターの測定です。だんだん何が目的かわからなくなってくる完全に自己満足の世界です。カラーでどうしても疑問が解決しないので、モノクロCMOSカメラのASI290MMを使って、基本に立ち返って検証してみました。
疑問は2つ。
まずはSharpCapのセンサー測定機能で測定してみます。光源はこれまで通りiPadのColor Screenです。測定結果だけ示しますが、ほぼメーカー値と同じ値が出ます。ゲイン0でのコンバージョンファクター(Gain, e/ADU)は3.6程度です。
次は自分で撮影して、その画像を解析します。画像の撮影自身にはSharpCapを使いました。今回はより厳密に、SharpCapで自動測定している様子をビデオに撮って、その時に使われたパラメータ、特に露光時間を全く同じにして測定しました。解析はpythonでの自作コードです。結果を示しますが、ここでは2つの結果を比較したいと思います。まず一つは、ノイズの評価に標準偏差を使ったもの。これはカラーCMOSカメラの場合は、ノイズが大きすぎると結論を出したものです。結果です。
モノクロの場合は標準偏差を使うことで、少しだけずれますがほぼメーカー値およびSharpCapの自動測定と同じ結果を出すことができるようです。Unity gainのズレとして15程度、1.5dBなので、1.18倍くらいの違いなので、まあ許容範囲でしょう。
一方、カラーで正しそうな値を出した平均偏差を使った場合の結果はというと
というように、ノイズが小さく評価されすぎていてメーカー値より大きなコンバージョンファクターとなってしまっています。
前回の測定は何かまだ問題があったかもしれません。再確認のために、モノクロカメラで測定した時と限りなく同様に、自動測定の時の様子をビデオに撮影し、その時のパラメーターを再現することで、より厳密にマニュアルで撮影、解析してみました。
まずは一番素直でモノクロの結果に一番近いはずの、標準偏差でのノイズ評価と、CFA分離です。結果はやはりノイズが大きく出すぎていて、コンバージョンファクターはメーカー値4程度に対して、わずか半分程度と出てしまいます。
次に、CFA分離ですが平均偏差での評価です。3.3程度とだいぶんましになりますが、やはりまだ4とは優位にズレがあります。
次に、あぷらなーとさんが解析してくれたようにdebayerした場合です。ノイズが平均化されてばらつきが少なく出ます。まずは標準偏差を使ってノイズ評価した場合。それでも結果は2.5程度と、まだノイズが大きく出すぎています。
最後に、前回正しいと判断したdebayerして平均偏差をノイズ評価に使った場合です。結果は4.06と、メーカー値の4程度にかなり近い値が「たまたま」出ています。
今回はモノクロで正しい値が出たものと、相当近い方法でより厳密に測定していますが、結果は前回と変わりませんでした。前回もすでに、測り方としては特におかしい方法だったわけではない、ということがわかります。でもやはりこの平均偏差を使うことと、debayerでノイズを小さく見積もることが、恣意的な操作がなされているようで、どうしても正しいと思うことができません。
モノクロの結果だけ見ると、ノイズの評価には標準偏差を使うことで、メーカー値やSharpCapと同様の結果を出すことができるので、標準偏差を使った方が正しそうということがわかり、統計の観点から言ってもその後の解析もしやすそうですし、素直な気がします。debayerで滑らかになったものを評価するような恣意的なことも入り込む余地もないので、このモノクロの結果には特に疑問となるようなことはありません。
それではなぜカラーCMOSカメラの場合は標準偏差を使うとノイズが大きく出すぎたり、debayerしたものの方よりも、RGGBのアレイごとに分割したCFA分離の方のノイズがメーカー値よりも大きな値が出たりしてしまうのでしょうか?SharpCapのSensor Analysisの説明に
ここで少し気づくことがありました。下の写真はカラーのASI294MC ProでADU値が10000程度の時を測定している様子です。
SharpCapでは16bit形式で値を出しているので、実際に記録された14bitに換算する場合は4で割ってやります。横軸は10000程度になることがわかります。
ノイズは4で割って、さらにdebayerした時に15くらい下がることを考えると、RGBともに200後半台なので、結果として50程度になることが予測できます。ノイズは2条分布で評価するので、この50を2乗して2500程度。先ほどの10000をこの2500で割ってやるとコンバージョンファクターになって、10000/2500=4程度となるわけです。でもよく見るとRGBの線の他にもう一本白い線があり、こちらの方がかなり小さいノイズになっています。たぶんこれLなんですが、でもなんで?RGBよりもばらつき具合が小さくなる理由が全くわからないです。
Lの標準偏差で評価した時のノイズが、RGBでdebayerして平均偏差を使った時のノイズと、数学的に等価になるとか証明できたら安心して校舎を使うことができますが、パッと考えてもなかなかイメージできません。あと、Lのノイズが小さすぎることも気になります。
(追記: 一晩寝て考えたら多分謎が解けました。もっと単純な話で、今晩帰ったら検証してみます。)
(さらに追記: ヤッリダメでした。詳しくはコメント欄を。何か根本的におかしなところがあるのか?)
いずれにせよ、SharpCapの自動測定は何かRGBとは違う評価方法を使っているのかと推測できます。
まだまだ先は長いですが、コンバージョンファクターもそろそろ飽きてきました。この状態だとまだASI294MCのダークノイズの評価の準備がまだ整っていない気もしますが、徐々にちらの方に移っていこうと思います。
疑問点
疑問は2つ。
- ノイズの評価に標準偏差を使うとSharpCapに比べて大きく出すぎる。平均偏差だと同じくらいのノイズになるが、正しい方向なのか?
- debayerをするとノイズが平均化され小さく出るが、果たして公平な解析と言えるのか?
モノクロカメラのSharpCapでの自動測定の結果
まずはSharpCapのセンサー測定機能で測定してみます。光源はこれまで通りiPadのColor Screenです。測定結果だけ示しますが、ほぼメーカー値と同じ値が出ます。ゲイン0でのコンバージョンファクター(Gain, e/ADU)は3.6程度です。
モノクロカメラのマニュアル測定と自作コードでの解析の結果
次は自分で撮影して、その画像を解析します。画像の撮影自身にはSharpCapを使いました。今回はより厳密に、SharpCapで自動測定している様子をビデオに撮って、その時に使われたパラメータ、特に露光時間を全く同じにして測定しました。解析はpythonでの自作コードです。結果を示しますが、ここでは2つの結果を比較したいと思います。まず一つは、ノイズの評価に標準偏差を使ったもの。これはカラーCMOSカメラの場合は、ノイズが大きすぎると結論を出したものです。結果です。
モノクロの場合は標準偏差を使うことで、少しだけずれますがほぼメーカー値およびSharpCapの自動測定と同じ結果を出すことができるようです。Unity gainのズレとして15程度、1.5dBなので、1.18倍くらいの違いなので、まあ許容範囲でしょう。
一方、カラーで正しそうな値を出した平均偏差を使った場合の結果はというと
というように、ノイズが小さく評価されすぎていてメーカー値より大きなコンバージョンファクターとなってしまっています。
カラーカメラを再びマニュアルで解析
前回の測定は何かまだ問題があったかもしれません。再確認のために、モノクロカメラで測定した時と限りなく同様に、自動測定の時の様子をビデオに撮影し、その時のパラメーターを再現することで、より厳密にマニュアルで撮影、解析してみました。
まずは一番素直でモノクロの結果に一番近いはずの、標準偏差でのノイズ評価と、CFA分離です。結果はやはりノイズが大きく出すぎていて、コンバージョンファクターはメーカー値4程度に対して、わずか半分程度と出てしまいます。
次に、CFA分離ですが平均偏差での評価です。3.3程度とだいぶんましになりますが、やはりまだ4とは優位にズレがあります。
次に、あぷらなーとさんが解析してくれたようにdebayerした場合です。ノイズが平均化されてばらつきが少なく出ます。まずは標準偏差を使ってノイズ評価した場合。それでも結果は2.5程度と、まだノイズが大きく出すぎています。
最後に、前回正しいと判断したdebayerして平均偏差をノイズ評価に使った場合です。結果は4.06と、メーカー値の4程度にかなり近い値が「たまたま」出ています。
今回はモノクロで正しい値が出たものと、相当近い方法でより厳密に測定していますが、結果は前回と変わりませんでした。前回もすでに、測り方としては特におかしい方法だったわけではない、ということがわかります。でもやはりこの平均偏差を使うことと、debayerでノイズを小さく見積もることが、恣意的な操作がなされているようで、どうしても正しいと思うことができません。
考察
モノクロの結果だけ見ると、ノイズの評価には標準偏差を使うことで、メーカー値やSharpCapと同様の結果を出すことができるので、標準偏差を使った方が正しそうということがわかり、統計の観点から言ってもその後の解析もしやすそうですし、素直な気がします。debayerで滑らかになったものを評価するような恣意的なことも入り込む余地もないので、このモノクロの結果には特に疑問となるようなことはありません。
それではなぜカラーCMOSカメラの場合は標準偏差を使うとノイズが大きく出すぎたり、debayerしたものの方よりも、RGGBのアレイごとに分割したCFA分離の方のノイズがメーカー値よりも大きな値が出たりしてしまうのでしょうか?SharpCapのSensor Analysisの説明に
if you have a colour camera it must be in a RAW mode to perform sensor analysis as the debayer process used to convert RAW images into RGB or MONO images causes sensor analysis to give incorrect results.という記述があることから、やはり解析の際にはdebayerはしていないようにしているようにとれます。
補足
ここで少し気づくことがありました。下の写真はカラーのASI294MC ProでADU値が10000程度の時を測定している様子です。
SharpCapでは16bit形式で値を出しているので、実際に記録された14bitに換算する場合は4で割ってやります。横軸は10000程度になることがわかります。
ノイズは4で割って、さらにdebayerした時に15くらい下がることを考えると、RGBともに200後半台なので、結果として50程度になることが予測できます。ノイズは2条分布で評価するので、この50を2乗して2500程度。先ほどの10000をこの2500で割ってやるとコンバージョンファクターになって、10000/2500=4程度となるわけです。でもよく見るとRGBの線の他にもう一本白い線があり、こちらの方がかなり小さいノイズになっています。たぶんこれLなんですが、でもなんで?RGBよりもばらつき具合が小さくなる理由が全くわからないです。
Lの標準偏差で評価した時のノイズが、RGBでdebayerして平均偏差を使った時のノイズと、数学的に等価になるとか証明できたら安心して校舎を使うことができますが、パッと考えてもなかなかイメージできません。あと、Lのノイズが小さすぎることも気になります。
(追記: 一晩寝て考えたら多分謎が解けました。もっと単純な話で、今晩帰ったら検証してみます。)
(さらに追記: ヤッリダメでした。詳しくはコメント欄を。何か根本的におかしなところがあるのか?)
まとめ
いずれにせよ、SharpCapの自動測定は何かRGBとは違う評価方法を使っているのかと推測できます。
まだまだ先は長いですが、コンバージョンファクターもそろそろ飽きてきました。この状態だとまだASI294MCのダークノイズの評価の準備がまだ整っていない気もしますが、徐々にちらの方に移っていこうと思います。









コメント
コメント一覧 (6)
納得するまで諦めないところさすがです。
コンバージョンファクターとか全く理解できていませんが、L画像が単にdebayer後の各RGB画像の加算平均ならコンポジットと同じでノイズは減る気がしますが。結論が楽しみです。
yamayoさん、嬉しいコメントありがたいです。
追記でも書いたのですが、昨日記事を書いからずっと考えていました。なんでLがノイズレスなのかと。多分ですが答えはyamayo さんが指摘していることと似ていて、CFA分離したあと、各色のフィルターの係数でノーマライズして元の状態に戻し、さらに波長依存性を除くために平均値を合わせてやって、ここが重要なのですが「4枚を全部あわせて」解析すべきなのかと思っています。素子の数が4倍なら、無相関なノイズは2乗和のルートなので2倍になります。信号は4倍なので、結果としてノイズの効きが半分になります。これまでの4枚別で標準偏差で評価した結果を見ても、ノイズ半分でコンバージョンファクター倍なのでピッタリ4くらいになり正しそうです。
今鋭意解析中です。今晩くらいには結果をアップできるかと思います。
うーん、やっぱりダメでした。全部計算して結果が変わらないので改めて考えました。CFAで4つに分かれたものを合わせて計算したのと、画像の中の選択エリアを4倍にしたのは等価で、後者でノイズが半分になることはあり得ないので、多分先に言ったことは間違いです。まだどこか単純なミスをしているのか...もう少し考えてみます。
それに対してカラーカメラの「L」は厄介そうです。仰るとおり、単なるチャンネル増加だと解析対象ピクセル数を4倍にしただけなのですが、実際にはG画素は実在ピクセル数の2倍まで、RとB画素は4倍まで、それぞれディベイヤー処理で補完される(均される)ので、やはり相当にバラつきが減るのではないかと思います。
今は身動き取れませんが、落ち着いたら、解析的な推算と数値シミュレーションの両方を試してみたいです♪
やっぱりdebaterに相当するような何かの処理が入っているのですかね。同じセンサーでカラーとモノクロを持っていれば直接比較ができそうなのですが。ASI290MC買うかなあ?でも流石にこのためだけに買うのもなあというところです。
あぷらなーとさんの解析期待していますが、決して無理をなさらずに、お仕事の方も頑張ってください。
ちょっぴり時間が空いたので、ディベイヤー処理によるノイズ量の変化について「モンテカルロシミュレーション」と「標準偏差の定義式から解析的に求める」の両方をやってみて、両者が一致することを確かめました。
お暇なときにでもご笑覧ください。
https://apranat.exblog.jp/30475983/