..:: TRACKING ::..

Muchas veces al componer, necesitamos que un objeto añadido siga el movimiento de algo que está en la secuencia sobre la que lo metemos (por ejemplo, fijar una pegatina en una pared sobre la que panea la cámara). Ésto se hace fácilmente utilizando el Tracking:

Tracking
- Consiste en seleccionar una parte de una imágen y analizar su posición en cada frame de una secuencia. La información obtenida a partir del tracking de una o más partes de la imágen puede servirnos para varias cosas: desde integrar objetos en la misma, y que éstos se adapten al movimiento de la secuencia, hasta estabilizar la imágen suprimiendo movimientos de cámara no deseados etc.

Punto de Tracking
Es la zona cuyo movimiento queremos analizar. Su selección se realiza mediante una Zona de Interés, que es el patrón que se buscará en los frames sucesivos. Una vez definido el punto, en el fotograma siguiente el programa analiza toda la imágen en busca del mismo patrón, y así sucesivamente. Para evitar que el ordenador analice toda la imágen, con el consiguiente gasto de tiempo, se define una Zona de Búsqueda, que consiste en un recuadro alrededor de la Zona de Interés que limita la zona donde el ordenador buscará el patrón.




¿Cuántos puntos de Tracking son necesarios?
- Tracking de Posición: un sólo punto es suficiente, ya que sólo variarán las coordenadas X e Y, que vienen definidas por el movimiento de un sólo patrón.
- Rotación / escala: aquí son necesarios dos puntos para hacer el cálculo. Imaginad un punto A y un punto B que se separan uno del otro, mientras A se desplaza hacia arriba y B hacia abajo. Ahora trazad una linea imaginaria entre uno y otro, si esa línea fuera el objeto que queremos insertar, para saber cuánto está girando / escalándose, necesitamos tanto A como B para saber su rotación / escala.
- Otros casos:
- Haciendo tracking de 4 puntos podemos "pegar" una imágen a un cubo que cambie de perspectiva. Pueden ser más de 4 puntos, y nos serviría para hacer Warping.
- Mediante el tracking de múltiples puntos de la imágen, y analizando el movimiento de unos respecto a otros es posible obtener el movimiento original en las tres dimensiones de la cámara que grabó la imágen, siempre que haya suficientes puntos y que éstos varíen de una determinada manera.

Escogiendo un punto de Tracking
Antes de escoger un punto de Tracking debemos ver y analizar toda la secuencia, para saber exactamente el movimiento que tiene la imágen, ya que es muy probable que haya puntos idóneos en unos frames, y que no nos sirvan en otros porque desaparecen de la imágen, ya sea porque salen de cuadro debido al movimiento de cámara, o porque algo los tapa. En cualquier momento podemos parar el tracking y seleccionar nuevos puntos para analizar, pero con el análisis previo podemos ahorrarnos este paso (siempre que haya puntos que se mantengan en la secuencia).
Asimismo buscaremos en qué parte de la imágen es más crítica la posición del objeto añadido: en caso de querer añadir una matrícula a un coche que se acerca, empezaremos por donde la matrícula está más cerca, e iremos hacia atrás, ya que así los posibles fallos en la búsqueda del patrón, harán que la matrícula quede ligeramente descolocada cuando está lejos, y correctamente cuando está cerca.
Lo ideal es escoger zonas con una forma muy definida, y contrastadas con sus alrededores (una X negra sobre un fondo blanco, un círculo claro sobre algo oscuro...), y que no tengan réplicas en sus alrededores, o al menos dentro de la Zona de Búsqueda (ej. en una pared de ladrillos, si seleccionamos un ladrillo y una zona de búsqueda grande, puede confundirlo con los que lo rodean). Para ayudar al tracking podemos aplicarle a la imágen antes de analizarla un modificador para contrastarla y marcar más las formas, o un corrector de color, etc (una vez hecho el tracking eliminaremos el operador).


