9. Umbralización automática (thresholding)

Anuncio
&DStWXOR
7pFQLFDVGHXPEUDOL]DFLyQDXWRPiWLFD
>$XWRPDWLFWKUHVKROGLQJPHWKRGV@
./10'24357698:4;<;=?>92@/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/A
A/CBED<3F698<6-G%HJI7G=?;<6-G8KL:1MNH5OQP1=SRCOT;=?>92UOV:<3F6MWIX3=?;OY/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/[Z
2.1 Media aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Máximos [ \ ]"^_ `"aJbc'de\(fgaJdfh^ikjhlkmn ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Selección iterativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 El método de Otsu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5 Métodos basados en la entropía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6 Conjuntos difusos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7 Error mínimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Z/1oU=pHP1=?6%qh5OQrJs Ot/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/4/u.A
"!# $%!'&#(
*)+-,
.0/%123'465%789-9-:<;2
En Visión Artificial se emplea una gran variedad de métodos de segmentación de
imágenes. El objetivo de la umbralización es la conversión de una imagen con varios niveles de
gris en una imagen monocroma (en blanco y negro) que contenga la información esencial relativa
al número, posición, tamaño y forma de los objetos recogidos en la imagen.
La forma más común de pasar de una imagen en niveles de gris a una imagen monocroma
es seleccionar un umbral. Todos los pixels cuyos niveles de gris estén por debajo se clasificarán
como si fuesen pixels negros (0) y los que estén por encima, blancos (1).
Las técnicas utilizadas para seleccionar este umbral suelen ser de tipo estadístico y pueden
aplicarse a otro tipo de problemas (como subdividir un conjunto dado de valores numéricos en
dos intervalos). Todas las técnicas aquí descritas utilizan el histograma para seleccionar el valor
del umbral.
= > @BA#CDE"FHGJI@BKLCMKLE"KLCNKLEOLDM>HDQPMK"@-RFHEKLE
?
S AK?EKA6TFU>UF(VDRICXWDRDNFU>UA#EYT(RDR"K'>-O'Z#G%W"Z#RYT(DG[FUKLC\TZ
PMK>UZ#EPMFHEYTFHC\TZ#EG[]TZ#PMZ#EPMKA#G_^RDM>UF(VDMO'FU`#CQDMA6TZ#GJI\TFUOLD
"!# $%!'&#(
*)+-,
.0/%1325476%86%9;:<9=?>@6%9;8ACBDE:F5GH?=JI%G>@=?KLEGB476%DE<%47=?>@G
M5NPOQSR'T-UWV;VX7UY[Z]\7Y[UW^'V
Una forma simple de seleccionar el umbral, aunque no muy buena, es calcular la media
_
aritmética de los datos disponibles:
`ba
= ()
Esta selección del umbral equivale a fijar el porcentaje de muestras por debajo del umbral
en un 50% aproximadamente. Aunque pueda parecer excesivamente arbitrario, en determinadas
aplicaciones puede resultar útil. Por ejemplo, en Visión Artificial, este método es práctico cuando
se conoce la proporción de píxeles que deben corresponder a un objeto contenido en una imagen
(en general se fijará un determinado percentil como umbral).
cedgfhikjWl(mikn'lWo#p;qkrjsit"lsdvuwxrypkrytqkrr(zryd%{"jW|
}5~ lWjWl(mipqk|;jsi;dryqklsi;qkr'j€klst ~ |w@hidvi
"!# $%!'&#(
*)+-,
.0/ .21435687:9;<=?>@92ACB'DE-;F=HGCIJB';GC9K8LC68MCNO
El uso del histograma es frecuente a la hora de seleccionar el umbral. Cuando éste es
evidente, su valor corresponde al punto más bajo entre dos picos del histograma. Si el histograma
tiene únicamente dos máximos locales, este método es bastante bueno.
En primer lugar se localiza el máximo PRQ SUT del histograma (el primer pico). A continuación
hemos de encontrar el segundo pico. No obstante, el segundo valor mayor del histograma no nos
vale (puede que sea adyacente al máximo). Para encontrar un valor adecuado para el segundo pico
podemos tener en cuenta la distancia al primero (le damos preferencia a picos que no se
encuentren cerca del máximo):
2
max{(
V
W −X ) Z
Y ( W )}
El umbral que estábamos buscando será el valor correspondiente al mínimo del histograma
que encontremos entre los picos S y [ .
“Two peaks thresholding”
"!# $%!'&#(
*)+-,
.0/ 132-46574'8'8'97:;<9=>4'?6@=>9(AB@<CDE97F-574'?6GIHJKLM
Este método de selección del umbral consiste en estimar inicialmente el valor del umbral
y después ir afinando la estimación realizada en sucesivas pasadas sobre los datos.
Inicialmente, el umbral es simplemente la media aritmética de todos los valores
disponibles. A continuación se calcula la media NPO de todos los valores por debajo de este umbral
y la media NQ de los valores que quedan por encima. La nueva estimación del umbral será igual
a la media de NPO y NQ : R>NPOSNQ T6UWV . El proceso se repite hasta que el umbral estimado no varíe.
Empleando el histograma, la estimación k-ésima del umbral será:
X
∑e
≤
` = acb
Y[Z\Y
⋅ ()
−1
Z\Y
2∑ ()
≤
acb
e −1
+
d ∑e
>
b
2
]^Z_]
⋅ ( )
−1
d ∑e
>
b
Z_]
( )
−1
donde f0g es la estimación inicial del umbral y h es el histograma de los datos. Cuando lleguemos
a una iteración en la cual f#ijf#ilkm habremos encontrado el umbral que buscábamos.
npo'q7o'r'r's7t#uvsxwozy{Bws7|z{
"!# $%!'&#(
*)+-,
-/.0213547698;:<=:><=?@>8;ABDCFEGHIJ
Este método supone que los datos correspondientes a una clase siguen una distribución
normal. Realizando un análisis de varianzas, se puede encontrar un umbral óptimo en cierto
sentido minimizando la razón
σK2
σ L2
donde M N es la varianza total de los datos y OPN es la varianza “entre clases” (la varianza de las
medias de cada clase respecto a la media global).
La varianza global M N y la media total QSR de todos los datos son fáciles de calcular a partir
de los datos de entrada. La varianza entre clases se puede calcular como T UVWQSTXQSUZYN , donde
T es la probabilidad de que un dato quede por debajo del umbral t y U es [\ T . Así mismo:
µ
µ^ − µ_
bdceb
µ0 = ] µ1 =
µ` = a ⋅ ( )
ω0
1 − ω0
≤`
∑
fhgWikjlm#nompnoqsrsl(tu
"!# $%!'&#(
*)+%,
.0/132547698:;8<=;><>:;8<?'@BAC>D?'@E69F78G;HC>
En Teoría de la Información, dados I posibles símbolos JK que ocurren con probabilidad
LNM JK O , la entropía asociada a la fuente de información (en bits por símbolo) es:
P
QSR
QSR
= − ∑ ( T ) log 2 ( T )
T
La entropía asociada a los datos cuyos valores quedan por debajo del umbral t es:
U
Y = −
∑
Z\[
VSW
VXW
( Z ) log 2 ( Z )
≤
Igualmente, la asociada a los datos que quedan por encima es:
]
` = −
∑ab
^S_
^S_
( a ) log2 ( a )
>
El método de Pun (1981) consiste en encontrar el umbral t que maximiza la suma cDdefcDg .
Esto es equivalente a maximizar la función h Mji O definida como sigue:
o
o

log r
log(1 − r )
kml
n r
n r 
l
l
( )=
+  1−

pmq
pmq
n s log(max{ t | ≤ }) 
n s  log(max{ t | > })
donde
u
y
w = −
∑xw
{ = −
∑|
v
x ⋅ log x
≤
}  =
y
v
z
z
| ⋅ log |
∑€\ ~
€
≤
El método de Kapur (1985) es una variación del método de Pun en la cual se definen
independientemente las distribuciones de probabilidad para cada clase. Se trata de minimizar la
suma cDd Mji OefcDg Mji O , donde
‚
y
ƒ
† ( )= −
‰  (Š ) = −
‡≤
„…
ˆ
‡ log 2
‹
∑ 1 − ŽŒ 
Ž
"!# ∑ˆ
>
„…
ˆ
‡
‹
log 2
1−
Ž
Œ 
$%!'&#(
*)+-,
Finalmente, el método de Johannsen (1982) propone seleccionar el umbral de tal forma
que se minimice la interdependencia entre las clases. Se persigue la minimización de ./1032 4657.89032 4 :
:

;
> ( ) = log
∑
 ?@


<
≤
? +
1
 <
 < 
? 
= ( @ )+ = ∑

? 
 ?< @  
1
 C
 C 
D ( G ) + D  ∑ F  
 FH> G  
F 
∑?@
<
≤
A

B
E ( ) = log
∑F ≥ G
H
C


F +
∑FG
≥
C
donde I*0(JK4 es la función de entropía I*0(JK4MLNOJPRQST0(JK4 .
U
Q#VWYX2Q#Z[Q#VZ[\"]"^#_`0 a#bRPdceV^f"\9gbRQ#g4hicjf"^#gk0 a#bRPdclbd_62\9gWY\9Z[bdc4nmeo#Q#pc__V\9_`0 a#bRPdclbd_qa#\9gbRQ#g4
"!# $%!'&#(
*)+-,
-/.021435#68795,:;3<=9>?@79<3<
En teoría de conjuntos clásica, un elemento pertenece o no pertenece a un conjunto. En
teoría de conjuntos difusos, un elemento A pertenece a un conjunto S con un grado de pertenencia
BC .
Al seleccionar un umbral D , la media de los datos correspondientes a cada clase es EGF y EGH .
La función de pertenencia a cada clase viene definida por:
1

