Mostrando entradas con la etiqueta ARconceptos. Mostrar todas las entradas
Mostrando entradas con la etiqueta ARconceptos. Mostrar todas las entradas

lunes, 12 de mayo de 2014

Perspectiva: proyectando objetos en Realidad Aumentada

La Perspectiva es un modelo de proyección que consigue efecto distancia al quedar representados los objetos más alejados con un menor tamaño. En esta entrada, trataré de explicar cómo se realiza la transformación de proyección en perspectiva en el ámbito de la Realidad Aumentada para obtener escenas más realistas, simulando la manera en que el ojo humano y las cámaras físicas forman imágenes. 



El modelo de proyección en perspectiva consiste en la proyección de los vértices de los objetos de la escena mediante trayectorias convergentes en un punto central del plano de proyección. Se consigue así un efecto distancia ya que los objetos situados más distantes del plano de visualización aparezcan más pequeños en la imagen. Las escenas generadas utilizando este modelo de proyección son más realistas, ya que ésta es la manera en que el ojo humano y las cámaras físicas forman imágenes.

perspectiva simple
matriz perspectiva
Perspectiva simple y matriz de proyección

Siguiendo la idea de la cámara estenopeica, desplazamos el plano de visualización una distancia d por detrás del origen (en dirección -Z). De esta forma, según la proyección simple, cada punto p se proyecta en el plano de visualización situado en z = -d obteniendo el punto p'=(px',py',-d). Aplicando semejanza de triángulos y un parámetro de homogeneización h = -pz/d, obtenemos la matriz de proyección Mp, que nos aplasta los vértices de los objetos 3D sobre el plano de visualización 2D.

Esta proceso no puede deshacerse; no tiene inverso. Por este motivo es interesante proyectar en lugar de sobre un plano, sobre una pirámide truncada (lo mas estrecha posible) que, una vez normalizada, se convertirá en un cubo unitario  (en lugar de un cuadrado de lado 1), que si podrá deshacerse. Así, definimos la pirámide de visualización (frustrum) cuyas bases son paralelas al plano de proyección (que queda definido por los lados top, bottom, left, right y las distancias near y far). La matriz de perspectiva que transforma la pirámide en el cubo unitario será:

frustrum
Frustrum
matriz perspectiva frustrum
Matriz de perspectiva para el frustrum

Para evitar errores de precisión en el Z-Buffer con distancias grandes, conviene que los planos de la pirámide truncada estén cerca (la distancia far-near sea muy pequeño).

Obtenemos así el volumen de visualización normalizado a un cubo unitario y las coordenadas normalizadas. Hemos pasado los objetos de 3D a 2D y las coordenadas Z de los puntos son almacenadas en un Buffer de profundidad (Z-Buffer).

AR Conceptos III

Esta es la tercera entrada de la serie de AR Conceptos, como en las anteriores, realizaré un listado y una breve explicación de los más importantes sin dejar, por ello, de dedicar diferentes entradas a otros tantos conceptos que requieran una explicación mayor.


Visualización 3D o gráficos 3D por ordenador

Es es conjunto de tecnologías y técnicas gráficas desarrolladas mediante software específico para crear objetos o diseños gráficos tridimensionales. Un gráfico 3D difiere de uno bidimensional principalmente por la forma en que ha sido generado. Este tipo de gráficos se originan mediante un proceso de cálculos matemáticos sobre entidades geométricas tridimensionales producidas en un ordenador, y cuyo propósito es conseguir una proyección visual en dos dimensiones para ser mostrada en una pantalla o impresa en papel.

Alrededor de  la visualización 3D existen diferentes técnicas y conceptos.

Modelado
La etapa de modelado consiste en ir dando forma a objetos individuales que luego serán usados en la escena creada. Existen diversos tipos de modelado, con NURBS y modelado poligonal o subdivisión de superficies. Además, aunque menos usado, existe otro tipo llamado Image Based Modeling (IBM) que consiste en convertir una fotografía a 3D mediante el uso de diversas técnicas, de las cuales, la más conocida es la fotogrametría cuyo principal impulsor es Paul Debevec. El Modelado de Superficies no tiene curvas calculadas en cada linea (ejemplo SketchUp).

modelado por superficies
Modelado por superficies NURBS

