Processamento Digital de Imagens
Restauração de Imagens
Eduardo A. B. da Silva
Programa de Engenharia Elétrica - COPPE/UFRJ Laboratório de Sinais, Multimídia e Telecomunicações
eduardo@smt.ufrj.br Sergio L. Netto
Programa de Engenharia Elétrica - COPPE/UFRJ Laboratório de Sinais, Multimídia e Telecomunicações
sergioln@smt.ufrj.br
Sumário
1
Restauração de Imagens
Restauração de Imagens
Filtragem Inversa
Restauração de Imagens
⇒ Recuperação de degradações na imagem causadas pelo “ambiente” de aquisição de imagem:
•
Ruído de sensores;•
Embaçamento devido à falta de foco da câmera;•
Movimento relativo entre câmera e objeto;•
Turbulência atmosférica aleatória;•
Etc....⇒ Sua validade depende da acurácia com que se conhece o processo de degradação e do processo do projeto de filtros.
⇒ A medida de fidelidade utilizada é, usualmente, o erro médio quadrático (MSE). Se usa às vezes os critérios de máxima entropia e “weighted” MSE.
⇒ Qual a diferença para “Image Enhancement”?
•
“Enhancement” envolve mais o realce ou extração de características da imagem do que restauração de degradações;•
Problemas de restauração de imagens podem ser quantificados precisamente, enquanto critérios de realce são difíceis de representar matematicamente;•
Técnicas de restauração de imagens frequentemente dependem das propriedades de uma classe ou conjunto de dados, enquanto as técnicas de realce dependem muito mais de cada imagem.Modelos de Observação de Imagens sistema linear h(x,y;x’,y’) nao linearidade g( ) nao linearidade f( ) modelos de formacao de imagem modelos dos detectores e gravadores modelo de ruido u(x,y) w(x,y) n1(x,y) n(x,y) v(x,y) n2(x,y)
⇒ Tipicamente:
Modelos de Formação de Imagens
Exemplo: Motion Blur ⇒ movimento no eixo x com velocidade ϑ.
v (x , y ) = 1 T Z T 0 v (x − ϑt, y )dt, α = ϑt v (x , y ) = 1 T Z ϑT 0 v (x − α, y )d α ϑ Seja Pa(α) = (1 a, 0 ≤ α ≤ a 0, n.d .p. v (x , y ) = Z ∞ −∞ PϑT(α)v (x − α, y )d α = Z ∞ −∞ Z ∞ −∞ PϑT(α)δ(β)v (x − α, y − β)d αd β
⇒ Equivale a filtrar com um filtro com resposta ao impulso h(x , y ) = PϑT(x )δ(y ) (sinc na
frquência);
Para movimento linear uniforme em direções arbitrárias, temos (na frequência):
Modelos de Detectores e Gravadores
Para filmes fotográficos, scanners e displays, a resposta a uma entrada w é geralmente não-linear:
g = αωβ
Ex: Para filmes, um modelo mais acurado é d = γ log10ω − d0
ω : intensidade de luz incidente; d : densidade ótica;
γ : intensidade de luz incidente;
Modelos de Ruído
Ruído aparece tipicamente durante a aquisição de imagens e/ou trasmissão; ; Ex: ruído num feixe de elétrons: η(x , y ) = pg (x , y )η1(x , y )
| {z }
emissão aleatória de elétrons
+ η2(x , y )
| {z }
ruído térmico
Podemos assumir (simplificadamente) que:
•
O ruído é independente das coordenadas espaciais;•
Não há correlação entre os valores dos pixels e os valores do ruído (não é verdade paraDiferentes modelos de ruído podem surgir devido à efeitos de ruído térmico, de circuitos eletrônicos, em range imaging, imageamento por laser, erro de chaveamento de circuitos ou registradores, etc..
Exemplo: considere a seguinte imagem:
⇒ Qual a aparência de seu histograma? ⇒ Adicione ruído com diferentes distribuições.
Estimação de modelos de ruído
Ruído periódico
Restauração de Ruído Periódico
Filtragem Inversa
Filtro Inverso
Considere nosso modelo típico de distorção:
Na ausência de ruído (η(x , y ) = 0), temos:
V (ω1, ω2) = H(ω1, ω2)U(ω1, ω2)
.
Uma solução para corrigir as distorções introduzidas pelo sistema H(ω1, ω2) é então utilizar um
filtro de restauração inverso:
HI(ω1, ω2) =
1
Assim: ˆ U(ω1, ω2) = HI(ω1, ω2)V (ω1, ω2) = 1 H(ω1, ω2) H(ω1, ω2)U(ω1, ω2) = F (ω1, ω2)
⇒ Problema: o projeto de filtros inversos é difícil porque eles são usualmente instáveis (HI(ω1, ω2) não existe se H(ω1, ω2) = 0);
Na presença de ruído, nosso modelo é:
V (ω1, ω2) = H(ω1, ω2)U(ω1, ω2) + N(ω1, ω2)
.
Utilizando o filtro inverso:
ˆ
U(ω1, ω2) = V (ω1, ω2)HI(ω1, ω2) = U(ω1, ω2) +
N(ω1, ω2)
H(ω1, ω2)
.
Filtro Pseudo-Inverso
Uma solução é fazer:
H−(ω1, ω2) = 1 H(ω1, ω2) , H(ω1, ω2) 6= 0 0, H(ω1, ω2) = 0 Na prática, considero H(ω1, ω2) < ε
Seja V (ω1, ω2) = H(ω1, ω2)U(ω1, ω2) ⇒ ˆU(ω1, ω2) =
V (ω1, ω2)
H(ω1, ω2)
Se adiciono ruído ⇒ ˆU(ω1, ω2) =
V (ω1, ω2)
H(ω1, ω2)
+N(ω1, ω2)
H(ω1, ω2)
⇒ Ainda assim, se H(ω1, ω2) é muito pequeno, mesmo uma pequena quantidade de ruído pode
ser muito amplificada.
Filtragem de Wiener
⇒ Usada para restaurar imagens na presença de embaçamento e ruído. ⇒ Olha a imagem e o ruído como dois processos estocásticos:
v (m, n) é uma observação do processo u(m, n), E [u(m, n)] = E [v (m, n)] = 0.
Nosso problema é: a partir da observação de v (m, n), qual a estimativa ˆu(m, n) de u(m, n) que
minimiza o erro médio quadrático
σ2
e = E [| u(m, n) − ˆu(m, n) |2]
A estimativa que minimiza o erro é dada por: ˆ
u(m, n) = E [u(m, n) | v (k, l )]
| {z }
difícil de calcular (preciso de pu|v)
Uma solução é trabalhar com a melhor estimativa linear para ˆu(m, n):
⇒ Assumo que ˆu(m, n) é do tipoX
k
X
l
g (m, n; k, l )v (k, l )
⇒ Acho g (m, n; k, l) tal que σ2
e é mínimo.
Assumindo que os procesos u(m, n) e v (m, n) são gaussianos, do princípio da ortogonalidade temos que:
E {[(u(m, n) − ˆu(m, n)]v (m0, n0)} = 0, ∀m, n, m0, n0
(o erro de estimação é ortogonal à estimativa)
⇒X
k
X
l
Se u e v são conjuntamente estacionários: ruv(m, n; m0, n0) = ruv(m − m0, n − n0) ⇒X k X l g (m − k, n − l )rvv(k, l ) = ruv(m, n)
Calculando a transformada de Fourier:
G (ω1, ω2)Svv(ω1, ω2) = Suv(ω1, ω2) ⇒ G (ω1, ω2) = Suv(ω1, ω2)Svv−1(ω1, ω2)
Temos ainda que: ˆ u(m, n) =X k X l g (m − k, n − l )v (k, l ) ⇒ ˆU(ω1, ω2) = G (ω1, ω2)V (ω1, ω2)
Supondo o sistema linear com ruído aditivo:
v (m, n) =X
k
X
l
h(m − k, n − l )u(k, l ) + η(m, n),
Assim, temos que:
G (ω1, ω2) =
H∗(ω1, ω2)Suu(ω1, ω2)
| H(ω1, ω2) |2Suu(ω1, ω2) + Sηη(ω1, ω2) ⇒ Filtro de Wiener
O filtro é completamente determinado pela densidade espectral de potência do objeto (processo) e do ruído e da resposta em frequência do sistema de imagem;
Filtro de Wiener para Imagens com Médias Não Nulas
Como µv(m, n) = h(m, n) ∗ µu(m, n) + µη(m, n),
Se ¯x (m, n) = x (m, n) − µx(m, n),
⇒ ¯v (m, n) = h(m, n) ∗ ¯u(m, n) + ¯η(m, n) ⇒Posso aplicar o filtro de
Wi-ener nas imagens sem média ⇒ Posso estimar µ(m, n) fazendo médias locais.
⇒ Se µu e µη são constantes, só uma constante é adicionada à imagem processada.
Fase: G = H ∗S uu | H |2S uu+ Sηη ⇒ ∠G = −∠H = ∠ 1 H
⇒ A fase do filtro de Wiener é igual à fase do filtro inverso;
Filtro de Wiener para Ruído Sem embaçamento: H = 1 ⇒ G = Suu | H |2S uu+ Sηη = SNR SNR + 1
⇒ SNR grande ⇒ G ≈ 1 (não preciso atenuar o sinal)
⇒ SNR pequeno ⇒ G ≈ SNR (Atenuo o sinal de acordo com a sua realção sinal ruído: quanto mais ruído, mais atenuo)
⇒ Para imagens naturais, SNR tende a ser grande em baixas frequências e pequeno em altas frequências: o filtro de Wiener se comporta como um passa-baixas;
Relação com filtragem inversa Se Sηη= 0 ⇒ G = Suu | H |2S uu+ Sηη = H ∗S uu | H |2S uu = 1
H ⇒ é igual ao filtro inverso.
lim Sηη→0G = limSηη→0 H∗Suu | H |2S uu+ Sηη = 1 H, H 6= 0 0, H = 0 ⇒ Filtro Pseudo-Inverso
PSDs desconhecidas E se não conheço Sηη e Suu? ⇒ Faço Sηη Suu = K : ⇒ G = H ∗S uu | H |2S uu+ Sηη = H ∗ | H |2+Sηη Suu = H ∗ | H |2+K
Exemplo
Filtragem de Wiener FIR
A equação do filtro de Wiener é:
G (ω1, ω2) =
H∗(ω1, ω2)Suu(ω1, ω2)
| H(ω1, ω2) |2Suu(ω1, ω2) + Sηη(ω1, ω2)
⇒ g (n1, n2) é em geral IIR.
⇒ Entretanto, sua resposta efetiva tem, em geral, tamanho bem menor que a imagem; ⇒ Filtros FIR ótimos podem aproximar o desempenho do filtro de Wiener;
⇒ O filtro de Wiener é implementado como um filtro de resposta ao impulso g (m, n) que minimiza o erro quadrático:
ˆ
u(m, n) =X X
i ,j∈W
Da expressão do filtro de Wiener temos que: ⇒ G | H |2S
uu+ GSηη= HSuu ⇒ seja a(k, l) = (h ? h)(k, l)
⇒ [g ∗ a ∗ ruu+ g ∗ rηη](k, l ) = h ∗ ruu(k, l )
⇒ [a ∗ ruu+ rηη] ∗ g (k, l ) = h ∗ ruu(k, l )
⇒ Se g é FIR com (2M + 1) × (2M + 1) coeficientes, resolvo o sistema acima com (2M + 1) × (2M + 1) incógnitas (coeficientes de g ).
Exemplo: Supondo rηη(k, l ) = σn2δ(k, l ) (ruído branco)
Definindo ruu(k, l ) = σ2r0(k, l )
⇒ [(a ∗ σ2r
⇒ " σ2 η σ2δ(k, l ) + r0(k, l ) ∗ a(k, l ) # ∗ g (k, l) = h(k, l) ∗ r0(k, l )
Empilhando as linhas e as colunas " ση2 σ2I + R # | {z } “truncado” para (2M + 1)2(2M + 1)2 g |{z} (2M+1)2coefs
= ruv ⇒ “truncado” para (2M + 1)2amostras.
Sem embaçamento: H = 1 ⇒ h(k, l ) = δ(k, l ) = a(k, l ) ⇒ filtro FIR ótimo de ruído. O tamanho do filtro FIR cresce com a quantidade de embaçamento e com o ruído. Sem embaçamento: " σ2η σ2δ(k, l ) + r0(k, l ) # ∗ g (k, l) = r0(k, l )
SNR → ∞ ⇒ g (k, l ) = δ(k, l ) ⇒ g possui 1 pixel. SNR → 0 ⇒ ση2g (k, l ) = r0(k, l ) ⇒
g possui tantas amostras quanto a
região de suporte de r0(k, l )
⇒ Se r0(k, l ) = 0.95 √
k2+l2
Filtros FIR Variantes com o Deslocamento
Filtragem de imagens com embaçamento variantes no deslocamento:
⇒ Um bom modelo é assumir média e variâncias não-estacionárias e autocovariâncias estacionárias, isto é:
(
E [u(m, n)] = µ(m, n)
E {[u(m, n) − µ(m, n)][u(m − k, n − l ) − µ(m − k, n − l )]} = σ2(m, n)r 0(k, l )
Supondo que a PSF possui região de suporte contida em W e h, µ e σ2 variam lentamente: ⇒ ˆu(m, n) = X (i ,j)∈W ˜ gm,n(i , j)v (m − i , n − j) ˜ gm,n(i , j) = gm,n(i , j) + 1 (2M + 1)2 1 − X (k,l )∈W gm,n(k, l ) gm,n(i , j) é a solução da equação " σ2 η σ2 m,n I + R #
Outros Filtros no Domínio da Frequência
•
Filtro de média geométrica:Gs = (H−)s S uuH∗ Suu| H |2+Sηη 1−s , 0 ≤ s ≤ 1, H−= filtro pseudo-inverso. ⇒ se s = 1 2⇒ PSD da saída = PSD do objeto.