Simatest - カメラ/ISPシミュレーター

説明書と参考資料

関連ウェブページ

Simatest:概要– Simatestの簡潔な入門編。入門者におすすめです。

Simatestの使用例– Simatestの活用例を紹介します。シミュレーション結果と実測値を比較します。この長いページよりもずっと読みやすいです。

イメージセンサーノイズ – 測定とモデリング– イメージセンサーのダイナミックレンジとSimatestの生ファイルを使用

カラー/トーンインタラクティブ機能の使用– カラーおよびグレースケールテストチャートのインタラクティブ分析

カラー/トーンおよびeSFR ISOノイズ測定– RAW画像からイメージセンサーノイズを測定する方法について説明します。

ダイナミックレンジ– 一般的な概要と、それを計算する Imatest モジュールへのリンク

写真画像におけるノイズ― 基本的な入門

カラー補正マトリックス(CCM)画像の色を補正するためのマトリックス(通常は3×3)を計算します(多くの場合、RAW画像から計算されます)。

画像情報指標– シャノン情報理論に基づいた、マシンビジョンシステムの性能をより正確に予測する新しい指標

SimatestはImatest 25.1の一部であり、 Imatestパイロットプログラムを通じて利用可能です。

導入

 
Simatest を使い始めたばかりの場合は、Simatest: 概要 をお勧めします。
これは、このページ(手順と参照)よりもコンパクトで読みやすいです。
両ページは重要なコンテンツを共有しているにもかかわらず。

Simatest ― Imatest が2025 年初頭に発表したカメラおよび ISP (画像信号処理) シミュレーターは、レンズの劣化、イメージセンサーのノイズ、ISP パイプラインの影響などを含む完全なカメラシステムをシミュレートし、重要な画像品質要素 (KPI) をすべて予測できます。また、任意の順序で適用できる多数の ISP 処理ブロックを備えています。

 
Simatestは 、カメラシステムと画像処理パイプラインの開発を加速することを目的としています。
そして、
レンズ、イメージセンサー、画像処理がカメラシステムの性能に及ぼす影響。

Simatestへの入力は以下で構成されます。

イメージセンサーノイズは、おそらくカメラの最も重要な物理的特性です。Simatestのイメージセンサーノイズモデルは、 Color/Toneによって分析されたグレースケールダイナミックレンジチャートの生画像の測定に基づいています。 またはEMVA 1288の結果に基づきます。非常に高精度で、低照度を含む幅広いISP設計と環境における画像システム性能を計算できます。性能はセンサーとノイズ信号(電子単位で測定)から算出されるため、放射測定(センサーに入射する正確な光エネルギー)は不要ですが、近い将来オプションとして追加する予定です。これにより、 Simatestの操作が簡素化されます。

画像センサーノイズモデルは、 Simatest概要の末尾にある付録に要約されており、 「画像センサーノイズ - 測定とモデリング」で詳細に説明されています。


設定ウィンドウには多数のISP調整項目がありますが、ここでは(比較的少ない)物理的特性に焦点を当てて説明します。

Simatest ブロック図

Simatestの入力画像には以下が含まれます

Simatestはあらゆる画像データを処理できますが、定量的な結果(MTF、トーンレスポンス、情報容量など)が必要な場合は、テストチャート画像の使用をお勧めします。推奨されるテストチャート画像は以下のとおりです。

Simatest 処理には以下が含まれます

Simatestの結果

Simatestには、生画像測定値またはEMVA 1288の結果に基づいた、高精度なイメージセンサーノイズモデルが含まれています。放射測定計算は不要ですが、カメラの絶対感度を決定する際には役立つ場合があります。将来的には追加される可能性があります。

Simatestは拡張可能です。処理ブロックは、お客様のご要望に応じて必要に応じて追加されます。初期セットのブロックは、主に視覚的に確認でき、測定可能な画像品質に影響を与える操作に重点を置いています。

Simatestは、複数の画像をバッチ処理で処理することができ、バッチ内の画像を自動的に読み込み、処理し、保存します。

Simatest入力ファイル

Simatestへの入力は、 Imatestが読み取り可能で、 「画像ファイル形式と取得デバイス」に記載されている、RAWまたはデモザイク処理済みの画像ファイルであればどれでも構いません。Simatestはあらゆる画像に対応できますが、テストチャート画像が最も有用な定量的結果をもたらします。入力ファイルには主に3つの種類があります。

テストチャートプログラム —カメラシミュレーションに最適なテストチャート画像を最も手軽に入手できるのは、 Imatest Test Chartsプログラムです。以下に、2400×1600ピクセルのEnhanced eSFR ISO 2017チャートを作成するための設定例を示します。

拡張eSFR ISO 2017チャートのテストチャートウィンドウ

Test Charts を使用すると、物理的なチャートの印刷やチャート画像の分析に使用できる SVG (スケーラブル ベクター グラフィックス) またはビットマップ (TIFF または PNG) チャート ファイルを作成できます。パターンドロップダウン メニュー (左上) で選択できる多数のチャート タイプと、多数のオプションが用意されています。連続トーン (正弦波のシーメンス スターなど) を含むチャート パターンは、印刷またはImatest分析用にサイズ調整されたビットマップファイルとして作成する必要があります。Simatestで使用されるチャートは SVG チャートとして作成され、ビットマップ ファイルに変換する必要があります。

以下の情報で作業を開始できるはずです。詳細なドキュメントは「テストチャート」および「SVGテストチャート」のページをご覧ください。また、 Simatestの開発とテストに使用された2400×1600ピクセルのeSFR ISO PNG画像(カラーパッチ付き)をダウンロードすることもできます。

表示または印刷を目的とした画像のほとんどは、ガンマ値2.2(ディスプレイまたはカラースペースのガンマ値)で作成されています。これらの画像をSimatestで使用する場合は、入力ガンマ値を0.45に設定してください。テストチャートの設定の中には、ドロップダウンメニューに隠されているものがあります。設定ドロップダウンメニューで、eSFR LogWedge max = 4000 LW/PHを選択することをお勧めします。

テストチャートを作成する際に、8ビットまたは24ビットのPNGビットマップファイルを直接保存できます。チャートのプレビュー画像(上記参照)のすぐ下にある「PNG(ビットマップ)ファイルを保存」にチェックを入れ、隣接するボックスでPNGの高さ(ピクセル)を選択してください。

設定が完了したら、 「テストチャートを作成」を押して、ファイル(SVGとPNGの両方)を都合の良い場所に保存してください。

Inkscape (優れた無料プログラム)を使えば、 SVGファイルを開いて任意のサイズで印刷したり、ビット深度8または16(24ビットまたは48ビットカラー)のビットマップファイルに変換したりできます。階調応答やダイナミックレンジのチャートを作成する場合は、SVGファイルを16ビットまたは48ビットのPNGまたはTIFF(ビットマップ)ファイルに変換することを強くお勧めします。

Inkscapeのエクスポート設定ウィンドウ

Code VやZemax OpticStudioなどのレンズ設計プログラムでは、現実的なレンズモデルを使用してチャート画像を処理し、劣化(ぼかし、色収差、周辺減光の追加)させることができます。チャート画像は、テストチャートのバックエンドであるImatest Target Generatorを使用して作成できます。これは、SVG チャートをビットマップファイルに変換します。 [確認が必要です: Code V への入力チャートは、ガンマ = 1 (線形ガンマ) である必要があります。これらの画像をSimatestで使用する場合は、入力ガンマ = 1に設定してください。 ]レンズ設計プログラムを使用した場合、アンチエイリアシング (光学ローパス) フィルターをシミュレートする必要がない限り、Simatest (ぼかし) フィルターは必要ありません。