Iluminación
Creación de luces de diversos tipos puntuales, direccionales en área o volumen, con distinto color o propiedades. Esto es la clave de una animación. Gran parte de la iluminación en 3D requiere del entendimiento físico de la luz en la realidad, este entendimiento puede ir desde lo más básico en el tema como por ejemplo el concepto de iluminación global hasta comportamientos complejos y extraños de la luz como la dispersión en superficies y subsuperficies

Animación
La animación es muy importante dentro de los gráficos porque en estas animaciones se intenta imitar a la realidad misma; por esto es un trabajo que usualmente requiere muchas horas. Los objetos se pueden animar en cuanto a:
  • Transformaciones básicas en los tres ejes (XYZ), rotación, escala y traslación.
  • Forma: mediante esqueletos, mediante deformadores o dinámicas.

Renderizado
renderizado
Renderizado
Mediante el renderizado se consiguen imágenes realistas. Proceso de generar una imagen o vídeo mediante el calculo de iluminación global (GI) partiendo de un modelo en 3D. Este término técnico es utilizado por los animadores o productores audiovisuales (CG) y en programas de diseño en 3D como por ejemplo 3DMax, Maya, Blender, etc.

El proceso de renderizado se desarrolla con el fin de generar en un espacio 3D formado por estructuras poligonales; una simulación realista del comportamiento tanto de luces, texturas y materiales (agua, madera, metal, plástico, tela, etcétera) como también de los comportamientos físicos y animación, es el caso de la simulación de colisiones y fluidos, simulando ambientes y estructuras físicas verosímiles. Una de las partes más importantes de los programas dedicados a la renderización es el motor de renderizado, el cual es capaz de realizar complejos cálculos como radiosidad, raytrace (trazador de rayos), canal alfa, reflexión, refracción o iluminación global (GI).

El proceso de rénder necesita una gran capacidad de cálculo, pues requiere simular gran cantidad de procesos físicos complejos. La capacidad de cálculo se ha incrementado rápidamente a través de los años, permitiendo un grado superior de realismo en los rénders. Los estudios de cine que producen animaciones generadas por ordenador hacen uso, en general, de lo que se conoce como render farm (granja de rénder) para acelerar la producción de fotogramas.


Radiosidad
La radiosidad es un conjunto de técnicas para el cálculo de la iluminación global que tratan de resolver el problema básico de la renderización de la forma más realista posible en el campo de los gráficos 3D por computadora. Dicho problema es el transporte de la luz que sólo se puede modelar de forma óptima considerando que cada fuente luminosa emite un número enorme de fotones, que rebotan al chocar contra una superficie describiendo una cantidad de trayectorias imposibles de simular en un computador. Una de las técnicas empleadas en el cálculo de la radiosidad es el método de Montecarlo para resolver este problema mediante números aleatorios y de forma estadística.

Raytrace
Determina las superficies visibles en la escena que se quiere sintetizar trazando rayos desde el observador (cámara) hasta la escena a través del plano de la imagen. Se calculan las intersecciones del rayo con los diferentes objetos de la escena y aquella intersección que esté más cerca del observador determina cuál es el objeto visible.

El algoritmo de trazado de rayos extiende la idea de trazar los rayos para determinar las superficies visibles con un proceso de sombreado (cálculo de la intensidad del píxel) que tiene en cuenta efectos globales de iluminación como pueden ser reflexiones, refracciones o sombras arrojadas. Para simular los efectos de reflexión y refracción se trazan rayos recursivamente desde el punto de intersección que se está sombreando dependiendo de las características del material del objeto intersecado. Para simular las sombras arrojadas se lanzan rayos desde el punto de intersección hasta las fuentes de luz. Estos rayos se conocen con el nombre de rayos de sombra (shadow rays).

El algoritmo básico de trazado de rayos fue mejorado por Robert Cook (1985) para simular otros efectos en las imágenes mediante el muestreo estocástico usando un método de Montecarlo; entre estos efectos podemos citar el desenfoque por movimiento (blur motion), la profundidad de campo o el submuestreo para eliminar efectos de aliasing en la imagen resultante.

En la actualidad, el algoritmo de trazado de rayos es la base de otros algoritmos más complejos para síntesis de imágenes (mapeado de fotones, Metropolis, entre otros) que son capaces de simular efectos de iluminación global complejos como la mezcla de colores (color blending) o las cáusticas.

