Pregunta Algoritmo de seguimiento de objetos alternativos SURF y SIFT para la realidad aumentada


Después de preguntar aquí y al probar SURF y SIFT, ninguno de ellos parece ser lo suficientemente eficiente como para generar puntos de interés lo suficientemente rápido como para rastrear un flujo de la cámara.

El SURF, por ejemplo, demora alrededor de 3 segundos para generar puntos de interés para una imagen, es demasiado lento para rastrear un video proveniente de una cámara web, y será aún peor si se usa en un teléfono móvil.

Solo necesito un algoritmo que rastree un área determinada, su escala, inclinación, etc. y puedo construir sobre eso.

Gracias


19
2017-08-23 14:19


origen


Respuestas:


Sospecho que su uso de SURF puede necesitar alguna alteración?

Aquí hay un enlace a un documento del MIT sobre el uso de SURF para aplicaciones de realidad aumentada en dispositivos móviles.

Extracto:

En esta sección, presentamos nuestra   implementación del algoritmo de SURF   y su adaptación al móvil   teléfono. A continuación, discutimos el impacto   esa precisión tiene en la velocidad de la   búsqueda del vecino más cercano y mostrar que   podemos lograr un orden de magnitud   acelerar con un impacto mínimo en   precisión de coincidencia. Finalmente, dis-   discutir los detalles del teléfono   implementación de la coincidencia de imágenes   tubería. Estudiamos el rendimiento,   uso de memoria y consumo de ancho de banda   en el telefono

También es posible que desee examinar los algoritmos de OpenCV porque son probados y comprobados.

Dependiendo de restricciones de su aplicación, puede reducir el carácter genérico de esos algoritmos para buscar PDI y marcadores conocidos dentro de la imagen.

Parte de rastreo un PDI está estimando su vector desde un punto en la imagen 2D a otro, y luego confirmando opcionalmente que todavía existe allí (a través de características de píxel). El mismo enfoque se puede usar para rastrear (no re-escanear toda la imagen) para la perspectiva de grupo / objeto POI y POI y los cambios de rotación.

Hay toneladas de documentos en línea para rastrear objetos en una proyección en 2D (hasta un error en muchos casos).

¡Buena suerte!


14
2017-08-23 17:15



Deberías probar el detector FAST

http://svr-www.eng.cam.ac.uk/~er258/work/fast.html


7
2017-09-23 05:08



Estamos utilizando SURF para un proyecto y encontramos OpenSURF para superar la implementación de SURF de OpenCV en velocidad y rendimiento sin formato. Todavía no hemos probado la repetibilidad y la precisión, pero es mucho más rápido.


Actualizar: Solo quería señalar que no es necesario realizar un paso de emparejamiento de SURF en cada fotograma, simplemente puede hacerlo en cualquier otro fotograma e interpolar la posición del objeto en el fotograma en el que no ejecuta SURF.


5
2017-08-30 14:51



Puede usar un algoritmo más simple si hace restricciones más estrictas en el área que le gustaría que fuera rastreado. Como seguramente sabes, ARToolKit es bastante rápido, pero solo rastrea marcadores blancos y negros con un marco muy distinto.

Si desea un rastreador (algo) de propósito general, es posible que desee comprobar PTAM. El sitio (http://www.robots.ox.ac.uk/~gk/PTAM/) está actualmente fuera de servicio, pero aquí hay un video de cómo funciona en un iPhone (http://www.youtube.com/watch?v=pBI5HwitBX4)


3
2017-08-23 17:12



Como otros han mencionado, tres segundos parecen inusualmente largos. Al probar la implementación de SURF en el Mahotas biblioteca, encontré que tomó en promedio 0.36 segundos, incluso con algunas imágenes bastante grandes (por ejemplo, 1024x768). Y eso es con una mezcla de Python y C, así que me imagino que algunas otras implementaciones de C puro serían aún más rápidas.


2
2018-04-19 14:09



Encontré esta buena comparación de cada algoritmo de detección de características en http://computer-vision-talks.com/2011/01/comparison-of-the-opencvs-feature-detection-algorithms-2/ 

Echar un vistazo. ¡Puede ser útil!

De acuerdo con esa comparación, y como mirror2image también sugirió, FAST es la mejor opción. Pero depende de lo que realmente quieras lograr.


2
2017-11-24 23:44



Una opción que he usado en sistemas integrados con restricciones es usar un detector de puntos de interés más simple: FAST o Shi-Tomasi, por ejemplo. Utilicé Shi-Tomasi, ya que estaba apuntando a un FPGA y podría ejecutarlo fácilmente a una velocidad de píxel sin necesidad de memoria intermedia significativa.

Luego use SURF para generar los descriptores del parche de la imagen alrededor de las características identificadas y utilícelas para fines de coincidencia y seguimiento.


2
2017-11-25 11:50