Precisão dos algoritmos de visão computacional

8

Digamos que a tarefa é determinar a posição do elemento na imagem. A primeira coisa muito importante é a detecção correta do objeto; em seguida, alguns algoritmos de posição de cálculo são usados ​​(para análise de bloqueios examble). Tudo depende de várias coisas (correção da detecção, algoritmos usados ​​etc.)

Vamos supor que temos uma imagem calibrada e saber o erro causado pela calibração. Quais são os métodos para calcular com precisão confiável os algoritmos de visão por computador (e máquina)? Isso pode ser feito analiticamente ou apenas por experimentos e testes?

A questão inclui casos em que detectamos a posição do elemento e também outros problemas de visão computacional.

Desejo obter referências a problemas relacionados à visão computador / máquina, especialmente a detecção de posição dos elementos, e apresentar alguns cálculos de correção, tanto analíticos quanto experimentais, para mostrar essa precissão.

Também são bem-vindas sugestões de como melhorar essa questão.

Krzych
fonte

Respostas:

4

Por exemplo, Hartley e Zisserman sugerem o uso de pré-condicionamento antes da estimativa da homografia, porque a inversão direta da matriz pode levar a enormes erros ou instabilidades. Isso se aplica a qualquer método numérico que trabalha com matriz inversa.

Os algoritmos de detecção de recursos costumam usar a aproximação sub-pixel da localização do ponto de interesse.

A maioria dos livros que discutem métodos numéricos também lida com sua análise de estabilidade.

Às vezes, você precisa fazer algumas estatísticas para analisar a precisão e a exatidão do seu estimador (seja um estimador de mínimos quadrados ou estimador de probabilidade máxima). Isso é útil em algoritmos como o RANSAC , que lidam com outliers. Você também gostaria de saber como a transformação estimada se ajusta aos seus dados e possivelmente descarta resultados muito imprecisos.

Ao trabalhar com diferenciação finita ou fazer alguma filtragem, é feito um leve embaçamento gaussiano para remover o ruído, o que causaria grandes erros nas segundas derivadas.

Alguns problemas na visão computacional estão mal colocados. É necessário um método de regularização (como uma regularização de Tikchonov) para resolvê-los. Exemplos onde isso é necessário incluem o cálculo da difusão anisotrópica.

Libor
fonte
Portanto, isso se aplica quando detectamos alguns recursos e os associamos aos recursos do modelo com estatísticas (e essa correspondência gera um erro que podemos calcular). Que tal computar erros de detecção de recursos. Por exemplo, se os recursos são blobs extraídos por limiarização?
krzych
Eu acho que você não pode calcular "erro de detecção", apenas a imagem. É necessário que haja algum contexto em que você possa dizer que o recurso está incorreto.
Libor
Exatamente, mas que contexto. Como projetar alguns testes para descobrir a correção da detecção de recursos?
krzych
2
Como a H&Z observou em seu livro: "Este é um problema de galinha e ovo ..." Não podemos dizer quais recursos são "bons" e quais são "ruins" sem combiná-los primeiro. Existem alguns desenvolvimentos no design de descritores de recursos para que eles correspondam bem a conjuntos de dados maiores. Dada a medida da 'qualidade' de um descritor, é possível discriminar recursos que provavelmente não correspondem.
Libor
Mas deve haver algum método para avaliar a correção de todo o sistema. Eu acho que é muito importante para aplicações de visão de máquina, especialmente quando falamos sobre posicionamento de elementos. Como eu disse em questão, também estou interessado em algumas maneiras de testar essa correção.
krzych
4

Isso não responde a toda a pergunta, mas trata de parte do que o OP pergunta.

Isso só pode ser feito experimentalmente. Para fazer isso analiticamente, seria necessário obter informações sobre o que o algoritmo deveria ter retornado. Mas, para saber isso, você precisa de um algoritmo de visão computacional sempre correto conhecido para comparar (além de descrições analíticas detalhadas da imagem que está sendo testada). As soluções analíticas exigem o conhecimento de uma verdade básica que é analítica, e não gerada manualmente, caso a caso. Mas não temos uma maneira analítica de gerar uma verdade básica - é isso que estamos tentando desenvolver.

Dado que isso só pode ser feito experimentalmente, convém consultar o google scholar. Se você estiver atrás da localização das pessoas, haverá muitos papéis dedicados à localização de uma pessoa, ou partes de uma pessoa, como cabeça ou mãos. A localização do carro também terá muita atenção especializada. Outros objetos querem apenas algoritmos genéricos.

John Robertson
fonte
Algumas referências podem melhorar esta resposta.
Krzych 01/10/12