Bons recursos / algoritmos para reconhecer modelos de carros em imagens

9

Eu tenho uma pergunta sobre o reconhecimento de objetos, especialmente o reconhecimento de modelos de carros! Estou no início de um trabalho sobre a identificação do mesmo modelo de carro em imagens diferentes. No momento, acho que um dos melhores algoritmos para reconhecimento de objetos 3D é SIFT, mas depois de brincar um pouco com uma implementação de demonstração, tenho a estranha sensação de que esse algoritmo tem alguns problemas com objetos de metal brilhante, como carros, especialmente se eles tiverem cores diferentes.

Alguém conhece algum trabalho nessa área em geral, algum algoritmo adequado para a tarefa de encontrar o mesmo modelo de carro em imagens diferentes?

Agradeço antecipadamente por sua ajuda!

jstr
fonte
2
Você pode postar algumas imagens de exemplo?
endolith 20/03/12
Certo. As imagens para criar um modelo de modelo de carro ;-) podem ser como: s5 coupe training 1 ou como s5 coupe training 2, mas também imagens 'normais'. As imagens de consulta podem ser como a consulta s5 coupe 1, espero que ajude!
jstr
Quais detectores de recursos alternativos, como SIFT, GLOH ou SURF, existem para identificar pontos-chave adequados nos carros?
jstr
@jstr se você acabou implementando o esquema descrito abaixo, como funcionou?
solvingPuzzles

Respostas:

7

Eu daria uma olhada na abordagem chamada "saco de palavras" ou "palavras visuais". É cada vez mais usado para categorização e identificação de imagens. Esse algoritmo geralmente começa detectando pontos robustos, como pontos SIFT, em uma imagem. A região em torno desses pontos encontrados (o descritor SIFT de 128 bits no seu caso) é usada.

Da forma mais simples, é possível coletar todos os dados de todos os descritores de todas as imagens e agrupá-los, por exemplo, usando k-means. Toda imagem original possui descritores que contribuem para vários clusters. Os centróides desses clusters, ou seja, as palavras visuais, podem ser usados ​​como um novo descritor para a imagem. Basicamente, você espera que os clusters de uma imagem para a qual seus descritores contribuam sejam indicativos da categoria de imagem.

Novamente, no caso mais simples, você tem uma lista de clusters e, por imagem, conta quais desses clusters continham descritores dessa imagem e quantos. É semelhante ao método Frequência de termo / Frequência inversa de documento (TD / IFD) usada na recuperação de texto. Veja este script rápido e sujo do Matlab .

Essa abordagem é pesquisada ativamente e existem muitos algoritmos muito mais avançados por aí.

O site do VLfeat contém uma demonstração mais avançada e agradável dessa abordagem, classificando o conjunto de dados caltech 101. Também digno de nota, são os resultados e o software da própria Caltech .

Maurits
fonte
Olá Maurits, obrigado pela sua resposta. Eu vou pensar sobre isso! Mas uma pergunta. Se eu tenho as 'palavras visuais', como faço para medir a distância entre elas? Eu acho que usaria os descritores SIFT, está correto? - Lowe tem um artigo no qual descreve um método para reconhecer objetos 3D através da construção de modelos de descritores SIFT. Alguém conhece outros artigos bons sobre esse tópico (reconhecimento de objetos 3D com outros recursos)?
jstr
Nesse caso, apenas a distância euclidiana, como você está agrupando vetores inteiros. Eu não acho que você precise medir a distância entre os centróides do cluster em si, mas, ao ser apresentada uma imagem de consulta (e, portanto, os descritores da consulta), você mede em quais centróides esses descritores são os mais próximos.
Maurits 22/03
A aprovação de uma medida de distância é clara ;-) mas em quais dados? Nos descritores SIFT por palavra visual?
jstr
De fato, três vezes, como uma métrica para o agrupamento inicial, para determinar em que palavra centróide / visual um descritor de consulta é o mais próximo e, finalmente, comparar o vetor de consulta td / idf com os do banco de dados.
275 Maurits
Ok, eu entendi ;-) mas em quais dados a distância mede o trabalho? Nos descritores SIFT?
jstr