• Nenhum resultado encontrado

2 Pré-processamento e Segmentação

2.1 Relacionamentos Básicos entre Pixels

2.3.2 Operações com Histograma

Um histograma de uma imagem denota a frequência de valores discretos de um de- terminado intervalo [0, L − 1], cuja função é:

p(rk) =

nk

cinza.

Figura 2.10: Histograma (à direita) da imagem (à esquerda), este relaciona o número de níveis de cinza utilizados (eixo x) com a frequência de pixels (eixo y) para cada nível de cinza.

2.3.2.1 Equalização

A equalização de histograma tende a espalhar níveis de cinza que estejam concentra- dos em um só lugar, buscando obter um histograma uniforme e aumentando sua escala dinâmica, dessa forma produzindo um aumento considerável no contraste da imagem. Sua forma discreta dá-se por:

sk= T (rk) = k

X

j=0

pr(rj), (2.14)

onde 0 ≤ rk ≤ 1 e k = 0, 1, 2, ..., L − 1. A Figura 2.11 apresenta a mesma imagem

mostrada na Figura 2.10 equalizada. Existem outras operações que podem ser realizadas com histograma, tais como especificação e realce local.

Testamos os vídeos sob duas situações distintas, a primeira utilizamos não aplicamos filtros e não equalizamos o histograma, na segunda situação fizemos o inverso para cada quadro do vídeo, a intenção deste teste era validar a qualidade da imagem para o módulo de segmentação, descrito à frente na Subseção 2.4.1.

Nos testes, a qualidade da imagem na segunda situação obteve melhor êxito que a primeira que resultou em um número considerável de falhas na segmentação de imagens, de tal forma que optamos por utilizar o filtro de mediana combinado à equalização de

Figura 2.11: Histograma (à direita) da imagem (à esquerda), este relaciona o número de níveis de cinza utilizados (eixo x) com a frequência de pixels (eixo y) para cada nível de cinza.

histograma.

2.4

Visão Computacional

Segundo Ballard e Brown (BALLARD; BROWN, 1982), visão computacional é o estudo da extração de informação de uma imagem a partir da sua análise, mais especifi- camente, é a construção de descrições explícitas e claras dos objetos em uma imagem.

A área de processamento de imagens difere da visão computacional, sendo a primeira responsável apenas por processar e tratar a imagem para deixá-la apta, no que tange o domínio da solução, para ser utilizada na visão computacional.

Um dos objetivos da visão computacional é tentar simular a capacidade humana de reconhecer e identificar objetos isolados a partir do sentido da visão (SZELISKI, 2010), os brasileiros Neves, Neto e Gonzaga reúnem um compilado de trabalhos na área da visão computacional em sua obra (NEVES; NETO; GONZAGA, 2012). As próximas subseções detalham os processos envolvidos na segmentação de imagens, processo de separação dos objetos de interesse da aplicação do restante da imagem, uma subseção em particular para detalhar esse processo em imagens dinâmicas (frames – ou quadros – de vídeos), assim como passos importantes no pós-processamento (como operações morfológicas). Por fim, a Subseção 2.4.3 mostra um pequeno resumo sobre a biblioteca OpenCV que será utilizada no desenvolvimento de aplicação.

tituintes (GONZALEZ; WOODS, 2000). O nível de subdivisão para até que os objetos de interesse tenham sido devidamente segmentados. A segmentação é de longe umas das tarefas mais difíceis em processamento de imagens, por essa razão deve-se tomar cuidado considerável para melhorar as chances de uma boa segmentação. Objetos são considera- dos partes do foreground enquanto que o restante da imagem é considerado o background, o resultado desta separação é, usualmente, uma imagem binarizada, chamada também de máscara de foreground, em que pixels pretos de valor 0 denotam o background e pi- xels brancos de valor 1 denotam o foreground. Em geral, a segmentação é realizada com imagens em escala de cinza visando melhor performance, uma vez que as operações são realizadas em apenas um canal.