カメラから取得した画像( LibRawまたはReadRawでRGBに変換したRAW画像、または最小限の処理を施した画像)は問題なく動作します。これには、調整が必要な現像システムからの実際の画像も含まれます。これらの画像には既にぼかしやノイズが含まれているため、(ぼかし)フィルターやノイズブロックは不要です。

推奨テストチャート

シミュレーション画像の場合 —右側に表示されているチャートは、 Imatestの36パッチダイナミックレンジテストチャートの特別バージョンで、おなじみの24パッチカラーチェッカーと同様の色が追加されています。これは、実際の測定ではなく、 Simatestのシミュレーションで使用することを目的としています。実際の測定には、 Imatestストアで入手可能な透過型36パッチダイナミックレンジテストチャートを使用してください。

36パッチチャートは、イメージセンサーノイズ(光子伝達曲線)の測定に特に有効です。これらは、 Simatestの概要、 Simatestの例、およびイメージセンサーノイズの測定とモデリングにおけるシミュレーションに使用されました。

光子伝達曲線、MTF、および色測定値は領域サイズに比較的影響を受けにくいため、シミュレーション結果は物理的な測定値とよく相関します。シミュレーション画像と実測画像では画像全体のサイズが異なっていても構いません。特に高解像度画像では、樽型歪み(魚眼レンズによるもの)や周辺光量落ち(ビネット)が問題となる場合があるため、画像がフレーム全体を埋める必要はありません。

こちらのリンクから、48ビットカラー、1901×1600ピクセルの画像をダウンロードできます。

レンズ設計プログラムによって画像が劣化する場合、フレーム全体を埋めるように設計され、イメージセンサーと同じサイズ(ピクセル単位)であるeSFR ISOチャート(拡張版(3:2)または拡張版(16:9))の使用をお勧めします。ほとんどのアプリケーションで使用できる2つのeSFR ISOチャートのSVGファイルが含まれています。これらはInkscapeでビットマップファイルに変換でき、必要に応じてトリミングまたはパディングできます。ガンマ=1で作成されているため、暗く見えることに注意してください。

SimatestのSVGおよびPNGテストチャート画像すべてを含むZIPファイル|拡張eSFR ISO PNG |拡張eSFR ISO PNG

民生用カメラで撮影されたJPEG画像のほとんどは、複雑な階調応答曲線(いわゆる「肩」を持つもの)や非線形かつ不均一なバイラテラルフィルタリングなど、高度な画像処理が施されているため、有用な結果を得ることが難しく、避けるべきです。

ファイルのバッチ処理複数のファイルを選択した場合、保存された設定を使用して、それらのファイルがバッチで読み込まれ、処理され、自動的に保存されます。(ほとんどの出力は表示されませんが、もちろん保存されたファイルを開いて確認することはできます。)ファイルを選択すると、右側に表示されているダイアログボックスが開きます。root_file_name.ext という名前のファイルは、root_file_name – ext -simatest.png として保存されます。

複数の画像を一括処理する前に、設定が正しいことを確認するため、まず1枚の画像のみ処理を実行してください。なお、一括処理は速度最適化されていないため、通常1枚の画像あたり数秒かかるこの処理方法は、大量の画像処理には適していません。

最も簡単な開閉窓

Simatest を実行中

右側に表示されているImatestメインウィンドウの右側にあるユーティリティドロップダウンメニューまたはユーティリティタブでSimatestを押します。分析を実行するには、

「画像ファイルの読み込み」と「Simatest設定」を押す順番は関係ありません。

更新されたSimatestウィンドウを以下に示します。この場合、処理後の画像は、拡大せずに表示すると入力画像と非常によく似ています。しかし、拡大して並べて表示すると、以下に示すように大きく異なって見えることがあります。

処理済み画像を表示するSimatestウィンドウ(入力画像の表示)

設定

Simatest設定ウィンドウでは、解析の設定を行うことができます。処理ブロックを選択し、そのパラメータと操作の順序を調整できます。設定ウィンドウを開くには、 Simatestウィンドウの左上にある「Simatest設定」ボタンを押してください。設定は前回の実行から保存されているため、必ずしも開く必要はありません。設定は画像の読み込み前または読み込み後に行うことができます(ただし、複数の画像をバッチ処理する場合は必ず読み込み前に行ってください)。

設定ウィンドウには、多数の処理ブロックが含まれています。シャープネス、トーンマッピング、バイラテラルフィルタなど、複数の処理方法(アルゴリズム)と関連パラメータを持つブロックは、長方形の枠内に表示されています。一方、露出やゲインなど、関連パラメータが最大でも1つしかないブロックは、枠内に表示されません。設定ウィンドウにおけるこれらのブロックの表示順序は、選択する処理の順序とは関係ありません。

Simatestの設定は、 1.入力処理と劣化、2.劣化(ノイズ、ぼやけ) 、3.色調調整、4.シャープネス/ノイズ低減、 5.画像ファイル保存設定の5つの領域に分かれています。一部のカテゴリは重複しており、たとえば、cos 4レンズシェーディングは周辺光量落ちを追加および補正するため、劣化ではなく調整に分類されています。

Simatest設定ウィンドウ

右上にある「画像信号処理(ISP)ブロック」ボックスには、一連の操作が記述されています。空白行は、エントリの挿入、配置、削除を容易にするためのものであり、設定がメインウィンドウに転送される際や処理される際には無視されます(表示されません)。

画像処理ブロックの選択と順序付け
  1. 画像処理パイプラインに含めるブロックを選択してください。
  2. 必要に応じて、スライダー、ポップアップメニュー、編集ボックスなどのパラメーターを調整してください。対応する「設定」ウィンドウは、背景が赤の白地に変わり、設定が「ISPブロック」ボックスにコピーされるか、「設定」を再度クリックしてキャンセルされるまで、その状態が維持されます。
  3. 各ブロックの横にある「設定」ポップアップメニューボタン(行番号(1~25)のリストが表示されます)を使用して、右側の「画像処理(ISP)ブロック」リストボックスに設定を入力します。
  4. 設定値は、値を変更して別の行に入力することで再利用できることに注意してください。
  5. セットボックスの色は、ブロックの状態を示します。
    緑色の背景に白色で表示されている場合は、そのブロックが画像処理ブロックのリストボックスに含まれていることを示します。
    赤い背景に白の文字は、ブロックが調整済みだが、(まだ)選択されていないことを示します。
    選択せずにボックスを白黒にリセットするには、 Set を押してから (行番号の代わりに) Set を押します。
  6. 画像処理(ISP)ブロック一覧ボックスには、多くの空白行が含まれています。これらは、処理ブロックの追加や編集を容易にするためのものです。計算時にはこれらの空白行は無視されます。処理ブロックの順序は、ボックスの下にある「挿入」、 「削除」 、「上に移動」、「下に移動」 、 「クリア」 、「すべてクリア」 、 「有効化」、「無効化(コメントアウト)」ボタンを使用して簡単に編集できます。
    現在の行の前に空行を挿入し、残りの行を1行下に移動します。
    削除現在の行を削除し、次の行を1つ上に移動します。
    上に移動現在の行を上に移動させ、前の行と位置を入れ替えます。
    下へ移動現在の行を下へ移動し、次の行と位置を入れ替えます。
    現在の行をクリアします。行を移動しないでください。
    すべてクリア すべての行をクリア(空にする)、つまりリセットします。誤って押してしまった場合は、キャンセルを押してください。
    有効にするには、存在する場合は「%」コメント記号を削除してください。
    無効化(コメントアウト)現在の行を「%」で始まるコメントにすることで無効化します。
  7. OKを押すと設定が保存され、設定ウィンドウが閉じ、 Simatestのメイン画面に戻ります。 ウィンドウ。選択した画像処理ブロック(空白行と無効行は削除済み)がSimatestウィンドウに表示されます。設定ウィンドウの右下にある「自動更新」がオンになっている場合、計算結果が更新され、手順が1つ減ります(ボタンを押す回数が1つ減ります)。設定を変更したがコピーしなかった場合は、警告が表示されます。

