language-agnostic computer-science computer-vision augmented-reality

language agnostic - ¿Cómo comenzar con la realidad aumentada?



language-agnostic computer-science (9)

Actualmente soy estudiante universitario en ciencias de la computación y entraré en mi último año el próximo año. La realidad aumentada es algo que considero que es un tema realmente interesante, pero no tengo idea de por dónde empezar a aprender sobre él.

¿Dónde comienzas a aprender sobre este tema y qué bibliotecas están disponibles?


Ben Newhouse, el hombre detrás de la función Monocle de realidad aumentada de Yelp, dio una charla en Stanford sobre el proceso que atravesó al realizarla. Está disponible de forma gratuita en iTunes U, en esta ubicación: http://deimos3.apple.com/WebObjects/Core.woa/Feed/itunes.stanford.edu.3124430053.03124430055

(El enlace no funcionará en Chrome, pero sí en Safari. Si no funciona, solo busque "Yelp Monocle" en el cuadro de búsqueda de iTunes y descargue la conferencia de iTunes U).

La conferencia trata sobre la programación para el iPhone, pero la mayor parte se puede traducir a otras áreas. Está repleto de información valiosa, y ha resultado extremadamente útil para mí al ver todos los componentes de lo que quiero hacer.



El libro AR de Pragmatic Programmer es bastante bueno, contiene muchos ejemplos de códigos y ejercicios que lo involucran, en lugar de simplemente leer sobre él. Está un poco anticuado, pero debería ser un buen punto de partida.


Esto fue extremadamente útil para mí debido a los tutoriales paso a paso y al código de muestra: http://dev.metaio.com/sdk/getting-started/

Le lleva desde la configuración de su cuenta de teléfono / desarrollador hasta el seguimiento de configuraciones y contenido 3D.


He pasado un tiempo buscando el código AR para el iPhone. Si desea hacer AR y ubicaciones, descargue este proyecto

http://github.com/adascent/iPhone-AR-Toolkit

Se basa en ARKit mencionado anteriormente, pero mejorado y realmente compila. El kit AR original no es compatible con la rotación del dispositivo. Alguien más lo agregó, pero el código real nunca funcionó y una tercera persona lo tomó y lo arregló.

Actualmente estoy agregando más funciones a este código.


La realidad aumentada es la combinación de 2 habilidades: la capacidad de codificar en teléfonos inteligentes + utilizando todas las fuentes de entrada que el teléfono puede proporcionar para proporcionar aplicaciones interesantes. La visión por computadora es un aspecto importante, ya que la cámara se puede utilizar de muchas maneras interesantes. Pero debes saber que conocer cualquier aspecto no es lo suficientemente bueno. por ejemplo, si utiliza comp vis, solo para detectar dónde está basado en la entrada de la cámara de una tienda de centro comercial, no será nada fácil. pero si acoplas tu ubicación GPS, etc., el problema se reduce a un nivel muy manejable. Entonces, lo importante es ser capaz de juntar ideas de diferentes aspectos y conocer un poco sobre ambos aspectos. Tome una clase de programación de teléfonos inteligentes y una clase de visión por computadora. eso debería hacerte comenzar.


Si eres estudiante universitario, comienzas preguntando al profesorado al respecto (o estudiantes de posgrado, si estás en un lugar con ellos). Incluso si no saben mucho al respecto, sabrán dónde encontrarlo.


Si te sientes cómodo con Objective-C, descargar y jugar con ARKit sería un buen lugar para comenzar. Se basa en lecturas de magnetómetro / acelerómetro en lugar de reconocimiento de patrones.

Si lo que le interesa es el reconocimiento de patrones, comience con artoolkit . Pero esa biblioteca es un poco más intensa, naturalmente.


Siendo una palabra de moda bastante popular, la realidad aumentada se puede construir con algunos algoritmos distintos que se pueden aprender por separado. Usualmente cubre:

  • detección plana de objetos (puede ser un marcador o un objeto entrenado previamente). Descriptores de SURF / SIFT / FAST, RANSAC para el cálculo de la matriz de homografía
  • almacenar objetos entrenados en DB (árboles KD)
  • estimación de posición de la cámara
  • aumento de modelo 3D con objetos personalizados (OpenGL)

Para profundizar en este tema, recomendaría estos pasos: