You are on page 1of 65

Carlos Alexandre Mello

Limiarização
Carlos Alexandre Mello – cabm@cin.ufpe.br
1
Carlos Alexandre Mello
Pós-Graduação em Ciência da Computação
Limiarização
Conversão de uma imagem para dois tons a partir
de um dado ponto de corte (limiar)
“Objeto”
Carlos Alexandre Mello – cabm@cin.ufpe.br
2
“Objeto”
Background
Limiarização
Algoritmo de Recorte
Se cor(i) <= 127
Então cor(i) = Preto
Senão cor(i) = Branco
Carlos Alexandre Mello – cabm@cin.ufpe.br
3
Valor de Corte = 127
(threshold, limiar)
Branco
Preto
Limiarização
Algoritmo de Recorte (faixa de corte)
Se 50 < cor(i) < 100
Então cor(i) = Branco
Senão cor(i) = Preto
Carlos Alexandre Mello – cabm@cin.ufpe.br
4
Branco entre 50 e 100
Branco
Preto Preto
Limiarização - Aplicações
Processamento de cheques
Carlos Alexandre Mello – cabm@cin.ufpe.br
5
Todo background é
desnecessário
Limiarização
Processamento de cheques
Carlos Alexandre Mello – cabm@cin.ufpe.br
6
Informações úteis (mas ainda com ruído)
Limiarização
Tipos de Limiarização
Global
Um único valor de corte é definido para toda a
imagem
Vantagem: Velocidade
Carlos Alexandre Mello – cabm@cin.ufpe.br
7
Vantagem: Velocidade
Desvantagem: Qualidade
Local
Diferentes pontos de corte são definidos para
diferentes regiões da imagem
Vantagem: Qualidade
Desvantagem: Velocidade
Limiarização
Limiarização Ótima
Carlos Alexandre Mello – cabm@cin.ufpe.br
8
Objetos formados por tons bem diferentes do background:
Fácil redução de cores com qualidade
Limiarização
Limiarização Ótima
Carlos Alexandre Mello – cabm@cin.ufpe.br
9
Imagem original com cores
bem distintas no Histograma
Região com os
tons da moeda
Região com os tons
do background
Regiões bem separadas
Limiarização
Problemas na Limiarização
Carlos Alexandre Mello – cabm@cin.ufpe.br
10
Problema: Imagem com
baixo contraste
É possível, por exemplo,
separar automaticamente
a menina do background?
Limiarização
Problemas na Limiarização
Carlos Alexandre Mello – cabm@cin.ufpe.br
11
Resultado da Limiarização
Limiarização
Problemas na Limiarização
Carlos Alexandre Mello – cabm@cin.ufpe.br
12
Algoritmo de threshold com
valor de corte padrão
Limiarização Global
Porcentagem de Preto
Carlos Alexandre Mello – cabm@cin.ufpe.br
13
th = 119 (10% de preto)
Limiarização Local
O valor de corte varia dentro de uma mesma
imagem, dependendo de fatores da imagem
Exemplo: Imagem com diferentes focos de
iluminação
Carlos Alexandre Mello – cabm@cin.ufpe.br
14
Área iluminada
Limiarização
Os algoritmos também se dividem de acordo
com as características procuradas na
imagem para gerar o ponto de corte:
Histograma
Carlos Alexandre Mello – cabm@cin.ufpe.br
15
Entropia
Agrupamento
Maximização/Minimização de funções
Atributos de objetos
Métodos espaciais
Tom de Cinza Médio
Mean Grey Level
O ponto de corte é, simplesmente, o ponto
médio entre a maior e a menor cor
presentes no histograma
Carlos Alexandre Mello – cabm@cin.ufpe.br
16
Porcentagem de Preto
Define-se a priori a quantidade de tons
pretos esperados na imagem final
O ponto de corte é variado até que essa
porcentagem seja encontrada
Carlos Alexandre Mello – cabm@cin.ufpe.br
17
Exemplo: Valor esperado para a maioria dos
documentos é de 10% de preto
Busca e análise feitas no histograma da
imagem
Dois Picos (Two Peaks)
O ponto de corte é o ponto mais baixo entre dois
picos
Deve-se considerar picos distantes já que, muitas
vezes, o 2º maior pico está ao lado do maior pico
Maior pico
Carlos Alexandre Mello – cabm@cin.ufpe.br
18
Maior pico
2º maior
pico
th1 = 140
th2 = 254
th
final
= 175
Seleção Iterativa (Thrussel)
Um threshold inicial é atribuído e ajustado
através de leituras sucessivas da imagem
Não é baseado em histograma
Considera 2 classes: foreground e background
Carlos Alexandre Mello – cabm@cin.ufpe.br
19
Threshold inicial (T
0
): tom de cinza médio
Calcula então o tom de cinza médio abaixo e
acima desse T
0
: Tb e Tw
Um novo threshold é estimado como (Tb+Tw)/2
O processo continua até que nenhuma
mudança ocorra no ponto de corte
Otsu
A operação de limiarização é considerada
como sendo o particionamento dos pixels de
uma imagem de l níveis de cinza em duas
classes, C
0
e C
1
, que podem representar o
objeto e o fundo, ou vice-versa, sendo que
Carlos Alexandre Mello – cabm@cin.ufpe.br
20
objeto e o fundo, ou vice-versa, sendo que
esta partição se dará no nível de cinza t
Desta forma, teremos C
0
= {0,1, ... , t } e C
1
={t +
1, t + 2, ... , l}
Otsu
Seja σ
2
W
a variância inter-classe, σ
2
B
a
variância entre classes e σ
2
T
a variância
total:
Carlos Alexandre Mello – cabm@cin.ufpe.br
21
Otsu
O valor ótimo do limiar pode ser encontrado
pela maximização da função η(t)=σ
2
b
(t)/σ
2
T
Ou seja, a relação entre a variância entre
classes e a variância total
Carlos Alexandre Mello – cabm@cin.ufpe.br
22
O valor máximo de η, pode ser usado como
medida para avaliar a separabilidade das
classes C
0
e C
1
na imagem original ou a
bimodalidade do histograma
Otsu
Esta é uma medida bastante significativa
pois é invariante para transformações afins
da escala de níveis de cinza, sendo
unicamente determinada dentro do intervalo
0 ≤ η ≤ 1
Carlos Alexandre Mello – cabm@cin.ufpe.br
23
0 ≤ η ≤ 1
O limite inferior (zero) é obtido quando e
somente quando uma dada imagem tenha um
único e constante nível de cinza, e o limite
superior (um) é obtido quando e somente
quando imagens de dois valores são dadas
Otsu
O método se caracteriza por sua natureza não paramétrica e não
supervisionada de seleção de limiar e tem as seguintes vantagens:
O processo como um todo é muito simples;
Uma extensão direta para problemas que exijam vários limiares é
viabilizada dado critério no qual o método está baseado (análise de
discriminantes);
Um limiar ótimo é selecionado de forma automática e estável, baseado em
propriedades globais do histograma;
Viabiliza a análise de outros aspectos importantes, tais como estimativa
Carlos Alexandre Mello – cabm@cin.ufpe.br
24
Viabiliza a análise de outros aspectos importantes, tais como estimativa
dos níveis médios das classes, avaliação da separabilidade das classes,
etc;
O método é extremamente genérico; cobre um largo escopo de processos
de decisão não supervisionados; o conjunto de suas aplicações não se
limita a binarização de imagens em níveis de cinza tal como descrito
anteriormente, mas também pode ser utilizado em outros casos de
classificação não supervisionada no qual um histograma de alguma
característica discriminativa que classifique objetos esteja disponibilizado.
Usando Pixels de Borda
Baseado no operador Laplaciano (HPF)
0 1 0
1 -4 1
0 1 0
Carlos Alexandre Mello – cabm@cin.ufpe.br
25
Após a filtragem, a imagem é binarizada
O histograma da imagem filtrada é calculado
considerando apenas aqueles pixels com “alto”
valor de laplaciano
“alto” é um percentual pré-definido
A binarização é feita usando esse histograma
0 1 0
Usando Pixels de Borda
Funciona como uma mistura de dois outros
algoritmos
Como no algoritmo de porcentagem de preto,
procura o ponto de corte que passaria para
preto o percentual pré-definido da imagem
Carlos Alexandre Mello – cabm@cin.ufpe.br
26
preto o percentual pré-definido da imagem
Mas, no caso, esse ponto definirá apenas a
parte do histograma que será processada
Nesse pedaço de histograma, usa o algoritmo
de dois picos para achar o ponto de corte
Métodos Baseados em Entropia
Entropia: medida de quantidade média de
informação por símbolo de uma fonte
Definida por Claude Shannon (1948)
Idéia: dado um evento E, que informação
Carlos Alexandre Mello – cabm@cin.ufpe.br
27
Idéia: dado um evento E, que informação
podemos tirar sobre ele....
se E acontece com probabilidade 1:
Se ele acontecer, a informação é nula
se E acontece com probabilidade 0
Se ele acontecer, a informação é máxima
Métodos Baseados em Entropia
Assim, dado um evento E e a probabilidade
p(E) dele acontecer, informação é definida
como:
I(E) = log(1/P(E))
Carlos Alexandre Mello – cabm@cin.ufpe.br
28
P(E) = 1 => I(E) = 0
P(E) = 0 => I(E) é máximo
Para um conjunto de elementos i associados ao
evento (ou à fonte de símbolos)
H = - Σ
q
p(i)log(p(i)), para todos os q símbolos
Métodos Baseados em Entropia
H é chamada de Entropia de uma fonte
Uma imagem pode ser considerada uma
fonte de informação
No caso, os i elementos são os tons de cinza da
Carlos Alexandre Mello – cabm@cin.ufpe.br
29
No caso, os i elementos são os tons de cinza da
imagem
Métodos Baseados em Entropia
Algoritmos mais conhecidos
Pun
Kapur
Johannsen
Carlos Alexandre Mello – cabm@cin.ufpe.br
30
Renyi
...
Métodos Baseados em Entropia
Algoritmo de Pun
Dado um ponto de corte t, calcula a entropia dos
tons abaixo (Hb) e acima (Hw) de t:
Carlos Alexandre Mello – cabm@cin.ufpe.br
31
O algoritmo deve procurar t que maximize H
H = Hw + Hb
Pun demonstrou que isso é o mesmo que maximizar
Métodos Baseados em Entropia
Algoritmo de Kapur-Sahoo-Wong
Variação do algoritmo de Pun considerando
agora que objeto (A) e background (B) têm
distribuições dadas por:
Carlos Alexandre Mello – cabm@cin.ufpe.br
32
Assim, as entropias Hw e Hb são calculadas
usando essa distribuição:
Métodos Baseados em Entropia
Algoritmo de Johannsen e Billie
Outra variação para o algoritmo de Pun
O algoritmo é baseado no cálculo das entropias
para preto Sb(t) e para branco Sw(t)
Carlos Alexandre Mello – cabm@cin.ufpe.br
33
O ponto de corte ideal para esta técnica será o
valor de t que dará o valor mínimo para a soma
Sb(t) + Sw(t), onde:
Métodos Baseados em Entropia
Algoritmo de Renyi
Meta: otimizar uma função de critério
A entropia de Renyi usa duas distribuições de
probabilidade (objeto e fundo do objeto),
derivadas das distribuições de cinza originais da
Carlos Alexandre Mello – cabm@cin.ufpe.br
34
derivadas das distribuições de cinza originais da
imagem e inclui os métodos da soma da
entropia máxima e correlação entrópica
Dado que p
0
, p
1
, p
2
,..., p
255
são probabilidades
de níveis de cinza da imagem, duas
probabilidades são derivadas delas, A
1
e A
2
,
para objeto e fundo do objeto, respectivamente
Métodos Baseados em Entropia
Algoritmo de Renyi
Entropia de Renyi definida como
Carlos Alexandre Mello – cabm@cin.ufpe.br
35
Semelhante à entropia de Tsallis
Entropia das classes
Ponto de corte:
α é uma variável real não pré-definida
Média Móvel (Moving Average)
P.Wellner
Limiarização Local
Define um ponto de corte para cada pixel
Uma média móvel é apenas o tom de cinza
médio dos últimos n pixels
Carlos Alexandre Mello – cabm@cin.ufpe.br
36
médio dos últimos n pixels
Nesse caso, a imagem pode ser
considerada armazenada em um vetor
Para o pixel i+1 com cor gray
i+1
:
M
i+1
= M
i
– M
i
/n + gray
i+1
Rosenfeld
Baseado na análise da envoltória convexa do
histograma de uma imagem
A envoltória convexa de um histograma é o menor
polígono convexo para o qual todos os níveis do
histograma estejam no seu interior
Carlos Alexandre Mello – cabm@cin.ufpe.br
37
No algoritmo de Rosenfeld, a maior diferença
entre a envoltória e o histograma se torna
candidato ao limiar
Se houver mais de um candidato, outras
características da imagem podem ser definidas
como padrões de desempate
Rosenfeld
Carlos Alexandre Mello – cabm@cin.ufpe.br
38
Niblack
Limiarização Local
Imagem dividida em janelas quadradas (NxN) e
cada janela é avaliada em separado
Calcula-se média (m) e desvio padrão (d) de
cada janela
Carlos Alexandre Mello – cabm@cin.ufpe.br
39
cada janela
O ponto de corte (th) é definido por:
th = m + bias*d
bias = peso atribuído
Não há definição de valor específico para esse bias
Niblack
Exemplo:
Carlos Alexandre Mello – cabm@cin.ufpe.br
40
Janela = 31; Bias = -0.8
Sauvola
Melhoria no algoritmo de Niblack para
imagens com problemas de iluminação
Nova variável para modificar o efeito do
desvio padrão
Carlos Alexandre Mello – cabm@cin.ufpe.br
41
R = 128
O ponto de corte é definido como:
th = m + bias*(d/R)
White
Compara o tom de cinza de cada pixel da
imagem com a média dos valores dos seus
vizinhos numa janela
Para peso igual a 2, se o pixel for mais
Carlos Alexandre Mello – cabm@cin.ufpe.br
42
escuro que a média, ele é classificado como
objeto, senão é background
Se média > cor_pixel*peso, então Preto, senão
Branco
Bernsen
O limiar é escolhido como a média entre o
mínimo e o máximo tom de cinza da
vizinhança do pixel
Se o contraste for menor que certo limiar
Carlos Alexandre Mello – cabm@cin.ufpe.br
43
dado, então o pixel é considerado da mesma
classe que seus vizinhos, objeto ou
background, dependendo do valor do limiar
O contraste é calculado como a diferença entre
o máximo e o mínimo nível de cinza dado
A Visual Perception Approach
Carlos Mello, 2010
DAS, 2010, Boston, EUA
SMC, 2010, Istanbul, Turquia
Para imagens de documentos com manchas
Carlos Alexandre Mello – cabm@cin.ufpe.br
44
Para imagens de documentos com manchas
grandes ou diferenças de iluminação
O que acontece
quando nos
afastamos de um
objeto
A Visual Perception Approach
Carlos Alexandre Mello – cabm@cin.ufpe.br
45
O que nós vemos?
E o que nós não
vemos?
Para simular uma pessoa se afastando de
um documento
A tinta tende a desaparecer,
mas as principais cores do
background permanecem….
A Visual Perception Approach
Carlos Alexandre Mello – cabm@cin.ufpe.br
46
Modelagem do afastamento
de uma pessoa de um
objeto.... Não basta um
resize...
1 2
3
A Visual Perception Approach
Carlos Alexandre Mello – cabm@cin.ufpe.br
47
3
4
5 6
A Visual Perception Approach
Carlos Alexandre Mello – cabm@cin.ufpe.br
48
A Visual Perception Approach
Carlos Alexandre Mello – cabm@cin.ufpe.br
49
A Visual Perception Approach
Carlos Alexandre Mello – cabm@cin.ufpe.br
50
A Visual Perception Approach
Imagem
Sintética
Carlos Alexandre Mello – cabm@cin.ufpe.br
51
Problemas:
Ajuste de parâmetros
Como lidar com ruídos pequenos
A idéia básica não é própria para eles
A redução de tamanho inicial simula um
A Visual Perception Approach
Carlos Alexandre Mello – cabm@cin.ufpe.br
52
A redução de tamanho inicial simula um
afastamento de 5m da imagem
Valor sugerido para aplicação do teste de
acuidade visual de Snellen
Adaptado hoje à largura do traçado da escrita
Avaliação de Limiarização
Problema: como avaliar algoritmos?
Domínio específico das imagens
Documentos tipografados: resposta de OCR
E os outros domínios?
Carlos Alexandre Mello – cabm@cin.ufpe.br
53
E os outros domínios?
Imagens gerais
Documentos manuscritos
Avaliação de Limiarização
Uso de ground truth ou gold standard
O padrão ouro
Problema: como gerar? Quantos gerar?
Sem respostas....
Carlos Alexandre Mello – cabm@cin.ufpe.br
54
Sem respostas....
Mesmo com o ground truth, como comparar?
Comparação pixel a pixel é eficiente
Mas deve-se comparar acertos e erros
Avaliação de Limiarização
Comparação do valor do ponto de corte
Avaliação do erro do calculado e do
esperado
Uso do ground truth novamente
Carlos Alexandre Mello – cabm@cin.ufpe.br
55
Uso do ground truth novamente
E o que acontece com algoritmos de binarização
local?
Avaliação de Limiarização
Exemplo: Imagens de documentos
manuscritos
Carlos Alexandre Mello – cabm@cin.ufpe.br
56
Para diferentes pontos de corte, temos
diferentes imagens resultantes
Avaliação de Limiarização
Uso de medidas de teoria da detecção de
sinais
Um pixel corretamente considerado como tinta e
convertido para preto (TP – True Positive)
Um pixel corretamente considerado como papel
Carlos Alexandre Mello – cabm@cin.ufpe.br
57
Um pixel corretamente considerado como papel
e convertido para branco (TN – True Negative)
Um pixel de tinta considerado papel e
convertido para branco (FN – False Negative)
Um pixel de papel considerado tinta e
convertido para preto (FP – False Positive)
Avaliação de Limiarização
Comparação com o ground truth
Imagem ideal criada manualmente
Problema: geração das imagens ideais
Vantagem: Facilidade com a comparação com os
resultados gerados por outros algoritmos
Carlos Alexandre Mello – cabm@cin.ufpe.br
58
resultados gerados por outros algoritmos
Imagem ideal Imagem original
Avaliação de Limiarização
1
2
Carlos Alexandre Mello – cabm@cin.ufpe.br
59
Imagem ideal Comparações
3
4
Avaliação de Limiarização
Observe o seguinte caso:
Imagem binarizada Imagem ideal
Carlos Alexandre Mello – cabm@cin.ufpe.br
60
Exemplo: Nesse caso, todos os pixels pretos da imagem original foram
corretamente classificados como tinta (alto TP)
Mas, houve erro na classificação de todos os pixels brancos (alto FP)
Ou seja, uma medida apenas não mostra o correto desempenho do
algoritmo
Avaliação de Limiarização
Medidas de desempenho:
Precision = TP/(TP + FP)
Recall = TP/P = Sensitivity
Accuracy = (TP + TN)/(P + N)
Specificity = TN/(FP + TN)
Carlos Alexandre Mello – cabm@cin.ufpe.br
61
Specificity = TN/(FP + TN)
Lembrando que:
P = TP + FN
N = FP + TN
Para uma boa qualidade de limiarização, todas essas medidas
devem se aproximar de 1 (indicando poucos erros)
Avaliação de Limiarização
Um bom algoritmo deve ter
Precision≈1:
Precision = TP/(TP + FP)
Assim, para precision tender a 1, é preciso que FP tenda a zero
(ou seja, poucos erros)
Recall≈1:
Recall = TP/P = TP/(TP + FN)
Carlos Alexandre Mello – cabm@cin.ufpe.br
62
Recall = TP/P = TP/(TP + FN)
Assim, para recall tender a 1, é preciso que FN tenda a zero
Accuracy≈1:
Accuracy = (TP + TN)/(TP + FN + FP + TN)
Ou seja, FN e FP devem ser próximos de zero
Specificity≈1:
Specificity = TN/(FP + TN)
Ou seja, FP deve ser próximo de zero
ICDAR/ICFHR Binarization Contest
Medidas definidas
F-measure:
2*Recall*Precision/(Recall + Precision)
PSNR:
Carlos Alexandre Mello – cabm@cin.ufpe.br
63
10*log(C
2
/MSE)
MSE = Mean Square Error
Negative Rate Metric (NRM):
(NR
FN
+ NR
FP
)/2
NR
FN
= FN/(FN + TP)
NR
FP
= FP/(FP + TN)
ICDAR/ICFHR Binarization Contest
Medidas definidas
Misclassification Penalty Metrics (MPM)
Avalia a predição contra o ground truth numa base
objeto-a-objeto
Pixels classificados erroneamente são penalizados
pela sua distância da borda do objeto na imagem
Carlos Alexandre Mello – cabm@cin.ufpe.br
64
pela sua distância da borda do objeto na imagem
ground truth
d
i
FN
e d
j
FP
denotam a distância do i
th
falso
negativo pixel e do j
th
falso positivo pixel do
contorno da segmentação GT. O fator de
normalização D é a soma de todas as
distâncias pixel para contorno do objeto GT.
Um baixo MPM indica que o algoritmo é bom
na identificação dos contornos do objeto.
Referências
Imprescindível para qualquer trabalho que
envolva limiarização:
Sezgin, M.; Sankur, B., “Survey over image
thresholding techniques and quantitative
performance evaluation”. Jornal of Eletronic
Imaging, 2004. Vol.13, p.146-165, 2004.
Carlos Alexandre Mello – cabm@cin.ufpe.br
65
Imaging, 2004. Vol.13, p.146-165, 2004.
DIBCO
Document Image Binarization Contest
ICDAR ou ICFHR
Alguns algoritmos (em MatLab):
www.cin.ufpe.br/~cabm/visao/codigos