画像特徴(点、直線、領域)の検出 と識別-1 -...

Preview:

Citation preview

画像特徴(点、直線、領域)の検出と識別-1

呉海元@和歌山大学

2007年4月23日

画質の改善

エッジの検出

画質に影響を与える濃淡情報

諧調性

コントラスト

雑音

諧調性・画像の明暗の調子を諧調という。 トーンともいう

諧調がどのように表れているかを一般的に諧調性という

・諧調性の良し悪しは、

中間調の数 or 濃淡レベル数と、

その中間調がどのように使用されているか

で決まる

・中間調の数が少なくなると、見た目の画質はかなり低下

n

n2濃淡レベル数=

ビットの場合一画素あたり

1画素あたり8ビット(0-255) → 256階調) → 元画像

1画素あたり6ビット (64階調)

1画素あたり5ビット (32階調)

1画素あたり4ビット (16階調)

1画素あたり3ビット (8階調)

1画素あたり2ビット (4階調)

1画素あたり1ビット (2階調)

画像の解像度画像の解像度A=1/2A=1/2元画像;元画像;B=B=1/41/4元画像元画像

C=1/8C=1/8元画像;元画像;D=1/16D=1/16元画像元画像

A

B

D

C

濃度ヒストグラム(Histogram)・濃度ヒストグラム(Histogram)は、画像の濃度値を横

軸に、その濃度値を持つ画素数を縦軸に取ったグラフ

・濃度ヒストグラム(Histogram)を用いれば、画像がど

のような濃度値の画素から構成されているかが分かる

画像の濃度値

画素数

濃淡分布の異なる画像とその濃淡ヒストグラム

コントラスト(Contrast)●コントラスト(Contrast)は画像の明暗の差を表す指数

●同じ階調の画像であるが、明らかに画質は異る

(a)の画像の濃淡レベルは64~191に分布(狭い)

(b)の画像の濃淡レベルは0~255に分布(広い)

画像のコントラスト

画像中の濃淡レベルの最小値をImin、最大値をImaxとすると、画像のコントラストCは次式で定義される

C = (Imax – Imin) / (Imax + Imin)

尚、

コントラスト比=Imax / Imin画像表示装置などの画質の尺度としてコントラスト比が比較的よく使用される

練習課題:前の画像のコントラストCをそれぞれ計算してください

(a)の画像の濃淡レベルは64~191に分布

(b)の画像の濃淡レベルは0~255に分布

濃度変換(Gray scale transformation)

・コントラスト変換関数を用いた濃度変換

・ガンマ補正による濃度変換

・ヒストグラム変換(Histogram Transformation)・隣接する画素との濃度差の強調

コントラスト変換関数を用いた濃度変換

比較的よく用いられるコントラスト変換関数の例

横軸:原画像の濃度値f(x,y)縦軸:変換後の濃度値g(x,y)

線形変換関数線形変換関数処理の内容: 画素値を定数kでかける

Iout = k * Iin Iout:出力画素値Iin: 入力画素値

K=1

K<1

>1

処理結果:k>1:画素をより明るく、

コントラストが高くなる

k<1:画素をより暗く、

コントラストが低くなる

Iout

0 Iin

無変換

最大明るさ変換曲線

k

元画像 k>1

k<1

Iout

0 Iin

無変換

最大明るさ変換曲線

k

Iout

0 Iin

無変換

最大明るさ変換曲線

γ

非線形変換関数

連続的に変化する非線形な変換関数では、グラフの傾きに応じて各濃度値でのコントラストが変化

>1>1:全体的に明るくする;暗い所より明るくするγ=1

γ<1:全体的に暗くする;明るい所割りに明るくする

元画像 γ>1

γ<1

Iout

0 Iin

無変換

最大明るさ変換曲線

γ

左線形κ>1

右非線形γ>1

左線形κ<1

右非線形γ<1

ガンマ補正による濃度変換

ガンマ特性の式

