arcore - Cómo detectar objeto físico en Android Realidad Aumentada?
realidad aumentada android (3)
Encontré muchas formas de detectar diferentes formas. Pero mala suerte cuando voy por un objeto físico. Por lo que leí, deberíamos tener un borde negro alrededor de las imágenes para hacer un archivo de patrones. Si sigo este concepto y genero un patrón, entonces mi aplicación detecta imágenes en la impresión. Pero en el mundo real, un objeto físico no necesariamente tiene una forma de borde negro alrededor.
Actualizar
Aunque acepto una respuesta, mi pregunta sigue sin resolverse. Como todavía no hay solución para la detección de objetos físicos.
Cualquier investigación adicional y enlaces son bienvenidos!
¿Ha considerado OpenCV para detectar y rastrear objetos ? Eche un vistazo al tutorial Buscar objetos con una cámara web (C ++ / Qt). OpenCV está disponible para Android - OpenCV 4 Android .
Hace poco leí sobre la investigación que se realiza en los vocabularios de formas jerárquicas utilizados para la representación de objetos. Por supuesto, no hay una biblioteca disponible para descargar, pero si está interesado en el enfoque general here puede encontrar algunos documentos.
También te puede interesar this artículo. Describe un algoritmo para detectar objetos basados en un conjunto de contornos.
La mala noticia es que no puede usar AndAR para detectar objetos físicos. AndAR se basa en un enfoque de marcador fiducial, donde el marcador está formado por dos componentes: un borde sólido y un patrón interior. El patrón codifica un valor que se puede usar para abordar un modelo en particular para representar en el marcador, y el borde facilita la determinación de la orientación relativa del marcador al dispositivo. Claramente esto es solo un reconocimiento de imagen planar.
Hacer el reconocimiento de objetos en un objeto 3D es un problema más complicado, y no conozco ninguna biblioteca de Android que proporcione una solución llave en mano, pero reconocer un solo objeto es probablemente factible en un dispositivo móvil.
Una posibilidad podría ser investigar los kits de herramientas de Android AR disponibles (Layar, Junaio, Qualcomm AR SDK) que ahora admiten algún reconocimiento de imagen. Puede ser que al tomar imágenes de su tetera en varias rotaciones y usarlas como las imágenes con las que quiere que su aplicación coincida, podría hacer que esta solución funcione, pero tenga en cuenta que solo están diseñadas para hacer coincidencias planares en las imágenes, no Objetos 3D reales, por lo que el rendimiento podría no ser excelente. (Bueno, el Metaio Mobile SDK Pro hace reconocimiento y seguimiento en 3D, pero es muy caro).
Si bien el reconocimiento de objetos se realiza mejor comparando los fotogramas de la cámara con las imágenes del objeto que desea reconocer (o comparando las características de imagen de los fotogramas de la cámara con las características de imagen precalculadas, etc.), el seguimiento es una cuestión diferente. Si desea realizar un seguimiento preciso de su objeto 3D en el espacio 3D, realmente necesitará tener o construir un modelo 3D del mismo, y para cada cuadro determine las correspondencias de puntos entre la imagen de la cámara y el objeto 3D para el seguimiento. El verdadero seguimiento en 3D sin ayuda (es decir, sin cámara de profundidad) es difícil.
Espero que esto le brinde algunos antecedentes que puede utilizar para evaluar sus próximos pasos.
Actualización : Vuforia SDK de Qualcomm le permite realizar un seguimiento de "objetivos múltiples", que son objetos con un conjunto de superficies de seguimiento planas con una relación espacial fija. Si hizo un "cubo", fotos diferentes de los 6 lados de su objeto (tetera) podrían funcionar un poco. https://ar.qualcomm.at/qdevnet/developer_guide/Trackables
Actualización de fin de 2013 :
No tengo experiencia con estos, pero:
Metaio ahora ofrece seguimiento 3D de modelos CAD: https://dev.metaio.com/sdk/tutorials/3d-tracking-based-on-cad-data/
LinkAR de ARLab.com promete la coincidencia de objetos. http://www.arlab.com/objecttracking
Notaría el uso de la palabra "coincidencia": creo que el caso de uso aquí es que usted conoce el objeto que desea superponer (una caja de juguetes, un motor, etc.). La diferenciación entre múltiples objetos 3D puede estar completamente fuera del alcance.