画像の微分は、ラプラシアン、ソーベル、ロバーツ、プレウィット演算子などのサイズが 2 × 2 または 3 × 3 の小さな畳み込みフィルタを使用して計算できます 。[1]ただし、マスクが大きいほど、微分の近似値が向上します。このようなフィルタの例としては、ガウス微分[2]やガボールフィルタがあります。[3]高周波ノイズを除去する必要がある場合もありますが、このノイズをフィルタに組み込むことで、ガウスカーネルがバンドパスフィルタとして機能するようになります。[4]画像処理におけるガボールフィルタ[5]の使用は、人間の視覚システムの知覚との類似性に起因しています。[6]
ピクセル値は畳み込みとして計算される
ここで、は微分カーネル、は画像領域内のピクセル値、 は畳み込みを実行する演算子です。
ソーベル導関数
ソーベル演算子として知られる微分カーネルは、それぞれ方向と方向に対して次のように定義されます。
ここで は2 次元畳み込み演算を表します。
この演算子は分離可能であり、補間と微分カーネルの積として分解できるため、例えば、は次のように表すことができます。
ファリドとシモンチェリの派生語
FaridとSimoncelli [7] [8]は、補間用と微分用のカーネルのペアを使用することを提案しています(上記のSobelと比較してください)。これらのカーネルは、固定サイズ5 x 5と7 x 7で、フーリエ変換が正しい微分関係に近似するように最適化されています。
Matlabコードでは、いわゆる5タップフィルタは
k = [ 0.030320 0.249724 0.439911 0.249724 0.030320 ]; d = [ 0.104550 0.292315 0.000000 - 0.292315 - 0.104550 ]; d2 = [ 0.232905 0.002668 - 0.471147 0.002668 0.232905 ];
そして7タップフィルターは
k = [ 0.004711 0.069321 0.245410 0.361117 0.245410 0.069321 0.004711 ]; d = [ 0.018708 0.125376 0.193091 0.000000 - 0.193091 - 0.125376 - 0.018708 ]; d2 = [ 0.055336 0.137778 - 0.056554 - 0.273118 - 0.056554 0.137778 0.055336 ];
例として、畳み込みを実行するために、Matlabを使用して次のように1次導関数を計算することができる。
Iu = conv2 ( d , k , im , 'same' ); % 垂直方向の微分 (Y に対して) Iv = conv2 ( k , d , im , 'same' ); % 水平方向の微分 (X に対して)
Farid と Simoncelli は、上記のものよりも精度の高い 1 次導関数係数を導出しています。ただし、後者は 2 次導関数補間と一致するため、1 次導関数と 2 次導関数の両方を求める場合は後者を使用する方が適しています。反対に、1 次導関数のみを求める場合は、最適な 1 次導関数係数を使用する必要があります。詳細については、彼らの論文を参照してください。
ハスト派生語
任意の 3 次スプラインに基づく微分フィルタは、Hast によって発表されました。[9]彼は、3 次または三角スプラインを使用して、1 次および 2 次微分の両方をより正確に計算する方法を示しました。効率的な微分フィルタは、微分が中心ピクセルに対して計算されるように、奇数の長さである必要があります。ただし、どの 3 次フィルタも 4 つのサンプル ポイントにフィットするため、中心はピクセル間になります。これは、サイズが 7 x 7 のフィルタを与える二重フィルタリング アプローチによって解決されます。アイデアは、最初に補間によってフィルタリングしてピクセル間の補間値を取得し、その後、微分フィルタを使用して手順を繰り返すことです。この場合、中心値はピクセルの中心になります。これは、畳み込みの結合法則によって簡単に証明できます。
したがって、補間カーネル と微分カーネル を使用して微分を計算するための畳み込みカーネルは次のようになります。
また、畳み込みは可換であるため、2 つのカーネルの順序は重要ではなく、1 次導関数カーネルだけでなく 2 次導関数カーネルを挿入することもできます。これらのカーネルは、 ベジェ曲面と比較して、任意のスプライン曲面を正方形のピクセル領域にフィットさせることができるという事実から導き出されます。Hast は、このような曲面が分離可能な畳み込みとして実行できることを証明しています。
ここで、はスプライン基底行列であり、は変数およびを含むベクトルであり、例えば、
畳み込みカーネルは次のように設定できます。
中心ピクセルにおける1次微分は次のように計算される。
そして
同様に、2次微分カーネルは
そして
3次スプラインフィルタは中心で評価される ため、
同様に1階微分は
同様に2階微分は
上記の式を使用して、 ベジェ、 エルミート、 B スプラインなどの任意の 3 次フィルターを適用し、画像の微分を計算するために使用できます。
以下のMatlabの例では、 Catmull-Romスプラインを使用して導関数を計算します。
M = [ 1 , - 3 , 3 , - 1 ; - 1 , 4 , - 5 , 2 ; 0 , 1 , 0 , - 1 ; 0 , 0 , 2 , 0 ] * 0.5 ; u = [ 0.125 ; 0.25 ; 0.5 ; 1 ] ; up = [ 0.75 ; 1 ; 1 ; 0 ] ; d = up '* M ; k = u '* M ; Iu = conv2 ( conv ( d , k ), conv ( k , k ), im , 'same' ); % 垂直微分 (Y に対して) Iv = conv2 ( conv ( k , k ), conv ( d , k ), im , 'same' ); % 水平微分 (X に対して)
その他のアプローチ
ステアラブルフィルタは微分計算に使用できます[10]さらに、SavitzkyとGolay [11]は、微分計算に使用できる最小二乗多項式平滑化アプローチを提案しており、Luoら[12]はこのアプローチについてさらに詳しく説明しています。Scharr [13] [14] [15]は、フーリエ領域での誤差を最小化することで微分フィルタを作成する方法を示し、Jähneら[16]は微分フィルタを含むフィルタ設計の原理についてさらに詳しく説明しています。
参考文献
- ^ Pratt, WK, 2007. デジタル画像処理(第4版)John Wiley & Sons, Inc. pp. 465–522
- ^ H. Bouma、A. Vilanova、JO Bescós、BMTH Romeny、FA Gerritsen、「b-スプラインに基づく高速で正確なガウス導関数」、Proceedings of the 1st International Conference on Scale Space and Variational Methods in Computer Vision、Springer-Verlag、ベルリン、ハイデルベルク、2007 年、pp. 406–417。
- ^ P. Moreno、A. Bernardino、J. Santos-Victor、「滑らかな微分フィルタによるシフト記述子の改善」、Pattern Recognition Letters 30 (2009) 18–26。
- ^ JJ Koenderink、AJ van Doorn、Generic Neighborhood Operator、IEEE Trans。パターンアナル。マッハ。知性。 14 (1992) 597–605。
- ^ D. ガボール「コミュニケーション理論」J. Inst. Electr. Eng. 93 (1946) 429–457.
- ^ JG Daugman、「画像分析および圧縮のためのニューラルネットワークによる完全な離散2次元ガボール変換」、IEEE Trans. Acoust. Speech Signal Process. 36 (1988) 1169–1179。
- ^ H. Farid および EP Simoncelli、「離散多次元信号の微分化」、IEEE Trans Image Processing、vol.13(4)、pp. 496--508、2004 年 4 月。
- ^ H. Farid および EP Simoncelli、「最適回転等変方向微分カーネル」、国際会議「画像およびパターンのコンピューター分析」、pp. 207--214、1997 年 9 月。
- ^ A. Hast.、「二重フィルタリングアプローチによる一次および二次導関数のシンプルなフィルタ設計」、Pattern Recognition Letters、第42巻、6月1日号、65~71頁。2014年。
- ^ WT Freeman、EH Adelson、「ステアラブルフィルタの設計と使用」、IEEE Trans. Pattern Anal. Mach. Intell. 13 (1991) 891–906。
- ^ A. Savitzky、MJE Golay、「簡易最小二乗法によるデータの平滑化と微分化」、Anal. Chem. 36 (1964) 1627–1639。
- ^ J. Luo、K. Ying、P. He、J. Bai、「Savitzky–Golay デジタル微分器の特性」、Digit. Signal Process. 15 (2005) 122–136。
- ^ H. Scharr、「透過的な動き推定のための最適な 2 次微分フィルタ ファミリ」、M. Domanski、R. Stasinski、M. Bartkowiak (編)、EUSIPCO 2007。
- ^ Scharr, Hanno、2000、論文(ドイツ語)、デジタル画像処理における最適演算子。
- ^ B. Jähne、H. Scharr、S. Körkel。フィルタ設計の原則。コンピュータビジョンとアプリケーションのハンドブック。Academic Press、1999年。
- ^ B. Jähne、P. Geissler、H. Haussecker (編)、『Handbook of Computer Vision and Applications with CDROM』第 1 版、Morgan Kaufmann Publishers Inc.、サンフランシスコ、カリフォルニア州、米国、1999 年、pp. 125–151 (第 6 章)。
外部リンク
- derived5.m Farid と Simoncelli: 5 タップの 1 次および 2 次離散導関数。
- derived7.m Farid と Simoncelli: 7 タップ 1 次および 2 次離散導関数
- kernel.m Hast: 3次スプライン、Catmull-Rom スプライン、ベジェ スプライン、B スプライン、三角スプラインの 1 次および 2 次離散導関数。
