概要
画像のエッジ(edge)とは、画素値が急峻に変化する点です。画素値の変化の大きさを「勾配(Gradient)」や「エッジの強さ」と言います。
エッジは物体の輪郭を示す場合が多く、物体認識において重要な要素と言えます。エッジの検出は、特定のオブジェクトの抜き出し、2
つの画像間の対応点算出、さらに複雑な画像認識のための前処理などに用いられる基礎的な画像処理の一つです。
考え方
ディジタル画像は、量子化に基づく画素(pixel)を最小単位としており、画素はそれぞれが縦および横方向で表わす一意の座標値を持ちます。座標
(row, col)
の情報は画素値のみです。よってディジタル画像は、画素値を従属変数とする
row および colの関数 f(row, col)
と考えることができます。座標 (row, col)
におけるエッジの強さは、近傍の画素から局所的な画素値の変化を数値で表します。よって、エッジの強さを求めるには、微分を用います。ただし、ディジタル画像は離散的な値をとるので、近傍画素との差分または一階線形の偏微分に基づく勾配を求めるための畳込み演算を用います。
画素値の変化が「急峻である」とは、微分で求めたエッジの強さが変化することを意味します。したがって、二階線形の編微分に基づくオペレータ(Laplacian)
による演算の結果として、ゼロではない値を持つ箇所---
実際はその近傍に存在する値がゼロの点(ゼロクロス点)
--- にエッジがあると言えます。
「勾配を求めること」と「ゼロクロス点を検出すること」を、いずれも「エッジ検出」と言いますが、それぞれの結果は異なります。また、ゼロクロス点は、勾配の値に対する閾値処理と細線化処理によって求める手法が一般的です。
勾配を求める
近傍画素との差分
画像 f(row, col) に対して、row
(水平方向)の座標値を i, col
(鉛直方向)の座標値を j
で表します。このとき、それぞれの方向について、勾配の値を次のように求めます。
水平方向 … f '(row) = f(i
+ 1, j) - f(i, j)
鉛直方向 … f '(col) = f(i, j + 1) - f(i,
j)
このとき、エッジの強さは以下のように計算します。
f '(i, j) = sqrt[{f
'(row)}2 + {f '(col)}2]
(1)
または
f '(i, j) = |f '(row)| + |f '(col)|
また、以下の式でエッジの方向を求めることができます
θ = tan-1(f
'(col)/f '(row)) (2)
フィルタリング
ここでは、フィルタリングに用いるオペレータのみを紹介します。演算については、別途解説をご参照願います。水平方向および鉛直方向のそれぞれの勾配に対して、式(1)によってエッジの強さを、式(2)によってエッジの方向を計算することができます。
Gradient(微分)
Roberts フィルタ [1]
斜め方向の勾配であり、厳密には「Roberts勾配」と呼ぶべきかもしれません。
Prewitt フィルタ [2] --- (プレビィット)
Sobel フィルタ [3] --- (ゾーベル)
ゼロクロスを求める…ラプラシアン および ラプラシアン・フィルタ
座標 f(i, j) における Laplacian f (2)(i,
j)は、次の式で求めることができます。
f (2)(i, j) = 4 *
f(i, j) - {f(i - 1, j) + f(i
+ 1, j) + f(i, j - 1) + f(i, j
+ 1)} (3)
以下は、Laplacian
をフィルタリングで求めるためのオペレータです。
ゼロクロスを求める…アルゴリズム
エッジ検出処理は、近傍画素との画素値の差分に基づくため、雑音に対して極めて脆弱です。よって前処理として画像の最適化(主に平滑処理)は必須です。またゼロクロス点は勾配の局所的な極大値に基づくため、後処理として2値化と細線化を必要とします。近年のエッジ検出は、最適化→微分演算→2値化、細線化
の手順を採る傾向にあります。
画像の最適化に良く用いるのは、ガウシアンフィルタです。Marr
と Hildreth [4]
が、ラプラシアンにガウシアンフィルタを適用したことを皮切りに、Canny [5],
Bergholm [6], Rothwell [7]
のアルゴリズムが採用しています。特に Canny
は、画像の最適化フィルタの一般解を示し、これがガウス関数の一次導関数で近似できることを示しています。ただしガウシアン・フィルタには抽出したエッジのズレを引き起こすといった問題も指摘されています[8]。
閾値処理では、画像全体の勾配が弱い場合を考慮して、閾値の基準として勾配強度を直接指定しないことが望ましいです。多くは、画像の全画素における勾配強度を整列して「弱い勾配から全体の
x % を棄却する」とし、x
を指定して、棄却されなかった勾配の最小値を閾値としています。
ここでは、いくつかのアルゴリズムを紹介します。
Canny
- 最適化…ガウシアンフィルタ → 勾配…Sobel →
細線化…NMS (Non-Maximal Suppression →
2値化…2つの閾値による処理)による
- NMS
とは、勾配強度が局所的な最大を与える方向を検出するための手続きである。NMSによってエッジの候補を求める
- 閾値処理において、一つ目の閾値は強い勾配を残すために設定し、もう一つの閾値は一つ目の閾値に連鎖する弱い勾配を残すために一つ目の閾値に対する割合として設定する
- NMSで候補となった画素のうち、次の条件を満たす画素をエッジとする(この手続きは、Hysterisis
Thresholding と呼ばれる)
- 一つ目の閾値以上の勾配を示す画素
- 上記の処理でエッジとなった画素に連鎖する画素のうち、二つ目の閾値に基づく強さの勾配を示す画素
- 以下の特徴によって、エッジ検出のデファクト・スタンダードであり、多くの研究において性能比較の対象となっている
- ガウシアンフィルタや閾値を適応的に設定することによって、強い雑音に対しても極めて効果的に輪郭を抽出することができる
- 特に、曲線形状のエッジ抽出において効果が大きい
Bergholm
- 最適化…2種類のガウシアンフィルタ →
それぞれの画像で勾配算出 →
それぞれの結果に対して細線化、2値化 →
2つの結果を対応付ける
- まず、エッジのズレを抑えるため、雑音除去効果の弱いガウシアンフィルタで勾配を求める
- 次に、雑音除去効果の強いガウシアンフィルタで勾配を求める
- 雑音除去効果の強いガウシアンフィルタを経て求めた勾配は、エッジのズレが生じているため、これを雑音除去効果の弱いガウシアンフィルタで求めた勾配に対応付けることによって、エッジのズレを抑える
- Cannyに比べて、大まかなパラメータ設定であっても雑音除去効果が大きいとされる
小泉 [9] (拙作です…)
- 最適化…回帰面を適用 → 勾配算出…回帰面を適用 →
2値化 → 細線化…Hildritch [10] の手法
- 実画像の局所領域(例えば3×3平方領域)に対して回帰面を逐次的に適用し、残差を雑音として除去する
- 雑音を除去した画像の局所領域に対して、さらに回帰面を適用し回帰面の勾配を求める
- 閾値処理の後、細線化
- 従来のアルゴリズムに対して、単一のパラメータで動作し、回帰面という一つの概念で最適化と勾配算出を実現する
- 経験的な閾値の目安
- 加法性雑音が認められない画像に対しては、x
= 80または85%
- 雑音除去効果を重視する場合は x = 85~90%
- 直線形状のエッジ抽出においては、極めてズレが少ない
- 10%程度までの加法性雑音に対して、Cannyよりも高精度なエッジ検出を実現する
- エッジの連鎖を考慮しない処理において、テクスチャの影響を受けにくい
(テクスチャの除去を行うという意味ではない。テクスチャの処理結果は点状のエッジとして残存する。)
参照
- [1] L. G. Roberts: "Machine perception of three-dimensional solids", Optical and electro-optical information processing. MIT Press, pp.159--197, 1965.
- [2] J. M. S. Prewitt: "Object enhancement and extraction", Picture Processing and. Psychopictorics, Academic Press, New York, pp.75--149, 1970.
- [3] I. E. Sobel: "Camera Models and Machine Perception," PhD Thesis, Stanford Univ., 1970.
- [4] D. Marr and E. C. Hildreth: "Theory of edge detection," Proc. Royal Society, London, B207: pp187 - 217. 1980.
- [5] J. F. Canny: "A computational approach to edge detection," IEEE Trans. Pattern Analysis and Machine Intelligence, Vol.PAMI-8, No.6, pp.679--698, 1986.
- [6] F. Bergholm: "Edge Focusing," IEEE Trans. Pattern Analysis and Machine Intelligence, Vol. 9, No.6, pp. 726-741. 1987.
- [7] C. A. Rothwell, J.L. Mundy, W. Hoffman and V.-D. Nguyen: "Driving Vision by Topology," Int'l. Symp. Computer Vision, pp.395-400, Coral Gables, Fla., 1995.
- [8] J.Shen, and S.Castan: “An Optimal Linear Operator For Step Edge Detection,” VGIP: Graphical Models and Image Processing, 54(2) pp 112-133, 1992.
- [9] 小泉真也, プリマ・オキ・ディッキ・アルディアンシャー, 伊藤憲三, 堀内隆彦: "回帰面による輝度画像のエッジ抽出法", 画像電子学会誌, Vol.34, No.6, pp.778-785, 2005
- [10] C.J. Hilditch,: "Comparison of thinning algorithms on a parallel processor," Image Vision Comput., vol. 1, no. 3, pp. 115-132, Aug. 1983.
関連リンク
関連記事
更新履歴
2008/08/20: 作成
Back / Studying / Top