概要:設定は2つのステップで行います。
(1)パラメータを調整し、
(2)[設定]ドロップダウンを使用して、適切な行に移動します。
画像処理ブロックボックス。必要に応じて編集できます。

ステップ(2)を忘れやすいので、対応するパラメータが調整されたがまだ移動されていない場合は、設定ドロップダウンが赤色の背景の白色に変更されます。

画像処理ブロック

前述のとおり、計算を更新すると、選択した順序で画像処理ブロックが適用されます。入力画像ソースによっては、 Simatestに画像を入力する前に、劣化または強調処理の一部が実行されている場合があります。たとえば、一般消費者向けカメラで撮影したJPEG画像には、通常、非線形かつ不均一なバイラテラルフィルタが適用されています( Simatestでの使用は推奨しません)。カメラで取得した画像には、ノイズとフィルタリング(ぼかし)が既に暗黙的に適用されています(つまり、ノイズとぼかしは画像に既に存在するため、追加する必要はありません)。

以下は、2025年1月時点で利用可能な処理関数の一覧です。ほとんどは、MATLABファイル交換から入手できる標準のMatlab関数、またはカスタムImatestコードです。注記:(L)は線形画像にのみ推奨されます。

処理ブロック 目次
入力ガンマ入力画像のガンマ値を入力してください
露出、利益露出とゲインの乗数を設定します。露出指数(ISO感度)をシミュレートします。
モザイク/デモサ画像を(再)モザイク処理(RGB → ベイヤーRAWをシミュレート)またはデモザイク処理します。
RGBバランス個々のRGBチャンネルのゲインを設定します
霧/フレア/ベール状のまぶしさまた、ブラックレベルオフセット除去にも使用できます。
モノクロRGB画像をモノクロ画像に変換する。
AWB自動ホワイトバランス
線形化画像を線形化する
ガンマガンマ(乗数または目標値)を変更する
Cos 4レンズシェーディングcos 4レンズの周辺光量落ち(「ビネット」)を適用または補正する
反転画像を反転させる(正 ↔ 負)
ノイズガウス分布 ― 単純なノイズまたはセンサーノイズ(暗電流+光子ショットノイズ)のいずれか
フィルター画像をフィルタリングする(ガウスフィルター、モーションブラー、ミスフォーカス、エアリーディスク)
放射状幾何学歪みや横方向の色収差を追加または補正する
CCM色補正マトリックス(事前に計算済み)
トーンマッピング低ダイナミックレンジディスプレイ向けにHDRトーンを調整します。3種類から選択可能。
研ぐ画像を鮮明にする。USMまたは標準
双方向フィルタエッジ保存型ノイズ低減。2種類。
非局所平均フィルタもう一つのエッジ保存型ノイズ除去フィルターSLOW
ファイルの精度を保存8ビット、16ビットなどの精度でファイルを保存します。
ファイルオフセットを保存ファイルオフセット(DN)を保存します。カメラファイルのプロパティを複製する場合に使用します。
ファイル保存飽和度ファイル保存時の飽和度(DN;最大値)


注:右下の列にある(L)は、線形ガンマ(1)が推奨されることを示します。

処理ブロック説明関数:
リンクで説明されています
入力ガンマ処理ブロックではありません。入力ガンマは、処理の各状態における画像ガンマを追跡するために必要です。これは、一部の操作では画像が線形(ガンマ = 1、 (L)で示される)である必要があるため重要です。 入力ガンマが正しく入力されていない場合、ほぼ確実にエラーが発生します。入力ガンマは通常、(リニア)RAW画像の場合は1、交換可能なカラースペース画像(sRGB、Adobe RGBなど)の場合は0.45~0.5程度です。「ブラックボックス」画像の場合、ガンマはカラー/トーンで測定できます。 ガンマ、音色応答曲線、および関連概念
初期処理と調整

暴露

ゲイン = 1/露出

ゲイン(スライダーで設定)

露出/ゲイン乗数(良好な結果を得るにはガンマ=1(線形)が必要)

露出(スライダーで設定する乗数。通常は1未満)は、ノイズを追加する前のシミュレーション画像に一般的に適用されます。これは、実際の露出の変化を表します。

ゲイン(ゲイン=1/露出)は、通常、ノイズが加えられた後に適用されます。

実効露出指数(別名「ISO感度」)は、画像振幅に露出(通常は1未満)を乗じ、イメージセンサーノイズを適用し、最後にゲイン(1/露出)を乗じることで調整できます。これは、EIに1/露出(またはゲイン)を乗じることに相当し、信号対雑音比が低下します。

例えば、基本EIが100の場合、ノイズ処理前にExposure = 0.125を適用し、ノイズ処理後に1/Exposure = 8を適用すると、EIが8倍になって800になるのと同等になります。信号の平方根に比例して増加する光子ショットノイズは、非常に暗い領域を除いて支配的になる傾向があるため、SNRの劣化は1/8(0.125)未満になります。

(L)

バイエルモザイク

デモモザイク

Demosaic は、カラーフィルターアレイ (CFA)モザイク処理されたベイヤー RAW 画像 (モノクロ形式) を、MATLAB のdemosaic関数を使用して 3 色 RGB ファイルに変換します。この関数は、定評のあるMalvar-He-Cutlerアルゴリズム ( スタンフォード大学のものとは若干異なるバージョン) を使用しています。デモザイキングは複雑な処理であり、アーティファクトが発生したり、ノイズ パワー スペクトルに影響を与えたりする可能性があります。カメラの RAW ファイルは、 Simatest を実行する前に、 Imatest LibRaw および ReadRawモジュールによってデモザイキングすることもできます。

MATLABのデモザイキング機能には、色の異なる領域間の境界が急峻な部分で「ジッパー現象」が発生するという欠点が見つかりました。現時点では、適切な代替手段は見つかっていません(2025年4月現在)。

ベイヤーモザイク(デモザイクの逆)は、3色RGB画像をモノクロのモザイク処理された擬似RAW画像に変換します。これは、画像にノイズを追加したり、 Simatestの入力がシミュレーションされた(RGB)画像である場合にデモザイキングの効果を研究したりするのに役立ちます。シンプルで分かりやすいアルゴリズム(アーティファクトなし)を使用して、RGB画像を4つのベイヤー配列({RGGB、GRBG、GBRG、またはBGGR})のいずれかに変換します。

デモモザイク

Imatestの生処理

IPOL参照

スタンフォード大学参考資料

RGBバランス
(カメラの物理的特性)

生画像に見られるRGBバランスの不均衡(通常、緑チャンネルが赤または青チャンネルよりも大きい)を補正または加算します。R、G、Bはそれぞれ別のボックスに入力できます。値は「カラー/トーン」で確認できます。不均衡を加算するには乗算(ノイズを追加する前に行うのが適切)、補正するには除算(パイプラインの後半で行うのが適切)を使用します。

(L)