Proyección
Es la transformación de coordenadas para convertir cada objeto 3D desde el sistema de coordenadas de visualización (coordenadas de la cámara) en un objeto 2D dibujado sobre en el plano de visualización (coordenadas de pantalla). Ecomputer vision existen distintos modelos de proyección, aunque los más utilizados son:

  1. Modelo de proyección paralelaConsiste en proyectar puntos del espacio contra el plano de proyección mediante haces de rectas siempre paralelas entre sí. Esta técnica de representación gráfica se utiliza en diseños de ingeniería y arquitectura ya que su principal ventaja es que mantiene las proporciones relativas de lo representado y se puede medir sobre él directamente. De esta manera se puede reconstruir el objeto fácilmente a partir de representaciones concretas.
  2. Modelo de proyección en perspectivaConsiste en la proyección de los vértices de los objetos de la escena mediante trayectorias convergentes en un punto central del plano de proyección. Se consigue efecto distancia al quedar representados los objetos más alejados con un menor tamaño. Las escenas generadas utilizando este modelo de proyección son más realistas, ya que ésta es la manera en que el ojo humano y las cámaras físicas forman imágenes.
    proyección en perspectiva
    Modelo de proyección en perspectiva


Visualización 3D para Realidad Aumentada

En esta entrada, trataré de explicar conceptos básicos sobre visualización 3D que son necesarios para trabajar en el ámbito de la Realidad Aumentada. Hablaré de sistemas de coordenadas, parámetros de visualización y transformaciones


Inicialmente, necesitamos definir un sistema de coordenadas de visualización para los parámetros de visualización de la cámara (en negro en el detalle, es la matriz P; que si además tenemos en cuenta la distorsión también se incluye el rojo) que nos permita definir el plano de proyección o visualización (en verde en el detalle; es lo que ve la cámara), donde podamos proyectar cada objeto 3D traído desde sus coordenadas locales (en el detalle en azul) hasta las coordenadas de visualización.

relacion entre sist coord
Relación entre los diferentes sistemas de coordenadas definidos

Se suceden diferentes transformaciones de coordenadas para llevar cada objeto 3D desde la escena (coordenadas locales) hasta el sistema de coordenadas de visualización (coordenadas de la cámara) y de ahí proyectarlos en el plano de visualización (coordenadas de pantalla). Esta última transformación dependerá del modelo de proyección elegida que en computer vision pueden ser diversos; aunque los más utilizados son el de proyección paralela y el de proyección en perspectiva. Dedicaré otra entrada a explicarlos.

transformaciones RA
Transformaciones RA
El proceso de visualización 3D, en concreto, comienza por posicionar y orientar los objetos de la escena respecto del SRU, obteniendo las coordenadas universales del objeto (transformación de modelado). A continuación se hace lo mismo con la cámara, obteniendo las coordenadas de visualización (transformación de visualización) y el volumen de visualización.
En este momento cámara y objetos están posicionados a partir del origen del RSU y mirando en dirección negativa del eje Z. ARToolKit hace estos dos procesos en uno solo, al cargar la matriz T en el modelview de OpenGL.

A continuación, mediante la transformación de proyección (en perspectiva en nuestro caso) se transforma el volumen de visualización en un cubo unitario obteniendo las coordenadas normalizadas. Hemos pasado los objetos de 3D a 2D y las coordenadas Z de los puntos son almacenadas en un Buffer de profundidad (Z-Buffer). Los objetos que quedan fuera del volumen son eliminados o recortados para obtener las coordenadas recortadas (transformación de recorte).

Finalmente, se ajustan las coordenadas x e y del cubo a las coordenadas de la pantalla, pudiendo adaptarse a diferentes tamaños y resoluciones (transformación de pantalla). En una etapa final de rasterización, se toman las coordenadas de la pantalla y el Z-Buffer y se definen los colores de los pixels.

transformación de visualización
Transformación de visualización. Las zonas con sombra corresponden al volumen de visualización



viernes, 9 de mayo de 2014

Un poco de geometría: transformaciones geométricas en Realidad Aumentada

