Você está na página 1de 16

CAPTULO 1

Encontrando a Linha Divisria: Deteco de Bordas


Daniela Marta Seara, Geovani Cssia da Silva Espezim Elizandro

Contriburam:

Encontrar Bordas tambm Segmentar


A viso computacional envolve a identificao e classificao de objetos em uma imagem, desta forma a deteco de bordas uma ferramenta essencial no processo de anlise de imagens. Este trabalho tem como objetivo dar uma breve introduo sobre os conceitos que envolvem o processo de deteco de bordas. A importncia de tal processo devido ao fato de que ao se detectar uma borda podemos localizar todos os objetos de uma imagem definindo desta forma, propriedades como rea, permetro e forma. Deteco de Imagens O primeiro passo na anlise de imagens a separao ou a segmentao dos objetos dentro da imagem. Algoritmos de segmentao permitem achar diferenas entre dois ou mais objetos. A segmentao baseada em dois conceitos: similaridade e descontinuidade. Na segmentao procura-se distinguir as partculas umas das outras e do fundo. Esta distino permitir ao programa interpretar pixels contguos e agruplos em regies. No existe um modelo formal para a segmentao, o processo essencialmente emprico e dever se ajustar a diferentes tipos de imagem. Esta etapa a mais difcil do processo e tambm a mais delicada porque todas as medidas sero realizadas sobre as regies identificadas nesta etapa. A segmentao to complexa porque tenta

Introduo Viso Computacional

CAPTULO 1.Encontrando a Linha Divisria: Deteco de Bordas

traduzir para o computador um processo cognitivo extremamente sofisticado realizado atravs da viso humana. A descontinuidade em uma imagem pode ser:

um ponto isolado; uma linha; a borda de uma objeto.


Algoritmos de Segmentao a) Deteco de pontos: a mais simples tcnica de deteco. Um ponto ter uma mudana drstica do valor de cinza em relao aos seus vizinhos. b) Deteco de linhas: o processo mais complicado, pois necessrio achar os pixels que so semelhantes e test-los para verificar se so parte de uma linha comum. c) Deteco de bordas: uma das tcnicas bsicas utilizadas pela viso humana no reconhecimento de objetos. o processo de localizao e realce dos pixels de borda, aumentado o contraste entre a borda e o fundo. Este processo verifica a variao dos valores de luminosidade de uma imagem. Como foi abordado anteriormente, neste trabalho daremos nfase apenas para os algoritmos de segmentao para deteco de bordas.

O que uma Borda?


o contorno entre um objeto e o fundo indicando o limite entre objetos sobrepostos Um CONTORNO uma linha fechada formada pelas bordas de um objeto. Mas como conceituamos e detectamos uma borda computacionalmente ? Variaes de intensidade complexas que ocorrem em uma regio so geralmente chamadas de textura. Bordas so definidas como picos da magnitude do gradiente, ou seja, so variaes abruptas que ocorrem ao longo de curvas baseadas nos valores do gradiente da imagem. As bordas so regies da imagem onde ocorre uma mudana de intensidade

10

Aldo von Wangenheim

Encontrar Bordas tambm Segmentar

em um certo intervalo do espao, em uma certa direo. Isto corresponde a regies de alta derivada espacial, que contm alta frequncia espacial.

Borda unidimensional : pode ser definida como uma mudana de uma


intensidade baixa para alta. A intensidade do sinal pode ser interferida por rudos.
Figura 1.1.

Grfico da intensidade de uma imagem

Borda bidimensional: as descontinuidades ocorrem ao longo de certas


linhas ou orientaes A orientao uma caracterstica importante em bordas 2-D
Figura 1.2.

Grfico da intensidade representando uma borda bidimensional

contraste

largura

orientao

Rudos Toda aquisio da imagem est sujeita a algum tipo de rudo. A situao ideal, sem rudo, na prtica no existe. Rudos no podem ser previstos pois so de natureza randmica e no podem nem mesmo ser medidos precisamente. Porm, algumas vezes ele pode ser caracterizado pelo

Introduo Viso Computacional

11

CAPTULO 1.Encontrando a Linha Divisria: Deteco de Bordas

efeito na imagem, e geralmente expresso como uma distribuio de probabilidade com uma mdia especfica e um desvio padro. Existem dois tipos de rudos especficos:

Rudo independente do sinal: um conjunto randmico de nveis de


cinza, estatisticamente independente dos dados da imagem. Este tipo de rudo acontece quando a imagem transmitida eletronicamente de um lugar para outro.

A - imagem perfeita N - o rudo B - imagem final B= A+N

Rudo de sinal dependente: o nvel do valor de rudo a cada ponto na


imagem uma funo do nvel de cinza.

Operadores para deteco de bordas que utilizam derivadas


