Algoritmo de seguimiento de objetos alternativo SURF y SIFT para realidad aumentada
-
19-09-2019 - |
Pregunta
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 una transmisión desde la cámara.
SURF, por ejemplo, tarda alrededor de 3 segundos en generar puntos de interés para una imagen, lo que es demasiado lento para rastrear un vídeo procedente de una cámara web y será aún peor cuando se utilice en un teléfono móvil.
Sólo necesito un algoritmo que rastree un área determinada, su escala, inclinación, etc.y puedo construir sobre eso.
Gracias
Solución
Sospecho que su uso SURF puede necesitar alguna alteración?
Aquí hay un enlace a un documento MIT sobre el uso de SURF aplicaciones de realidad aumentada en dispositivos móviles.
Extracto:
En esta sección, presentamos nuestra aplicación de las olas al-gorithm y su adaptación a los móviles teléfono. A continuación, discutimos el impacto que tiene la precisión de la velocidad de la la búsqueda del vecino más próximo y demostrar que podemos lograr un orden de magnitud velocidad- con un impacto mínimo en búsqueda de precisión. Por último, se dis- maldecir los detalles del teléfono aplicación de la comparación de imágenes tubería. Estudiamos el rendimiento, uso de la memoria, y el consumo de ancho de banda en el teléfono.
También es posible que desee ver en los algoritmos de OpenCV, ya que son de probada eficacia.
En función de las limitaciones de su aplicación, es posible que pueda reducir el carácter genérico de esos algoritmos para buscar los POI conocidos y marcadores dentro de la imagen.
Parte de seguimiento a POI es la estimación de su vector de un punto de la imagen en 2D a otro, y luego confirmando opcionalmente que todavía existe allí (a través de las características de píxeles). El mismo enfoque se puede utilizar para realizar un seguimiento (no volver a escanear la imagen completa) para el grupo / objeto perspectiva y rotación cambios de puntos de interés y POI.
Hay un montón de papeles en línea para el seguimiento de objetos en una proyección 2D (hasta un sesgo servere en muchos casos).
Buena suerte!
Otros consejos
Usted debe tratar detector rápido
http://svr-www.eng.cam .ac.uk / ~ er258 / trabajo / fast.html
Estamos utilizando SURF para un proyecto y encontramos OpenSURF a outmatch SURF aplicación de OpenCV en velocidad pura y el rendimiento. Todavía refugiate repetibilidad y precisión de la prueba, pero es mucho más rápido.
Actualización: Sólo quería señalar que no es necesario realizar un paso SURF partido en cada cuadro, simplemente podría hacerlo cada dos fotogramas e interpolar la posición del objeto en el fotograma que no ejecuta SURF.
Puede utilizar un algoritmo más simple si desea hacer restricciones estrictas sobre el área que desea realizar un seguimiento. Como seguramente sabes, ARToolKit es bastante rápido, pero sólo un seguimiento de los marcadores en blanco y negro con un marco muy distinta.
Si quieres una (un poco) de seguimiento de propósito general, es posible que desee comprobar HPTL. El sitio ( http://www.robots.ox.ac.uk/~ GK / HPTL / ) está actualmente abajo, pero aquí hay un video llamativo de ella trabaja en un iPhone ( http://www.youtube.com/watch?v=pBI5HwitBX4 )
Como otros han mencionado, tres segundos parece inusualmente largo. Mientras que las pruebas de la aplicación de surf en el href="http://luispedro.org/software/mahotas" rel="nofollow"> Mahotas biblioteca , encontré que tomó en promedio 0.36sec, incluso con alguna imágenes bastante grandes (por ejemplo, 1024x768). Y eso es con una mezcla de Python y C, por lo que se imagina algunas otras implementaciones pura-C serían aún más rápido.
he encontrado este agradable comparación de cada algoritmos de detección de característica a http://computer-vision-talks.com/2011/01/comparison-of-the-opencvs-feature-detection-algorithms-2/
Tenga una mirada. Podría ser útil!
De acuerdo con esa comparación, y como mirror2image también ha sugerido, FAST es la mejor opción. Pero depende de lo que realmente quiere lograr.
Una opción que he usado en sistemas integrados restringidos es usar un detector de puntos de interés más simple:FAST o Shi-Tomasi por ejemplo.Utilicé Shi-Tomasi porque estaba apuntando a una FPGA y podía ejecutarla fácilmente a una velocidad de píxeles sin necesidad de un almacenamiento en búfer significativo.
Luego use SURF para generar los descriptores para el parche de imagen alrededor de las características identificadas y utilícelos para fines de coincidencia y seguimiento.