As técnicas de segmentação de imagens monocromáticas geralmente são categorizadas pelas seguintes propriedades: descontinuidade e similaridade. Estas técnicas podem ser aplicadas tanto em imagens estáticas como dinâmicas (geradas a partir de vídeos, por exemplo), porém, para imagens dinâmicas a preferência é pela detecção de movimento por ter melhor performance os algoritmos de segmentação.

2.4.1.1 Descontinuidade

A primeira categoria visa particionar a imagem baseando-se nas mudanças bruscas de níveis de cinza. Neste contexto, há três tipos básicos de descontinuidades, através da detecção (i) por pontos, (ii) por linhas e (iii) por bordas.

Na detecção por ponto pode-se utilizar, por exemplo, a aplicação de uma máscara semelhante à do filtro passa-altas de tal maneira que:

|R| > T, (2.15)

onde T é um limiar (threshold ) não negativo. Dessa forma, as diferenças maiores que T serão consideradas.

A detecção por linhas se baseia em detectar linhas isoladas na imagem através do uso, assim como em pontos, de máscaras. Considere uma máscara 3 × 3 com coeficientes −1 na primeira linha, coeficientes 2 na segunda linha e coeficientes −1 na terceira linha, ao aplicarmos essa máscara à imagem, R responderá por detecção de linhas na horizontal, conforme Figura 2.12, para as outras direções basta deslocar os coeficientes positivos no

sentido da linha (para vertical coluna do meio, para 45◦ diagonal secundária e para −45◦ diagonal principal). O resultado é semelhante ao que pode ser obtido pelo filtro de Sobel (utilizado em aguçamento de bordas), isto deve-se ao fato de também ser um operador diferencial, cuja soma de todos os valores resultam em 0, dessa forma, anulando a resposta em áreas constantes.

Figura 2.12: Detecção de linhas horizontais.

Porém, na maioria das aplicações são raras as ocorrências de pontos e linhas isolados. A abordagem de detecção de bordas é mais utilizada, uma vez que ela tende a diferenciar duas regiões pela mudança brusca de níveis de cinza. Uma das técnicas utilizadas na detecção de bordas é através de operadores de vetores de gradientes, mais especificamente sua maximização (magnitude) dada por:

∇f = mag(∇f) = [G2 x+ G

2 y]

1/2, (2.16)

sendo que as derivadas contidas em Gxe Gy podem ser implementadas facilmente por meio

dos operadores de Sobel, estes possuem a vantagem de produzir efeitos de diferenciação e suavização ao mesmo tempo, desta forma temos que:

Gx = (z7+ 2z8+ z9) − (z1+ 2z2+ z3), (2.17)

Gy = (z3+ 2z6+ z9) − (z1+ 2z4+ z7), (2.18)

onde consideramos z5 como pixel central e z1 à z9, exceto z5, como vizinhança-de-8 de z5

organizados em uma matriz 3 × 3. A Figura 2.13 apresenta o resultado obtido a partir da detecção de bordas utilizando operadores de gradientes.

Figura 2.13: Detecção de bordas através de operadores de gradientes.

2.4.1.2 Limiarização

A limiarização (thresholding) é uma das mais importantes abordagens para a seg- mentação de imagens (GONZALEZ; WOODS, 2000). A técnica consiste em estimar um limiar (threshold ) que determina se um determinado ponto (pixel ) pertence ao fundo (background ) ou ao objeto (foreground ).

A expressão gerada por essa discussão é:

T = T [x, y, p(x, y), f (x, y)], (2.19)

onde f (x, y) é o nível de cinza do ponto (x, y) e p(x, y) denota alguma propriedade local desse ponto. Dessa forma, uma imagem limiarizada g(x, y) é definida como:

g(x, y) =    1, sef (x, y) > T, 0, sef (x, y) ≤ T. (2.20)

Observe que para este caso utilizamos um limiar fixo. Para problemas em que este limiar pode variar de acordo com o ambiente (iluminação por exemplo), podemos utilizar a técnica de limiarização adaptativa que consiste em determinar o valor de T através do cálculo do peso médio de uma região B × B na vizinhança de cada pixel menos uma constante (ANNADURAI, 2007) para contornar problemas desse tipo. A Figura 2.14 faz uma comparação visual entre as duas técnicas de limiarização.