Desde que uma borda definida por uma mudana no nvel de cinza, quando ocorre uma denscontinuidade na intensidade, ou quando o grandiente da imagem tem uma variao abrupta, um operador que sensvel a estas mudanas operar como um detector de bordas. Um operador de derivada faz exatamente esta funo. Uma interpretao de uma derivada seria a taxa de mudana de uma funo, e a taxa de mudana dos nveis de cinza em uma imagem maior perto das bordas e menor em reas constantes. Se pegarmos os valores da intensidade da imagem e acharmos os pontos onde a derivada um ponto de mximo, ns teremos marcado suas bordas. Dado que as imagens so em duas dimenses, importante considerar mudanas nos nveis de cinza em muitas direes. Por esta razo, derivadas parciais das imagens so usadas, com as respectivas direes X e Y. Uma estimativa da direo atual da borda pode ser obtida usando as derivadas x e y

12

Aldo von Wangenheim

Operadores para deteco de bordas que utilizam derivadas

como os componentes da direo ao longo dos eixos, e computar o vetor soma. O operador envolvido o gradiente, e se a imagem vista como uma funo de duas variveis A(x,y) ento o gradiente definido como:

Frumula 1:

Figura 1.3.

Exemplo de uma imagem de tomografia e sua respectiva imagem de gradientes

Mscaras para Algoritmos de Segmentao


A maioria dos algoritmos de segmentao utilizam uma mscara sobre os pixels da imagem para deteco de uma descontinuidade. Cada pixel e seus pixels vizinhos tem um valor do nvel de cinza multiplicados por uma constante. A soma destes valores representa a mscara de resposta daquele ponto.

Introduo Viso Computacional

13

CAPTULO 1.Encontrando a Linha Divisria: Deteco de Bordas

Frumula 2:

Exemplo de uma mscara de resposta m1 m2 m3 p1 p2 p3 9 m4 m5 m6 p4 p5 p6 = m p + m p + + m p = mipi 1 1 2 2 9 9 m7 m8 m9 p7 p8 p9 i=1

Onde: mi: valor para um pixel pi: o valor do nvel de cinza para um pixel R: a mscara de resposta para o pixel central (p5). Ampliando esta mscara atravessando a imagem linha por linha, um novo vetor criado. o mesmo que a imagem original mais contm os valores da mscara de resposta ao invs do valor do pixel. Estes valores da mscara de resposta podem ento ser comparados com o valor mnimo de threshold para determinar quais pixels so mais provveis de ser parte de uma borda. Este threshold pode ser ajustado para variar seletivamente de acordo com os pixels de borda, permitindo um usurio conduzir o algoritmo para um melhor desempenho para uma imagem especfica. Considerando o exemplo da mscara de entrada anterior e supondo um valor de threshold 20. A matriz 3x3 representa uma parte de uma determinada imagem, desde que os valores de sada que cancelem o valor central, no ultrapassem o valor de threshold, o que significa que a imagem no apresenta descontinuidade. Analisando a mscara de resposta para o conjunto contnuo de pixels dados na Figura 1.4., percebemos que neste caso o valor central da mscara 16, e a soma de todos os pixels subtrada do valor central fornece zero como resposta. Como zero um valor menor do que o

14

Aldo von Wangenheim

Algoritmos de Deteco de Bordas

Figura 1.4.

Exemplo de uma mscara

mscara de deteco de ponto

imagem

resposta da mscara

threshold (20), o pixel central na imagem no um ponto de descontinuidade.


Figura 1.5.

Outro exemplo de mscara

mscara de deteco de ponto

imagem

resposta da mscara

Neste caso (Figura 1.5.) o valor central da mscara 64, a soma de todos os pixels subtrada do valor central fornece um valor de 48 que maior do 20 (threshold), o pixel central na imagem um ponto de descontinuidade, portanto seria um pixel de borda.

Algoritmos de Deteco de Bordas


Os algoritmos para deteco de bordas que sero estudados no presente trabalho so:

Roberts Sobel

Introduo Viso Computacional

15

CAPTULO 1.Encontrando a Linha Divisria: Deteco de Bordas

Robinson Canny Marr-Hildreth


Operador de Roberts
o mais antigo e simples algoritmos de deteco de bordas. Utiliza uma matriz 2x2 para encontrar as mudanas nas direes x e y.
Figura 1.6.

Mscara de Roberts

Para determinar onde o pixel avaliado ou no um pixel de borda, o gradiente calculado da seguinte forma:

Frumula 3:

Se a magnitude calculada maior do que o menor valor de entrada (definido de acordo com a natureza e qualidade da imagem que esta sendo processada), o pixel considerado ser parte de um borda. A direo do gradiente da borda, perpendicular a direo da borda, encontrada com a seguinte frmula:

