Redes Neurais nem sempre foram a primeira escolha para o processamento de imagens. Depois de AlexNet, Inception, GoogleNet e outras redes neurais profundas e convulucionárias não se opta por outro caminho quando a questão é assertividade.
Antes do deep learning aparecer. Antes das convolucionárias determinarem como reconhecer.
Antes do relu e outras técnicas aparecerem existiam os classificadores em cascata.
Classificadores em Cascata
Possui vantagens e desvantagens sobre redes bayseanas. Os classificadores Haar em cascata e os classificadores baseados em LBP costumavam ser as melhores ferramentas para detecção de objetos. Quando a visão computacional conheceu as redes neurais convolucionais, os classificadores em cascata se tornaram a segunda melhor alternativa. A principal vantagem é a velocidade de treinamento. A principal desvantagem é a propensão a falsos positivos e necessidade de um conjunto especifico de dados para ser treinada.
Treinar placas de trânsito por exemplo. São simples, pois não há excessiva variedade de amostras possiveis para uma placa de "preferencial" por exemplo. Por mais distintas que uma placa de "preferencial" seja da outra, ela sempre terá um determinado formato e um determinado padrão, identificável durante a descoberta das cores, bordas, intensidades e cisões.Coisas que são analisadas especificamente por cada algorítimo de classificação em cascata.
HOG ou Histograma de gradientes orientados
O Hog nasceu em 1996 mas só se tornou ativo como ferramenta em 2004. Lembremos que a explosão de redes neurais começou em 2011, embora iniciada por volta de 2006. Veja a imagem abaixo e entenda o que é gradiente orientado.

O algoritimo processa as informações baseadas em dados de treinamento positivos e negativos. Os positivos tem os vetores incrementados enquanto os negativos servem para atenuar o treinamento, removendo ruidos. Um Kernel que calcula o gradiente dos pixels de cada região é aplicado. O gradiente resultante é orientado diagonal e transversalmente.
A cascata ocorre, pois um segundo, terceiro .. gradiente é executado sobre o resultado de gramatura anterior e assim sussetivamente até que o algorítimo faça toda a cobertura das imagens de amostra. Por isso esse tipo de algoritimo é chamado de cascata.
Uma imagem semelhante a Haar de qualquer tamanho pode ser calculada em tempo constante (aproximadamente 60 instruções do microprocessador / base).
HOG obtém mais sucesso para detecção de feições vivas (rostos, sorrisos, lingua, olhos) que para a detecção de bordas onde HAAR e LBP são melhor utilizados.
Haar
É uma forma de detecção de objetos proposto por Paul Viola e Michael Jones em 2001. A função de cascata é treinada a partir de muitas imagens positivas e negativas. É então usado para detectar objetos em outras imagens. O algorítimo por trás do HAAR é mais matemático e menos intuitivo.
Ele é ideal para identificar objetos com bordas bem definidas ou delimitada por bordas. Ex.: placas de trânsito, icones, limites de uma estrada, objetos geométricos em uma superficie. Isso se deve a várias filtragens matemáticas que o HAAR faz sobre a imagem, destacando as bordas e transformando os dados resultantes em ondas distributivas.
A idéia geral por trás do HAAR é realizar o agrupamento por feições. Isso inclui detecção de bordas, generalização e finalmente agrupamento.
Eis o resultado da primeira fase do HAAR::
Em uma segunda fase ocorre uma generalização das ondas, horizontal e diagonalmente, aplicando-se a transformada de haar:
que resulta em uma generalização das bordas:
Com essa pequena matriz de pixels, uma função onda é gerada que é o primeiro nó de treinamento.
Ah, eu sei que Hungria não ganha muito no futebol nem se detaca com algum youtuber superconhecido, mas ela propiciou grandes mentes matemáticas ao mundo. Dentre essas: Alfred Haar que propôs o calculo de kernel que realizar o calculo inicial denominado "matriz de Haar" dando origem ao nome do algorítimo.
Padrões binários locais
LBP - Local Binary Patterns ou Padrões binários locais é um método antigo que data 1994.
Seu funcionamento:
- Ele divide a imagem em janelas (ex: 9 pixels).
- Para o pixel central, ele o compara com seus vizinhos (8 vizinhos), se maior que o centro recebe 1, menor ou igual recebe 0.
- Essa matriz binária fornece uma direção vetorial que é replicada
- Em seguida sobre os 9 pixels, calcula um histograma e multiplica a matriz e a normaliza. Ela será novamente comparada na próxima fase.
- Após toda a imagem ser processada, uma repetição do processo é realizada buscando uma generalização do aspecto buscado, aumentando a matriz processada e generalizando o padrão de busca.
LBP tem a vantagem de ser muito rápido. É muito útil na detecção de objetos quando estão em planos distintos. Tem detecção fraca de borda mas realiza bem a consideração de cores e profundidade.