霧(フレアまたはベール状のまぶしさ)
(カメラの物理的特性)

画像に霧をかける:フレア光を追加したり、グレアをベールで覆ったりするのと同等の効果です。画像に定数(霧)を加算または減算します。
画像出力= 霧 + ( 1-霧)*画像入力霧は通常、0.3未満の小さな割合です。

霧の負の値は、存在する場合、黒レベルオフセットを除去するために使用できます。
モノクロカラー画像( m × n × 3)をモノクロ画像( m × n )に変換するには、輝度チャネル方程式(通常は 0.2125×R + 0.7154×G + 0.0721×B)を使用するか、3 つのチャネルの平均値を使用します。
AWB(オートホワイトバランス)自動ホワイトバランスは、ほとんどのテストチャート画像には適していますが、実際の画像、特に支配的な色を持つ画像には適さない、単純な「グレーワールド」アルゴリズムを使用して実行されます。
線形化(セット) (推奨されるガンマターゲット 1 に相当)画像を線形化します(ガンマエンコーディングを削除します)。画像を線形化し、操作を適用した後、ISP パイプラインの終盤で最終的なエンコーディング ガンマを再適用できます。ガンマ = 1 は、標準シャープニング(シャープニングのページで説明されている 1D シャープニングの 2D バージョン)など、ほとんどの処理ブロックで推奨されます。USM シャープニングには推奨されません。 
ガンマ画像にガンマエンコーディングを適用します。ガンマは、スライダー(上記参照)と、 [ターゲット]および[乗数]を含むポップアップメニューで選択できます。入力と出力がガンマエンコードされている場合(多くの場合、ガンマ≅0.5)でも、多くの操作をガンマ=1で実行する必要がある場合があるため、これは重要です。 [乗数]の場合、
画像出力= 画像入力γ 。ターゲットの場合、ガンマの現在の値はγ_currentです。
画像出力= 画像入力(γ/γ_current) 。
ガンマ、音色応答曲線、および関連概念

追加、cos 4レンズのシェーディングを修正

レンズの「周辺光量落ち」とも呼ばれます(ガンマ値=1(線形)を推奨)。

標準的なcos 4の角度方程式を使用して、周辺光量落ち(ビネット)を追加または補正します。レンズの焦点距離/センサーの対角距離はスライダーを使用して入力する必要があります。ノイズが追加される前のISPパイプラインの初期段階でシミュレーションされた画像に適しています。実際のカメラ画像には既に周辺光量落ちが存在します。

レンズの陰影は、ガンマがまだ1の段階で、パイプラインの後半で補正できます。

(L)
反転(セット)画像を反転、つまりネガティブ画像に変換します。使用頻度は低いです。線形画像(ガンマ値=1(線形)を推奨)に対して実行するのが最適です。
サイズ変更画像のサイズを、サイズにスケールを乗じて変更します。最近傍法、双線形補間法、双三次補間法が利用可能です。
画像劣化:ぼやけ、ノイズ、形状
多くの場合、カメラで撮影された画像処理前の画像に見られます。処理は一般的に線形です。

ノイズ(ガウス分布)

(イメージセンサーノイズはカメラの物理的特性です)

画像にノイズを追加する。

主な選択肢は以下のとおりです。

ノイズ(ガウス分布) - シンプル:信号に依存しません。ショットノイズと固定パターンノイズは無効になっています。

ノイズ(ガウス) -信号依存のイメージセンサーノイズが適用されます。すべての設定が有効になっています。以下に示すように、カラー/トーンの設定を使用してください。

輝度比が0の場合、RGBチャンネルのノイズは無相関です。輝度比が1の場合、ノイズは相関します。(詳細は現在検討中です。)

ノイズを(ベイヤーモザイク処理後の)生画像に適用する場合、生画像はモノクロであるため、設定は関係ありません。これにより、デモザイク処理された画像における輝度ノイズと色度ノイズの最適な推定値が得られます。

画像センサーのノイズは、シミュレーション画像にとって非常に重要な要素である。

計算方法は以下のとおりで、より詳細な説明はSimatest の例(最良の情報源) およびColor/Tone & eSFR ISO ノイズ測定の項を参照してください。センサーノイズモデルの使用にチェックを入れ、2 つのノイズパラメータ (光子ショットノイズと暗ノイズ) をそれぞれsigma (fraction)とsigma (dark noise)に入力する必要があります。

imnoise : HSV V チャンネルにノイズを追加します。パラメータは sigma [] と Luma noise [] です。
フィルター画像をフィルタリング(ぼかし)します。通常はノイズ処理の前に適用されますが、ノイズ処理後に適用することも可能です(ノイズスペクトルに影響します)。レンズのぼやけ、モーションブラー、ピントずれ、回折をシミュレートできるノイズには4種類あります。
ガウスぼかし(imgaussfilt - 一般的なぼかし)。シグマ(標準偏差)をピクセル単位で入力してください。
モーションブラー(水平方向)、長さをピクセル単位で入力してください。
円盤(焦点ずれ)。半径をピクセル単位で入力してください。

エアリーディスク(回折)。スライダーに最初のヌルaをピクセル単位で入力します。

a = 1.22 λ F# / p は、波長λ (緑色の場合、約 0.530 μm)とピクセル ピッチpに対して成り立ちます。λとp は、通常マイクロメートル (μm) などの単位が一致している必要があります。例えば、f/2.4、緑色チャンネル (0.530 μm) でピクセル ピッチが 2 μm のカメラの場合、 a = 0.776 ピクセルとなります。

このフィルタが適用されると、2Dエアリーカーネル((2*besselj(1,x/a)./(x/a)).^2 から導出される。ここで、aは最初のヌル値)がクリップボードにコピーされます。

imgaussfilt : パラメータ sigma を使用した画像の 2 次元ガウスフィルタリング、 fspecial : 2 次元カーネルを作成、 filter2 、 imfilter

Wikipedia エアリーディスク| シンプルなエアリーパターン

放射状幾何学(複数のモデルのいずれかを使用して)光学歪みや横色収差を追加または補正します。

[注:現時点では、これは設定ウィンドウのブロックではなく、メインのSimatestウィンドウ内の独立したImatestモジュールです。処理された画像が開き、歪みを加えたり、歪みを補正したりできます。これは、 Radial Geometryモジュールをほとんど変更せずに使用できるようにするための応急処置です。] 将来的には、その一部 (おそらく横方向の色収差) をSimatestに統合する予定です。

放射状幾何学
トーン強調:色を補正するか、次の目的で使用される 3 つのトーンマッピングアルゴリズムのいずれかを適用します。
ハイダイナミックレンジ(HDR)画像を表示すると、色調応答が非線形かつ不均一になる場合があります。

カラー補正マトリックス(CCM)

2025年1月現在、Simatestに十分に統合されていません。CCMはSimatestを実行する前に計算する必要があります。

カラー補正マトリックス(CCM)を適用します。CCMは、カラー/トーンで計算して保存できます。CCMを適用する段階(通常はISPパイプラインの終盤)で、 Simatestで処理された画像を使用します。CCMチェックボックスの右側にある「CCMを設定」ボタンをクリックすると、マトリックスを設定できるウィンドウが開きます(右側に表示。サムネイルをクリックするとフルサイズで表示されます)。このウィンドウでは、ファイルから読み込むかクリップボードから貼り付け、オプション(線形化など)を選択できます。

カラー補正マトリックスは、カラー/トーンで計算されるCCMについて説明します。

2025年1月現在、 Simatestへの統合は十分ではありません。カラーチャートの領域選択時にColor/Toneを実行する必要があるため、完全な統合は困難です。

