Quais fatores devo considerar na escolha de um algoritmo de detecção de borda?


33

Eu aprendi sobre vários algoritmos de detecção de borda, incluindo algoritmos como os métodos Sobel, Laplacian e Canny. Parece-me que o detector de borda mais popular é um detector de borda Canny, mas há casos em que esse não é o algoritmo ideal para usar? Como posso decidir qual algoritmo usar? Obrigado!


7
O que você está detectando?
endolith

Respostas:


29

Existem muitas possibilidades de detecção de borda, mas os três exemplos mencionados caem em três categorias distintas.

Sobel

Isso aproxima uma derivada de primeira ordem. Dá extremos nas posições de gradiente, 0 onde nenhum gradiente está presente. Em 1D, é = [101]

  • borda suave => local mínimo ou máximo, dependendo do sinal subindo ou descendo.
  • 1 linha de pixel => 0 na própria linha, com extremos locais (de sinal diferente) logo ao lado. Em 1D, é = [121]

Existem outras alternativas para Sobel, que têm +/- as mesmas características. Na página da Roberts Cross na wikipedia, você encontra uma comparação de algumas delas.

Laplace

Isso aproxima uma derivada de segunda ordem. Dá 0 nas posições de gradiente e também 0 onde nenhum gradiente está presente. Dá extrema onde um gradiente (mais longo) começa ou para.

  • borda suave => 0 ao longo da borda, extremos locais no início / parada da borda.
  • 1 linha de pixel => um extremo "duplo" na linha, com extremos "normais" com um sinal diferente logo ao lado

O efeito desses 2 em diferentes tipos de arestas pode ser melhor visualizado visualmente:

Comparação de Sobel vs Laplace

Canny

Este não é um operador simples, mas é uma abordagem de várias etapas, que usa Sobel como uma das etapas. Onde Sobel e Laplace oferecem um resultado em escala de cinza / ponto flutuante, que você precisa definir como limiar, o algoritmo Canny tem o limiar inteligente como uma de suas etapas, para que você obtenha um resultado binário sim / não. Além disso, em uma borda suave, você provavelmente encontrará apenas 1 linha em algum lugar no meio do gradiente.


18

Enquanto Sobel e Laplacian são simplesmente filtros, Canny vai além disso de duas maneiras.

Primeiro, ele faz a supressão não máxima, que elimina o ruído produzido por todos os tipos de objetos e gradientes de cores em uma imagem. Em segundo lugar, na verdade, inclui uma etapa que permite discernir entre diferentes direções da aresta e preencher os pontos ausentes de uma linha.

Em outras palavras, o detector de borda Canny está em uma classe completamente diferente da de Sobel e Laplacian. É muito mais inteligente, pois inclui um monte de pós-processamento, enquanto Sobel e Laplacian são simplesmente saídas de filtro de alta passagem seguidas de limiar binário linear.


existe uma versão 1-D do canny a esse respeito? Seria simplesmente uma aplicação direta da versão 2-D?
Spacey

9

As duas decisões mais importantes ao tentar detectar arestas são, para mim normalmente:

  1. Posso segmentar os objetos e usar um operador morfológico para encontrar a borda da imagem binária (segmentada)? Com dados barulhentos, isso tende a ser mais robusto.

  2. Que filtro de suavização de preservação de bordas devo usar para reduzir o ruído da imagem? Os filtros de borda são baseados na diferenciação, que sofrerá com dados ruidosos. A escolha mais simples é o filtro mediano, mas os filtros de difusão anisotrópica ou meios não locais oferecerão melhor desempenho com o custo de ter mais parâmetros para ajustar.

Para a detecção de borda em si, não consigo pensar por um bom motivo para não usar Canny.


7

Abordagem SUSAN

Outra abordagem para detecção de bordas e cantos é a abordagem SUSAN .

Nesta abordagem, em vez de aproximações derivadas, é utilizada uma abordagem de aproximação integral . Isso tem a vantagem de não apenas ser capaz de detectar arestas, mas também de "recursos bidimensionais" (ou seja, cantos).

Outra vantagem de uma abordagem de aproximação integral é que o ruído tende a ter menos efeito sobre os resultados.


6

Canny produz uma imagem binária e depende de limites fornecidos externamente (que são dependentes de imagem / aplicativo).
Os filtros baseados em convolução produzem uma imagem de "intensidade da borda". Isso é útil se o peso ou a força da aresta forem importantes (por exemplo, na Transformada Hough ponderada).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.