Então, eu estava lendo o artigo sobre SURF (Bay, Ess, Tuytelaars, Van Gool: Recursos Robustos Acelerados (SURF) ) e não consigo compreender este parágrafo abaixo:
Devido ao uso de filtros de caixa e imagens integrais, não precisamos aplicar iterativamente o mesmo filtro à saída de uma camada filtrada anteriormente, mas podemos aplicar filtros de caixa de qualquer tamanho exatamente à mesma velocidade diretamente na imagem original e mesmo em paralelo (embora o último não seja explorado aqui). Portanto, o espaço da escala é analisado aumentando o tamanho do filtro em vez de reduzir iterativamente o tamanho da imagem, figura 4.
This is figure 4 in question.
PS: O artigo possui uma explicação da imagem integral, no entanto, todo o conteúdo do artigo é baseado no parágrafo específico acima. Se alguém leu este documento, você pode mencionar brevemente o que está acontecendo aqui. Toda a explicação matemática é bastante complexa para se entender primeiro, por isso preciso de ajuda. Obrigado.
Editar, alguns problemas:
1
Cada oitava é subdividida em um número constante de níveis de escala. Devido à natureza discreta das imagens integrais, a diferença mínima de escala entre duas escalas subseqüentes depende do comprimento lo dos lóbulos positivos ou negativos da derivada parcial de segunda ordem na direção da derivação (x ou y), definida como terço do comprimento do tamanho do filtro. Para o filtro 9x9, esse comprimento é 3. Para dois níveis sucessivos, devemos aumentar esse tamanho em no mínimo 2 pixels (um pixel de cada lado) para manter o tamanho irregular e, assim, garantir a presença do pixel central . Isso resulta em um aumento total do tamanho da máscara em 6 pixels (veja a figura 5).
Figure 5
Eu não conseguia entender as linhas no contexto fornecido.
Por dois níveis sucessivos, devemos aumentar esse tamanho em no mínimo 2 pixels (um pixel de cada lado) para manter o tamanho desigual e, assim, garantir a presença do pixel central.
Eu sei que eles estão tentando fazer algo com o comprimento da imagem, se é que eles estão tentando torná-lo estranho, de modo que haja um pixel central que lhes permita calcular o máximo ou o mínimo do gradiente de pixel. Estou um pouco duvidoso quanto ao seu significado contextual.
2)
Para calcular o descritor, é usada a waaret Haar.
Como a região do meio tem baixo mas alto.
3)
Qual é a necessidade de ter um filtro aproximado?
4. Não tenho problema com a maneira como descobriram o tamanho do filtro. Eles "fizeram" algo empiricamente. No entanto, tenho algum problema persistente com esse pedaço de linha
A saída do filtro 9x9, apresentada na seção anterior, é considerada como a camada de escala inicial, à qual nos referiremos como escala s = 1,2 (aproximando derivadas gaussianas com σ = 1,2).
Como eles descobriram o valor de σ. Além disso, como é que o cálculo da escala é mostrado na imagem abaixo. A razão pela qual afirmo sobre essa imagem é que o valor de s=1.2
continua recorrente, sem indicar claramente sua origem.
5.
A matriz hessiana representada em termos da L
qual é a convolução do gradiente de segunda ordem do filtro gausssiano e da imagem.
No entanto, diz-se que o determinante "aproximado" contém apenas termos que envolvem filtro gaussiano de segunda ordem.
O valor de w
é:
Minha pergunta: por que o determinante é calculado dessa forma acima e qual é a relação entre a matriz hessiana aproximada e a matriz hessiana?
Respostas:
O que é SURF?
Para entender corretamente o que está acontecendo, você também precisa estar familiarizado com SIFT : SURF é basicamente uma aproximação do SIFT. Agora, a verdadeira questão se torna: o que é peneirar? .
SIFT é um detector de ponto - chave e um descritor de ponto - chave . Na parte do detector, o SIFT é essencialmente uma variante multi-escala de detectores de canto clássicos, como o canto Harris, e que tem a capacidade de ajustar automaticamente a escala. Em seguida, dada a localização e o tamanho do patch (derivado da escala), ele pode calcular a parte do descritor.
O SIFT é muito bom em combinar partes de imagens localmente afins, mas tem uma desvantagem: é caro (ou seja, longo) calcular. Uma grande quantidade de tempo é gasta na computação do espaço de escala gaussiano (na parte do detector), depois na computação dos histogramas da direção do gradiente (para a parte do descritor).
SIFT e SURF podem ser vistos como diferenças entre os gaussianos com a seleção automática de escala (ou seja, tamanhos gaussianos). Assim, você constrói primeiro um espaço de escala em que a imagem de entrada é filtrada em diferentes escalas. O espaço da balança pode ser visto como uma pirâmide, onde duas imagens consecutivas são relacionadas por uma mudança de escala (ou seja, o tamanho do campo passa-baixo gaussiano mudou) e as escalas são agrupadas por oitavas (ou seja, uma grande mudança no tamanho do filtro gaussiano).
A parte de aproximação
Como o cálculo do espaço de escala gaussiano e os histogramas da direção do gradiente são longos, é uma boa idéia (escolhida pelos autores do SURF) substituir esses cálculos por aproximações rápidas.
Os autores observaram que pequenos gaussianos (como os usados no SIFT) poderiam ser bem aproximados por integrais quadrados (também conhecidos como desfoque de caixa ). Essas médias retangulares têm a propriedade agradável de serem muito rápidas de obter, graças ao truque de imagem integral.
Além disso, o espaço de escala gaussiano na verdade não é usado em si , mas para aproximar um Laplaciano de Gaussiano (você pode encontrar isso no documento SIFT). Portanto, você não precisa apenas de imagens desfocadas em Gauss, mas de derivadas e diferenças delas. Então, você apenas avança um pouco a idéia de aproximar um gaussiano por uma caixa: primeiro deriva um gaussiano quantas vezes for necessário, depois aproxima cada lóbulo por uma caixa do tamanho correto. Você acabará tendo um conjunto de recursos do Haar.
Incremento de 2
Este é apenas um artefato de implementação, como você adivinhou. O objetivo é ter um pixel central. O descritor de recursos é calculado em relação ao centro do patch da imagem a ser descrito.
Região do meio
número mágico
fonte
Para identificar os pontos de interesse em potencial, a função diferença de Gauss (DOG) é freqüentemente usada para processar a imagem, tornando-a invariante em escala e orientação.
No SIFT, as pirâmides de imagem são estabelecidas filtrando cada camada com o DOG de
sigma
valores crescentes e fazendo a diferença.Por outro lado, o SURF aplica uma aproximação muito mais rápida de derivadas parciais gaussianas de segunda ordem com Laplaciano de Gaussiano (LoG) e filtros quadrados de tamanhos diferentes (9 * 9, 15 * 15, ...). O custo computacional é independente do tamanho do filtro. Não há amostragem reduzida (alteração
sigma
) para níveis mais altos na pirâmide, mas apenas a escala superior do tamanho do filtro, resultando em imagens da mesma resolução.EDITAR
Uma nota adicional: os autores em seu papel de simplificar ainda mais a segunda derivada Gaussian nas 4 orientações (x, y, xy, Y | X) com o kernel
[1 -2 1]
,[1 -2 1]'
,[1 -1;-1 1]
, e[-1 1;1 -1]
. Quando o tamanho do filtro aumenta, você só precisa estender as regiões simplificadas do kernel para obter a maior. E é equivalente ao DOG com escalas diferentes (a curva LoG tem a mesma forma que o DOG, e o tamanho do filtro também torna sua largura igual).fonte