J

| − µ0 |
 1+ J
J

I
J
max − min
O ( )= 
1

J
 1 + | − µ1 |
J
J

max − min
K/LMJ
≤N
K/LMJ
>N
Una forma de seleccionar el valor del umbral se basa en la entropía de un conjunto difuso,
que se calcula usando la función de Shannon:
P
Q
Q
Q
Q
Q
R ( ) = − log − (1 − ) log(1 − )
El umbral adecuado será aquel que minimice la entropía de los datos:
SUT
( )=
V1
∑]
W
X
YZX
[ ( µ \ ( )) ⋅ ( )
Otro método, ideado por Yager (1979), consiste en minimizar la función:
^
_
2
`
∑b | µa ( ) − µa
( )=
donde
"!# d
`
( )|2
d
µc ( ) = 1 − µc ( )
$%!'&#(
*)+,)
/10'230'4'4'536#79810'2;:#<>=?@12;:BA53235(C@781D92E@F0G7HA(?DIKJ(@9810:#7F4'D#7ML:#7HAD>815 N#:#OD
P <>=?@1235(C@14'536#7F:BA53235(C@781D92E@%N#:#714'536#7QI?DI":0GORA(@QI"D#?TS#@UV0G?
"!# $%!'&#(
*)+-,.
.0/132546467458:9<;-=<8:7
El histograma de los datos puede considerarse como una combinación de dos
distribuciones de probabilidad (las dos clases >?A@CBDFE G y HIE(D?KJLG ). Estas distribuciones suelen
considerarse distribuciones normales, por lo que el histograma es una aproximación de
Q
Q
( − µ1 ) 2
( − µ2 )2
−
−
2
1
1
MON
P
P
2σ 1
2σ 22
( )=
RTS
H<@ UWV
+
σ 1 2π
σ 2 2π
REl
X error mínimo se alcanza cuando seleccionamos como umbral el valor para el cual
H<@ U . Tomando logaritmos en ambos lados de la ecuación podemos obtener
Y
Z
Y
Z
2
2
( − µ1 )
+ log σ 1 − 2 log
σ 12
1
=
( − µ2 )
+ log σ 2 − 2 log
σ 22
2
R
Los valores de [ , y son desconocidos y su estimación es difícil. Kittler e Illingworth
(1986) propusieron la minimización de la siguiente función para obtener el valor del umbral:
1 + 2( 1 ( ) log σ 1 ( ) +
\^]
]
− 2( 1 ( ) log
\^]
_a`
n
µ1 ( ) =
{
σ 12 ( ) =
≤
()
⋅ ()
r

{
{
1
( )
]
]
2 ( ) log
g
2
(h ) =
u
µ2 ( ) =
n
()
( )( − µ1 ( ))
|k}~}
\
]
2
oqpko
1
∑
€5
bdc
≤
∑s5t
≤
1( ) +
∑e5f
1( ) =
en la cual
\^]
( ) log σ 2 ( ) )
\
2 ( ))
\
]
∑l5m ik(j )
>
∑yz
>
vqwdv
⋅ ()
x
u
2
2
‚
σ 22 ( ) =
∑‡5ˆ
>
()
( )( − µ2 ( ) )
ƒd„…„
‚
†
2
‚
2
()
‰‹ŠŒŽ‘<’(“‘”'’<•#–˜—‘™Cš"’CŠK›œW™–‘™š—‘™WžŽŸ™Œ Ÿ0¡’<<’(“–—‘¢˜™'£ŠA¤¡¢#—‘¢—‘™¥Š¦(–‘’CŠA¢˜™ŽŽ¢#Ž
"!# $%!'&#(
*)+-,,
/10%2436576368%91:<;=>6;
?*@(AB@C"D#EFG@IH@KJL#MNOBPIQRNTSUH@(AB@IJ@VWQ'Q
X FGL<YZ<[\I]_^B@KHL#M`[(aLPbEcdQ[Q']']'\IZ#MEWe<\bf\IZ#MdQ"gM`[Q'PI\ hiQ_MB]'\b^Gj
kl]JTa^m"npod\IPIPbErqssKt
En este libro, clásico en Robótica, se describen algunos algoritmos utilizados en Visión Artificial. Entre
ellos se encuentra un algoritmo típico de umbralización automática que, suponiendo distribuciones normales de
probabilidad, minimiza el error medio. El algoritmo descrito en este libro es similar (aunque no exactamente igual)
al expuesto en la sección 1.7.
u^vwQ_fFG@x^ayQ_a
X{z P hiL#a\|[(}v~f#L#agv~^hiQ"xaL]'Q_ff\bMh€^M‚HL#v%ƒ"D<[Q_awe<\bf\IL#MGj
„…A zw† u#L#}Mˆ‡‰\IPIQ‹ŠŒSABL#MfErqss%Ž
Un libro bastante bueno que recoge muchas de las técnicas utilizadas en Visión Artificial. Su tercer
capítulo está dedicado a algoritmos de segmentación de imágenes (algunos de los cuales se han adaptado aquí para
seleccionar un umbral que permita dividir los valores de un atributo numérico en dos intervalos).
"!# $%!'&#(
*)+-,'.
Descargar