映像機器は、明るさ方向に非線形要素を含んでいる→濃度変換を行う必要がある

γkxy =γをガンマ値と呼ぶ

映像機器のガンマ補正ガンマ値γ1のCCDで撮影した画像をガンマ値γ2CRTで表示する場合: γ=γ1∗γ2がトータルのガンマ値となる

注:最近のCCDビデオカメラのγ値は大体2~2.5

・ガンマ値の大きさにより下記のような特性となる

●γ<1のとき全体的に明るくなり、明るい部分の濃度変化が少なく

なる

●γ>1のとき全体的に暗くなり、暗い部分の濃度変化が少なくなる

●γ=1のとき適正値(入力と出力が比例する)

・ガンマ特性における非線形な関係を線形(γ=1)となるように補正

することがハードのガンマ補正という

ヒストグラム変換(Histogram Transformation)

特定の濃度範囲の画素数が極端に多い画像では、

画像全体での濃度値の変化が分かりにくいため、

コントラストの悪い画像となる

y

h(y)

ヒストグラム(histogram)とは・頻度分布の意味は,各画素値の画素数を表すグラフのこと・画像中の特定の明るさとその明るさの画素が占める面積について考える

● 任意の明るさyの画素が占める面積 h(y)>= 0● すべての明るさ(0から最大値まで)の画素が占める

面積の合計は画像全体の面積と等しい・画像中のある明るさ y 以下の画素値を持つ画素が占める面積Sについて考える

● S はyの関数である.S=S(y)● S は単調増加関数である.If (y2>y1) then S(y2)>= S(y1)● S(最大明るさ)=画像の面積

・ヒストグラムh(y)は,Sの導関数である