Tracking por partes
Cuando veamos que el programa pierde ligeramente un punto, pararemos el tracking hasta donde lo haya hecho bien, moveremos los trackers hacia nuevos patrones, y probaremos de ahí en adelante (manteniendo lo que está bien calculado). Si en algún momento el programa pierde siempre el tracker, haremos a mano los fotogramas problemáticos, y cuando vuelva a haber puntos bien definidos, definiremos éstos para intentar seguir calculando.
Si van apareciendo puntos mejores que los que tenemos definidos, parar el tracking, coger los puntos nuevos, y seguir analizando (siempre que los puntos originales sean propensos a dar problemas, si son suficientemente buenos no es necesario cambiar por otros).

TRACKING EN COMBUSTION

En un tracking típico colocamos el objeto que queremos integrar sobre la secuencia (podemos hacer tracking sobre una capa, sobre un texto, un paint, partículas, un punto de una máscara, etc). Seleccionamos lo que queramos "Trackear", y vamos a la pestaña TRACKER, con estos parámetros básicos:


Source: la secuencia cuyo movimiento analizaremos.
Track: aquí seleccionamos si queremos track de posición, escala, rotación, o todos ellos.
Axis: eje o ejes del tracker que afectarán al movimiento del objeto (X, Y, o ambos).
Modo:
- Relativo: mantiene el objeto a añadir en la posición original al hacer el tracking, y el movimiento lo añade a partir de ahí. (Setting por defecto)
- Absoluto: mueve el objeto a añadir al lugar donde pongamos el punto de tracking.

Reference:
- Fixed: válido para cuando el patrón a buscar no varía a lo largo del tiempo, o las variaciones son pequeñas.
- Roaming: seleccionarlo si el patrón varía a lo largo del tiempo, ya sea porque cambia de forma, porque varía de color a causa de la iluminación, etc. Es más lento que Fixed ya que tiene que cambiar la Zona de Interés en cada frame, y puede ser menos preciso que el modo Fixed ya que puede ir sumando pequeños errores en el análisis y en los cambios de la Zona de Interés.
(En otras palabras: Fixed busca siempre el patrón original, mientras que Roaming busca el patrón encontrado en el frame anterior).

Tolerance: si la tolerancia está al 100%, el tracking encontrará siempre un patrón, válido o no, y creará la clave. Si la tolerancia está a 0% no creará clave a menos que encuentre un patrón exacto al original. Lo normal es comenzar con 100% e ir bajando si da problemas.

 

EJEMPLO PRÁCTICO: añadiendo un dibujo a un cuadro móvil

Descargar archivo del tutorial


Abrimos la escena con el Combustion y la analizamos:
- Por un lado tenemos un cuadro que se mueve, gira, y se aleja. Encima tenemos un dibujo que está quieto, y hay que hacer que se "pegue" al cuadro.
- ¿Cuántos trackers nos hacen falta? Del frame 0 al 43 sólo varía la posición, así que con un tracker sería suficiente, pero ya que luego varía la rotación y la escala pondremos desde un principio dos trackers para ganar tiempo y hacer todo del tirón.
- ¿Dónde los pondremos? En los clavos del marco, ya que son zonas bien definidas y que no se repiten.
- ¿Salen de cuadro? ¿Los tapa algún objeto? ¿Desaparecen? ¿Cambian de forma / iluminación? No, no, no, y un poco :o), varían de forma al alejarse (se hacen más pequeños), así que pondremos los trackers en Roaming.

1) Seleccionamos el stroke Linea en el Workspace.
2) Vamos a la pestaña Tracker, y marcamos Position, Rotation, y Scale. Vemos que el dibujo desaparece (por defecto Combustion oculta el objeto trackeado al hacer el tracking, si no queremos ocultarlo desactivamos Hide Objects en las opciones del Tracker, yo lo suelo ocultar para elegir los trackers, y desocultar mientras analiza para ver si el cálculo es correcto).
Aparecen dos Trackers en la pantalla. Pinchamos en la Zona de Interés y aparece una lupa agrandando la región, llevamos cada uno a un clavo y ajustamos la Zona de Interés para que encuadre todo el clavo, y la Zona de Búsqueda rodeándola:

3) Seleccionamos ambos trackers (a mano pulsando en uno primero, luego Shift y pinchamos en el otro, o en las opcioens del Tracker seleccionamos Select All Trackers). Nos aseguramos de estar en el fotograma 0 y pulsamos Analize.

