Correlação Cruzada (Template Matching)

programador

A correlação cruzada é uma técnica fundamental para localizar padrões. Ela compara um template (padrão) com a imagem alvo. Primeiramente, o template desliza sobre toda a imagem. Em cada posição, calcula-se uma medida de similaridade. A correlação simples usa o produto interno entre template e subimagem. Valores altos indicam boa correspondência local. Por exemplo, busca-se um olho em uma imagem de rosto. Contudo, a correlação simples é sensível à amplitude dos pixels. Portanto, usa-se o coeficiente de correlação normalizado. Este coeficiente varia entre -1 e +1, sendo invariante a mudanças de brilho e contraste.

coeficiente de correlação normalizado

O coeficiente de correlação normalizado resolve os problemas de amplitude. Primeiramente, ele subtrai a média do template e da subimagem. Em seguida, normaliza pelo desvio padrão de ambos. A fórmula resultante é robusta a mudanças lineares de iluminação. Por exemplo, mesmo com brilho variável, o padrão ainda é encontrado. O coeficiente igual a 1 indica correspondência perfeita. O coeficiente igual a -1 indica correspondência negativa perfeita (inverso). Valores próximos de 0 indicam nenhuma correlação. Portanto, este coeficiente é a escolha padrão em template matching. Ele é implementado pela função normxcorr2 no MATLAB, por exemplo.

aplicações práticas do template matching

O template matching possui diversas aplicações práticas importantes. Primeiramente, ele é usado em sistemas de inspeção industrial. Por exemplo, verificar se todos os componentes estão em uma placa de circuito. Outra aplicação é na detecção de objetos em imagens médicas. Por exemplo, localizar um tumor em uma sequência de ressonâncias. O método também é útil em sistemas de visão robótica. Robôs podem localizar peças em uma esteira de produção. Além disso, o template matching é usado em sistemas de vigilância. Por exemplo, rastrear um veículo específico em imagens de câmeras. Contudo, o método não é invariante à rotação ou escala. Portanto, o template deve estar na mesma orientação e tamanho do objeto alvo.

limitações e quando utilizar outras abordagens

O template matching tem limitações significativas que merecem atenção. Primeiramente, ele não é invariante à rotação do objeto. Um template rotacionado não será detectado corretamente. Além disso, o método também falha com mudanças de escala. Objetos maiores ou menores que o template passam despercebidos. Outra limitação é a sensibilidade a oclusões parciais. Se parte do objeto estiver escondida, a correlação diminui drasticamente. Para estes casos, utilize métodos mais avançados. Por exemplo, SIFT ou SURF são invariantes à rotação e escala. Redes neurais convolucionais também resolvem estes problemas. Portanto, escolha template matching apenas para cenários controlados. Quando a orientação, escala e iluminação forem constantes, ele oferece uma solução simples e eficaz.

Classificador de Mínima Distância (Prototype Matching)

programador

O classificador de mínima distância é a abordagem mais intuitiva em reconhecimento de padrões. Primeiramente, ele armazena um protótipo (vetor médio) para cada classe. Um padrão desconhecido é comparado com todos os protótipos. O algoritmo calcula a distância euclidiana entre o padrão e cada protótipo. Em seguida, ele atribui o padrão à classe do protótipo mais próximo. Por exemplo, o sistema E-13B de leitura de cheques usa esta técnica. Caracteres são projetados para maximizar a separação entre classes. Consequentemente, um classificador simples funciona com altíssima precisão. Portanto, este método é ideal quando as classes são bem separadas e os dados são limpos.

fundamento matemático e função discriminante

A função discriminante do classificador é linear e de fácil implementação. Primeiramente, calcula-se o termo (m_j)^T * x para cada classe j. Subtrai-se então (1/2)*(m_j)^T * m_j deste resultado. A classe com o maior valor desta função vence a classificação. Equivalentemente, pode-se minimizar a distância euclidiana ao quadrado. A fórmula equivalente é ||x – m_j||² = x^Tx – 2(m_j^T x) + m_j^T m_j. O termo x^Tx é comum a todas as classes e pode ser ignorado. Portanto, maximizar m_j^T x – (1/2) m_j^T m_j é o mesmo que minimizar a distância. As superfícies de decisão são hiperplanos que bisseccionam as linhas entre os centros das classes.

vantagens e limitações do método

O classificador de mínima distância oferece várias vantagens importantes. Primeiramente, ele é extremamente simples de implementar e entender. Além disso, seu treinamento é muito rápido: apenas calcular as médias. O método também é computacionalmente leve durante a classificação. Por exemplo, sistemas embarcados e de tempo real o utilizam. Contudo, ele tem limitações significativas. A principal é a suposição de que as classes são esféricas (mesma variância em todas as direções). Quando as classes têm formas alongadas ou orientações diferentes, o método falha. Outra limitação é a sensibilidade a outliers (pontos extremos). Um único ponto distante pode deslocar significativamente a média da classe. Portanto, dados de treinamento devem ser cuidadosamente limpos.

quando utilizar o classificador de mínima distância

Utilize este classificador quando as classes forem bem separadas e compactas. Por exemplo, reconhecimento de caracteres impressos com fontes padronizadas. Outra aplicação é na classificação de frutas por cor e tamanho em esteiras industriais. O método também funciona bem como baseline para problemas mais complexos. Contudo, evite-o quando as classes tiverem formas alongadas ou sobrepostas. Nestes casos, o classificador Bayesiano ou redes neurais são mais adequados. Além disso, normalize os dados para que todas as características tenham a mesma escala. Características com escalas muito diferentes dominarão a distância indevidamente. Em resumo, escolha a mínima distância pela sua simplicidade, velocidade e facilidade de implementação. Ela é uma excelente primeira tentativa em muitos problemas de classificação.

LinkedIn
Share
Instagram