capÍtulo 1 encontrando a linha divisória: detecção de bordasaldo.vw/visao/bordas.pdfdetector de...

16
Introdução à Visão Computacional 9 CAPÍ TULO 1 Encontrando a Linha Divisória: Detec ç ão de Bordas Contribuíram: Daniela Marta Seara, Geovani Cássia da Silva Espezim Elizandro Encontrar Bordas também é Segmentar A visão computacional envolve a identificação e classificação de objetos em uma imagem, desta forma a detecção de bordas é uma ferra- menta essencial no processo de análise de imagens. Este trabalho tem como objetivo dar uma breve introdução sobre os conceitos que envolvem o processo de detecção de bordas. A importância 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, perímetro e forma. Detecção de Imagens O primeiro passo na análise de imagens é a separação ou a segmentação dos objetos dentro da imagem. Algoritmos de segmentação permitem achar diferenças entre dois ou mais objetos. A segmentação é baseada em dois conceitos: similaridade e descontinuidade. Na segmentação procura-se distinguir as partículas umas das outras e do fundo. Esta distinção permitirá ao programa interpretar pixels contíguos e agrupá- los em regiões. Não existe um modelo formal para a segmentação, o processo é essencialmente empírico e deverá se ajustar a diferentes tipos de imagem. Esta etapa é a mais difícil do processo e também a mais delicada porque todas as medidas serão realizadas sobre as regiões identificadas nesta etapa. A segmentação é tão complexa porque tenta

Upload: others

