Escrito por
3 minutos de lectura
Localización: Buscar dónde se encuentra un objeto en movimiento con cierta precisión. Se utiliza por ejemplo en vehículos autónomos.
Las mismas técnicas aplicadas a imágenes en las pasadas secciones puedes ser aplicadas a vídeos ya que estos son un conjunto de ellas (denominadas frames).
Pero lo que distingue principalmente a un vídeo de una imágen es la idea de movimiento.
Una forma de localizar objetos en el tiempo y detectar su movimiento es extrayendo ciertos features y observando cómo cambian de un frame a otro.
Es utilizado en aplicaciones de seguimiento y análisis de movimiento.
Funciona asumiendo dos cosas sobre los frames de la imagen:
El seguimiento de un punto proporciona información sobre la velocidad de movimiento y datos que pueden ser utilizados para predecir la futura localización del punto.
Por esto, podemos utilizar el optical flow para aplicaciones como:
Si tenemos dos imágenes y queremos saber cómo se ha movido un determinado punto de una de ellas, lo que hacemos es calcular el vector de movimiento que describa la velocidad de este punto desde el primer frame hasta el siguiente.
Vector de movimiento - Imagen de Udacity
Si nos fijamos en el punto del primer frame, para calcular un segundo punto lo único que debemos es trazar un vector hacia él. De esta forma, las coordenadas del segundo punto serán las del primero más el vector.
También podríamos hallar su magnitud con el teorema de pitágoras y el ángulo del triángulo que forman con trigonometría, utilizando la fórmula de la tangente.
Teniendo en cuenta que el brillo no va a presentear la ecuación, podemos formular la siguiente ecuación donde I es la intensidad lumínica y t el tiempo:
\[I(x, y, t) = I(x + u, y + v, t + 1)\]Suposición de la constancia del brillo
Esta función puede ser descompuesta en una expansión de las Series de Taylor:
\[I(x, y, t) = \frac{\partial I}{\partial x}u + \frac{\partial I}{\partial y}v \frac{\partial I}{\partial t}1 + I(x, y, t)\]Vemos que podemos eliminar I(x, y, t) y entonces podemos relacion las cantidades de los vectores de movimieto u y v con el tiempo:
\[\frac{\partial I}{\partial x}u + \frac{\partial I}{\partial y}v = -\frac{\partial I}{\partial t}\]Y estos son los fundamentos de cómo optical flow estima los vectores de movimiento para un set de feature points en un vídeo.
Suponemos que píxeles cercanos tendrán un movimiento parecido.
Matemáticamente esto significa que los píxeles en una determinada área tienen motion vectors similares.
Por ejemplo, pensando en una persona, si tú estás monitoreando un conjunto de puntos de su cara, todos esos puntos deberían moverse a la misma velocidad. Tu nariz no puede moverse hacia el lado opuesto que tu barbilla.
Un caso en el que se utilice el optical flow para hacer seguimiento de los objetos que nos rodean en un vídeo es el NVIDIA Redtail drone.
Para cualquier error en la web o en la escritura, porfavor abre un issue en Github.
GithubSiéntete libre de mandarme un tweet con cualquier recomendación o pregunta.
Twitter