トーンマッピングブロックは3つあることに注意してください。目的は同じですが、アルゴリズムが異なります。
トーンマッピングダイナミックレンジが限られたディスプレイで表示するために、高ダイナミックレンジ(HDR)画像をレンダリングします。トーンマッピングは、ダイナミックレンジが限られたディスプレイ上で高ダイナミックレンジ画像の見た目を近似するために使用される技術です。非均一かつ非線形トーンマップ:表示用に高ダイナミックレンジ画像をレンダリングします
ローカルトーンマッピングラプラシアンフィルタリングを使用したHDR画像用の代替トーンマッピングアルゴリズム。異なる調整セットを持ち、異なる結果(より彩度の高い画像)を生成します。非均一かつ非線形です。 ローカルトーンマップ
コントラスト限定ヒストグラム均等化CLAHEは、画像全体ではなく、タイルと呼ばれる画像の小さな領域に対して処理を行います。各タイルのコントラストが強調され、出力領域のヒストグラムが「分布」パラメータで指定されたヒストグラムとほぼ一致するようにします。隣接するタイルは、双線形補間を使用して結合され、人為的に生じた境界が除去されます。特に均質な領域では、コントラストを制限することで、画像に存在する可能性のあるノイズの増幅を防ぐことができます。非均一および非線形adapthisteq :コントラスト限定適応型ヒストグラム均等化(CLAHE)
空間強調:シャープ化および/またはノイズ低減。
バイラテラルフィルタの出力は画像の内容に依存し、非常に非線形になる場合がある。
シャープネスUSM(アンシャープマスク) アンシャープマスキング(USM)法を用いて、グレースケールまたはRGB入力画像をシャープにします。エッジ部分で最も効果が顕著に現れます。USMは、元の画像からガウスぼかし関数を減算することで機能します。しきい値が0より大きい場合、低コントラスト領域はシャープにならない可能性があります。詳細 はWikipediaを参照してください。

USMは明らかに線形ではなく、ガンマエンコードされた画像で最も効果を発揮するようです。画像情報メトリクスにいくつかの矛盾が生じました。線形化する必要のないカラースペース画像に直接作用するように設計されています。非線形(MATLABのドキュメントには記載されていないため、意外でした)。

imsharpen :アンシャープマスキング(USM)
研ぐ
標準
シャープニングのページで説明されている 1D シャープニング方法の 2D バージョンを使用して、グレースケールまたは RGB 入力画像をシャープにします。エッジで最も顕著に現れます。元の画像から、半径Rの円形軌跡上に配置された振幅縮小された元の画像の複製を減算することで機能します。USM よりも計算負荷が低い (つまり、高速である) ため、商用カメラで広く使用されています。

線形性(ガンマ=1)を維持するため、線形画像に最適です。SNRiやエッジSNRiなどの 画像情報指標に対するシャープ化の影響をテストする場合に推奨されます。

この操作を実行すると、2Dシャープニングカーネルがクリップボードにコピーされます。標準的なシャープニングはMATLAB関数ではないため、以下のボックスに詳細な説明を記載します。

カスタムImatest機能(L)

USMシャープネスまたは標準シャープネスのどちらか一方を適用できます(両方を適用するのは意味がありません)。

双方向フィルタ1
imbilatfilt (MATLAB)
バイラテラルフィルタリングは、エッジ保存型平滑化のための非反復法として、 1998年にTomasiとManduchiによって提案された。一般消費者向けカメラのJPEG画像で広く用いられている。

MATLAB の imbilatfilt実装にはまだ慣れていない段階です。高品質のコンパクトデジタルカメラをSimatest の例として、パラメータ {0.0025, 0.7, 5} で示します。パラメータ:

  1. 平滑化の度合い
  2. 空間シグマ
  3. 近隣地域の規模。

imbilatfilt (MATLAB)

バイラテラル フィルター 2 bfilt2 (Lanman)動作は良好だが、遅い。パラメータ:
  1. 半幅wは、ガウス型バイラテラルフィルタウィンドウの半分のサイズです。
  2. シグマ(範囲)は空間領域の標準偏差です。
  3. σ(ドメイン)は強度ドメインの標準偏差です

bfilter2 (MathWorksファイル交換より):

非局所平均フィルタもう一つのエッジ保存型ノイズ除去フィルター。動作が遅い。まだ使いこなせていない。パラメータ:
  1. 平滑化の度合い(MABLABのデフォルト値=推定画像ノイズの標準偏差( σ ))
  2. 検索ウィンドウサイズ(MATLABのデフォルト値=21)
  3. 比較ウィンドウサイズ(MATLABのデフォルト値=5)

imnlmfilt (MATLAB)

画像ファイル保存設定:画像がファイルに保存される際に適用されます。
ファイル保存精度設定
  1. 画像を保存する - 入力ファイルの精度
  2. 最大8ビット深度
  3. 16ビット深度
  4. 16ビット、フル振幅、ただし生データを除く。RGBファイルはコンテナのフル振幅(例:ビット深度=16の場合は65535)を持ち、オフセットはありません。推奨。
 
ファイルオフセット(DN)を保存保存ファイルに追加する黒レベルオフセット(ピクセル単位、デジタル数値)。 
ファイルを保存する
飽和度(DN)
保存されたファイルの飽和レベル(最大ピクセルまたはDNレベル)。nビットコンテナ内のmビットデータを表すために使用されます(例: m = 12ビットデータがn = 16ビットファイルに格納されている場合、最大DNは65535で、4095)。 

 

シャープニング(標準;USMではない)は、線形性を維持するように設計されたImatest(MATLABではない)の関数です。

これは、シャープニングのページで説明されている 1D シャープニング手法の 2D バージョンです。これは、 MATLABで実装されている USM が、 imfilter関数は非線形です(実際そうです)。また、計算負荷の高いUSMよりも、一般的なカメラのシャープニング処理に近いと言えます。

シャープ化半径Rと量Aに対して、 k sharp = A /( A +1) と定義します。フィルタカーネルは 2 R +1×2 R +1 行列H (ピクセル単位) であり、(1) 中心から距離rにある各エントリを H( r ) = max(|Rr|,0) に設定し、(2) H = H/∑H を設定し、中心にあるエントリを H(R+1,R+1) = 1 に設定することによって計算されます。

半径=2、量=3(強くシャープ化)のフィルターの場合、5×5カーネルは

-0.0092 -0.0409 -0.0535 -0.0409 -0.0092
-0.0409 -0.0222 0 -0.0222 -0.0409
-0.0535 0 1.0000 0 -0.0535
-0.0409 -0.0222 0 -0.0222 -0.0409
-0.0092 -0.0409 -0.0535 -0.0409 -0.0092

理想的には、少なくとも情報量を計算する際には、標準的なシャープニングは線形(ガンマ=1)画像に適用されるべきですが、 我々がシミュレーションしたカメラのJPEG画像でも同様の現象が見られました。標準的なシャープニングは線形演算です(過度なシャープニングによって画像が飽和しない限り)。

  

イメージセンサーノイズモデル

このセクションでは、上記で説明したSimatest Noiseブロックに入力するためのイメージセンサーノイズの測定方法をまとめます。

詳細については、 「イメージセンサーノイズ – 測定とモデリング」を参照してください。

詳細については、 「Simatestの例」および「色調/eSFR ISOノイズ」を参照してください。

イメージセンサーのノイズは、 生の画像を用いて測定することも、 EMVA 1288の測定値から導き出すこともできます。