4) Si vemos que pierde un punto de tracking, vamos al último frame correcto, buscamos nuevos patrones, y volvemos a analizar. Podéis probar a ponerlo en Roaming, a cambiar de clavos, etc. A mi me lo hizo bien en Fixed con las zonas que se ven en la imágen. Al terminar de hacer el tracking, tendremos algo así:

Para ver la exactitud del tracking, pinchamos en uno de los puntos verdes, y luego vamos al Timeline. Ahí vemos la posición relativa del tracker, y su similitud con el patrón original. Lo pasamos por toda la secuencia para ver si en alguna parte ha fallado mucho al encontrar el patrón, si es así repetiremos esa parte. Ocultamos los puntos y lineas del tracking, desocultamos el dibujo, y le damos a play para ver si el dibujo está correctamente fijado. Según los fallos que tenga, puede ser mejor corregirlos a mano o haciendo tracking de nuevo, depende del caso.
5) Notas: este es un tracking muy sencillo donde los patrones estában muy definidos, pero en una secuencia de video real esto no suele pasar, ya que la imágen tiene grano que hace que el patrón varíe, al moverse el patrón se desenfoca, etc.
La forma correcta de hacer éste ejercicio hubiera sido por partes, del frame 0 al 43 únicamente haciendo tracking de posición, del
43 al 77 de rotación y del 77 al final de escala, porque los movimientos estaban muy claros, y así evitamos que varíe la rotación debido a pequeños errores al calcular la parte final, o la escala en la parte del medio, o cualquiera de ellas en la inicial, pero al ser para practicar y salir el resultado correcto haciéndolo "del tirón" he preferido hacerlo así. A continuación pongo otro ejercicio de Tracking para practicar, donde hay patrones que desaparecen, por lo que hay que cambiarlos sobre la marcha.

EJEMPLO 2: añadiendo un "cielo"

Descargar Archivo

En este ejemplo tenemos un paisaje que va pasando de derecha a izquierda, y al final la cámara hace unos giros. Hay muchos puntos de tracker, pero éstos van apareciendo y desapareciendo según los movimientos de cámara, por lo que hemos de cambiarlos sobre la marcha. Éste es el procedimiento:
1) Analizamos la secuencia, y vemos que sólo hay movimiento en X del 0 al 36. Utilizaremos tracking Fixed en modo Relative.
2) Seleccionamos "Añadido", vamos a Tracker --> Position --> Relative & Fixed, cogemos el primer patrón, y analizamos hasta que casi haya salido de cuadro, le damos a pausa, y movemos la zona de interés hacia el patrón que apareció por la derecha. Seguimos analizando, hasta el frame 36. Apagamos el tracker, vemos si nos ha hecho bien esa parte, y de ser así continuamos con
3) Seleccionamos dos patrones, uno el de la bola más a la derecha, y otro el que está a la izquierda de la colina, analizamos hasta el frame 37 en que se pierde por la zona inferior. Pausamos el tracker en el frame anterior al que se pierde, y movemos el patrón al círculo que está arriba. Ojo al seleccionar el patrón para moverlo, ya que estarán seleccionados los dos trackers y si movemos uno movemos los dos. Deseleccionar ambos pinchando fuera, y luego mover los patrones. Analizamos hasta el 80 donde se pierde el punto de la derecha. Pausamos, cambiamos el patrón al círculo de abajo, y continuamos analizando hasta el 95 que se pierde por debajo. Cambiamos el patrón y seguimos analizando hasta el final. Podéis ocultar y desocultar el objeto añadido para ver cómo va quedando.

Espero que os haya quedado un poco más claro el concepto de tracking, y la manera de utilizarlo en Combustion. Aunque los ejemplos son muy sencillos, la manera de hacer un tracking es la misma que en un video de imágen real, todo se limita a analizar qué patrones son buenos, ir por partes, cambiar de patrones, rehacer, ensayo y error... y normalmente muchos quebraderos de cabeza ;o)

Para cualquier duda, sugerencia, o posibles errores en el tutorial, no dudéis en contactar conmigo:

stewiefx@hotmail.com

. . : : Pablo López - 3d - animation - compositing : : . .

..:: www.pablo-lopez.com ::..


Tutorial alojado en www.3dpoder.com