Algunos conceptos de geometría teórica básica son necesarios para trabajar con los objetos 3D de la escena en el ámbito de la Realidad Aumentada. En concreto, las transformaciones geométricas de posición, rotación y tamaño; así como su representación matricial. 


En general podemos decir que una transformación toma como entrada elementos como vértices y vectores y los convierte de alguna manera. En este post, veremos las transformaciones más básicas necesarias para el desarrollo de aplicaciones de Realidad Aumentada. En primer lugar, veremos las operaciones en 2D y su notación matricial 2D, después haremos una generalización tridimensional empleando coordenadas homogéneas.

Traslación
traslaciónSe realiza la traslación de un punto p = (px,py) mediante la suma de un vector de desplazamiento t = (tx,ty)a las coordenadas iniciales del punto, para obtener una nueva posición de coordenadas. Si aplicamos esta traslación a todos los puntos del objeto, estaríamos desplazando ese objeto de una posición a otra. 

p′x = px + tx
p′y = py + ty 





Rotación
rotacionPodemos expresar la rotación de un punto p = (px,py) a una nueva posición rotando un ángulo θ respecto del origen de coordenadas, especificando el eje de rotación y un ángulo θ. Las coordenadas iniciales del punto se pueden expresar como:

px = dcosα
py = dsenα

Siendo d la distancia entre el punto y el origen del sistema de coordenadas. Así, usando identidades trigonométricas se pueden expresar las coordenadas transformadas como la suma de los ángulos del punto original α y el que queremos rotar θ como:

p′x = dcos(α+θ) = dcosαcosθ − dsenαsenθ
p′y = dsen(α+θ) = dcosαsenθ + dsenαcosθ

Que sustituyendo en la ecuación anterior, obtenemos:

p′x = px cosθ − py senθ
p′y = px sinθ + py cosθ


Cambio de escala
cambio escalaUn cambio de escala de un objeto bidimensional puede llevarse a cabo multiplicando las componentes x,y del objeto por el factor de escala Sx,Sy en cada eje. Se puede expresar como:

p′x = pxSx
p′y = pySy



Representación matricial
Las operaciones anteriores se expresan en 2D de forma matricial como:

matriz traslacion
Matriz de traslación 2D
matrices rotacion y escalado
Matrices de rotación 2D y escalado 2D







Mientras que en 3D añadimos el elemento homogéneo;  las formas matriciales serán:

matrices de rotacion 3D
matrices traslacion 3D escalado 3D
Matrices de rotación, traslación y escalado 3D

Composición de matrices
Una de las principales ventajas derivadas del trabajo con sistemas homogéneos es la composición de matrices. Matemáticamente esta composición se realiza multiplicando las matrices en un orden determinado, (empezando por la última transformación y acabando por la primera), de forma que es posible obtener la denominada matriz de transformación neta MN resultante de realizar sucesivas transformaciones a los puntos. De este modo, bastará con multiplicar la MN a cada punto del modelo para obtener directamente su posición final. Por ejemplo, si P es el punto original y P′ es el punto transformado, y T1 ··· Tn son transformaciones (rotaciones, escalados, traslaciones) que se aplican al punto P, podemos expresar la transformación neta como:

P′ = Tn × ··· × T2 × T1 × P
P′ = MN ×P

Dejadme para finalizar os recomiende una buena web donde todo esto está muy bien explicado y con más detalle: Wolfram.MathWorld

martes, 6 de mayo de 2014

AR Conceptos II

Esta es la segunda entrada de la serie de AR Conceptos, como en las anteriores, realizaré un listado y una breve explicación de los más importantes sin dejar, por ello, de dedicar diferentes entradas a otros tantos conceptos que requieran una explicación mayor.



calibración
Plantilla de calibración
Calibración de la cámara
La calibración de una cámara representa un paso importante para procesos de reconstrucción 3D o sensorización mediante una cámara. Con la calibración de la cámara se consiguen estimar los parámetros intrínsecos y extrínsecos de la misma los cuales son necesarios para realizar la reconstrucción 3D del entorno y situar la cámara en el mismo

Existen muchos métodos de calibración de una cámara. Normalmente, el proceso se puede realizar en dos pasos. Primero se estima la matriz de proyección y después se estiman los parámetros intrínsecos y extrínsecos de la cámara a partir de ella. Durante el proceso,  la gran mayoría de métodos utilizan plantillas de líneas o puntos.

