Você está na página 1de 16

CAPTULO 1

Contriburam:

Encontrando a Linha
Divisria:
Deteco de Bordas
Daniela Marta Seara, Geovani Cssia da Silva Espezim Elizandro

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:
Mscaras de Robinson

Figura 1.8.

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

- Laplaciano

Frumula 6:

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

Imagem de tomografia computadorizada e resultados da aplicao do filtro


de primeira derivada (vdrf) e do filtro de segunda derivada (vsderf)
provenientes do Khoros.

Figura 1.11.

Alm destes, existe uma excelente implementao do Canny no pacote


VISTA [1.15].

Referncias
[1.1]

http://www.dcmm.puc-rio.br/Cursos/IPDI/index.htm

[1.2]

http://www.eps.ufsc.br/~martins/fuzzy/fuz_ap/image/image_gi.htm

[1.3]

http://www.coder.com/creations/banner/examples/edge.html

[1.4]

http://vinny.bridgeport.edu/MailArchives/cs411x-list/0029.html

[1.5]

http://ccl1-dee.poliba.it/~cafforio/edge.html

[1.6]

http://www.cclabs.missouri.edu/~c621269/blackkite/blackkite.html

[1.7]

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

24

[1.8]

http://rvl1.ecn.purdue.edu/v1/student-software/ee661.97/teffeau/
teffeau.html

[1.9]

http://www-mrips.od.nih.gov/uguide/ug13.htm#4520

[1.10]

http://www.bath.ac.uk/BUCS/Software/image_analysis/visilog/html/
refguide/chap8.html

[1.11]

http://lummi.stanford.edu/class/cs223b/WWW/oldnotes/notesEdges/
node2.html

[1.12]

http://rome.cis.plym.ac.uk/cis/cesar/hilbert/ov/over.html

[1.13]

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.

[1.14]

www.khoral.com/

[1.15]

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

Aldo von Wangenheim

Você também pode gostar