Frumula 4:

16

Aldo von Wangenheim

Algoritmos de Deteco de Bordas

O pequeno tamanho da mscara para o operador de Roberts torna o mesmo fcil de se implementar e rpido para calcular a mscara de resposta. As respostas so muito sensveis ao rudo na imagem.

Operador de Sobel
Utiliza duas mscaras para encontrar os gradientes vertical e horizontal das bordas.
Figura 1.7.

Mscaras de Sobel

Consideraes sobre o operador de Sobel

A frmula para encontrar o gradiente e o ngulo so as mesmas do operador de Roberts.

O ngulo do gradiente corresponde direo de mxima variao da


intensidade

Devido as mscaras serem 3X3 ao invs de 2X2, Sobel muito menos


sensvel ao rudo do que Roberts.

Os resultados so mais precisos. A computao de |G| se torna mais complexa. Na prtica |G| aproximada da seguinte forma: |G|= |Gx| + |Gy|.

O mdulo do gradiente proporcional a derivada local da intensidade.

Introduo Viso Computacional

17

CAPTULO 1.Encontrando a Linha Divisria: Deteco de Bordas

Operador de Robinson
similar em operao ao de Sobel, porm usa um conjunto de oito mscaras, onde quatro delas so as seguintes:
Figura 1.8.

Mscaras de Robinson

As outras quatro so simplesmente negaes destas quatro. A magnitude do gradiente o valor mximo obtido ao aplicar todas as oito mscaras ao pixel vizinho, e o ngulo do gradiente pode ser aproximado como o ngulo na linha de zeros na mscara dando a resposta mxima. Este algoritmo aumenta a preciso de |G|, mas requer mais computao do que Roberts e Sobel, devido ao tamanho das mscaras.

Detector de bordas de Canny


Na criao do algoritmo canny, definiu-se um conjunto de requisitos que um detector de bordas deveria satisfazer. So eles:
1.

2.

3.

Taxa de erro: o detector de bordas deveria detectar e achar somente bordas, nenhuma borda deveria faltar; Localizao: a distncia entre os pixels de borda encontradas pelo detector de bordas e a borda atual deveriam ser o menor possvel; Resposta: o detector de bordas no deveria identificar mltiplos pixels de borda onde somente exista um nico pixel. O detector de bordas de Canny um filtro de convoluo f que uniformizaria o rudo e localizaria as bordas. O problema identificar um

18

Aldo von Wangenheim

Algoritmos de Deteco de Bordas

filtro que otimize os trs critrios do detector de bordas. Se considerarmos uma borda de uma dimenso variando no contraste e ento convolucionando a borda com a funo de uniformizao de Gauss, o resultado ser uma variao contnua do valor inicial ao final, com uma inclinao mxima no ponto onde existe um "degrau". Se esta continuidade diferenciada em relao a x, esta inclinao mxima ser o mximo da nova funo em relao a original.
Figura 1.9.

Deteco de bordas por Canny

Os mximos da convoluo da mscara e da imagem indicaro bordas na imagem. Este processo pode ser realizado atravs do uso de uma funo de Gauss de 2-Dimenses na direo de x e y. Os valores das mscaras de Gauss dependem da escolha do sigma na equao de Gauss:

Frumula 5:

Introduo Viso Computacional

19

CAPTULO 1.Encontrando a Linha Divisria: Deteco de Bordas

A aproximao do filtro de Canny para deteco de bordas G'. Convolucionando a imagem com G' obtemos uma imagem I que mostrar as bordas, mesmo na presena de rudo. A convoluo relativamente simples de ser implementada, mas cara computacionalmente, especialmente se for em 2-dimenses. Entretanto,uma convoluo de Gauss de 2-dimenses pode ser separada em duas convolues de Gauss de 1dimenso. A intensidade computacional do detector de bordas de Canny relativamente alta, e os resultados so geralmente ps-processados para maior clareza. Entretanto, o algoritmo mais eficiente no processamento de imagens com rudos ou com bordas difusas. Algoritmo de Canny
1. 2.

3.

4.

5.

6.

Ler a imagem I a ser processada; Criar uma mscara de Gauss de 1-D G para convolucionar I. O desvio S de Gauss um parmetro para o detector de bordas; Criar uma mscara de 1-D para a primeira derivada de Gauss nas direes x e y; nomear como Gx e Gy. O mesmo valor S usado; Convolucionar a imagem I com G percorrendo as linhas na direo x (Ix) e percorrer as colunas na direo y (Iy); Convolucionar Ix, com Gx, para dar Ix, o componente x e de I convolucionado com a derivada de Gauss, e convolucionar Iy, com Gy para dar Iy; Se voc deseja ver o resultado neste ponto os componentes x e y devem ser " combinados". A magnitude do resultado computada para cada pixel (x,y).