画像ファイルの各ピクセルは、デジタル番号DNで構成されます。Simatest は、正規化された信号振幅A = DN / DN maxを使用します。ここで、 DN maxはファイルでサポートされる最大デジタル番号です。DN maxは通常、デモザイク処理された画像では2ビット深度- 1ですが、RAW 画像では一般的に異なり、 2 ADC 精度- 1が一般的ですが、普遍的ではありません。 

生の画像には黒レベルのオフセットがある場合があります。 DNオフ 詳細は以下に記載されています イメージセンサーノイズ- ブラックレベルオフセット。下記のステップ5を参照してください。

ノイズモデルは

 線形センサ用

ここで、暗(読み出し)ノイズ、光子ショットノイズ、および光応答不均一性(PRNU)固定パターンノイズの係数、 k dark 、 k shot 、およびk PRNUは、 Simatestイメージセンサーノイズモデルの主要パラメータであり、 James R. Janesick著「Photon Transfer DN → λ」、SPIE Press、2007年、第5章に基づいており、 「イメージセンサーノイズモデル - 方程式」 で説明されています。

騒音計算の手順

  1. グレースケールテストチャートの画像を取得する。できれば、ダイナミックレンジ測定用に設計された 透過型チャートを使用する。
  2. 画像をRAW(モザイク処理されていない)形式で保存してください。
  3. RAW画像をデモザイク処理せずにColor/Tone Interactiveに読み込みます。(Color Tone Autoも使用できますが、柔軟性は劣ります。)商用RAWファイルの場合は、 Bayer RAW 16ビットリニアプリセットをお勧めします。詳細は「商用RAWファイルとバイナリRAWファイルの読み込み」を参照してください。
  4. デモザイク処理されていない画像はモノクロ形式なので、「標準モノクロまたはベイヤーRAW?」ボックスが表示されます。カメラに適したピクセルカラーマッピング(R1C1(RG/GB)の赤など)を選択してください。(画像に認識可能な色が含まれている場合は、 Rawviewで開いてマッピングを確認できます。)詳細は「ベイヤーRAW画像の処理」を参照してください。
  5. 「カラー/トーン/eSFR ISOノイズ」で詳述されている方法を使用して、オフセット、 DNオフ、および彩度レベルを推定し、「カラー/トーン設定」ウィンドウ(右側に一部を表示)に入力します。 「最適化」をクリックすると、 「ブラックレベルオフセット」で説明されているように、より精度の高い値が得られます。
  6. 以下の結果は、画素サイズ2.2μmの10メガピクセルコンパクトデジタルカメラのRAWファイルから得られたものです。画素レベルに応じたノイズとSN比を示すカラー/トーンプロット10~12が最も参考になります。(これらのプロットはRAW画像に対してのみ有効です。)

2.2μmピクセルのコンパクトカメラにおけるノイズと入力ピクセルレベルの関係

Simatestに入力する数値は、[Sark+shot+FP noise coeffs for Simatest]で始まる下の方の行に表示されています。上記のノイズ設定を参照して、ダークノイズ = 0.000395、ショットノイズ = 0.009938、固定パターンノイズ = 0.006745 と入力してください。

暗ノイズと光子ショットノイズを求める計算の詳細については、「イメージセンサーノイズ - 測定とモデリング」を参照してください。測定結果とモデル化結果の比較は、 Simatestの例。

ダークノイズは実際には、OnSemiアプリケーションノートAND9189/Dで説明されている、信号に依存しない複数のノイズ源の組み合わせです。電子(ジョンソン)ノイズは(4 kT ) 1/2に比例します。

Simatestウィンドウの左側にある「計算」グループ(水色の枠)内の「計算の更新」ボタン、または他のボタンを使用して画像を処理します。以下に、このグループに含まれるコントロールの一覧を示します。

計算グループのコントロール(画像の左側)
計算結果を更新入力画像から始め、リストボックスに表示されている各ブロックを処理します。処理が完了したら、結果を表示します。これは最も一般的な計算です。
入力入力画像の表示を復元します。
更新中に結果を1秒間表示する(チェックボックス)更新計算を実行する際は、各ブロックの実行後に結果を1秒間表示します。計算を段階的に進めることが一般的に推奨されます。
計算手順を順を追って説明します各ブロックごとにボタンを1回押して、計算を手動で進めてください。累積結果が表示されます。
ステップ&シングルブロックの表示計算を手動で進めてください。各ブロックごとにボタンを1回押してください。各ブロックの後に、現在のブロックの結果のみが表示されます(累積結果は表示されません)。

画像の処理が完了すると、出力画像と、その下の薄緑色の「解析と表示」領域が表示されます。画像のすぐ下(左側)にある「入力表示」または「処理済み表示」を押すと、これらの表示が切り替わります。2つの表示は非常に似ているため、違いが分かりやすいように拡大表示した、より興味深い並列表示を示します。

並べて表示

並べて表示すると、入力画像と処理済み画像を並べて、つまり隣り合わせに表示して比較できます。 「入力画像を表示」または「処理済み画像を表示」のすぐ下にある「並べて表示」チェックボックス(画像の下、左側)をクリックしてください。このチェックボックスを初めてオンにすると、2つの画像が全体表示されます。片方をトリミングすると、もう片方も同じようにトリミングされます。これにより、意味のある比較が可能になります。

以下は、36パッチのダイナミックレンジチャート画像に対するSimatestの表示例です(トリミングして並列表示にしたもの。左側が入力画像、右側が処理済み画像)。入力画像はテストチャートから直接出力したものです。処理済み画像には、ぼかし、ノイズ、シャープネス処理が施されています。

Simatestの並列表示。左側が入力画像、右側が処理済み画像。表示用に拡大表示。

結果

処理された画像を使って、いくつかのことが可能です。

さまざまな処理設定を試すことができ、

「処理済み画像の保存」機能を使用すると、設定ウィンドウで選択した精度(一般的には16ビットまたは48ビットが推奨)で処理済み画像をファイルに保存し、 Imatestモジュールに読み込んで解析できます。クリップボードを使用してコピー&ペーストすることもできますが、 imclipboard機能は8ビットのファイル深度しかサポートしていないため、この方法は推奨しません。

カラー/トーンとリチャートの主な結果は、 Simatestの例に示されています。

Bayerの生(モザイク処理済み、モザイク未処理)画像ファイルの保存

「ファイル」 → 「擬似RAW(デモザイキングなし)画像を保存」をクリックすると、合成ベイヤーRAW形式、またはその他の複数の形式で画像を保存できます。出力は標準画像ファイル形式または純粋なバイナリ形式になります。ダイアログボックスが開き、いくつかのオプションが表示されます。ベイヤー(再)モザイクとデモザイキングは、ISP処理ブロックとして利用できることに注意してください。

モザイク処理またはチャンネル選択:なし(通常のカラーファイル出力)、リモザイク(ベイヤー形式)、RCCC(赤-クリア-クリア-クリア):R が明るい、RCCC(赤-クリア-クリア-クリア):R = C/3、モノクロ(Y = 輝度)、モノクロ(平均:均等な重み)、赤、緑、青。リモザイク処理(ベイヤー RAW ファイルの作成)の場合は、リモザイク(ベイヤー形式)を選択します。

RmCnの赤色部分では、 4つのベイヤー構成のうち1つを選択できます。

ガンマ調整機能を使用すると、出力カーブのガンマ値を調整できます。変更しない場合は1のままにしてください。2(または2.2)を使用すると、通常のカラースペースのガンマ値からリニア(ガンマ=1)に変更できます。

