Visão por Computador - Grupo de Engenharia de Computadores
Transcrição
Visão por Computador - Grupo de Engenharia de Computadores
Universidade do Minho Escola de Engenharia Departamento de Informatica Largo do Paco - 4709 BRAGA Codex- PORTUGAL Tel +351-53-604470- Fax +351-53-612954 Vis~ao por Computador Lus Paulo Peixoto dos Santos Texto de Apoio UM-DI-TA-95-02 03/Mar/1995 Vis~ao por Computador Lus Paulo Peixoto dos Santos [email protected] Departamento de Informatica Universidade do Minho Largo do Paco 4709 BRAGA Codex PORTUGAL Tel +351-53-604470 Fax +351-53-612954 Texto de Apoio UM-DI-TA-95-02 03/Mar/1995 Indice 1 Processamento de Imagem versus Vis~ao por Computador 1 2 Caractersticas de uma imagem digital 2 2.1 Problemas do processo de digitalizac~ao : : : : : : : : : : : : : : : : : : : : 3 3 Arquitectura para vis~ao por computador 4 4 Brilho e contraste 4 5 Histograma 5 5.1 Equalizac~ao do histograma : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 Convoluc~ao 7 8 6.1 Filtros passa-baixo (smoothing lters) : : : : : : : : : : : : : : : : : : : : : 10 6.2 Filtros passa-alto (edge detection) : : : : : : : : : : : : : : : : : : : : : : : 12 6.3 Filtros n~ao-lineares : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 14 6.4 Outros metodos : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 15 7 Segmentac~ao 16 7.1 Binarizaca~o : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 16 7.2 Binarizaca~o adaptativa : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 18 7.3 Operadores morfologicos : : : : : : : : : : : : : : : : : : : : : : : : : : : : 18 7.4 Textura : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 20 7.5 Segmentac~ao baseada em regi~oes : : : : : : : : : : : : : : : : : : : : : : : : 23 7.6 Movimento : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 24 8 Detecc~ao de formas 27 8.1 Template matching : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28 8.2 A transformada de Hough : : : : : : : : : : : : : : : : : : : : : : : : : : : 29 i 9 Descric~ao de formas 31 9.1 Chain code : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 31 9.2 Assinaturas : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 32 9.3 Aproximaca~o poligonial : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 32 9.4 Esqueleto : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 34 Refer^encias bibliogracas 35 ii Lista de Figuras 1 Nveis de processamento : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2 Arquitectura para vis~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 3 Histogramas tpicos : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 4 Equalizac~ao do histograma : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 5 Imagem nxn : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9 6 Detecc~ao de contornos : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 10 7 Aplicac~ao da media : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 8 Magnitude do gradiente (Sobel) : : : : : : : : : : : : : : : : : : : : : : : : 13 9 Calculo do Laplaciano : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 13 10 Aplicac~ao da mediana : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 15 11 Histograma bimodal : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 17 12 Histograma n-modal : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 17 13 Eros~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 19 14 Operador P (d ) : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 21 15 Partic~oes do espectro : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 23 16 Region splitting & merging : : : : : : : : : : : : : : : : : : : : : : : : : : : 25 17 Objecto em movimento : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 25 18 Diferencas acumuladas : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 26 19 AADI, PADI e NADI : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 27 20 Template matching : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 28 21 Pir^amide de resoluc~ao : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 29 22 Coordenadas polares : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 23 Transformada de Hough : : : : : : : : : : : : : : : : : : : : : : : : : : : : 30 24 Identicadores para chain codes : : : : : : : : : : : : : : : : : : : : : : : : 31 25 Chain codes : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 32 iii 26 Assinatura em func~ao da dist^ancia : : : : : : : : : : : : : : : : : : : : : : 33 27 Assinatura em func~ao do ^angulo : : : : : : : : : : : : : : : : : : : : : : : : 33 28 Aproximac~ao poligonial : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 33 29 Aproximac~ao poligonial com grande precis~ao : : : : : : : : : : : : : : : : : 34 30 Esqueletos de varias regi~oes : : : : : : : : : : : : : : : : : : : : : : : : : : 35 iv ~ POR COMPUTADOR 1 PROCESSAMENTO DE IMAGEM VERSUS VISAO 1 1 Processamento de Imagem versus Vis~ao por Computador O interesse no processamento de imagens digitais surge no a^mbito de duas areas de aplicac~ao: melhoria do aspecto da imagem para observac~ao humana e processamento da imagem para percepca~o autonoma da maquina. Estas duas areas n~ao se excluem mutuamente, alias interceptam-se em muitos pontos. Para extrair informac~ao sobre a localizac~ao de um objecto numa imagem, por exemplo, e muitas vezes necessario melhorar o aspecto dessa imagem, retirando o rudo e melhorando o contraste. Por processamento de imagem designam-se as tecnicas que permitem melhorar o aspecto da imagem. Estas tecnicas t^em como caracterstica receberem como input uma imagem, e gerarem como output uma outra imagem, que resulta da primeira mas que sofreu algumas alterac~oes. Vis~ao por computador designa a ci^encia que extrai, de forma automatica, informac~ao da imagem para percepc~ao autonoma da maquina. Exemplos de aplicac~oes neste campo s~ao o reconhecimento de caracteres, controlo de robots industriais, localizac~ao de objectos em movimento, etc. As tecnicas de vis~ao por computador recebem como input uma imagem e/ou estruturas de dados e geram outras estruturas de dados que representam alguma(s) caracterstica(s) da imagem. Uma imagem digitalizada contem uma grande quantidade de informac~ao: \Uma imagem vale por mil palavras" Os algoritmos de processamento de imagem lidam com toda esta informac~ao, sendo portanto bastante pesados. Os algoritmos de vis~ao por computador lidam com estruturas de dados abstractas que representam caractersticas da imagem (localizac~ao de objectos, contornos de objectos, texturas, etc.). A quantidade de informac~ao a processar e bastante menor. Os metodos que lidam com toda a imagem e geram outra imagem (como a remoc~ao de rudos, por exemplo) s~ao classicados de baixo nvel. Os metodos que recebem como input uma imagem e geram uma estrutura de dados que representa alguma caracterstica dessa imagem (como a descric~ao do contorno de um objecto) s~ao classicados de nvel intermedio. Os metodos que lidam apenas com estruturas de dados abstractas e geram outras estruturas de dados ou tomam decis~oes baseados no seu input s~ao classicados de alto nvel. A medida que aumenta o nvel, diminui a quantidade de dados a processar mas aumenta a complexidade do algoritmo (g. 1). 2 CARACTERSTICAS DE UMA IMAGEM DIGITAL 2 Alto Nivel Complexidade Informacao Nivel Intermedio Baixo Nivel Figura 1: Nveis de processamento 2 Caractersticas de uma imagem digital Uma imagem e uma func~ao bidimensional f (x y) da intensidade da luz, onde x e y representam as coordenadas espaciais (localizac~ao) de um ponto na imagem e f (x y) representa o brilho, ou a cor, da imagem nesse ponto. Uma imagem pode ser vista como tridimensional, com o terceiro eixo representando o brilho da imagem. Assim os pontos mais brilhantes s~ao visualizados como sendo mais altos, enquanto os pontos mais escuros aparecem como sendo mais baixos. Zonas da imagem com grandes variac~oes no brilho (contornos dos objectos, por exemplo) s~ao visualizadas como planos inclinados. Zonas com um brilho constante apresentam-se como planas, lembrando plancies ou planaltos, dependendo do seu brilho. Zonas com muito rudo apresentam picos de altura aleatoria e distribudos aleatoriamente. Uma imagem digitalizada consiste numa matriz bidimensional de inteiros que representam o brilho, ou a cor, de cada ponto da cena. Cada ponto desta matriz e normalmente designado por 'pixel', o que corresponde a abreviatura de picture element. O processo de digitalizaca~o exige que sejam tomadas decis~oes relativamente ao numero de pontos em que a imagem e amostrada (dimens~ao da imagem) e o numero de diferentes tons que cada ponto pode tomar (tamanho de cada elemento da matriz). Como os computadores s~ao maquinas binarias e vantajoso que estas quantidades sejam pot^encias de dois. Valores tpicos para a dimens~ao da imagem s~ao 256x256, 512x512, 1024x1024. A dimens~ao de cada elemento da matriz, isto e, cada ponto da imagem, determina o numero de diferentes brilhos, ou cores, que cada ponto pode apresentar. As imagens digitalizadas em true color t^em 24 bits para cada ponto. Estes 24 bits est~ao subdivididos em 3 bytes, cada um representando a quantidade de vermelho, verde e azul que devem ser combinadas para obter a cor desejada. Este sistema e designado por RGB. 2 CARACTERSTICAS DE UMA IMAGEM DIGITAL 3 As imagens monocromaticas n~ao t^em cores, mas sim tons de cinzento. O valor 0 representa preto (aus^encia de brilho), o maior valor possvel representa branco e os valores intermedios representam os varios tons de cinzento. E vulgar as imagens monocromaticas apresentarem 256 tons de cinzento, sendo necessario 1 byte para representar cada pixel. Como a imagem digital e uma aproximac~ao a uma imagem contnua e natural interrogarmonos sobre qual a dimens~ao que a matriz digital deve ter e quantas cores ou tons de cinzento s~ao necessarios para obter uma boa aproximac~ao. Por resoluc~ao entende-se o grau de discernimento de detalhes que a imagem apresenta. A resoluc~ao depende da dimens~ao da imagem (no de linhas e colunas) e do numero de tons que esta apresenta. Quanto maiores forem estes par^ametros, maior e a qualidade da imagem digital. Infelizmente aumenta tambem a quantidade de informac~ao a armazenar e, consequentemente, o poder de computac~ao necessario para a processar. Quando a imagem se destina a visualizac~ao humana a resoluca~o n~ao deve ir alem daquilo que o olho humano e capaz de ver. Este e limitado no numero de cores e no tamanho dos pormenores que consegue distinguir. E difcil denir o que e uma boa imagem, pois os requerimentos de qualidade variam de aplicac~ao para aplicac~ao. 2.1 Problemas do processo de digitalizac~ao Numa c^amera, a luz proveniente de uma cena tridimensional e focada, atraves das lentes, numa superfcie bidimensional. A luz e ent~ao amostrada numa grelha de sensores distribudos uniformemente nesta superfcie. A imagem digital n~ao e mais do que uma matriz bidimensional de valores inteiros que representam a intensidade da luz em cada um destes pontos. A imagem digital n~ao e perfeita, sendo varios os factores que podem contribuir para a sua imperfeic~ao: Intervalo de amplitudes suportado pelos sensores Intervalo espectral suportado pelos sensores Tempo de amostragem Desfasamento temporal entre os sensores Erros de quanticac~ao O sinal digital n~ao pode conter tanta informac~ao como o sinal analogico, devido a sua natureza discreta. Os erros de quanticac~ao s~ao portanto inevitaveis. As altas frequ^encias do sinal analogico n~ao podem ser representadas se est~ao acima do limite de Nyquist, que e metade da frequ^encia de amostragem. Teoricamente, a frequ^encia de amostragem tem que ser pelo menos o dobro da mais alta frequ^encia que existir no sinal analogico. Na pratica, isto aumenta a resoluc~ao do sinal digital, pelo que a soluc~ao mais comum e ltrar as frequ^encias acima do limite de Nyquist. Quando estas frequ^encias n~ao s~ao removidas (ltradas) surge o efeito designado como aliasing. ~ POR COMPUTADOR 3 ARQUITECTURA PARA VISAO 4 3 Arquitectura para vis~ao por computador CAMERA DIGITALIZADOR PRE-PROC FRAME DISCO MONITOR STORE SISTEMA DE COMPUTACAO CONSOLA Figura 2: Arquitectura para vis~ao A gura 2 apresenta um sistema de processamento de imagem generico. A placa digitalizadora (frame grabber) e responsavel por converter a imagem analogica para digital. A frame store e uma zona de memoria onde a imagem e mantida e pode ser acedida pelos diversos modulos. O pre-processador e responsavel pelas operac~oes de baixo nvel, como alterac~ao do brilho e contraste, convoluc~ao, calculo de transformadas, etc. Este pode ser um processador digital de sinal (DSP), uma maquina tipo SIMD ou um processador vectorial. O sistema de computac~ao e responsavel por operac~oes de alto nvel. Para que seja possvel obter resultados em tempo real esta maquina deve ter um grande poder de processamento. O exemplo mais comum s~ao maquinas de memoria distribuda com um grande numero de processadores. A maquina existente na Universidade do Minho e baseada em Transputers. No entanto, estes processadores est~ao bastante ultrapassados como nodos de computac~ao. 4 Brilho e contraste Muitas tecnicas de processamento de imagem s~ao baseadas na manipulac~ao de propriedades estatsticas das imagens. O brilho e o contraste s~ao exemplos destas propriedades. O brilho pode ser calculado como o valor medio de todos os pixels de uma imagem. Se v ij e o brilho do pixel da linha i, coluna j ent~ao o brilho da imagem v e: X v = n1 v ij ij onde n representa o numero de pixels. ( ( ) O desvio padr~ao, , da uma medida do contraste: v u1 X t (v ij =u n ij ( ) ; v )2 ) 5 HISTOGRAMA 5 Esta express~ao tem o inconveniente de exigir 2 passagens pela imagem, pois a media tem que ser calculada primeiro. No entanto pode ser reescrita da seguinte forma: v u1 X 1 X t =u v ; ( v ij ) ij n ij n ij 2 ( ) ( 2 ) 2 E possvel alterar os valores dos pixels de forma a alterar o brilho e contraste da imagem para valores desejados. Para tal e necessario calcular 2 grandezas: g (ganho) e b (bias). Estas s~ao baseadas no brilho pretendido (vnew ), contraste pretendido (new ), brilho anterior (v) e contraste anterior(). g = b = vnew ; gv , new Os novos valores dos pixels s~ao dados por v ij = gv ij + b ( )out ( ) O metodo apresentado tem o inconveniente de calcular o ganho e o bias em toda a imagem, n~ao tomando em considerac~ao as caractersticas locais de cada regi~ao da imagem. Uma alternativa com melhores resultados consiste em calcular ganhos e bias diferentes para cada ponto da imagem, baseados na informac~ao existente numa vizinhanca m m de cada pixel. Para cada vizinhanca m m do ponto (i j ) s~ao calculadas a media e desvio padr~ao, v ij e ij , respectivamente. O ganho e bias para cada ponto s~ao dados por ( ( ) ) g ij = ( ( ) ij b ij = vnew ; g ij v ij , new ) ( ) ( O novo valor do pixel (i j ) e dado por v ij = g ij v ij + b ij ( )out ( ) ( ) ( ) ( ) ) Este metodo permite obter melhores resultados mas exige mais tempo de processamento pois para cada pixel t^em que ser calculados varias grandezas. Quanto maior e a vizinhanca considerada, mais pesado se torna o problema. E , no entanto, um optimo algoritmo para paralelizar, usando maquinas MIMD ou SIMD, podendo facilmente ser decomposto no domnio dos dados. O conceito de vizinhanca levanta alguns problemas nas margens da imagem. Para estes pontos n~ao e possvel calcular v e pois a vizinhanca m m n~ao existe. 5 Histograma O histograma de uma imagem indica o numero de pontos que existem para cada tom de cinzento, ou cor, possveis nessa imagem. Por exemplo, se numa imagem s~ao possveis 4 tons de cinzento, variando de 0 a 3, e a imagem tem 16 pontos 5 HISTOGRAMA 6 4 2 8 2 e um histograma h(v) dessa imagem indicando que 4 pontos s~ao do tom 0, 2 do tom 1 e assim sucessivamente. O histograma normalizado H (v) e dado por H (v) = h(nv) em que n e o numero de pontos na imagem. Este histograma e obtido dividindo cada elemento de h(v) por n. 0.25 0.125 0.5 0.125 Cada elemento indica a probabilidade de um pixel da imagem ter um determinado tom. Neste exemplo, a probabilidade de um pixel ter o tom 2 e 0:5. O histograma e uma func~ao de distribuica~o. O histograma da uma boa representac~ao graca do brilho e contraste associados a uma imagem (g. 3). Imagem escura e com pouco contraste Imagem com bom contraste global Figura 3: Histogramas tpicos O histograma acumulado Hacc(v) e dado por v X Hacc (v) = H (vi) i=0 Cada elemento deste histograma indica a probabilidade de um pixel ter um valor menor ou igual a um determinado tom. No nosso exemplo temos Hacc igual a 0.25 0.375 0.875 1.0 A probabilidade de um pixel ter um tom menor ou igual a 2 e 0:875. 5 HISTOGRAMA 7 5.1 Equalizac~ao do histograma Esta tecnica permite aumentar, de uma forma automatica, o contraste duma imagem. Uma imagem apresenta um bom contraste global quando os pontos se encontram distribudos uniformemente pelos varios tons possveis. Se todos os pontos t^em valores concentrados numa pequena faixa do intervalo de tons o contraste e baixo. A equalizac~ao do histograma consiste em distribuir os valores dos pixels pelo intervalo de tons disponvel (g. 4). EQUALIZACAO Figura 4: Equalizac~ao do histograma ALGORITMO 1. 2. 3. 4. 5. Calcular histograma Calcular histograma normalizado Calcular histograma acumulado Multiplicar histograma acumulado pelo maior tom possvel Usar a tabela anterior como func~ao de transfer^encia para os valores dos pixels EXEMPLO Imagem de 4x4 com 8 tons a variar entre 0 e 7: Imagem original 0 0 1 2 Histograma Histograma normalizado Histograma acumulado Func~ao de transfer^encia 4 6 6 0 0 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 0.25 0.375 0.375 0 0 0 0 0 0.25 0.625 1.0 1.0 1.0 1.0 1.0 1.0 2 4 7 7 7 7 7 7 ~ 6 CONVOLUCAO Imagem nal 8 2 2 4 7 2 2 4 4 4 4 4 7 7 7 7 7 O metodo descrito sofre dos inconvenientes de todos os metodos que apenas tomam em conta informaca~o global, n~ao considerando as caractersticas locais de cada regi~ao da imagem. A equalizac~ao, tal como foi descrita, calcula a func~ao de transfer^encia baseada no histograma de toda a imagem e usa esta func~ao para todos os pixels. No entanto, diferentes regi~oes da imagem podem apresentar brilhos e contrastes muito diferentes. Para obter melhores resultados a equalizac~ao deve ser local. Para cada pixel (i j ) calcula-se o histograma da sua vizinhanca m m. Baseado nesta histograma e calculada uma func~ao de transfer^encia, que e usada apenas para o ponto (i j ). Esta operac~ao repete-se para todos os pontos da imagem, excepto para as margens pois para estes pontos a vizinhanca m m n~ao existe. Esta tecnica e muito mais pesada mas permite obter melhores resultados. O algoritmo pode sofrer algumas alterac~oes para diminuir o poder de processamento necessario: 1. Em vez de calcular o histograma para cada vizinhanca centrada no ponto (i j ) e possvel dividir a imagem em k regi~oes n~ao sobrepostas, calcular o histograma e func~ao de transfer^encia para cada regi~ao e aplicar esta func~ao a todos os pontos daquela regi~ao. Este metodo produz, frequentemente, um efeito indesejado de tabuleiro de xadrez. 2. De cada vez que o algoritmo avanca do ponto (i j ) para o ponto (i j + 1) apenas uma coluna e acrescentada a nova vizinhanca e uma coluna e removida da antiga vizinhanca. E possvel alterar o histograma ja calculado de modo a corresponder a nova vizinhanca, sem ter que o recalcular inteiramente. Este algoritmo e um bom candidato a paralelizac~ao com decomposic~ao no domnio dos dados, devido a grande localidade exibida. 6 Convoluc~ao Em processamento de sinal, um ltro linear e caracterizado pela sua resposta a um impulso. A resposta g(x) de um ltro linear h(x) a um sinal contnuo unidimensional f (x) e dada pelo integral da convoluc~ao : Z g(x) = f (t)h(x ; t)dt As imagens digitais s~ao bidimensionais e discretas, logo a convoluc~ao e dada por um so- ~ 6 CONVOLUCAO 9 matorio duplo g ij = ( ) iX +w jX +v k=i;w l=j ;v f kl h i;kj;l ( ) ( ) onde w, v s~ao os limites do ltro em cada dimens~ao. Um ltro e aproximado por uma matriz que e aplicada a cada ponto da imagem. 2 3 h h h 64 h h h 75 Filtro 3x3 h h h 11 12 13 21 22 23 31 32 33 0 1 2 3 4 5 ... ... ... n 0 1 2 3 4 5 n Figura 5: Imagem nxn O resultado da aplicac~ao deste ltro ao ponto (2,2) da imagem representada na gura 5 e dado por r = h i h i 22 11 23 + h12 i(12) + h13 i(13) + h21 i(21) + h22 i(22) + (23) + h31 i(31) + h32 i(32) + h33 i(33) (1 1) Para obter a imagem nal o ltro deve ser aplicado a todos os pontos da imagem (excepto aos da fronteira, pois para estes n~ao existe vizinhanca). Quanto maior f^or a dimens~ao do ltro, maior o tempo de processamento e mais pontos de fronteira s~ao perdidos. A convoluc~ao permite ltrar imagens, retirando-lhes algumas frequ^encias espaciais, dependendo do ltro que e aplicado. Por frequ^encia espacial entende-se o modo como as alterac~oes nos valores dos pixels est~ao distribudas ao longo da imagem. Zonas que apresentam uma cor constante t^em baixas frequ^encias (n~ao ha variac~oes), zonas com grandes mudancas nos tons dos pixels t^em grandes frequ^encias. Portanto uma zona da imagem que represente um objecto com uma so cor e sem rudo tera frequ^encia zero, enquanto as zonas com rudo ou mudancas bruscas de tons (como os contornos dos objectos) t^em altas frequ^encias. Um ltro passa-baixo caracteriza-se por remover as altas frequ^encias, logo remove o rudo e suaviza os contornos. A suavizaca~o dos contornos e, normalmente, um efeito prejudicial, pois diculta a detecc~ao dos mesmos em passos posteriores da aplicac~ao. Estes ltros ~ 6 CONVOLUCAO 10 s~ao normalmente designados por smoothing lters devido precisamente a este efeito de suavizac~ao da imagem. Um ltro passa-alto remove as baixas frequ^encias logo acentua o rudo e os contornos, removendo informac~ao sobre as regi~oes constantes da imagem. Estes ltros, regra geral, s~ao extremamente sensveis ao rudo. E pratica comum, quando da detecc~ao de contornos, usar, num primeiro passo, um ltro passa-baixo para remover o rudo, seguido de um ltro passa-alto para detectar os contornos. Imagem original 2 objectos + ruido Corte lateral Aplicacao de filtro passa-baixo Aplicacao de filtro passa-alto CONTORNOS Figura 6: Detecc~ao de contornos Considere a gura 6. O ltro passa-baixo remove o rudo e suaviza os contornos. O ltro passa-alto aplicado a seguir remove a informac~ao sobre as zonas de tom constante da imagem, realcando aquelas onde se vericam variac~oes, que correspondem precisamente aos contornos. Note que, como estes ltros s~ao aproximac~oes discretas ao ltro ideal contnuo, n~ao s~ao perfeitos. Este efeito nota-se essencialmente pela quantidade de rudo (altas frequ^encias) que o ltro passa-baixo deixa passar. Note tambem que o efeito de suavizac~ao n~ao e suciente para que o ltro passa-alto deixe de detectar os contornos. 6.1 Filtros passa-baixo (smoothing lters) Os ltros passa-baixo removem rudo e atenuam os contornos. Esta atenuac~ao, ou suavizac~ao, dos contornos faz com que as imagens ltradas parecam esbatidas, da designaremse como smoothing lters. Um ltro passa-baixo extremamente simples e a media. Esta consiste em atribuir a um ponto o valor da media de todos os pontos na sua vizinhanca m m. Se o valor deste ponto e muito diferente dos seus vizinhos essa diferenca e atenuada. ~ 6 CONVOLUCAO 2 Media 3 x 3 64 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 1 9 11 3 75 Este ltro exige 9 multiplicaco~es e 8 adic~oes para cada ponto, no entanto apresenta a caracterstica de ser separavel, obtendo-se o mesmo efeito com 2 convoluc~oes: 8 > < hx = > : 1 3 1 3 1 3 9 > = > hy = n 1 3 1 3 1 3 o com apenas 6 multiplicac~oes e 5 adic~oes. (a) (b) Figura 7: Media 5x5. a) Imagem original. b) Imagem ltrada O equivalente digital do ltro Gaussiano e tambem muito usado. Uma superfcie Gaussiana e dada por # " 1 x + y exp ; 2 G xy = p 2 2 ( ) 2 2 O valor de controla o grau de smoothing e a dimens~ao do ltro. Com = 0:3 obtem-se 2 3 0:25 0:43 0:25 64 0:43 0:73 0:43 75 0:25 0:43 0:25 Este ltro tambem e separavel, tendo-se G(xy) = Gx Gy p 2 ~ 6 CONVOLUCAO 12 6.2 Filtros passa-alto (edge detection) Estes ltros removem as baixas frequ^encias, realcando o rudo e os contornos dos objectos. S~ao normalmente usados para detectar ou realcar contornos de objectos. Os contornos correspondem a variac~oes nos tons dos pixels, logo e intuitivo usar gradientes para medir estas variac~oes. O gradiente rf de uma regi~ao f , e um vector com a magnitude e direcc~ao da maior variac~ao em f . O gradiente deve ser calculado em duas direcc~oes perpendiculares. As componenetes x e y do gradiente podem ser obtidas com 2 convoluc~oes: gx = hx f gy = hy f A magnitude do gradiente e q G = gx + gy ! = arctan ggy x 2 e a direcc~ao 2 Existem varias aproximac~oes digitais ao gradiente gy = ( ;1 ) gx = 1 n ;1 1 o Os vectores apresentados t^em o inconveniente de o gradiente car centrado num ponto inexistente da imagem. Da adoptar-se normalmente: Geral Sobel Prewitt Roberts 8 9 > < ;1 > = gy = > 0 > : 1 0 ;1 ;2 gy = B @ 0 0 0 1 2 ;1 ;1 B gy = @ 0 0 1 1! gy = ;01 10 1 0 C A 1 1 ;1 0 C A 1 ;1 gx = n ;1 0 1 0 ;1 0 1 gx = B @ ;2 0 2 0 ;1 0 1 ;1 0 1 B gx = @ ;1 0 1 ;1 0 !1 gx = 10 ;01 o 1 CA 1 CA Os ltros de Roberts t^em tambem a desvantagem de o gradiente car centrado num ponto inexistente. ~ 6 CONVOLUCAO 13 Uma imagem f xy que contem apenas os contornos mais fortes de uma outra imagem original pode ser obtida com ( ( G xy T f xy = 255 0 ( G xy > T onde G xy e a magnitude do gradiente centrado em (x,y) e T e um limite escolhido a partir do qual o contorno e considerado forte. ( ) ( ( ) ( ) ( ) ) (a) (b) Figura 8: Gradiente: Sobel. a) Imagem original. b) Imagem ltrada Aproximac~ao digital ao Laplaciano O Laplaciano e a 2a derivada de uma func~ao f xy . Como 2a derivada n~ao da informac~ao sobre a direcc~ao dos contornos, mas indica se um determinado ponto esta no lado claro ou no lado escuro de um contorno, podendo ser usado para determinar se um determinado ponto pertence ou n~ao a um objecto (gura 9). Tem ainda a vantagem de ser calculavel numa unica passagem. ( ) Imagem Gradiente Laplaciano Figura 9: Calculo do Laplaciano Conclus~oes sobre o Laplaciano: Em zonas planas e nulo ~ 6 CONVOLUCAO 14 Cruza o zero, mudando de sinal, nos pontos em que o contorno e mais forte E positivo nas zonas do contorno que est~ao na parte mais clara da imagem E negativo nas zonas do contorno que est~ao na parte mais escura da imagem. O Laplaciano tem o inconveniente de ser extremamente sensvel ao rudo. As aproximaco~es digitais ao Laplaciano s~ao 2 3 0 ;1 0 64 ;1 4 ;1 75 para uma vizinhanca 4 0 ;1 0 2 3 ;1 ;1 ;1 64 ;1 8 ;1 75 para uma vizinhanca 8 ;1 ;1 ;1 E frequentemente usada uma combinac~ao do Laplaciano com o Gaussiano para controlar o tamanho dos objectos cujos contornos se pretende detectar. Os contornos dos objectos mais pequenos s~ao suavizados pelo Gaussiano e n~ao s~ao detectados pelo Laplaciano. A combinac~ao dos dois e dada por " # " # 1 x + y x + y r G xy = exp ; 2 2 2 ; 2 2 ( ) 4 2 2 2 2 2 Quanto mais pequeno for mais sensvel e o ltro a pequenos objectos e a rudo. O Laplaciano, tal como apresentado, e usado para detectar contornos. Esta tecnica e tambem usada frequentemente para realcar contornos (edge enhancement). A ideia e somar o resultado do Laplaciano a imagem original. O ltro digital usado e 2 3 0 ;1 0 64 ;1 5 ;1 75 para uma vizinhanca 4 0 ;1 0 2 3 ;1 ;1 ;1 64 ;1 9 ;1 75 para uma vizinhanca 8 ;1 ;1 ;1 6.3 Filtros n~ao-lineares Os ltros discutidos dizem-se lineares porque e aplicavel o teorema da convoluc~ao. Existem alguns ltros passa-baixo n~ao-lineares que realizam um bom trabalho na remoc~ao de rudo. A moda consiste em escolher para o pixel central o valor que ocorre mais vezes na sua vizinhanca m m. ~ 6 CONVOLUCAO 15 Imaginemos uma janela 3x3 centrada num ponto 10 10 11 10 12 11 10 12 12 Aplicando a moda o ponto central toma o valor 10 pois este e o que ocorre mais vezes naquela vizinhanca. A mediana consiste em ordenar, por ordem crescente, todos os pontos da vizinhanca m m do ponto central, e escolher para novo valor deste ponto o valor que ca no meio desta sequ^encia ordenada. No exemplo anterior teramos Sequ^encia ordenada f10, 10, 10, 10, 11, 11, 12, 12, 12g logo o resultado da mediana e 11. Este metodo elimina ecazmente o rudo, quando este consiste em picos fortes e isolados, e n~ao suaviza os contornos, sendo portanto mais ecaz do que a media (gura 10). Tem o inconveniente de exigir a ordenac~ao dos valores dos tons exigindo maior poder de computac~ao. Isto agrava-se com o aumento do tamanho da vizinhanca. (a) (b) Figura 10: Filtragem com mediana. a) Imagem binarizada. b) Imagem ltrada 6.4 Outros metodos Um metodo vulgarmente utilizado para eliminar rudo aleatorio numa sequ^encia de imagens e utilizar, n~ao uma imagem, mas a media das ultimas k imagens. Como o rudo e aleatorio este cara diludo pela media de varias imagens iguais no seu conteudo mas com rudo em pontos diferentes. Este metodo exige que se disponha de uma sequ^encia de imagens da mesma cena, n~ao serve para processamento em tempo real (em que nenhuma frame pode ser despedicada) e n~ao tolera variaco~es bruscas na imagem. Com a detecc~ao de contornos pretende-se identicar todos os pontos que pertencem ao contorno de um determinado objecto. Na pratica, os contornos detectados quase ~ 7 SEGMENTACAO 16 nunca s~ao contnuos pois o rudo e a iluminac~ao n~ao-uniforme das cenas causam irregularidades no brilho da imagem. Os algoritmos de detecc~ao de contornos s~ao, por isso, normalmente seguidos de tecnicas de ligac~ao dos contornos. Um exemplo e a transformada de Hough (a estudar mais a frente) que permite detectar se varios pontos formam guras geometricas como rectas, crculos, elipses, etc. Uma outra possibilidade e fazer uma analise local das caractersticas dos pixels identicados como pertencendo a contornos. Todos os pontos que numa determinada vizinhanca apresentem uma magnitude e direcc~ao do gradiente similares s~ao unidos e considerados como fazendo parte do mesmo contorno. Para vericar a similaridade da magnitude e direcca~o dos gradientes utilizam-se as express~oes G xy ; G x y T xy ; x y A ( ) ( ( ) ( 0 0 0 ) 0) onde A e T s~ao limites de toler^ancia previamente escolhidos. 7 Segmentac~ao A segmentac~ao e o processo de divis~ao da imagem nas suas partes constituintes (objectos). Este e o primeiro passo no processo de encontrar, reconhecer ou contar objectos numa cena. Esta fase n~ao inclui a detecc~ao ou reconhecimento de formas particulares mas apenas a divis~ao da imagem em regi~oes distintas. A segmentac~ao e um dos elementos mais importantes na analise automatica de de imagens porque consiste na extracc~ao de objectos, ou outras entidades, para processamento posterior, tal como reconhecimento ou descric~ao. Os algoritmos de segmentac~ao baseiam-se geralmente em uma de duas propriedades basicas das imagens: descontinuidade e similaridade. Na primeira categoria a imagem e segmentada em pontos onde o nvel de cinzento sofre alterac~oes bruscas. As principais areas de aplicac~ao s~ao a detecc~ao de pontos isolados, linhas e contornos. As principais abordagens na segunda categoria (similaridade) s~ao a binarizac~ao (thresholding), region growing e region splitting & merging. O nosso estudo vai basear-se essencialmente nesta categoria. A similaridade entre dois pontos (ou duas regi~oes) duma imagem e baseada em propriedades como o tom ou a textura. A segmentac~ao pode ser aplicada a uma unica imagem ou a uma sequ^encia de imagens. Neste ultimo caso o movimento pode ser utilizado como um dado que permite aumentar o desempenho dos algoritmos. 7.1 Binarizac~ao A binarizac~ao de uma imagem (thresholding) e uma das tecnicas mais importantes em segmentac~ao. Basicamente pretende-se converter uma imagem com varios tons numa outra apenas com preto e branco. A imagem binarizada contem menos informac~ao (sendo portanto mais facil de processar) e contem objectos ja segmentados. Imagine uma imagem com o histograma apresentado na gura 11. ~ 7 SEGMENTACAO 17 T Figura 11: Histograma bimodal Este corresponde a uma imagem composta por objectos claros num fundo escuro. Um metodo obvio para extrair os objectos consiste em atribuir a todos os pixels com um valor superior a um limite T o valor branco e a todos os pixels com valor inferior a T o valor preto. ( ( f xy > T b xy = 255 0 ( f xy T ( ) ( ) ( ) Esta tecnica pode ser generalizada e englobar varias classes de objectos classicados de acordo com o seu brilho. O histograma da gura 12 corresponde a uma imagem com fundo escuro, alguns objectos mais brilhantes e objectos extremamente brilhantes. T1 T2 Figura 12: Histograma n-modal Podemos escrever uma func~ao de thresholding multinvel que considere as varias classes de objectos. b xy ( ) 8 > < 255 = > 128 :0 ( ( ( f xy T f xy T f xy < T ( ) 2 ( ) 1 ( ) 1 Claro que esta func~ao pode ser estendida para considerar um numero arbitrario de nveis. Este threshold multinvel e geralmente menos avel do que a binarizac~ao devido a diculdade em determinar os varios Ti que efectivamente isolam regi~oes de interesse. Este genero de problemas, quando resolvidos com thresholding, s~ao normalmente processados usando tecnicas de binarizac~ao adaptativa, que estudaremos posteriormente. A selecc~ao do valor de T que proporciona a melhor segmentac~ao e o principal problema da binarizac~ao. O erro neste processo e dado pela adic~ao do numero de pontos pertencentes ~ 7 SEGMENTACAO 18 ao fundo que foram classicados como pertencentes ao objecto com o numero de pontos pertencentes ao objecto que foram classicados como pertencendo ao fundo. O processo de escolha do valor de T passa normalmente por varias tentativas. No entanto, quando este processo n~ao pode ser interactivo, tem que ser encontrado um metodo automatico. O histograma de imagens reais raramente apresenta 2 picos distintos e disjuntos associados ao fundo e aos objectos. Os valores possveis para estas entidades sobrep~oem-se devido a: Iluminac~ao irregular ao longo da cena (sombra, por exemplo) N~ao uniformidade nos tons do fundo e objectos Presenca de varios objectos diferentes O valor de T pode ser calculado em func~ao do brilho v e contraste da imagem T = k + v Uma possibilidade e o estudo analtico do histograma para identicar mnimos ou pontos onde a sua caracterstica muda signicativamente. Para um estudo mais aprofundado consultar Gonzalez, p. 354: : : 368]. 7.2 Binarizac~ao adaptativa A binarizac~ao global n~ao considera variac~oes locais ao longo da imagem. A binarizac~ao adaptativa e uma alternativa que calcula o valor de T para cada ponto individualmente, de acordo com a media e desvio padr~ao da sua vizinhanca m m. t ij = k ij + v ij ( ( f xy t ij b xy = 225 0 ( f xy < t ij ( ( ) ) ( ) ( ) ( ) ( ) ( ) ( ) Esta tecnica e, obviamente, mais pesada que a binarizac~ao global. 7.3 Operadores morfologicos Apos a binarizac~ao os objectos encontrados podem necessitar de processamento adicional para retirar, ou reduzir, irregularidades nos contornos, eliminar buracos no interior e remover rudo. Isto e conseguido por operac~oes conhecidas como eros~ao (thinning) e dilatac~ao (growing). Estes s~ao 2 operadores conhecidos como morfologicos porque alteram a forma das regioes. Para erodir uma regi~ao todos os pontos pertencentes ao seu contorno s~ao alterados para passarem a pertencer ao fundo. Remove-se assim uma camada de pontos ao objecto. Para dilatar uma regiao procede-se ao contrario, isto e, acrescenta-se uma camada de pontos ao contorno do objecto. ~ 7 SEGMENTACAO 19 A eros~ao tem a vantagem de remover sali^encias e remover pequenas regi~oes isoladas que poderao ser rudo. Tem no entanto o inconveniente de aumentar buracos no interior dos objectos, reentr^ancias nos seus contornos e de poder separar suas partes do mesmo objecto que se encontrem unidas por linhas nas. (a) (b) (c) (d) Figura 13: Eros~ao. a) Imagem binarizada. b) Imagem ltrada (mediana) c) Imagem dilatada d) Imagem erodida A dilatac~ao tem a vantagem de eliminar reentr^ancias nos contornos e buracos no interior dos objectos. Tem as desvantagens de realcar sali^encias, aumentar pequenas regi~oes que poder~ao ser rudo e ligar dois objectos distintos que estejam muito proximos. Para reduzir estas desvantagens usa-se normalmente uma qualquer combinac~ao destas 2 tecnicas. Se o objectivo e erodir um objecto e possvel dilata-lo primeiro para eliminar pequenas reentr^ancias ou buracos e, seguidamente, erodi-lo duas vezes seguidas (gura 13). Existem varios algoritmos para estas tecnicas. Uma possibilidade, para a eros~ao, e remover qualquer ponto que tenha como vizinho um ponto do fundo. Da mesma forma, na dilatac~ao, pode-se acrescentar ao objecto qualquer ponto do fundo que tenha como vizinho um ponto do objecto. A eros~ao parece dar melhores resultados eliminando apenas os pontos com menos de 6 ~ 7 SEGMENTACAO 20 vizinhos pertencentes ao objecto. Em Gonzalez p.398] e proposto um outro algoritmo para a eros~ao com o qual se pretende determinar o esqueleto de um objecto. O algoritmo a usar em cada situac~ao depende do m a atingir com as operac~oes morfologicas e deve ser escolhido com base em experi^encias. 7.4 Textura Todas as tecnicas ate agora estudadas usavam como descritor de uma regi~ao o seu brilho ou contraste. Uma outra abordagem para a descric~ao de uma regi~ao e quanticar a sua textura. Embora n~ao exista nenhuma denic~ao formal para a textura, esta e uma importante fonte de informac~ao para a segmentac~ao. Intiuitivamente podemos ver a textura como uma medida de propriedades como suavidade, aspereza e regularidade de uma superfcie. Uma textura pode ser classicada como sendo de granularidade na (marmore) ou granularidade grossa (parede de tijolos) e como sendo regular (rede de pesca) ou aleatoria (estrada de alcatr~ao). Com o estudo da textura levanta-se o problema da escolha da resoluc~ao a considerar. A imagem de uma estrada, por exemplo, apresenta uma textura com variac~oes quase ao nvel do pixel enquanto uma parede de tijolos tem repetico~es de elementos com varias centenas de pontos de tamanho. Da mesma forma, se o objectivo e distinguir 2 paredes de tijolos feitos de materiais diferentes mas com o mesmo tamanho, e preciso considerar a textura de cada tijolo individualmente, e n~ao da parede como um todo. As 3 principais abordagens para descrever texturas s~ao: modelo estrutural modelo estatstico modelo espectral O modelo estrutural lida com elementos basicos da textura (texel). Idealmente estes elementos repetir-se-~ao ao longo da regi~ao. O modelo estatstico quantica caractersticas como a suavidade, aspereza, granularidade, etc. O modelo espectral lida com as regi~oes no domnio das frequ^encias espaciais. Modelo estrutural Este modelo lida com o conceito de uma primitiva da textura (texel). Esta primitiva e um elemento xo que se repete numa area da imagem. E o caso de uma imagem com gr~aos de cafe ou moedas, uma parede de tijolos ou uma rede de pesca. Para caracterizar o elemento basico destas texturas pode-se usar uma func~ao de densidade ou uma imagem com o elemento que se repete. A func~ao de densidade e particularmente util quando o texel pode sofrer rotac~oes ou amplic~oes /reduc~oes. O texel pode ser difcil de identicar quando a textura a analisar e muito complexa. Isto ocorre, por exemplo, em problemas de cristalograa onde se pretende distinguir e/ou identicar varios cristais. ~ 7 SEGMENTACAO 21 Modelo estatstico Quando n~ao e possvel denir um elemento basico que identique a textura, e vulgar recorrer-se ao modelo estatstico para quanticar algumas propriedades daquela superfcie. Isto acontece quando a resoluca~o da textura e muito alta e/ou tem um arranjo pseudoaleatorio. Com o modelo estatstico tenta-se quanticar propriedades como a suavidade, aspereza e regularidade da superfcie. Uma das abordagens mais simples consiste em usar os momentos do histograma de uma regi~ao para caracterizar essa regi~ao. Os dois momentos mais comuns s~ao a media (brilho) e o desvio-padr~ao (contraste). A vari^ancia ( ) e uma medida directa da aspereza da regi~ao e pode ser usada para construir uma medida de suavidade relativa R = 1 ; 1 +1 que e 0 para regi~oes de intensidade constante e aproxima-se de 1 em regi~oes muito asperas. 2 2 As limitac~oes destas medidas e que n~ao cont^em informac~ao sobre a posic~ao relativa dos pixels. Para analisar esta informac~ao devem-se considerar n~ao apenas as intensidades, mas tambem a posic~ao dos pontos uns relativamente aos outros. Para tal constroi-se a matriz de coocorr^encia A. Para construir esta matriz dene-se um operador P (d ) que estabelece um deslocamento d na direcc~ao . θ P (1, 3 Π/4) d Figura 14: Operador P (d ) A e uma matriz k k onde k e o numero de tons possveis na imagem. Cada elemento a ij e o numero de vezes que um ponto com o tom i aparece na posic~ao especicada por P (d ) relativamente a um ponto com o tom j. ( ) Considere a seguinte imagem 6x5 com 2 tons 0, 1 e o operador P (1 3=4). A matriz de coocorr^encia correspondente e a apresentada 0 1 1 0 0 0 0 1 1 0 1 0 0 1 1 " 1 1 0 0 1 0 1 1 0 0 0 A = 10 0 10 0 0 1 1 0 # ~ 7 SEGMENTACAO 22 O elemento a (canto superior esquerdo), por exemplo, representa o numero de vezes que um elemento com o tom 0 aparece a dist^ancia 1 e a direita e abaixo de outro ponto com o tom 0. E importante notar que o tamanho da matriz de coocorr^encia depende do numero de tons. Para manter este tamanho dentro de limites manuseaveis e usual diminuir o numero de tons possveis em cada imagem. 00 A matriz de coocorr^encia A n~ao caracteriza univocamente as texturas, mas a comparac~ao de algumas medidas extradas destas matrizes ajuda a averiguar a similaridade de 2 texturas. Por exemplo, a presenca de valores elevados na diagonal principal de A indica a presenca de faixas na imagem com direcc~ao igual a e espessura inferior a d. A matriz de coocorr^encia normalizada C pode ser obtida dividindo cada elemento de A pelo numero de pares de pontos na imagem que satisfazem P (d ) C ij = anij X n = aij ( ) ij S~ao varias as medidas que podem ser extradas da matriz C Probabilidade maxima max(cij ) Inercia Pi Pj (i ; j )k cij Homogeneidade Pi Pj ic;j i 6= j Entropia Pi Pj cij log(cij ) Energia Pi Pj cij ij ( )k 2 A ideia e caracterizar a textura usando estas medidas. Um aspecto interessante e que estas n~ao t^em nenhuma correspond^encia psicologica, isto e, o observador humano n~ao reconhece as variac~oes na textura que estas quantidades medem. Os valores tpicos destas medidas para um conjunto de texturas podem ser fornecidos a um sistema, que posteriormente identicara texturas de outras imagens por comparac~ao dos seus descritores com aqueles armazenados em memoria. Modelo espectral Este modelo baseia-se no uso de tecnicas no domnio das frequ^encias espaciais. Se uma textura e periodica no espaco ent~ao o espectro apresenta picos nas altas frequ^encias. A posic~ao destes picos pode ser identicada e usada como um descritor de texturas. Este tipo de texturas periodicas e, normalmente, difcil de detectar usando tecnicas espaciais devido a localidade destes metodos. E frequente, para isolar estes picos, efectuar partic~oes radiais ou angulares do espectro. Com estas partic~oes pretende-se isolar as frequ^encias que descrevem a textura. As partic~oes radiais s~ao utilizadas quando n~ao existe uma direcc~ao associada a textura (gura 15). O modelo espectral tem 2 caractersticas uteis para a descric~ao de texturas: ~ 7 SEGMENTACAO 23 Figura 15: Partic~oes do espectro Os picos mais proeminentes no espectro representam a direcc~ao principal dos padr~oes das texturas e a sua localizac~ao no plano das frequ^encias indica o perodo espacial destes padr~oes. A remoc~ao das componentes periodicas (por ltragem) resulta numa imagem sem elementos periodicos que pode depois ser descrita usando tecnicas estatsticas. 7.5 Segmentac~ao baseada em regi~oes O objectivo da segmentac~ao e subdividir a imagem em regi~oes. Foi sugerido que uma imagem pode ser dividida em varias regi~oes aplicando um thesholding multinvel. Esta tecnica pode resultar num grande numero de regi~oes irregulares, que n~ao correspondem a nenhuma caracterstica importante da imagem. Nesta secc~ao vamos procurar regi~oes baseados nas propiedades locais dos pixels. A ideia e que todos os pontos de uma regi~ao devem ter uma (ou mais) propriedade(s) comum(s), seja ela brilho, textura, gradiente, etc. Seja R a imagem. A segmentac~ao pode ser vista como o processo de subdividir a imagem em subregi~oes R , R : : :Rn tais que 1 1. 2. 3. 4. 5. 2 Sn R = R i i Ri e uma regi~ao conectada Ri \ Rj = P (Ri) = TRUE P (Ri) P (Rj ) = FALSE se Ri e Rj s~ao conectadas. =1 A condica~o 1 indica que a segmentac~ao deve ser completa, isto e, qualquer pixel da imagem original pertence a uma regi~ao. Juntamente com a condic~ao 3 garantimos que cada pixel pertence a uma e uma so regi~ao e que todos os pixels pertencem a uma regi~ao. A condic~ao 2 garante que todos os pontos numa regi~ao est~ao conectados. A condic~ao 4 assegura as propriedades que devem ser satisfeitas pelos pontos para pertencerem a mesma regi~ao. Um exemplo e dizer que P (Ri) = TRUE se todos os pontos naquela regi~ao t^em a mesma intensidade. A condic~ao 5 indica que, se 2 regi~oes s~ao contguas, ent~ao t^em que ser diferentes relativamente a propriedade P. Region growing by pixel aggregation ~ 7 SEGMENTACAO 24 Esta tecnica agrupa pixels ou subregi~oes em regi~oes maiores. Comecando por um conjunto de pontos semente seed a regi~ao cresce, agregando pontos vizinhos que tenham propriedades similares (brilho, textura, gradiente, etc.). Este processo repete-se ate que n~ao seja possvel agregar mais pontos a regi~ao. As propriedades a considerar para a condic~ao de agregac~ao podem ser varias. Um exemplo e a diferenca absoluta entre o valor do pixel a agregar e o valor do ponto semente n~ao ultrapassar um limite T. Outras caractersticas, como o gradiente, podem tambem ser consideradas. Psemente ; P xy T ( ) Os dois problemas mais imediatos com esta tecnica s~ao a selecc~ao de pontos semente adequados e a escolha das propriedades a considerar para a condic~ao de agregac~ao. A escolha dos pontos iniciais e dependente da natureza do problema. Se se sabe a priori que o objecto e claro e o fundo escuro, ent~ao podem ser escolhidos como sementes o ponto mais escuro e o ponto mais claro. Se n~ao existe qualquer ideia sobre como distinguir claramentre os objectos e possvel calcular, para todos os pontos, as mesmas propriedades que est~ao associadas a condic~ao de agregac~ao. Se os resultados deste calculo apresentarem blocos de valores, ent~ao os pontos no centro destes blocos podem ser usados como pontos semente. Note que n~ao e desperdicado tempo de computac~ao pois no processo de agregaca~o as propriedades n~ao precisam de ser recalculadas, ja est~ao disponveis. A condic~ao de agregaca~o pode ser estatica ou evoluir com a regi~ao. E possvel, por exemplo, utilizar sempre as propriedades dos ultimos pontos agregados em vez das propriedades do ponto-semente. Outro factor importante e a condic~ao de paragem. Basicamente o processo de agregac~ao termina quando mais nenhum ponto satisfaz a condic~ao de agregac~ao. No entanto, se existir algum conhecimento sobre os resultados esperados, o criterio de paragem pode ser enriquecido com informac~ao sobre o tamanho da regi~ao, forma da regi~ao, brilho da regi~ao, etc. Region splitting & merging O metodo anterior comeca com um ponto e constroi a regi~ao a partir da. Uma alternativa e comecar com toda a imagem e subdividi-la em subregi~oes regulares de acordo com um conjunto de regras. Estas subregi~oes podem ser ainda subdivididas (se n~ao s~ao homogeneas relativamente a um conjunto de propriedades) ou reunidas de novo se s~ao similares. O metodo mais vulgar consiste em dividir a imagem em 4 quadrantes. Para cada um destes quadrantes e estudada a sua homogeneidade relativamente a condic~ao P. Os quadrantes n~ao homogeneos s~ao subdivididos de novo, e assim sucessivamente ate que n~ao sejam necessarias mais subdivis~oes. Nesta fase unem-se regi~oes contguas que sejam similares relativamente a mesma condica~o P (gura 16). 7.6 Movimento O movimento e frequentemente utilizado pelos humanos e outros animais para extrair objectos de interesse de um fundo com pormenores irreleventes. Numa sequ^encia de ima- ~ 7 SEGMENTACAO 25 R1 R2 Figura 16: Region splitting & merging gens o movimento deriva de um deslocamento relativo entre os sensores (c^amera) e a cena visualizada. Uma das aproximac~oes mais simples para detectar variac~oes entre duas imagens adquiridas em instantes de tempo diferentes, ti e tj , e subtra-las ponto-a-ponto, obtendo a imagem diferenca. Supondo que temos uma imagem refer^encia que contem apenas elementos estacionarios, podemos detectar objectos em movimento subtraindo uma imagem posterior a esta imagem refer^encia. Na imagem diferenca resultante todos os objectos estacionarios foram anulados, cando apenas as regi~oes que apresentam caractersticas diferentes, supostamente devido a movimento. A imagem diferenca pode ser obtida calculando ( jr xy ; f xy j T d xy = 10 ( ( jr xy ; f xy j < T ( ) ( ) ( ) ( ) ( ) onde T e um limite de toler^ancia previamente escolhido. Esta tecnica pode ser aplicada usando uma imagem refer^encia ou a imagens sucessivas. A gura 17 ilustra o resultado da aplicac~ao desta tecnica a duas imagens sucessivas com um objecto em movimento. A imagem diferenca apresenta 2 regi~oes: uma correspondente a zona para onde o objecto se deslocou, outra correspondente a zona que o objectou abandonou. Figura 17: Objecto em movimento O uso de uma imagem diferenca levanta varios problemas. Primeiro a diferenca entre 2 imagens nunca e exacta devido ao rudo. Assim a imagem diferenca apresentara pontos diferentes de zero que n~ao correspondem a movimento. Como, provavelmente, estes ser~ao pontos isolados, ou pequenos blocos de pontos, podem ser posteriormente removidos por ltragem (mediana?) mas isto pode resultar na remoc~ao de informac~ao relativa a pequenos objectos ou objectos em movimento lento. A imagem diferenca entre 2 imagens sucessivas contem, por objecto, 2 zonas de pontos, como ja foi visto. Quando existem muitos objectos ~ 7 SEGMENTACAO 26 em movimento e difcil agrupar estas zonas em pares que realmente correspondem ao mesmo objecto. Se um objecto se desloca muito lentamente, ent~ao cada um destes blocos pode ser extremamente no (e por isso sensvel ao processo de ltragem) ou o movimento pode n~ao ser detectado entre alguns pares de imagens, levando ao desaparecimento virtual (mas temporario) daquele objecto. O uso de uma imagem refer^encia, que contem apenas objectos estacionarios, levanta outros problemas. N~ao e facil conseguir uma imagem sem movimento duma cena com muito trafego (por exemplo uma rua muito concorrida), portanto a propria imagem de refer^encia pode ser impossvel de obter. Uma vez obtida, coloca-se o problema de decidir quanto tempo e que pode ser usada. Se pensarmos numa avenida da qual conseguimos uma imagem sem qualquer objecto em movimento (obtida de madrugada, por exemplo), sera que a podemos usar durante todo o dia? E necessario pensar que as condic~oes de iluminac~ao v~ao mudar, v~ao existir veculos estacionados que n~ao est~ao em movimento mas tambem n~ao est~ao contidos na refer^encia, etc. Daqui se conclui que a utilizac~ao de imagens consecutivas ou imagens de refer^encia depende da natureza da propria aplicaca~o. Diferencas acumuladas O uso de uma imagem diferenca sofre de alguns inconvenientes como o facto de ser muito sensvel ao rudo. Este problema e ultrapassado usando imagens de diferencas acumuladas. Cada imagem da sequ^encia e subtrada a imagem refer^encia e um contador por cada pixel e incrementado na imagem de diferencas acumuladas sempre que existe uma diferenca signicativa entre aquele pixel na imagem e o pixel correspondente na refer^encia. Assim quando a k-esima imagem da sequ^encia esta a ser processada, a imagem acumulada indica quantas vezes cada pixel foi diferente da imagem refer^encia. Consegue-se assim ignorar variac~oes esporadicas na imagem. 1 1 1 1 1 1 1) 1 1 1 1 3 3 3 3 2 2 1 3 2 1 2 1 1 2 3 2 1 1 2 2 1 1 1 1 2) 2 2 2 2 1 1 2 1 1 1 2 1 2 2 1 1 1 1 3) 4) Figura 18: Diferencas acumuladas Em certas aplicac~oes e util considerar 3 tipos de diferencas acumuladas. O metodo estudado ate agora lida com o valor absoluto da diferenca entre a refer^encia e a imagem actual, sendo por isso designado por AADI (Absolute Accumulative Dierences Image). Quando ~ DE FORMAS 8 DETECCAO 27 os objectos t^em um valor mais elevado que o fundo dene-se PADI (Positive ADI) como sendo o metodo que apenas incrementa os contadores quando a diferenca entre os pontos e positiva. NADI (Negative ADI) e o metodo oposto, os contadores so s~ao incrementados quando a difrenca entre os pontos e negativa. Quando o fundo e mais claro que os objectos estas denic~oes invertem-se. 3 3 3 3 2 2 1 3 2 1 2 1 1 2 3 2 1 1 2 2 1 1 1 1 3 3 3 3 2 2 1 3 2 1 2 1 2 3 2 1 1 2 2 1 1 1 1 1 Figura 19: AADI, PADI e NADI O PADI tem a caracterstica de apenas crescer enquanto o objecto esta parcial ou totalmente sobreposto com a sua posic~ao na imagem refer^encia. Quando o objecto se desloca completamente da sua posic~ao inicial o PADI n~ao regista mais variac~oes. O NADI comporta-se exactamente ao contrario, apenas registando alterac~oes nas zonas n~ao ocupadas inicialmente pelo objecto (gura 19). Imagem refer^encia A chave para o sucesso das tecnicas descritas dependem da exist^encia de uma imagem de refer^encia com a qual possam ser feitas comparac~oes. Na pratica nem sempre e possvel conseguir uma imagem de refer^encia apenas com elementos estacionarios e esta tem que ser construda a partir de uma sequ^encia de imagens que cont^em objectos em movimento. Isto e particularmente verdadeiro quando se processam cenas com muito movimento ou que precisam de actualizac~oes frequentes. Descreve-se a seguir uma aproximac~ao simplicada para construir uma imagem de refer^encia a partir da primeira imagem de uma sequ^encia. Quando um objecto em movimento se desloca completamente para fora da sua posic~ao nesta primeira imagem, o fundo correspondente a essa posic~ao inicial pode ser obtido da imagem actual e substitudo na imagem refer^encia. Quando todos os objectos se tiverem deslocado da sua posic~ao inicial a imagem de refer^encia deve conter apenas elementos estacionarios. O deslocamento dos objectos pode ser estabelecido monitorizando o crescimento do PADI. Esta e uma aproximac~ao simplicada porque quando um objecto em movimento se desloca da sua posic~ao inicial, outro objecto qualquer pode estar a entrar nessa zona dicultando a obtenc~ao dessa regi~ao do fundo. 8 Detecc~ao de formas As tecnicas discutidas nesta secc~ao destinam-se a detectar numa imagem formas previamente conhecidas. Vamos distinguir duas tecnicas diferentes: numa esta disponvel um ~ DE FORMAS 8 DETECCAO 28 template da forma que se pretende encontrar, na outra disp~oe-se de uma descric~ao matematica da forma a encontrar (caso de rectas, por exemplo). 8.1 Template matching Este e um metodo de ltragem muito popular com o qual se pretende detectar um objecto em particular numa imagem. O ltro e uma sub-imagem que contem o objecto a detectar (ou parte dele) e e designado por template. template Figura 20: Template matching O metodo consiste em subtrair o ltro a uma subregi~ao da imagem centrando-o num determinado pixel. Para esta subtracc~ao usa-se habitualmente a dist^ancia Euclidiana d dada por i XXh d ij = I xy ; t x;iy;j 2 ( 2 ) x y ( ) ( ) onde x e y s~ao as dimens~oes do template. Esta operac~ao e repetida centrando o template em todos os pontos da imagem. O resultado da subtracca~o e zero quando a regi~ao da imagem a que o ltro esta a ser a ser aplicado e exactamente igual ao ltro. Na pratica o resultado nunca sera exactamente 0 devido ao rudo, diferentes condic~oes de iluminac~ao e diferencas entre o objecto a detectar e o template. A abordagem a seguir consiste em procurar mnimos na matriz bidimensional resultante do calculo da dist^ancia Euclidiana (designada por superfcie de correlac~ao). Se estes mnimos estiverem dentro de um limite de toler^ancia previamente estabelecido, ent~ao o objecto esta encontrado. Este metodo e computacionalmente muito pesado e extremamente sensvel a rotac~oes e diferencas de escala entre o objecto a detectar e o template. Pir^amide de resoluc~ao A resoluc~ao da imagem original pode n~ao ser a mais indicada para procurar objectos ou contornos. Quando a resoluc~ao da imagem e demasiado grande a aplicac~ao de tecnicas como o template matching torna-se demasiado pesada. E mais eciente localizar primeiro o objecto numa imagem com menor resoluc~ao e, posteriormente, renar o resultado obtido ~ DE FORMAS 8 DETECCAO 29 passando para a imagem de maior resoluc~ao. Este processo introduz a noc~ao de pir^amide de resoluc~ao. 64x64 128x128 256x256 Figura 21: Pir^amide de resoluc~ao Esta imagem pode ser obtida achando a media de cada 4 pixels e gerando, a partir da, um novo ponto na imagem com menor resoluc~ao. Este processo pode ser repetido varias vezes dando origem a uma pir^amide com varios nveis. O algoritmo de detecc~ao de formas pode ser aplicado a imagem de menor resoluc~ao e o valor obtido pode ser renado progredindo na direcc~ao da base da pir^amide. 8.2 A transformada de Hough Esta transformada permite encontrar linhas numa imagem. As linhas podem estar em qualquer posic~ao e com qualquer orientac~ao. Inclusivamente podem ter descontinuidades devidas a rudo, ou estar parcialmente invisveis devido a sobreposic~ao de outros objectos. A ideia e procurar pontos colineares e, dependendo do seu numero, decidir se pertencem ou n~ao a uma linha. A estrategia a seguir consiste em para cada ponto, n~ao pertencente ao fundo, calcular todas as rectas que podem passar por ele. A equac~ao da recta e y = mx + b onde m e o declive e b a ordenada na origem. Se dispusermos de uma matriz bidimensional H cujos eixos sejam m e b, inicializada a 0, podemos para cada ponto (x y) da imagem calcular os pares (m b) de todas as rectas que passam por esse ponto, e incrementar na matriz H todas as celulas cujos ndices sejam os pares calculados. Depois de todos os pontos processados cada celula da matriz H indica o numero de pontos da imagem que pertencem a recta com os par^ametros (m b). Escolhendo apenas as celulas da matriz H com valores mais elevados temos determinadas as rectas mais fortes da imagem, cujos par^ametros (m b) s~ao os ndices dessas celulas. O problema com o processo descrito e que tanto m como b podem variar ate ao innito, n~ao sendo possvel conceber uma matriz que possa representar este espaco. Mas usando coordenadas polares temos a equac~ao da recta = x cos + y sin ~ DE FORMAS 8 DETECCAO 30 ρ θ Figura 22: Coordenadas polares Os valores entre os quais e podem variar s~ao limitados, logo a tecnica atras descrita pode ser implementada usando uma matriz bidimensional H cujos eixos s~ao e . N~ao e possvel, por motivos obvios, calcular todas as rectas que passam num ponto (x y), mas variando com um passo adequado e possvel calcular um grande numero de rectas que passam em cada ponto e, portanto, obter varios pares ( ). A matriz H tem o aspecto apresentado na gura 23. Cada linha corresponde a todas as rectas que passam num ponto presente na imagem. Os pontos com as coordenadas ( ) onde duas ou mais linhas se cruzam correspondem a rectas para as quais existem varios pontos colineares na imagem original. Quanto maior o numero de linhas que se cruzam nas coordenadas ( ) mais pontos colineares existem pertencentes a essa recta. ρ θ max θ Figura 23: Transformada de Hough Normalmente a transformada de Hough e aplicada a imagens que foram pre-processadas de modo a que na imagem so estejam presentes pontos que possam corresponder a caractersticas relevantes. Isto porque esta transformada e um algoritmo bastante pesado. O caso mais comum consiste em aplicar um algoritmo de detecc~ao de contornos (ex. gradiente) e aplicar posteriormente a Transformada de Hough, quer para eliminar descontinuidades destes contornos, quer para reconhecer a forma dos mesmos. Esta transformada pode ser aplicada a uma variedade de outras formas geometricas, como por exemplo crculos, com a equac~ao (x ; a) + (y ; b) = r 2 2 2 ~ DE FORMAS 9 DESCRICAO 31 seguindo a abordagem descrita. A pricinpal diferenca e que agora temos 3 par^ametros em vez de dois, logo a matriz H deve ser tridimensional. Outras guras possveis s~ao: Parabola: (y ; yr ) = 4Sx (x ; xr) Elipse: y;y )2 S2 ( r y + x;x )2 S2 ( r x =1 9 Descric~ao de formas Depois de uma imagem ter sido segmentada em regi~oes com signicado e usual representar e descrever estas regi~oes de uma forma adequada para futuro processamento. Este processamento consiste, normalmente, em identicac~ao ou comparac~ao de formas, pelo que n~ao e necessario armazenar toda a imagem, mas apenas os objectos de interesse, conseguindo-se assim a vantagem adicional de poupar espaco de armazenamento. Basicamente existem duas possibilidades para descrever uma regi~ao: descrever o seu contorno, ou descrever o seu conteudo. Vamos limitar o nosso estudo a algumas tecnicas de descric~ao baseadas em contornos. Uma caracterstica importante para estas tecnicas de descric~ao e que devem ser o mais insensveis que f^or possvel a variac~oes de tamanho e rotac~oes. 9.1 Chain code Esta tecnica baseia-se no uso de identicadores para caracterizar a direcc~ao dos contornos. O numero de identicadores usados depende da conectividade considerada (ver gura 24). 1 2 3 0 2 4 0 7 5 3 1 6 Figura 24: Identicadores para chain codes O chain code e gerado comecando por um ponto do contorno do objecto (normalmente o ponto mais acima e a esquerda) e avancando ao longo do contorno. A direcc~ao do movimento de um ponto para outro e armazenada, construindo-se assim a sequ^encia designada por chain code. O processo repete-se ate que se regresse ao ponto de partida (gura 25). O algoritmo usado para caminhar ao longo do contorno deve ser cuidadosamente escolhido. O ideal e procurar o proximo ponto directamente a esquerda da direcc~ao de entrada no ponto actual (quando o passeio ao longo do objecto e feito na direcc~ao dos ponteiros do relogio) e depois procurar sucessivamente nas outras direcc~oes (mais uma vez no sentido dos ponteiros do relogio) ate ser encontrado um ponto que pertenca ao contorno. Na pratica e inaceitavel considerar todos os pontos do contorno por duas raz~oes: a sequ^encia resultante e demasiado grande e demasiado sensvel a pequenas irregularidades existentes ~ DE FORMAS 9 DESCRICAO 32 no contorno (rudo?). A alternativa e gerar o chain code avancando de n em n pontos de cada vez. O chain code gerado e dependente do ponto inicial e e sensvel a rotac~oes do objecto. Para obter uma sequ^encia insensvel a rotac~oes pode-se normalizar o chain code, usando a diferenca entre cada duas direcc~oes sucessivas em vez do proprio codigo das direcc~oes. Esta diferenca e calculada contando o numero de direcc~oes que separam dois elementos sucessivos da sequ^encia (no sentido contrario aos ponteiros do relogio). Para o primeiro elemento calcular a diferenca entre o ultimo e o primeiro elementos da sequ^encia n~ao normalizada. O ponto de incio da sequ^encia pode ser redenido rodando a sequ^encia normalizada ate que esta forme o menor inteiro possvel. 0 1 2 1 0 3 rotacao 90 30 1 3 1 2 chain code : 0 3 0 0 3 1 2 1 2 3 2 2 0330322111 0003223211 normalizado : 3 3 0 1 3 3 0 3 0 0 3003301330 rodado : 0033013303 0033013303 Figura 25: Chain codes 9.2 Assinaturas Uma assinatura e uma representac~ao unidimensional de um contorno. Existem varios metodos para gerar assinaturas. Independentemente do metodo usado a ideia e obter uma representac~ao unidimensional que e mais simples que o contorno bidimensional original. Uma das assinaturas mais simples consiste em representar a dist^ancia dos pontos do contorno a um ponto central do objecto em func~ao de um a^ngulo (gura 26). Esta representac~ao e invariante com a rotac~ao, a menos de uma rotac~ao horizontal do graco. Um outro metodo para gerar uma assinatura e considerar o ^angulo formado por 3 pontos sucessivos do contorno (gura 27). Este a^ngulo deve ser medido sempre na mesma direccc~ao. 9.3 Aproximac~ao poligonial O contorno de qualquer objecto pode ser representado, com a precis~ao desejada, por um polgono. Uma descric~ao exacta e conseguida quando o numero de lados do polgono e igual ao numero de pontos do contorno, de tal forma que cada par de pontos adjacentes ~ DE FORMAS 9 DESCRICAO r 33 r θ r θ r π/2 π θ 2π 3π/2 θ Figura 26: Assinatura em func~ao da dist^ancia Ψ 270 180 90 Figura 27: Assinatura em func~ao do a^ngulo dene um segmento de recta. O que se pretende, no entanto, e determinar um polgono que d^e uma aproximac~ao ao contorno do objecto. d f a 1. [a b] 2. [a c b d] 3. [a e c b f d] 4. ... b e c Figura 28: Aproximac~ao poligonial Descreve-se a seguir um metodo iterativo para obter uma aproximac~ao poligonial (consultar gura 28): 1. Calcular uma linha que une dois extremos (a,b) 2. Determinar os dois pontos (c e d) que est~ao mais afastados do segmento ab], um de cada lado deste segmento. Formar o polgono acbd]. ~ DE FORMAS 9 DESCRICAO 34 3. Se nenhum ponto do contorno esta mais afastado do polgono ate agora encontrado do que um determinado limite T, ent~ao terminar. 4. Para cada segmento do polgono determinar se existe um ponto do contorno que esteja mais afastado dele que o limite T, mas n~ao esta mais perto de nenhum outro segmento do polgono. Caso estes pontos existam ent~ao o polgono e estendido para os incluir. 5. Regressar ao passo 3 Cada iterac~ao deste algoritmo resulta num polgono cada vez mais proximo do contorno do objecto em quest~ao. A precis~ao do algoritmo depende do par^ametro T, que e a maxima dist^ancia que qualquer ponto do contorno pode ter relativamente ao segmento do polgono que esta mais proximo dele. O nosso exemplo poderia resultar num polgono como o da gura 29. g 1. [a b] 2. [a c b d] 3. [a e c b f d] 4. ... d f a j i n. [a e i c h b f j d g] b e c h Figura 29: Aproximac~ao poligonial com grande precis~ao 9.4 Esqueleto Para representar a estrutura de uma regi~ao podemos reduzi-la a um grafo. Isto e conseguido usando tecnicas de eros~ao. Em Gonzalez e proposto um algoritmo de eros~ao vocacionado para a esqueletizac~ao de objectos. Uma outra abordagem para determinar o esqueleto consiste em calcular a Medial Axis Transform (MAT). Para cada ponto p da regi~ao e calculado o conjunto de pontos do contorno que est~ao mais perto de p. Se este conjunto tiver mais do que um elemento, ent~ao p pertence ao contorno. Este algoritmo e muito agradavel de um ponto de vista conceptual, mas e computacionalmente proibitivo, porque implica o calculo da dist^ancia de todos os pontos da regi~ao a todos os pontos do contorno. ~ DE FORMAS 9 DESCRICAO 35 Figura 30: Esqueletos de varias regi~oes Refer^encias bibliogracas Gonzalez, Rafael and Wintz, Paul. Digital Image Processing. Addison-Wesley Publishing. 2a edic~ao. 1987 Storer, Richard and Morgan, Andy. Introduction to Image Processing & Computer Vision. Universidade do Minho. 1991