Operador de Marr-Hildreth
Um mximo da derivada primeira ocorrer a cada zero crossing da derivada Segunda. Para localizar bordas horizontais e verticais procuramos a derivada Segunda nas direes de x e y. Isto Laplacian de I:

20

Aldo von Wangenheim

Algoritmos de Deteco de Bordas

Frumula 6:

- Laplaciano

O Laplaciano linear e simtrico rotacionalmente. Podemos procuar pelos zeros crossings da imagem primeiro uniformizando com uma mscara de Gauss e ento calculando a derivada Segunda. Isto define o operador de Marr-Hildreth.
Figura 1.10.

Zero Crossing

O operador de Marr-Hildreth tornou-se largamente utilizado devido:

a reputao de Marr; pesquisadores encontraram campos nos olhos de animais que se comportavam de forma semelhante com este operador (campos receptivos);

o operador simtrico. Bordas so encontradas em todas as direes,


diferente dos operadores que usam a primeira derivada (so unidirecionais).

Introduo Viso Computacional

21

CAPTULO 1.Encontrando a Linha Divisria: Deteco de Bordas

Consideraes sobre os Operadores de Derivadas de Segunda Ordem


Zero crossing da derivada segunda so mais simples de determinar do
que o ponto de mximo em uma derivada de primeira ordem;

Zero crossing sempre formam contornos fechados. Isto bom quando


estamos tentando separar objetos em uma imagem.

No operador da Segunda derivada o rudo considerado. Este mtodo


muitas vezes usado em conjuno com limiarizao normal para reduzir sua sensibilidade a rudo;

Gerar sempre contornos fechados no realista; Marca bordas em algumas localizaes que no so bordas.
Mtodo de Marr-Hildreth
1. 2. 3. 4.

Borra-se a imagem com um kernel gaussiano; Obtm-se o Laplaciano; Localiza-se os cruzamentos por zero; Os pontos localizados formam contornos fechados.

Ferramentas de Software para Deteco de Bordas


O sistema Khoros [1.13][1.14] apresenta uma considervel coleo bons detetores de bordas. Entre eles esto operaes de convoluo que implementam os filtros: Roberts, Sobel, Robinson, Marr-Hildreth. Existe tambm um Toolbox especial que implementa o Canny. Alm desses, o Khoros disponibiliza filtros de primeira (vdrf) e segunda (vsderf) derivada que realizam um ps-processamento dos resultados de deteco de bordas, apresentando uma imagem binria. Estes filtros possibilitam ao usurio estabelecer inclusive tamanhos mnimos para segmentos a serem detectados, etc.

22

Aldo von Wangenheim

Referncias

Figura 1.11.

Imagem de tomografia computadorizada e resultados da aplicao do filtro de primeira derivada (vdrf) e do filtro de segunda derivada (vsderf) provenientes do Khoros.

Alm destes, existe uma excelente implementao do Canny no pacote VISTA [1.15].

Referncias
[1.1] [1.2] [1.3] [1.4] [1.5] [1.6] [1.7] http://www.dcmm.puc-rio.br/Cursos/IPDI/index.htm http://www.eps.ufsc.br/~martins/fuzzy/fuz_ap/image/image_gi.htm http://www.coder.com/creations/banner/examples/edge.html http://vinny.bridgeport.edu/MailArchives/cs411x-list/0029.html http://ccl1-dee.poliba.it/~cafforio/edge.html http://www.cclabs.missouri.edu/~c621269/blackkite/blackkite.html http://WWW.ISIP.MsState.Edu/resources/courses/ece_4773/projects/ 1997/group_image

Introduo Viso Computacional

23

CAPTULO 1.Encontrando a Linha Divisria: Deteco de Bordas

[1.8] [1.9] [1.10] [1.11] [1.12] [1.13]

http://rvl1.ecn.purdue.edu/v1/student-software/ee661.97/teffeau/ teffeau.html http://www-mrips.od.nih.gov/uguide/ug13.htm#4520 http://www.bath.ac.uk/BUCS/Software/image_analysis/visilog/html/ refguide/chap8.html http://lummi.stanford.edu/class/cs223b/WWW/oldnotes/notesEdges/ node2.html http://rome.cis.plym.ac.uk/cis/cesar/hilbert/ov/over.html The Khoros Group; Khoros Users Manual, Release 1.0.5, Vols. I - III, Department of Electrical Engineering & Computer Engineering, University of New Mexico, Albuquerque, USA, 1993. www.khoral.com/ Pope, Arthur R., Lowe, David G.; VISTA: A Software Environment for Computer Vision Research. Internal Report, Department of Computer Science, University of British Columbia, Canada, 1994

[1.14] [1.15]

24

Aldo von Wangenheim

Você também pode gostar