Problemas em que queremos segmentar objetos de uma determinada cor podem ser resolvidos por limiarização.

Figura 2.14: Imagem limiarizada com T = 50 (à esquerda) e utilizando limiarização adap- tativa (à direita).

2.4.1.3 Detecção de Movimentos

O projeto desta dissertação coleta informações a partir de imagens de vídeos, dessa forma, utilizamos os algoritmos que trabalham com segmentação a partir da detecção de movimentos, já que esta é uma poderosa pista usada por seres humanos e animais para a extração de um objeto de interesse de um fundo de detalhes irrelevantes (GONZALEZ; WOODS, 2000).

Considere a imagem obtida a partir de uma câmera fixa. A detecção de movimentos consiste basicamente em realizar comparações de diferenciação entre frames sob o aspecto temporal, dessa forma temos f (x, y, ti) em que t representa o instante de captura daquele

frame comparado a um modelo de background estimado por f (x, y, tj) a fim de gerar

uma imagem gij(x, y) consistente em que se destacam apenas os objetos em movimento,

chamamos isso de subtração de background (GONZALEZ; WOODS, 2000; FORSYTH; PONCE, 2002).

Abaixo apresentamos os algoritmos que foram utilizados nos experimentos a fim de encontrar um que se aproximasse do nosso modelo estimado de ground-truth (segmentação ideal). Utilizamos a qualidade das imagens segmentadas e o tempo de processamento como métricas de validação para a escolha do algoritmo.

Diferença Absoluta entre Frames

gij(x, y) =

0, caso contrário,

(2.21)

onde θ é um limiar, 1 a intensidade máxima dos níveis de cinza e 0 a intensidade mí- nima. Dessa forma consideramos como objetos aqueles cuja diferença dos pixels for maior que o limiar determinado. Este método possui algumas limitações, o mesmo é altamente suscetível a ruídos, assim, é comum obtermos imagens com pixels isolados de valores 1 (GONZALEZ; WOODS, 2000). Uma possível solução é eliminar esses ruídos através de técnicas de pós-processamento utilizando filtros ou operações morfológicas, explicadas na Seção 2.4.2.

Modelo de Mistura de Gaussianas de KaewTraKulPong-Bowden

Antes de adentrarmos à solução de KaewTraKulPong-Bowden, e posteriormente de Zivkovi, precisamos entender o modelo proposto por Stauffer-Grimson, GMM (Gaussian Mixture Model ) ou ainda MoG (Mixture of Gaussian).

Stauffer-Grimson propuseram um modelo de subtração de background que modela o valor de um pixel em particular como uma mistura de gaussianas. Baseado na persistência e variância de cada gaussiana da mistura, determinamos qual delas pode corresponder a cor de background, assim, os pixels que possuírem valores que não atendem às distribuições de background são considerados como se do foreground fossem, até que haja uma gaus- siana que o inclua, desde que possua evidências consistentes para fazê-lo (STAUFFER; GRIMSON, 1999). A equação P (Xt) = K X i=1

wi,t∗ η(Xt, µi,t, Σi,t) (2.22)

representa a probabilidade de observação de um pixel, em que K é o número de distri- buições, wi,t é uma estimativa de peso da ia gaussiana (porção dos dados descritos por

esta gaussiana) na mistura no tempo t, Σi,t é a matriz de covariância da ia gaussiana no

tempo t, µi,t é o valor da média da ia gaussiana na mistura no tempo t e η é uma função

de densidade de probabilidade gaussiana:

η(Xt, µ, Σ) = 1 (2π)n2|Σ| 1 2 e12(Xt−µt) TΣ1(X t−µt), (2.23)

onde o valor de K é limitado ao poder computacional e memória disponível, geralmente K = 3 ou K = 5.