ファイル形式の保存では、標準の画像ファイル形式(PNG、JPG(90%品質)、TIF(大)、BMP、バイナリ8ビット、またはバイナリ16ビット)を選択できます。バイナリファイルは、 Generalized Read Rawで読み込むことができます。

グリーンチャンネル強調機能を使用すると、合成RAW画像を実際のRAW画像(通常は緑色が最も強い)に近づけることができます。ブルー/レッドのレベルは複数用意されています。

「保存」を選択すると、保存場所とファイル名を選択できるダイアログボックスが表示されます。デフォルトのファイル名は「root_file_name_png 」(選択した拡張子付き)です。

Simatestウィンドウ下部のコントロール

分析と表示(薄緑色)ボックスは、以下に別々に表示されます。コントロールは、列優先の順序で左から右に並んでいます。 「画像/処理済みを表示」ボタンと「並べて表示」ボタンについては、既に説明済みです。

Simatestウィンドウの下部付近にある設定項目。よく使用される設定項目は太字で表示されています。
処理済み画像を保存する設定ウィンドウの右下にある薄緑色の枠で指定したビット深度で、処理済みのファイルを保存します。よく使用される機能です。
画像統計画像統計モジュールで画像を開くと、断面解析、ヒストグラム解析、フーリエ変換解析など、さまざまな解析を実行できます。
ヘルプオンラインヘルプウィンドウを開きます。
設定も保存する(チェックボックス)処理済みの画像ファイルとともに設定を保存します。
画像ファイル(2)を読み込む比較のために、2つ目の画像ファイル(im_processedに格納)を読み込み、元のファイル(im_inputに格納)と比較します。
Proc img > clipbd処理済みの画像をクリップボードにコピーします。ただし、ビット深度に制限があります。
ズームアウト画像全体を表示する(ズームアウトする)。これは、左右に並べて表示する際にフレーミングの問題が発生した場合に役立ちます。
ズームしてトリミングこれは、後述する薄緑色の「分析と表示」ボックスにある「切り抜き」機能のことで、MTFとSSIMの測定に使用されます。このボタンをクリックすると、切り抜き領域にズームインできます。また、MTFの計算に影響を与えずに、表示専用に画像を拡大するには、通常のクリック&ドラッグ操作を使用することもできます。
処理済み > 入力処理済みの画像を入力領域に移動して、新しい(以前に処理された)画像から解析を開始するようにします。
保存画面画面を表示および/または保存します。画像ビューアを指定する必要があります。
設定を保存する現在の設定を標準のimatest-v2.iniファイルに保存します。設定は、設定ウィンドウから指定したファイル名で保存することもできます。
出口さよなら!

ユーティリティとドロップダウンメニュー

ISPシミュレーターウィンドウ上部のドロップダウンメニューにあるユーティリティのいくつかは、ウィンドウ内のボタンと重複しています(意図的な冗長化)。

ドロップダウンメニューのユーティリティ
落ちる名前説明
ファイル画面の表示および/または保存画面を画像ビューア( IrfanViewを推奨)に表示し、必要に応じて保存します。この機能は複数のインタラクティブモジュールに搭載されています。
画像を保存処理済みの画像を保存します。通常、画像はフル精度で保存されます(ただし、8ビット最大(下記参照)にチェックが入っている場合は除きます)。
擬似RAW/リモザイク画像を保存する画像を擬似RAW(リモザイク処理済み)形式または特殊形式(Bayer、RCCC、特定のチャンネルなど)で保存できます。多くのオプションがあります。合成RAW画像を参照してください。
画像をモノクロとして保存(カラーの場合もある)画像をモノクロ画像として保存してください。
画像をHDRとして保存画像をHDR (ハイダイナミックレンジ)形式で保存する
スワップエンディアン(16ビット、32ビット入力)ピクセル内のバイトの順序を入れ替える(まれにバイトの順序が間違っている場合に役立ちます)
画像ファイルを最大8ビットの精度で保存しますデフォルトではチェックされていません(オフ)。チェックを入れると、画像は8ビット精度で保存されます。(通常はチェックを外しておくべきです。)
画像をHDRとして保存画像をHDR (ハイダイナミックレンジ)形式で保存する
ビューカラーバー(グレースケールまたはカラー)グレースケールまたはカラー:SSIMおよびPSNR表示で使用されます。カラーバーの色はオプションIIで変更できます。
作物画像解析操作(MTF、SSIMなど)を行うための切り抜きを選択できます。解析および表示領域の「切り抜き」ボタンと同じです。
MTF対数軸MTF表示を線形軸と対数軸の間で切り替えます。
分析ほとんどの機能は分析および表示セクションのボタンと重複していますが、いくつか追加されています。
画像統計ヒストグラムや断面プロファイルなどの画像統計情報を表示するには、画像統計モジュールを呼び出してください。
放射状幾何学処理済みの画像を放射状幾何学モジュールに送信すると、光学歪み、横方向の色収差、および/または回転が追加または補正された、さらに処理された画像が返されます。
OCR MatlabのOCR関数を使用した光学文字認識
顔を検出する以下に説明する Matlab CAMShiftルーチンを使用します。
人物を検出する下記に説明するMATLABのdetectPeopleACFルーチンを使用します。顔検出よりも効果は劣ります。
ヘルプ各種ISPシミュレーションブロックの説明が記載されたウェブページを開きます。

分析および表示コントロール(Simatestウィンドウ下部付近の薄緑色のボックス内)

表示は、画像の下にあるボタン、または「分析」ドロップダウンメニューで操作します。入力画像または処理済み画像の視覚的な表示、あるいは計算結果の表示(入力画像と処理済み画像を比較した分析結果)を選択できます。

結果表示概要:画像の下にあるボタンまたは分析ドロップダウンメニューで選択
画像統計画像統計モジュールで画像を開くと、断面解析、ヒストグラム解析、フーリエ変換解析など、さまざまな解析を実行できます。
再チャートチャートの種類に応じて、処理された画像のMTF(SFR)およびその他の種類の解析が行われます。
色調/トーン(インタラクティブ)処理済み画像におけるグレースケールまたはカラーチャートのトーン、ノイズ、またはダイナミックレンジ分析。
MTF処理済み画像/入力画像のMTFを空間周波数の関数として表示します。トリミングの影響を受けやすいです。
MTFnn処理済み画像/入力画像のMTF70-MTF10の極座標プロットを表示します(MTFが低周波数値のnn %である空間周波数)。
MTFnnP処理済み画像/入力画像のMTF70P-MTF10Pの極座標プロットを表示します(MTFがピーク値のnn %となる空間周波数)。
SSIM処理済み画像と入力画像の構造類似性指数を表示します。詳細については、 SSIMモジュールのページで説明しています。PSNRよりも視覚的な差異(劣化)との相関性が高い指標です。
PSNRと差分処理後の画像と入力画像のピーク信号対雑音比と、それらの差を表示します。
OCR MatlabのOCR関数を使用して処理した画像に対する光学文字認識結果
作物計算(SSIM、PSNR、MTF)と表示のために画像をトリミングします。標準のImatest粗トリミングウィンドウと微トリミングウィンドウが開きます。この操作は、MTF曲線(画像に依存する)や平均SSIM計算などの計算に影響します(ただし、詳細なSSIMプロットには影響しません)。トリミングボタンを押すと、トリミングボタンの下にあるズームトリミングボタンが有効になります。トリミングを解除するには、トリミングボタンを押して画像全体を選択します。
顔を検出するMatlabのCAMShiftルーチンを使用した顔検出結果。
人物を検出する以下に説明する、MatlabのdetectPeopleACFルーチンを使用した人物検出結果。顔検出よりも効果が低い。


