Reconhecimento de Padrões Complexos - Transformada de Hough


A trasnformada de Hough é uma técnica de reconhecimento de padrões matemáticos em imagens digitais, ou seja, é a identificação de parâmetros em uma imagem que possuam equações com fómulas conhecidas, como linhas retas, circunferências, elipses, entre outros.

Para utilizar esse método geralmente é realizado um pré-processamento na imagem com o intuito de identificar de forma mais clara os contornos dos elementos que a compõe. Para isso, um dos melhores métodos da atualidade é o algorítmo de Canny, mensionado em postagens anteriores, que extraí apenas as bordas de uma imagem. A figura a seguir ilustra esse método:



Para simplificar a explicação será trabalhado apenas a identificação de retas. Sabe-se que a equação geral da reta é dada por:

y = ax + b 

onde "a" é o coeficiente angular e "b"é a interseção com o eixo y. Na transformada de Hough analisamos dois planos, o tradicional e o plano dos parâmetros, onde os eixo x é "b" e o eixo y é "a", observe a figura abaixo:


Na figura acima observa-se que cada ponto na imagem converte-se em uma reta no plano "ab", com equação
b = -ax + y

O problema desse plano é que quando necessita-se determinar retas verticais, tem-se o coeficiente angular tendendo ao infinito. Portanto, uma nova proposta é utilizada, em que a equação da reta é verificada em seu modelo polar:

ρ = x cosθ + y sinθ , 

Onde ρ é a distância da reta à origem e θ é o ângulo entre o eixo x e a normal da reta analisada, como mostrado na figura abaixo.


Através desse método, o ponto (x,y) é representado por (ρ,θ). Dessa forma, o plano ρθ será o plano dos parâmetros e o ponto de uma reta na imagem será representada por uma senoide, onde todos os pontos de uma mesma reta se interceptam em um único ponto que vai corresponder aos parâmetros dessa uma reta.

Observe o exemplo abaixo:


Assim, identificando todos os pontos em que as senoide se encontram é possível descobrir aonde as retas se localizam. Analise o exemplo a seguir.

Primeiro uma foto foi extraída de um ambiente com possíveis retas:


Em seguida realiza-se o processamentod e imagem para realçar bordas:



Aplicando a transformada de Hough obtem-se as senóides de cada ponto da imagem binarizada:



Identificando os pontos que mais se destacam no cruzamento das senoides e plotando as retas com os coeficientes descobertos é possível identificar as principais retas da imagem:


Observa-se que embora algumas retas não foram traçadas nota-se um resultado satisfatório, onde as linhas mais destacadas da imagem puderam ser obtidas. A transformada Hough possui inúmeras aplicabilidades e é uma poderosa ferramenta para reconhecimento de objetos e padrões, assim não deixe de aprofundar seus conhecimentos sobre esse tema! :D 


Fontes Utilizadas 

  • Pereira, Aledir Silveira. Processamento de imagens médicas utilizando a Transformada de Hough. Diss. Universidade de São Paulo, 1995.
  • de Macedo, Maysa Malfiza Garcia. Uso da Transformada de Hough na Vetorização de Moldes e outras Aplicações. Diss. Master’s thesis, Universidade Federal Fluminense, Niterói, RJ, 2005.




Comments