As K distribuições são ordenadas baseadas no valor de fitness wk/σk, em que σ2kI = Σ,

e as primeiras B distribuições são usadas como um modelo de background da cena onde B é estimado como: B = arg min b ( b X j=1 wj > T ). (2.24)

Os pesos das K distribuições no tempo t, wk,t, são ajustados como:

wk,t = (1 − α)wk,t−1+ α(Mk,t), (2.25)

onde α é a taxa de aprendizado e Mk,t é 1 para o modelo correspondido e 0 para os

demais. Os parâmetros σ e µ permanecem o mesmo até que haja uma nova observação, então atualizamos para:

µt= (1 − ρ)µt−1+ ρXt, (2.26)

σt2 = (1 − ρ)σt−12 + ρ(Xt− µt)T(Xt− µt), (2.27)

onde

ρ = αη(Xt|µk, σk). (2.28)

Este método contém dois parâmetros significantes: (i) α, a constante de aprendizado e; (ii) T , um limiar que representa a fração mínima do modelo de background.

KaewTraKulPong-Bowden detectaram incompatibilidades no modelo de Stauffer-Grimson, o modelo leva um certo tempo para atualizar o background, isto pode se tornar inviável em ambientes onde o background limpo estará exposto. Para este problema, os autores propu- seram mudanças nas funções de maximização para adequá-las ao número de estatísticas suficientes (KAEWTRAKULPONG; BOWDEN, 2002).

Em linhas gerais, os modelos produzidos são facilmente adaptáveis à mudanças de iluminação e sombras, cada qual representada por uma distribuição normal (gaussiana).

Modelo de Mistura de Gaussianas de Zivkovi

Zivkovi, em seu trabalho, propôs uma melhora ao modelo de Stauffer-Grimson. O nú- mero necessário de K, estimado nos métodos anteriores, é atribuído automaticamente pelo algoritmo, assim adaptando-se completamente à cena observada. O tempo de processa- mento é reduzido e a segmentação é levemente melhorada (ZIVKOVIC, 2004; ZIVKOVIC; HEIJDEN, 2006).

for a Responsive Audio Art Installation"(GODBEHERE; MATSUKAWA; GOLDBERG, 2012).

O método utiliza alguns frames iniciais para modelar o background. Ele emprega um algoritmo de segmentação probabilística que identifica possíveis objetos do foreground usando inferência bayesiana. As estimativas são adaptativas, observações mais recentes possuem maior peso que antigas observações para acomodar variações de iluminação, por exemplo. Após os frames iniciais de treinamento, uma função de densidade de probabi- lidades é gerada. Os parâmetros desta função são atualizados automaticamente a cada frame e são obtidos por estatística não paramétrica. Costuma-se utilizar muitas filtragens através de operações morfológicas, como abertura e fechamento (veremos na Subseção 2.4.2, para remoção de ruídos no pós-processamento.

The Pixel-Based Adaptive Segmenter – PBAS

Este modelo proposto por Hofmann, Tiefenbacher e Rigoll, segue um paradigma não- paramétrico de modelagem de background, assim, o background é modelado através de um histórico de valores de pixels observados recentemente, a decisão de objetos de fore- ground depende de um limiar de decisão e a atualização do background é baseada em um parâmetro de aprendizagem. O uso desses parâmetros é estendido para uso de variáveis dinâmicas de estado por pixel e para introduzir controles dinâmicos para cada um deles (HOFMANN; TIEFENBACHER; RIGOLL, 2012).

Este método produz resultados próximos ao estado da arte, porém a custos altos de processamento e memória, uma vez que para cada pixel, um limiar particular é criado, é definido um arranjo de N valores observados do mesmo pixel. As operações de atualização da taxa de aprendizado T (Xi) do background e atualização do limiar de decisão R(Xi)

sendo Xi um pixel, são valores separados para cada pixel, especificamente as operações

decorrentes da atualização do limiar de decisão R(Xi) gera um vetor de distâncias de

decisões mínimas D(Xi), aumentando, assim, a complexidade de tempo e memória do

Documentos relacionados