Simatestウィンドウの下部

画像のすぐ下にある左側の「入力の表示」ボタンは、処理済み画像が選択されている場合は「入力の表示」、入力画像が選択されている場合は「処理済みの表示」を切り替えます。これにより、2つの画像を素早く視覚的に比較できます。ただし、並べて表示する(上記参照)方がさらに便利です。画像を切り替えてもズームレベルは維持されます。 「画像統計」 、 「リチャート」 、 「色調(対話型)」は、処理済み画像を対応する分析モジュールに直接送信します(ファイルの保存は不要です)。この領域にあるその他のボタンのほとんどは、計算結果を表示します。

SSIMは構造類似性指標を表示します。この指標については、 SSIMモジュールのページで詳しく説明されています。主な用途は、ファイル(例えば、品質の異なるJPEGファイル)の保存やデータ伝送による画像圧縮の目に見える影響(つまり、劣化)を測定することです。

MTF (変調伝達関数、空間周波数応答に相当)は、ランダムモジュールでの計算と同様の2次元フーリエ変換を使用して、処理済み画像と入力画像間の伝達関数を計算しますが、注意点が1つあります。有効なMTF結果が必要な場合は、シミュレーションにノイズを追加しないでください。2次元MTFの計算はノイズに非常に敏感だからです。

アンシャープマスキングを施したガウスフィルター画像のMTF

高周波特性の低下はガウスフィルターによって引き起こされます。

Simatest の設定でノイズとフィルタ (ガウス)を削除し、 [計算を更新]を押すと、アンシャープ マスク (USM) のみ (この場合は半径 = 1.5、量 = 2.5) の MTF を確認できます。アンシャープ マスキングは、シャープニングのページで説明されている標準のシャープニングとは異なるスペクトル応答を持ちます。応答は周期的ではなく、量 + 1 の漸近レベルまで上昇し、高いままになります。両方のシャープニング アルゴリズムをSimatestで比較できます。大きな灰色の縁取りのあるこぼれたコインのチャートのこの画像は、比較的ノイズが少なかったです。一部の画像ははるかにノイズが多かったです。

これは、 Simatestを使用して、処理ブロックが外観と測定値の両方に与える影響を調査する方法の良い例です。

USM用MTF(アンシャープマスク:半径=1.5、量=2.5)

光学文字認識(OCR)

Imatest 5.0では、 Tesseract-OCRの実装であるMatlab の OCR 関数を使用して OCR が追加されました。使用するには、

  • 興味のあるテキストを含む画像を読んでください。
  • 必要に応じて画像を処理します。処理内容には、検出にどのような影響を与えるかを確認するための画像劣化(ぼかし、ノイズなど)や、検出精度を向上させるための画像強調(アンシャープマスク、バイラテラルフィルタリングなど)が含まれます。
  • 画像をテキスト領域に合わせて切り抜きます(重要な領域にテキスト以外の特徴が含まれている場合は強く推奨します)。
  • OCRをクリックしてください。

これによりOCRウィンドウが開き、画像の切り抜き部分に対してテキスト認識処理が実行されます。右側のサンプル画像(ノイズ(ガウス)= 0.002、ガウスフィルター2 = 0.7でわずかに劣化させたもの)の結果を以下に示します。この画像をダウンロードして、さまざまな劣化や強化がOCRのパフォーマンスにどのように影響するかを試してみてください。

注意が必要です。MATLABのOCR性能はそれほど優れていません。一見読みやすいテキストでも、特に12ポイント以下のフォントサイズではうまく認識されません。性能は、 gImageReader ( Tesseract-ocrのGUIフロントエンド)やTopOCRなど、無料または低価格のOCRプログラムと同程度です。

サンプル画像:クリックして
ダウンロード可能なフルサイズ版。

左側のサンプル画像は、標準、太字、および負の太字のCalibriフォントで、20~7ポイントの異なるサイズの文字セット(QWERTYUIOPASDFGHJKLZXCVBNM1234567890)で構成されています。これらは自動車のナンバープレートに使用される文字です。このファイル(ここ)はMicrosoft Wordで作成されました。画像の残りの部分は、ウェッジと2つの高コントラストの正方形を含む、拡張eSFR ISOチャートの一部です。これらは、MTF測定値とOCR性能を相関させるために使用できます。

OCRウィンドウ。サンプル画像の軽度に劣化させた切り抜き画像の結果を表示。

OCR設定

文字サブセットの結果は、有効な出力文字を制限する文字サブセットを入力してから[OCR を計算]を押すことで改善できます (文字サブセットが空白の場合はすべての文字が許可されます)。サンプル画像の場合、サブセットはラテン語の大文字と数字 (自動車のナンバープレートなどでよく見られる文字) で構成されています。ただし、改善効果はわずかです。

QWERTYUIOPASDFGHJKLZXCVBNM1234567890

標準的なOCRはナンバープレートの認識にはあまり適していません。Matlabファイル交換サイトには、ナンバープレート検出ルーチンがいくつか公開されています。それらがうまく機能し、ライセンスが許せば、1つか2つ追加するかもしれません。

表示されているテキストがデフォルトです。 「信頼度と単語」を選択すると、単語の信頼度と個々の単語が表示されます。以下に、表示例をいくつか示します。

0.8545 QWERTYUIOPASDFGHJKLZXCVBNM1234567890
0.8361 QWERTYUIOPASDFGHJKLZXCVBNM123456789O
0.9018 18
0.7842 QWERTVU|OPASDF6HJKLZX(VBNM1234567890
0.8339 16
0.7468 QWEKTYUIOPASDFGHJKLZXCVBNM1234567B90
0.8254 14
0.7252 QWERYYUIOPASDFGI-1JKLZX(\/ENM1Z34567E9(!
0.7784 12
0.5777 QWERTYUWDDASDFGHJI(LZXCVBNM113A567E9u)
0.6549 11
0.6276 uwEuHu\onAsur:.r<n<.zxn'aNM:23-4ss7s9u
0.7658メートル

クリップボードにコピーする現在の表示内容をクリップボードにコピーして、テキストエディタやその他のアプリケーションで使用できます。

結果を保存すると、現在の表示内容が保存されます。

設定ドロップダウンメニューで、可変幅フォントまたは固定幅フォントを選択できます。

顔と人物の検出

顔検出と人物検出は、分析ドロップダウンメニューから呼び出すことができます。どちらも現在、Matlabのデフォルト設定を使用しています。(将来的にはオプションウィンドウを追加する可能性があります。)参照

CAMShiftとdetectPeopleACF を使用した顔検出と追跡

顔検出は人物検出よりも多少優れています。以下は、 http://epaperpress.com/portfolio/columbia.htmlから無断で拝借した画像を使用した例です。左側に、Imatest の濡れた著者が写っています。注釈を削除するには、[計算を更新] をクリックしてください (画像をリセットします)。

顔検出の例(左側は若くて濡れていて幸せそうなImatestの著者)
顔認識はほとんどの場合うまく機能しますが、真面目な話…ポールとジョンを見逃すなんてあり得ますか?

リソース — これらのほとんどは、かなりのプログラミング作業を必要とします。

Ansys SPEOSシミュレータはZemaxの出力を使用します。

シノプシス ImSym

スタンフォード大学のISETは、高度なプログラミングスキルを必要とするオープンソースの画像処理関数です。

Infinite ISP ドキュメント– 10xEngineers提供

OpenISP