Parámetros intrínsecos de la cámara
Los parámetros intrínsecos son aquellos que definen la geometría interna y la óptica de la cámara. Son constantes en tanto no varíen las características y posiciones relativas entre la óptica y el sensor imagen. Los parámetros intrínsecos de la cámara son: punto central de la imagen, distorsión de la lente, longitud focal, relación de aspecto y de inclinación.

  1. Distancia focal: es la distancia existente entre el plano de la imagen de la cámara y su foco (punto donde convergen los rayos de luz originados desde un punto en el objeto observado). Puesto que la lente de la cámara es convergente, la distancia focal es positiva.
  2. Punto central: es el punto central del plano de la imagen.
  3. Punto principal: es la intersección entre el plano de la imagen y el eje óptico (recta perpendicular al plano de la imagen y que pasa por el foco). Suele estar cerca del centro de la imagen
  4. Distorsión de la lente: La óptica de la cámara introduce aberraciones que distorsionan la imagen, como por ejemplo, aberraciones cromáticas, aberraciones que afectan a la nitidez, distorsión tangencial, distorsión radial, entre otras. Esta última es la más típica y existen dos tipos: con distorsión positiva (tipo cojín) o con distorsión negativa (tipo barril).
  5. Relación de aspecto: es la proporción que guarda una imagen entre su ancho y su altura. Se obtiene al dividir el ancho entre la altura.
  6. Factor de conversión pixel-milímetros: Las coordenadas 2D obtenidas están expresadas en forma de píxeles, así que el número de píxeles por milímetro se usa para transformarlas a medidas del Sistema Internacional de Unidades (SI).
  7. Relación de inclinación u Oblicuidad: es el ángulo que existe entre los ejes en las direcciones x y y. Normalmente 90º

Matriz de calibración de la cámara K

matriz k
matriz K
Integra los principales parámetros intrínsecos de la cámara, longitud focal, punto principal y oblicuidad, suponiendo ésta ubicada en el origen del sistema de coordenadas Euclidianas con el eje principal orientado en línea recta hacia el eje Z. En la matriz K se supone que las coordenadas de la imagen están en coordenadas no homogéneas y tienen una escala igual para ambos ejes de direcciones x y y . Si las coordenadas de la imagen son medidas en pixels, esto tendrá el efecto de introducir factores de escala diferentes en cada dirección. Así, αx =fmx y αy =fmy representan la longitud focal en pixels (f es el factor de escala introducido para pasar a pixels). Los parámetros x0 =mxpx y y0 =mypy son las coordenadas del punto principal en pixels. Finalmente, s es el parámetro de oblicuidad; normalmente vale 0.

Matriz de perspectiva de la cámara P

matriz P
matriz P
Es la matriz de calibración K a la que se le añade un vector de valores nulos. Permite pasar de  puntos 3D a pixels (2D). 








Parámetros extrínsecos de la cámara
matriz T
matriz T
Los parámetros extrínsecos relacionan los sistemas de referencia del mundo real y la cámara describiendo la posición y orientación de la cámara en el sistema de coordenadas del mundo real. Hacen referencia a las transformaciones geométricas de rotación y traslación de la cámara y se reflejan en la matriz de transformación T=(R|t).

La relación entre las coordenadas de la cámara y las coordenadas del mundo vendrá dada por la matriz de proyección o compuesta C, que es una 4x4 producto de PT.


matriz C
matriz C


Inclinación de la cámara 
Se considera inclinación de una cámara al ángulo que ésta forma con el eje Z del mundo real.

Transformaciones geométricas
Son las transformaciones básicas de los objetos que componen la escena, normalmente consistentes en cambios de posición, orientación y tamaño. En general podemos decir que una transformación toma como entrada elementos como vértices y vectores y los convierte de alguna manera. Las principales son la traslación, la rotación y el cambio de escala. En una próxima entrada explicaré en que consisten.


