Pré-processamento para melhorar o rastreamento de canto da Harris entre os quadros de vídeo?

8

Em nosso aplicativo de estabilização de imagem de vídeo em veículo aéreo não tripulado em escala de cinza, estamos tendo dificuldade em encontrar os "bons" cantos de Harris no quadro N + 1 selecionado no quadro N. A fonte da dificuldade parece ser uma mudança radical não uniforme do contraste de pixels entre os quadros. Talvez estar no ar e usar uma taxa de quadros lenta (~ 3 qps) seja a causa principal da mudança de contraste de pixel.

Tentamos várias técnicas de equalização de histograma para tentar suavizar os contrastes de pixel entre os quadros, a fim de melhorar o rastreamento dos "bons" cantos de Harris no quadro N + 1. Os resultados continuam ruins.

Alguém tem alguma sugestão sobre como melhorar o rastreamento de canto da Harris entre os quadros de vídeo em um ambiente aéreo diurno com taxa de quadros lenta? Agradeço gentilmente com antecedência.

Edit: 30 Jan 2012, adicionadas imagens de caso de teste (não tamanho real do quadro)

Resumo da atualização: 8 de fevereiro de 2012. As pessoas sugerem que os cantos de Harris não são tão úteis no rastreamento de recursos de vídeo em escala de cinza. As respostas abaixo sugerem e fornecem links para várias alternativas. Estamos avaliando essas alternativas e relatarei os resultados quando chegarmos a esse ponto. Obrigado a todos por seus comentários e respostas.

Aqui está o quadro anterior N com 35 "bons" cantos harris 5x5 selecionados. O quadro original é de 8 bpp pixels brutos.

quadro anterior N

Aqui está um excelente canto Harris 5x5 localizado na linha 59 col 266:

5x5 anterior em r59 c266

O quadro atual N + 1 com alguns cantos 5x5 Harris rastreados, apenas um dos quais é válido:

quadro atual N + 1

O canto anterior do quadro 5x5 Harris que aparece no quadro N + 1 na r47 c145:

5x5 anterior no atual 5x5 r47 c145

Observe como as intensidades de pixel no 5x5 selecionado foram alteradas de maneira não uniforme do quadro anterior para o quadro atual. As técnicas de equalização de contraste entre os quadros não ajudam na detecção de quadros anteriores selecionados 5x5 pixels no quadro atual. Todas as sugestões são bem-vindas.

David Pointer
fonte
3
Carregue algumas imagens. Caso contrário, você receberá sugestões aleatórias.
nav
Vai fazer. Desculpe, eu deveria ter pensado nisso.
David Pointer
@nav Done! Obrigado por sua excelente sugestão.
David Pointer

Respostas:

9

Você pode tentar um detector de recurso diferente? RÁPIDO pode ser, erm, mais rápido, e uma taxa de quadros mais alta facilitará a correspondência (assumindo que seus recursos estejam se movendo muito entre os quadros)


Parece que você está tentando usar a região da escala de cinza em torno do ponto de recurso identificado para corresponder de quadro a quadro. Este é provável que seja pobre, especialmente se houver muito movimento entre os quadros.

Você pode obter melhor desempenho usando o que geralmente é chamado de "descritor" da região em torno do ponto do recurso no qual corresponder.

Alguns descritores possíveis são usados ​​nos algoritmos SURF e SIFT - eles também têm técnicas para identificar regiões a serem rastreadas, mas você ignorou o requisito. Um descritor mais simples projetado para uso na correspondência estéreo-visão é a transformação Censo, embora isso possa não funcionar tão bem na correspondência de quadro a quadro, pelo mesmo motivo que o método atual (que também é amplamente utilizado na visão estéreo)

O livro para ler sobre isso é Geometria de Múltiplas Visões no Computer Vision .

Martin Thompson
fonte
Obrigado pela sua sugestão. O fator limitador de fps é na verdade a câmera no sistema - tamanhos de quadro muito grandes. Na verdade, poderíamos ir até 12 qps com esses tamanhos de quadro com o conjunto atual de algoritmos com a tecnologia que estamos usando.
David Pointer
Ohhhh, espera. Você está dizendo que uma taxa de quadros mais alta da câmera evita esse problema de mudança de intensidade / contraste, pois há menos tempo disponível para que as intensidades realmente mudem nos objetos observados entre os quadros? A estrutura da aeronave pode se mover muito em 33 milissegundos.
David Pointer
3

Como alternativa a SIFT / SURF / Other, você também pode usar a correlação de fase FFT, se os quadros forem transformados pela maioria das traduções (rotação / perspectiva é pequena). Você também pode aplicar a correlação de fase às regiões da imagem de forma iterativa para obter melhor precisão.

http://en.wikipedia.org/wiki/Phase_correlation

mirror2image
fonte
1

Se você estiver tentando alinhar as duas imagens, use um detector de recurso local melhor. SIFT é provavelmente o mais popular / bem-sucedido a se usar.

Roronoa Zoro
fonte
1

Eu acho que é melhor usar Shi e Tomasi, você pode usá-los com a mesma função goodfeaturestotrack, deu melhores resultados do que os cantos de Harris

Ellian Herrera-Bandin
fonte