Post on 20-Feb-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • Introdução à Visão Computacional 9

    CAPÍTULO 1 Encontrando a Linha Divisória: Detecção de Bordas

    Contribuíram: Daniela Marta Seara, Geovani Cássia da Silva Espezim Elizandro

    Encontrar Bordas também é Se gmentarA visão computacional envolve a identificação e classificação deobjetos em uma imagem, desta forma a detecção de bordas é uma ferra-menta essencial no processo de análise de imagens. Este trabalho temcomo objetivo dar uma breve introdução sobre os conceitos queenvolvem o processo de detecção de bordas. A importância de talprocesso é devido ao fato de que ao se detectar uma borda podemoslocalizar todos os objetos de uma imagem definindo desta forma,propriedades como área, perímetro e forma.

    Detecção de Ima gens

    O primeiro passo na análise de imagens é a separação ou a segmentaçãodos objetos dentro da imagem. Algoritmos de segmentação permitemachar diferenças entre dois ou mais objetos. A segmentação é baseadaem dois conceitos: similaridade e descontinuidade. Na segmentaçãoprocura-se distinguir as partículas umas das outras e do fundo. Estadistinção permitirá ao programa interpretar pixels contíguos e agrupá-los em regiões. Não existe um modelo formal para a segmentação, oprocesso é essencialmente empírico e deverá se ajustar a diferentestipos de imagem. Esta etapa é a mais difícil do processo e também amais delicada porque todas as medidas serão realizadas sobre as regiõesidentificadas nesta etapa. A segmentação é tão complexa porque tenta

  • CAPÍTULO 1.Encontrando a Linha Divisória: Detecção de Bordas

    10 Aldo von Wangenheim

    traduzir para o computador um processo cognitivo extremamente sofis-ticado realizado através da visão humana.

    A descontinuidade em uma imagem pode ser:

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

    Algoritmos de Se gmenta ção

    a) Detecção de pontos: é a mais simples técnica de detecção. Um pontoterá uma mudança drástica do valor de cinza em relação aos seusvizinhos.

    b) Detecção de linhas: é o processo mais complicado, pois é necessárioachar os pixels que são semelhantes e testá-los para verificar se sãoparte de uma linha comum.

    c) Detecção de bordas: é uma das técnicas básicas utilizadas pela visãohumana no reconhecimento de objetos. É o processo de localização erealce dos pixels de borda, aumentado o contraste entre a borda e ofundo. Este processo verifica a variação dos valores de luminosidade deuma imagem. Como foi abordado anteriormente, neste trabalhodaremos ênfase apenas para os algoritmos de segmentação paradetecção de bordas.

    O que é uma Borda?

    É o contorno entre um objeto e o fundo indicando o limite entre objetossobrepostos Um CONTORNO é uma linha fechada formada pelasbordas de um objeto. Mas como conceituamos e detectamos uma bordacomputacionalmente ?

    Variações de intensidade complexas que ocorrem em uma região sãogeralmente chamadas de textura. Bordas são definidas como picos damagnitude do gradiente, ou seja, são variações abruptas que ocorrem aolongo de curvas baseadas nos valores do gradiente da imagem. Asbordas são regiões da imagem onde ocorre uma mudança de intensidade

  • Encontrar Bordas também é Segmentar

    Introdução à Visão Computacional 11

    em um certo intervalo do espaço, em uma certa direção. Isto correspondea regiões de alta derivada espacial, que contém alta frequência espacial.

    • Borda unidimensional : pode ser definida como uma mudança de umaintensidade baixa para alta. A intensidade do sinal pode ser interferidapor ruídos.

    • Borda bidimensional: as descontinuidades ocorrem ao longo de certaslinhas ou orientações A orientação é uma característica importante embordas 2-D

    Ruídos

    Toda aquisição da imagem está sujeita a algum tipo de ruído. A situaçãoideal, sem ruído, na prática não existe. Ruídos não podem ser previstospois são de natureza randômica e não podem nem mesmo ser medidosprecisamente. Porém, algumas vezes ele pode ser caracterizado pelo

    Figura 1.1. Gráfico da intensidade de uma imagem

    Figura 1.2. Gráfico da intensidade representando uma borda bidimensional

    contraste

    orientação largura

  • CAPÍTULO 1.Encontrando a Linha Divisória: Detecção de Bordas

    12 Aldo von Wangenheim

    efeito na imagem, e é geralmente expresso como uma distribuição deprobabilidade com uma média específica e um desvio padrão. Existemdois tipos de ruídos específicos:

    • Ruído independente do sinal: é um conjunto randômico de níveis decinza, estatisticamente independente dos dados da imagem. Este tipode ruído acontece quando a imagem é transmitida eletronicamente deum lugar para outro.

    • A - imagem perfeita • N - é o ruído • B - imagem final • B= A+N

    • Ruído de sinal dependente: o nível do valor de ruído a cada ponto naimagem é uma função do nível de cinza.

    Operadores para detec ção de bordas que utilizam derivadas

    Desde que uma borda é definida por uma mudança no nível de cinza,quando ocorre uma denscontinuidade na intensidade, ou quando ograndiente da imagem tem uma variação abrupta, um operador que ésensível a estas mudanças operará como um detector de bordas.

    Um operador de derivada faz exatamente esta função. Uma interpre-tação de uma derivada seria a taxa de mudança de uma função, e a taxade mudança dos níveis de cinza em uma imagem é maior perto dasbordas e menor em áreas constantes. Se pegarmos os valores da inten-sidade da imagem e acharmos os pontos onde a derivada é um ponto demáximo, nós teremos marcado suas bordas. Dado que as imagens sãoem duas dimensões, é importante considerar mudanças nos níveis decinza em muitas direções. Por esta razão, derivadas parciais dasimagens são usadas, com as respectivas direções X e Y. Uma estimativada direção atual da borda pode ser obtida usando as derivadas x e y

  • Operadores para detecção de bordas que utilizam derivadas

    Introdução à Visão Computacional 13

    como os componentes da direção ao longo dos eixos, e computar o vetorsoma. O operador envolvido é o gradiente, e se a imagem é vista comouma função de duas variáveis A(x,y) então o gradiente é definido como:

    Fórumula 1:

    Máscaras para Al goritmos de Se gmenta ção

    A maioria dos algoritmos de segmentação utilizam uma máscara sobre ospixels da imagem para detecção de uma descontinuidade. Cada pixel eseus pixels vizinhos tem um valor do nível de cinza multiplicados poruma constante. A soma destes valores representa a máscara de respostadaquele ponto.

    Figura 1.3. Exemplo de uma imagem de tomografia e sua respectiva imagem de gradientes

  • CAPÍTULO 1.Encontrando a Linha Divisória: Detecção de Bordas

    14 Aldo von Wangenheim

    Fórumula 2: Exemplo de uma máscara de resposta

    Onde:

    mi: é valor para um pixel

    pi: é o valor do nível de cinza para um pixel

    R: é a máscara de resposta para o pixel central (p5).

    Ampliando esta máscara atravessando a imagem linha por linha, umnovo vetor é criado. É o mesmo que a imagem original mais contém osvalores da máscara de resposta ao invés do valor do pixel. Estes valoresda máscara de resposta podem então ser comparados com o valormínimo de threshold para determinar quais pixels são mais prováveis deser parte de uma borda. Este threshold pode ser ajustado para variarseletivamente de acordo com os pixels de borda, permitindo um usuárioconduzir o algoritmo para um melhor desempenho para uma imagemespecífica.

    Considerando o exemplo da máscara de entrada anterior e supondo umvalor de threshold 20. A matriz 3x3 representa uma parte de uma deter-minada imagem, desde que os valores de saída que cancelem o valorcentral, não ultrapassem o valor de threshold, o que significa que aimagem não apresenta descontinuidade.

    Analisando a máscara de resposta para o conjunto contínuo de pixelsdados na Figura 1.4., percebemos que neste caso o valor central damáscara é 16, e a soma de todos os pixels subtraída do valor centralfornece zero como resposta. Como zero é um valor menor do que o

    m1 m2 m3

    m4 m5 m6

    m7 m8 m9

    p1 p2 p3

    p4 p5 p6

    p7 p8 p9

    ⋅ m1p1 m2p2 … m9p9+ + + mipii 1=

    9

    ∑= =

  • Algoritmos de Detecção de Bordas

    Introdução à Visão Computacional 15

    threshold (20), o pixel central na imagem não é um ponto de descontinui-dade.

    Neste caso (Figura 1.5.) o valor central da máscara é 64, a soma de todosos pixels subtraída do valor central fornece um valor de 48 que é maior do20 (threshold), o pixel central na imagem é um ponto de descontinuidade,portanto seria um pixel de borda.

    Algoritmos de Detec ção de BordasOs algoritmos para detecção de bordas que serão estudados no presentetrabalho são:

    • Roberts • Sobel

    Figura 1.4. Exemplo de uma máscara

    Figura 1.5. Outro exemplo de máscara

    máscara dedetecção de ponto

    imagemresposta damáscara

    máscara dedetecção de ponto

    imagemresposta damáscara

  • CAPÍTULO 1.Encontrando a Linha Divisória: Detecção de Bordas

    16 Aldo von Wangenheim

    • Robinson • Canny • Marr-Hildreth

    Operador de Roberts

    É o mais antigo e simples algoritmos de detecção de bordas. Utilizauma matriz 2x2 para encontrar as mudanças nas direções x e y.

    Para determinar onde o pixel avaliado é ou não um pixel de borda, ogradiente é calculado da seguinte forma:

    Fórumula 3:

    Se a magnitude calculada é maior do que o menor valor de entrada(definido de acordo com a natureza e qualidade da imagem que estasendo processada), o pixel é considerado ser parte de um borda. Adireção do gradiente da borda, perpendicular a direção da borda, éencontrada com a seguinte fórmula:

    Fórumula 4:

    Figura 1.6. Máscara de Roberts

  • Algoritmos de Detecção de Bordas

    Introdução à Visão Computacional 17

    O pequeno tamanho da máscara para o operador de Roberts torna omesmo fácil de se implementar e rápido para calcular a máscara deresposta. As respostas são muito sensíveis ao ruído na imagem.

    Operador de Sobel

    Utiliza duas máscaras para encontrar os gradientes vertical e horizontaldas bordas.

    Considera ções sobre o o perador de Sobel

    • A fórmula para encontrar o gradiente e o ângulo são as mesmas do ope-rador de Roberts.

    • O ângulo do gradiente corresponde direção de máxima variação daintensidade

    • Devido as máscaras serem 3X3 ao invés de 2X2, Sobel é muito menossensível ao ruído do que Roberts.

    • Os resultados são mais precisos. • A computação de |G| se torna mais complexa. Na prática |G| é aproxi-

    mada da seguinte forma: |G|= |Gx| + |Gy|.

    • O módulo do gradiente é proporcional a derivada local da intensidade.

    Figura 1.7. Máscaras de Sobel

  • CAPÍTULO 1.Encontrando a Linha Divisória: Detecção de Bordas

    18 Aldo von Wangenheim

    Operador de Robinson

    É similar em operação ao de Sobel, porém usa um conjunto de oitomáscaras, onde quatro delas são as seguintes:

    As outras quatro são simplesmente negações destas quatro. A magni-tude do gradiente é o valor máximo obtido ao aplicar todas as oitomáscaras ao pixel vizinho, e o ângulo do gradiente pode ser aproximadocomo o ângulo na linha de zeros na máscara dando a resposta máxima.Este algoritmo aumenta a precisão de |G|, mas requer mais computaçãodo que Roberts e Sobel, devido ao tamanho das máscaras.

    Detector de bordas de Cann y

    Na criação do algoritmo canny, definiu-se um conjunto de requisitosque um detector de bordas deveria satisfazer. São eles:

    1. Taxa de erro: o detector de bordas deveria detectar e achar somente bordas, nenhuma borda deveria faltar;

    2. Localização: a distância entre os pixels de borda encontradas pelo detector de bordas e a borda atual deveriam ser o menor possível;

    3. Resposta: o detector de bordas não deveria identificar múltiplos pixels de borda onde somente exista um único pixel.

    O detector de bordas de Canny é um filtro de convolução f que unifor-mizaria o ruído e localizaria as bordas. O problema é identificar um

    Figura 1.8. Máscaras de Robinson

  • Algoritmos de Detecção de Bordas

    Introdução à Visão Computacional 19

    filtro que otimize os três critérios do detector de bordas. Se considerarmosuma borda de uma dimensão variando no contraste e então convolucio-nando a borda com a função de uniformização de Gauss, o resultado seráuma variação contínua do valor inicial ao final, com uma inclinaçãomáxima no ponto onde existe um "degrau". Se esta continuidade édiferenciada em relação a x, esta inclinação máxima será o máximo danova função em relação a original.

    Os máximos da convolução da máscara e da imagem indicarão bordas naimagem. Este processo pode ser realizado através do uso de uma funçãode Gauss de 2-Dimensões na direção de x e y. Os valores das máscaras deGauss dependem da escolha do sigma na equação de Gauss:

    Fórumula 5:

    Figura 1.9. Detecção de bordas por Canny

  • CAPÍTULO 1.Encontrando a Linha Divisória: Detecção de Bordas

    20 Aldo von Wangenheim

    A aproximação do filtro de Canny para detecção de bordas é G'. Convo-lucionando a imagem com G' obtemos uma imagem I que mostrará asbordas, mesmo na presença de ruído. A convolução é relativamentesimples de ser implementada, mas é cara computacionalmente, especi-almente se for em 2-dimensões. Entretanto,uma convolução de Gaussde 2-dimensões pode ser separada em duas convoluções de Gauss de 1-dimensão.

    A intensidade computacional do detector de bordas de Canny é relativa-mente alta, e os resultados são geralmente pós-processados para maiorclareza. Entretanto, o algoritmo é mais eficiente no processamento deimagens com ruídos ou com bordas difusas.

    Algoritmo de Cann y

    1. Ler a imagem I a ser processada;

    2. Criar uma máscara de Gauss de 1-D G para convolucionar I. O desvio S de Gauss é um parâmetro para o detector de bordas;

    3. Criar uma máscara de 1-D para a primeira derivada de Gauss nas direções x e y; nomear como Gx e Gy. O mesmo valor S é usado;

    4. Convolucionar a imagem I com G percorrendo as linhas na direção x (Ix) e percorrer as colunas na direção y (Iy);

    5. Convolucionar Ix, com Gx, para dar I´x, o componente x e de I con-volucionado com a derivada de Gauss, e convolucionar Iy, com Gy para dar I´y;

    6. 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 máximo da derivada primeira ocorrerá a cada zero crossing daderivada Segunda. Para localizar bordas horizontais e verticais procu-ramos a derivada Segunda nas direções de x e y. Isto é Laplacian de I:

  • Algoritmos de Detecção de Bordas

    Introdução à Visão Computacional 21

    Fórumula 6: - Laplaciano

    O Laplaciano é linear e simétrico rotacionalmente. Podemos procuarpelos zeros crossings da imagem primeiro uniformizando com umamáscara de Gauss e então calculando a derivada Segunda. Isto define ooperador de Marr-Hildreth.

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

    • a reputação de Marr; • pesquisadores encontraram campos nos olhos de animais que se com-

    portavam de forma semelhante com este operador (campos receptivos);

    • o operador é simétrico. Bordas são encontradas em todas as direções,diferente dos operadores que usam a primeira derivada (são unidirecio-nais).

    Figura 1.10. Zero Crossing

  • CAPÍTULO 1.Encontrando a Linha Divisória: Detecção de Bordas

    22 Aldo von Wangenheim

    Considera ções sobre os Operadores de Derivadas de Se gunda Ordem

    • Zero crossing da derivada segunda são mais simples de determinar doque o ponto de máximo em uma derivada de primeira ordem;

    • Zero crossing sempre formam contornos fechados. Isto é bom quandoestamos tentando separar objetos em uma imagem.

    • No operador da Segunda derivada o ruído é considerado. Este métodoé muitas vezes usado em conjunção com limiarização normal parareduzir sua sensibilidade a ruído;

    • Gerar sempre contornos fechados não realista; • Marca bordas em algumas localizações que não são bordas.

    Método de Marr-Hildreth

    1. Borra-se a imagem com um kernel gaussiano;

    2. Obtém-se o Laplaciano;

    3. Localiza-se os cruzamentos por zero;

    4. Os pontos localizados formam contornos fechados.

    Ferramentas de Software para Detec ção de Bordas

    O sistema Khoros [1.13][1.14] apresenta uma considerável coleçãobons detetores de bordas. Entre eles estão operações de convolução queimplementam os filtros: Roberts, Sobel, Robinson, Marr-Hildreth.Existe também um Toolbox especial que implementa o Canny. Alémdesses, o Khoros disponibiliza filtros de primeira (vdrf) e segunda(vsderf) derivada que realizam um pós-processamento dos resultados dedetecção de bordas, apresentando uma imagem binária. Estes filtrospossibilitam ao usuário estabelecer inclusive tamanhos mínimos parasegmentos a serem detectados, etc.

  • Referências

    Introdução à Visão Computacional 23

    Além destes, existe uma excelente implementação do Canny no pacoteVISTA [1.15].

    Referências[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

    Figura 1.11. Imagem de tomografia computadorizada e resultados da aplicação do filtro de primeira derivada (vdrf) e do filtro de segunda derivada (vsderf) provenientes do Khoros.

  • CAPÍTULO 1.Encontrando a Linha Divisória: Detecção de Bordas

    24 Aldo von Wangenheim

    [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 User’s 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 forComputer Vision Research. Internal Report, Department of ComputerScience, University of British Columbia, Canada, 1994