Coordenadas homogéneas
En geometría proyectiva, las coordenadas homogéneas son un instrumento usado para describir un punto en el espacio proyectivo. En ellas, todo punto bidimensional está definido por tres coordenadas. De tal modo que añadimos un término extra (parámetro homogéneo h) a la representación del punto en el espacio (x,y), para obtener la representación homogénea de la posición descrita como (xh , yh , h). Este parámetro homogéneo h es un valor distinto de cero tal que x = xh/h, y = yh/h. Existen, por tanto infinitas representaciones homogéneas equivalentes de cada par de coordenadas, aunque se utiliza normalmente h = 1.

lunes, 5 de mayo de 2014

Métodos de tracking visual

El registro es la imagen real registrada por una cámara en el momento o previamente. Su obtención puede realizarse empleando diferentes  tipos de sensores y técnicas (las más extendidas son mediante el uso de tracking visual).


Los Métodos de Tracking tratan de obtener una estimación de la trayectoria en el espacio realizada por un objeto o sensor. Se pueden emplear diferentes tipos de sensores como mecánicos, magnéticos, ondas sonoras, inerciales o cámaras de visión.  Las cámaras están actualmente integradas en multitud de dispositivos portátiles y permiten realizar tracking a un coste reducido.

De entre estos métodos, los más utilizados son los basados en cámaras de vídeo o de Tracking visual. Este método es un subcampo del tracking 3D, y en él  se emplean técnicas de visión por computador para obtener el posicionamiento de la cámara con seis grados de libertad (tres grados de la posición y tres de la orientación).


tracking con marcadores
ejemplo de tracking con marcadores
Para calcular la posición de la cámara respecto al mundo real se necesitan un conjunto de referencias tridimensionales, que pueden ser marcas con una descripción geométrica previamente conocida u objetos previamente modelados. Realizando una comparación con lo que percibe la cámara en el mundo real es posible obtener el posicionamiento relativo a estas  referencias. En la imagen de la izquierda vemos un ejemplo de tracking visual con marcadores correspondiente a uno de mis primeros aplicaciones creadas con ARToolKit.

Problemática

Los problemas que el tracking visual tiene que resolver son:

  1. De identificación: oclusiones, puntos de vista, mala iluminación, etc
  2. De seguimiento: inicio automático y recuperación del tracking al perder las referencias
  3. En entornos no controlados: tracking sin referencias previamente conocidas


Clasificación de los métodos de tracking

Las Aproximaciones Buttom-Up tratan de obtener la posición a partir de lo que percibe la cámara. En ellas la inicialización y la recuperación al perder el tracking son automáticas, pero si no se localiza una referencia completa no son capaces de dar posiciones válidas. Existen diferentes tipos:

  • Basados en marcas
  • Sin marcas
    • Estructuras planas
    • Basadas en modelos
    • Escenas sin restricciones
La siguiente imagen muestra un ejemplo de mi trabajo en el que se realiza una detección mediante tracking de estructuras planas, a partir de la detección de sus líneas de fuga y normales (en amarillo). En este caso se pretende insertar un anuncio sobre la pared detectada (en la que no hay marcas).

detección planar
ejemplo de detección planar

En las Aproximeciones Top-Down, primero se estima la posición para después intentar reconocer las referencias que se espera. Por este motivo, necesitan una posición inicial aunque responden muy bien ante referencias parciales o incluso oclusiones temporales. Se utilizan modelos del movimiento basados en filtros bayesianos para predecir la posición de la cámara. A partir de esa posición de la cámara se buscan referencias en la escena que corrijan la predicción y ayuden a la creación de un modelo del entorno.

Los filtros Bayesianos pueden dividirse en dos grandes familias según trabajen con modelos de movimiento gausianos, que explotan los beneficios de los Filtros de Kalman y sus variantes, o utilicen Filtros de Partículas.

domingo, 4 de mayo de 2014

AR Conceptos I

Muchas son las tecnologías implicadas y los conceptos técnicos asociados a la Realidad Aumentada (RA). En esta serie de entradas AR Conceptos, realizaré un listado y una breve explicación de los más importantes sin dejar, por ello, de dedicar diferentes entradas a otros tantos conceptos que requieran una explicación mayor.


La Realidad Virtual (RV)
realidad_virtual
Realidad virtual
Es una ciencia basada en el empleo de ordenadores y otros dispositivos, cuyo fin es producir una apariencia de realidad que permita al usuario tener la sensación de estar presente en ella. Se consigue mediante la generación por ordenador de un conjunto de imágenes que son contempladas por el usuario a través de un dispositivo denominado visor. A diferencia de la Realidad Aumentada, las tecnologías  de RV sumergen al usuario dentro de un entorno completamente sintético, sin  consciencia del mundo real que lo rodea.