各画素値の画素が占める面積,即ちその画素数である

)1()()1(

)1()()()( −−=−−−−

== ysysyy

ysysySdydyh

明るさy以下の画素面積S(y)

ヒストグラムh(y)

濃度変換ヒストグラムの平坦化

全ての濃度値の画素数を同じ値に変更する(濃度レンジの有効利用)

連続的に濃度が変化する,違和感のないコントラスト改善が可能• まず,各濃度レベルにおいて,どのレベルへ何画素分移動(変更)するか決定する

• 次に,ある規則に基づき画素値を移動(変更)する

濃度変換(ヒストグラムの平坦化)

濃度レベル

画素数

濃度レベル

画素数

平均画素数(256)

平均画素数=画像サイズ(全画素数)/濃度階調=(画像の幅×高さ) /256=(256×256)/256=256

濃度変換ヒストグラム平坦化の流れ

変更する画素数の決定

濃度レベル

例:6階調,画像サイズ6×4=24画素,平均画素数=4

0 1 2 3 4 5

ヒストグラム

平均画素数

nmove[i][j]:濃度レベルiから,濃度レベルjへ変更する画素数

hist[i]:濃度レベルiの画素数

①nmove[i][i]=hist[i],その他は全て0

濃度変換ヒストグラム平坦化の流れ

変更する画素数の決定

濃度レベル

例:6階調,画像サイズ6×4=24画素,平均画素数=4

0 1 2 3 4 5

ヒストグラム

平均画素数

nmove[i][j]:濃度レベルiから,濃度レベルjへ変更する画素数

hist[i]:濃度レベルiの画素数

①nmove[i][i]=hist[i],その他は全て0

②nmove[1][0]=1, nmove[1][1]=7

濃度変換ヒストグラム平坦化の流れ

変更する画素数の決定

濃度レベル

例:6階調,画像サイズ6×4=24画素,平均画素数=4

0 1 2 3 4 5

ヒストグラム

平均画素数

nmove[i][j]:濃度レベルiから,濃度レベルjへ変更する画素数

hist[i]:濃度レベルiの画素数

①nmove[i][i]=hist[i],その他は全て0

②nmove[1][0]=1, nmove[1][1]=7

③nmove[1][2]=3, nmove[1][1]=4

濃度変換ヒストグラム平坦化の流れ

変更する画素数の決定

濃度レベル

例:6階調,画像サイズ6×4=24画素,平均画素数=4

0 1 2 3 4 5

ヒストグラム

平均画素数

nmove[i][j]:濃度レベルiから,濃度レベルjへ変更する画素数

hist[i]:濃度レベルiの画素数,処理中変化

①nmove[i][i]=hist[i],その他は全て0

②nmove[1][0]=1, nmove[1][1]=7③nmove[1][2]=3, nmove[1][1]=4

④nmove[2][3]=1, nmove[2][2]=1

濃度変換ヒストグラム平坦化の流れ

変更する画素数の決定

濃度レベル

例:6階調,画像サイズ6×4=24画素,平均画素数=4

0 1 2 3 4 5

ヒストグラム

平均画素数

nmove[i][j]:濃度レベルiから,濃度レベルjへ変更する画素数

hist[i]:濃度レベルiの画素数,処理中変化

①nmove[i][i]=hist[i],その他は全て0

②nmove[1][0]=1, nmove[1][1]=7③nmove[1][2]=3, nmove[1][1]=4④nmove[2][3]=1, nmove[2][2]=1

⑤nmove[4][3]=1, nmove[4][4]=0

濃度変換ヒストグラム平坦化の流れ

変更する画素数の決定

濃度レベル

例:6階調,画像サイズ6×4=24画素,平均画素数=4

0 1 2 3 4 5

ヒストグラム

平均画素数

nmove[i][j]:濃度レベルiから,濃度レベルjへ変更する画素数

hist[i]:濃度レベルiの画素数,処理中変化

①nmove[i][i]=hist[i],その他は全て0

②nmove[1][0]=1, nmove[1][1]=7③nmove[1][2]=3, nmove[1][1]=4④nmove[2][3]=1, nmove[2][2]=1⑤nmove[4][3]=1, nmove[4][4]=0⑥nmove[5][3]=1, nmove[5][5]=8

濃度変換ヒストグラム平坦化の流れ

変更する画素数の決定

濃度レベル

例:6階調,画像サイズ6×4=24画素,平均画素数=4

0 1 2 3 4 5

ヒストグラム

平均画素数

nmove[i][j]:濃度レベルiから,濃度レベルjへ変更する画素数

hist[i]:濃度レベルiの画素数,処理中変化

①nmove[i][i]=hist[i],その他は全て0

②nmove[1][0]=1, nmove[1][1]=7③nmove[1][2]=3, nmove[1][1]=4④nmove[2][3]=1, nmove[2][2]=1⑤nmove[4][3]=1, nmove[4][4]=0⑥nmove[5][3]=1, nmove[5][5]=8⑦nmove[5][4]=4, nmove[5][5]=4

前の例では,濃度レベル5から濃度レベル3へ変更する画素が1つ(nmove[5][3]=1),レベル4へ変更する画素が4つ(nmove[5][4]=4)存在する。

濃度レベル5の画素は,9つ存在する。

どの画素の濃度レベルを3にし,どれをレベル4に変更するのか?

いろんな方法が提案されている。• 確率的に決定

• 周囲の濃度に応じて決定

プログラム例では,濃度の低い方から優先的に割り当てる。つまり,順に画素を走査しながら,最初に見つかったレベル5をレベル3へ変更し,次に見つかったレベル5をレベル4に変更する。

濃度変換(ヒストグラム平坦化の流れ)どの場所の画素レベルをどのレベルに変更するか?

0 100 2000

1000

2000

階調数

頻度

濃度変換ヒストグラムの平坦化

0 100 2000

1000

2000

階調数

頻度

平均的に

ヒストグラムの平坦化・均一化

・濃度値に対する画素の出現率を平坦化・均一化することにより、濃度変化が分かりやすい画像に変換できる

・ヒストグラムの均一化の実際は、

画素数の多い濃度値の範囲で濃度値の間隔を粗くし、画素数の少ない範囲では間隔を細かくする

処理を行う

元画像

線形変換関数を用いて、コントラスト調整した画像

ヒストグラム平坦化

画像1のヒストグラム ヒストグラム平坦化

コントラスト調整

出席チェック2

0 255

画素値

頻度

a b

図1a. 変換前のヒストグラム

0 255

画素値

頻度

a b

ある画像のヒストグラムはある画像のヒストグラムは図図1a1aに示す.に示す.

コントラスト強調処理したコントラスト強調処理した後,画像のヒストグラムは後,画像のヒストグラムは図図1b1bになった.になった.

このコントラスト強調処理このコントラスト強調処理の画素値変換関数を示しの画素値変換関数を示しなさい。なさい。

レポート:平坦化のプログラム

提出のレポートの要求:

サンプルプログラムの中の各行に何の処理をしているか、その説明を入れてください

好きな画像を一枚選んで、入力画像と処理結果の画像を提出してください

提出期限:

3週間以内(講義の時 OR 私の部屋(A612))

空間フィルタと画像畳み込み

f(x+1,y+1)f(x+1,y)f(x+1,y-1)

f(x,y+1)f(x,y)f(x,y-1)

f(x-1,y+1)f(x-1,y)f(x-1,y-1)

w(1,1)w(1,0)w(1,-1)

w(0,1)w(0,0)w(0,1)

w(-1,1)w(-1,0)w(-1,-1)

image

kernel

)1,1()1,1(),1()0,1(...),()0,0(...),1()0,1()1,1()1,1(

++++++++−−+−−−−=

yxfwyxfwyxfwyxfwyxfwR

i

mn

iimnmn fwfwfwfwR ∑

=

=+++=1

2211 ...

注意:すべての注意:すべての空間空間フィルタ内の係数の合計=フィルタ内の係数の合計=11

Low-pass filter

1/91/91/9

1/91/91/9

1/91/91/9

画像平滑化

High-Pass Filter

-1-1-1

-19-1

-1-1-1

画像鮮鋭化

エッジ検出1

画像中に表示された物理の輪郭(エッジ:edge)や線では、一般的に濃淡が急激に変化

エッジや線の検出処理は、画像理解や認識のための前処理として重要

•計算コストが低い

•強い視覚の手がかりを提供できる

•物体の輪郭

•認識できる特徴

•見え隠れ

•照明あるいは表面色の不連続性

Edge Types

Different edge models:

Roof edge Concave roof edge

Ramp edge Step edge Bar edge

屋根 凹形 傾斜 階段 棒

画像の勾配( Image gradient )画像の勾配:

各方向の勾配

勾配(エッジ)の方向:

勾配(エッジ)の大きさ:

画像勾配の離散化

有名なGradient operators

(a): Roberts’ cross operator (b): 3x3 Prewitt operator(c): Sobel operator (d) 4x4 Prewitt operator

Sobel operatorのエッジ検出例

121

00-0

-1-2-1

10-1

20-2

10-1

ノイズの影響( Effects of noise )Consider a single row or column of the image• Plotting intensity as a function of position gives a

signal

Where is the edge? 微分するとノイズを強調される

1D

Where is the edge?

エッジ抽出前、まずフィルタhより平滑化

Look for peaks in

Gaussian

1D

畳み込みの定理より

1D

Laplacian of GaussianConsider

Laplacian of Gaussianoperator

Where is the edge? Zero-crossings of bottom graph

1D

2D エッジ検出フィルタ

is the Laplacianoperator:

Laplacian of Gaussian

Gaussian derivative of Gaussian

ノイズを抑制しながらエッジを検出

2

22

2

21),( σ

σ σπ

yx

eyxh+

−=

Laplacian operatorのエッジ検出例

010

1-41

010

0-10

-14-1

0-10

111

1-81

111

エッジ検出2

様々なオペレータと異なるパラメータより2D空間

フィルタを構成し、エッジを検出

注意:エッジ検出の場合

すべてのフィルタ内の係数の合計=0

Recommended