Segmentação de Fundo
Marcelo Gonella
[email protected]
Fundamentos em Computação Gráfica – T2
• Objetivo
Dado um quadro (imagem) de um jogo de futebol, devemos
remover o fundo (gramado) deixando apenas os jogadores.
• Técnicas de Segmentação
Para atingirmos o objetivo proposto usaremos duas técnicas
distintas em conjunto
– Limiarização de Histograma
– Detecção de descontinuidade
Fundamentos em Computação Gráfica – T2
• Limiarização de Histograma
Para entendermos a estratégia é preciso analisar o comportamento
do histograma neste tipo de imagem.
Podemos notar que, existe uma grande concentração de pixels em
uma mesma faixa do histograma. Isto se dá pela grande
quantidade de gramado que aparece na imagem.
Fundamentos em Computação Gráfica – T2
• Limiarização de Histograma
Se substituirmos os pixels neste pico, pela cor branca, estaríamos
atacando diretamente grande parte daqueles convertidos a partir
do gramado. Isso seria uma maneira de tentar remover o fundo.
As linhas vermelhas marcam o
limite. Os pixels entre as linhas
são substituídos pela cor branca
na imagem original.
Fundamentos em Computação Gráfica – T2
• Resultado: Limiarização de Histograma
Fundamentos em Computação Gráfica – T2
• Análise do Resultado
Devido a grande perda de informação no momento em que
convertemos uma imagem com milhões de cores para uma
imagem com 256 tons de cinza (para faremos o histograma), os
resultados não são bons.
Muitas das cores dos jogadores acabam sendo convertidas para as
mesmas cores que os diversos tons do gramado são convertidos.
Desta forma, ficam buracos nos jogadores.
Fundamentos em Computação Gráfica – T2
• Detecção de descontinuidade
Para tentar melhorar os resultados obtidos pela técnica anterior,
implementamos a técnica de detecção de bordas, que em imagens
digitais são levemente borradas. A idéia é aplicar a primeira
derivada no perfil de níveis de cinza.
Esta derivada será nula nas áreas onde o nível de cinza é
constante, positiva na primeira borda e negativa na segunda.
Esta técnica será computada através de um operador local
denominado Operador de Sobel
Fundamentos em Computação Gráfica – T2
• Operador de Sobel
Para implementar o operador de Sobel, pegamos um pixel da
nossa imagem original e analizamos os vizinhos em todas as
direções, obtendo suas intensidades.
As derivadas parciais utilizando Sobel ficam assim:
Gx = (z7 + 2z8 + z9) - (z1 + 2*z2 + z3)
Gy = (z3 + 2z6 + z9) - (z1 + 2*z4 + z7)
Fundamentos em Computação Gráfica – T2
• Cálculo do Gradiente
Calculamos então o gradiente para z5, para a obtenção do próximo
valor deslocamos toda a mascara. Para cada valor encontrado,
verificamos se ele fica abaixo ou acima de determinado valor. Este
valor pode ser, por exemplo 25, que representa 10% do maior
nível de cinza da imagem (255).
Aos pixels que obdecem a esta regra, foram recuperados da
imagem original e escritos na imagem resultado, que já estava
segmentada pelo histograma, fazendo com que as bordas dos
objetos ganhassem mais contorno e definição.
GradF(z5) = abs(gx) + abs(gy)
Fundamentos em Computação Gráfica – T2
• Resultados Obtidos aplicando apenas Sobel
Fundamentos em Computação Gráfica – T2
• Resultados finais: Original (tons de cinza)
Fundamentos em Computação Gráfica – T2
• Resultados finais: limiarização do histograma
Fundamentos em Computação Gráfica – T2
• Resultados finais: limiarização do histograma + Sobel
Fundamentos em Computação Gráfica – T2
• Outros Resultados
Fundamentos em Computação Gráfica – T2
• Outros Resultados
Fundamentos em Computação Gráfica – T2
• Outros Resultados
Fundamentos em Computação Gráfica – T2
• Outros Resultados
Download

Fundamentos em Computação Gráfica – T2 - PUC-Rio