Inteligencia Artificial (IA)
Es un área multidisciplinaria que, a través de ciencias, tales como la informática, la lógica y la filosofía, estudia la creación y diseño de entidades capaces de razonar por sí mismas utilizando como paradigma la inteligencia humana.

Visión por Computador (CV)
También llamada visión artificial o visión técnica, es un subcampo de la inteligencia artificial cuyo propósito es programar un computador para que "entienda" una escena o las características de una imagen. Entre sus objetivos se incluyen:

  • La detección, segmentación, localización y reconocimiento de ciertos objetos en imágenes (por ejemplo, caras humanas).
  • La evaluación de los resultados (por ejemplo, segmentación, registro).
  • Registro de diferentes imágenes de una misma escena u objeto, es decir, hacer concordar un mismo objeto en diversas imágenes.
  • Seguimiento de un objeto en una secuencia de imágenes.
  • Mapeo de una escena para generar un modelo tridimensional de la escena; este modelo podría ser usado por un robot para navegar por la escena.
  • Estimación de las posturas tridimensionales de humanos.
  • Búsqueda de imágenes digitales por su contenido.

Estos objetivos se consiguen por medio de reconocimiento de patrones, aprendizaje estadístico, geometría de proyección, procesamiento de imágenes, teoría de grafos y otros campos. La visión artificial cognitiva está muy relacionada con la psicología cognitiva y la computación biológica.


Esquema de las relaciones entre la visión por computadora y otras áreas afines

Computación Gráfica (CG)
Es el campo de la informática visual, donde se utilizan computadoras tanto para generar imágenes visuales sintéticamente como para integrar o cambiar la información visual y espacial probada del mundo real. Herramientas informáticas como maya, 3D studio MAX o blender son de las más utilizadas.

Marcador artificial o Marca
Son impresiones cuadradas o circulares  normalmente en blanco y negro, utilizadas, una vez detectadas, para posicionar la cámara virtual y ubicar objetos 3D en el registro. Los principales factores que afectan a la detección de marcas son su tamaño físico, su complejidad, su orientación relativa respecto de la cámara y las condiciones de iluminación. Algunos ejemplos de marcadores son:


marcadores


Plano de la imagen
En proyección, es el plano perpendicular a las líneas de mira (trayectorias paralelas desde el ojo del observador hasta un punto particular sobre el objeto observado). Este plano esta localizado entre el ojo del observador y el objeto que esta siendo mirado.

Registro o escena
Imágenes reales registradas por una cámara en el momento o previamente. El mayor problema que implica obtener el registro es calcular la posición relativa de la cámara real respecto de la escena para poder generar imágenes virtuales correctamente alineadas con esa imagen real (posición y rotación). El registro debe ser preciso (errores de muy pocos milímetros son muy sensibles en determinadas aplicaciones, como en medicina  o en soporte a las aplicaciones industriales) y robusto (debe funcionar correctamente en todo momento). El registro puede realizarse empleando diferentes  tipos de sensores y técnicas (las más extendidas son mediante el uso de tracking visual).

Tracking
Es un conjunto de métodos que tratan de obtener una estimación de la trayectoria en el espacio realizada por un objeto o sensor. Se pueden emplear diferentes tipos de sensores como mecánicos, magnéticos, ondas sonoras, inerciales o cámaras de visión.  Las cámaras están actualmente integradas en multitud de dispositivos portátiles y permiten realizar tracking a un coste reducido.

Tracking visual
El tracking basado en cámaras de vídeo es un subcampo del tracking 3D en el que se emplean técnicas de visión por computador para obtener el posicionamiento de seis grados de libertad de la cámara  (tres grados de la posición y tres de la orientación). Para calcular la posición de la cámara respecto al mundo real se necesitan un conjunto de referencias tridimensionales. Algunos  ejemplos de estas referencias pueden ser marcas con una descripción geométrica previamente conocida u objetos previamente modelados. Realizando una comparación con lo que percibe la cámara en el mundo real es posible obtener el posicionamiento relativo a estas  referencias.