• No results found

Infinite Hierarchy & Incomparable Complexities

Chapter 2: Preliminaries

4.7 Cryptographic Complexity Reductions

4.7.1 Infinite Hierarchy & Incomparable Complexities

En el ámbito de la visión por computador, varias son las aplicaciones como por ejemplo el seguimiento de puntos u objetos que debido a la presencia de ruido en la imagen, oclusiones o movimientos bruscos, puede ser perdido el rastro del objeto de interés y por ende su ubicación en la siguiente imagen de la secuencia. Es por esta razón que en este trabajo se ha recurrido a utilizar un algoritmo conocido como Filtro de Kalman.

33

El filtro de Kalman es un algoritmo recursivo que estima la posición e incertidumbre en la medida de un punto de interés en la siguiente imagen, es decir, predice donde se encontrará y cuan grande es la región donde debe ser buscado.

El objetivo de este filtro es entonces, la obtención de un estimador óptimo de las variables de estado de un sistema dinámico, basado en observaciones ruidosas y en un modelo de incertidumbre de la dinámica del sistema [23].

En aplicaciones de visión por computador, específicamente en el caso de seguimiento o “tracking” de puntos, se define un estado ̂ , el cual describe el movimiento del punto de interés en el plano de la imagen, determinado por las coordenadas de posición , y las componentes de velocidad y . La observación en cambio es un vector de dos

componentes y pertenecientes a las coordenadas de la posición del punto de interés

observada por las cámaras. Las ecuaciones que rigen este proceso en tiempo discreto son:

̂

Donde:

La matriz A es el modelo de transición de estados y relaciona el estado en tiempo k-1 con

el estado en tiempo k, esta relación se muestra en las siguientes ecuaciones y matrices.

[ ] [ ]

34

La matriz B relaciona la entrada control con el estado , mientras que la matriz H relaciona el estado con la medida y tiene la forma:

[

] [ ]

Las variables aleatorias y representan el ruido del proceso y de la medida

respectivamente asumiéndose que son independientes y blancos de media cero.

El filtro de Kalman proporciona una ecuación que computa un estimador del estado a posteriori como combinación lineal del estimador a priori ̂ y la diferencia ponderada entre la observación actual zk y una predicción de la medida ̂ .

̂ ̂

La diferencia entre la observación actual y la predicción de la medida se conoce como

“innovación de la medida” o “medida residual”.

La matriz Kk es conocida como “Ganancia de Kalman” y pondera la influencia del error

entre la estimación y la medida, y se obtiene de la forma:

Donde es la covarianza del error medido y es la matriz de estimación de la covarianza del error a priori (medida de la precisión del estado estimado) que se establece por:

Con como la matriz de covarianza del sistema.

Con estas ecuaciones, cuando la matriz se aproxima a cero, la ganancia ponderará el

residuo con mayor peso, es decir, se tendrá mayor confianza en la observación actual . Por otra parte cuando el estimador de la covarianza del error a priori se aproxime a cero, se perderá confianza en la observación y la de la medida predicha ̂ se incrementará.

35

El ciclo de trabajo del filtro de Kalman (Figura 21) esta compuesto de dos fases bien definidas: “predecir” y “actualizar”. La fase de predicción usa el estado estimado del instante de tiempo previo para producir una estimación del estado en el tiempo actual. Esta predicción del estado estimado es también conocida como el estado estimado a priori, aunque esta es una estimación del estado en el tiempo actual, esta no incluye la información proveniente del observador, también en el tiempo actual. En la fase de actualización la predicción a priori es combinada con la observación actual para corregir el estado estimado, esto se conoce como el estado estimado a posteriori.

Figura 21. Ciclo de Trabajo del Filtro de Kalman

Típicamente las dos fases se alternan, con la predicción estimando un estado y la actualización corrigiéndolo con la observación. Sin embargo si una observación no esta disponible por alguna razón, la fase de actualización puede ser omitida utilizándose así solamente los estados predichos.

Valores iniciales 𝑥𝑘 𝑃𝑘

𝑥̂𝑘 𝐴𝑘𝑥𝑘 𝐵𝑢𝑘

𝑃𝑘 𝐴𝑘𝑃𝑘 𝐴𝑘𝑇 𝑄 𝑘

1. Proyectar hacia adelante el estado.

2. Proyectar hacia adelante la covarianza del error a priori.

Actualización en el Tiempo Predicción 𝐾𝑘 𝑃𝑘𝐻𝑘𝑇 𝐻 𝑘𝑃𝑘𝐻𝑘𝑇 𝑅𝑘 𝑥𝑘 𝑥̂𝑘 𝐾𝑘 𝑧𝑘 𝐻𝑘𝑥̂𝑘 𝑃𝑘 𝐼 𝐾𝑘𝐻𝑘 𝑃𝑘

1. Calcular la ganancia de Kalman.

2. Actualizar la estimación con la medida.

3. Actualizar la covarianza del error a posteriori.

Actualización en el Tiempo Corrección

36

Esta es una de las ventajas de la aplicación de este tipo de filtros en este trabajo, ya que en caso de no encontrarse la correspondencia del punto de interés en la imagen derecha, el filtro podrá predecir su ubicación y evitar así pequeñas oclusiones.

La otra ventaja principal del uso de este filtro en este proyecto, es que se puede predecir el estado futuro en el que se encontrará ya sea un punto u objeto de interés compensando de esta manera el tiempo de computo consumido por la etapa de adquisición y procesamiento de las imágenes así como tiempo de ejecución de las tareas del robot.

37

CAPÍTULO 3

Desarrollo del Sistema de Visión

En este capítulo se explica el desarrollo del sistema de procesado de imágenes así como las funciones utilizadas, que permiten efectuar la sincronización del manipulador de forma automática, a partir de los conceptos teóricos revisados en el Capítulo 2. La programación del algoritmo se ha realizado en Microsoft Visual Studio 2008 junto con las librerías de OpenCV para procesamiento de imágenes.

El diagrama de flujo general del programa realizado se muestra en la Figura 22.

INICIO Adquisición de Imágenes Calibración y Rectificación de Cámaras Detección de Puntos Singulares Selección de Puntos? Emparejamiento de Puntos Homólogos Tracking de Puntos Filtrado y Predicción Señales (Filtro de Kalman)

Envío de datos al Robot FIN NO SI Obtención del 3D (Posición y orientación)

38

El algoritmo inicia con la calibración y rectificación de cámaras, procesos útiles ya que permitirán determinar la posición del objeto 3D con precisión ya que los datos entregados por el fabricante no son lo suficientemente exactos para este procedimiento. Con los parámetros intrínsecos y extrínsecos se procede a adquirir la secuencia de imágenes (de la región de interés en este caso el corazón) en las que se encontrarán los puntos relevantes de la escena, de la cual el operador tendrá la capacidad de escoger tres de ellos, para determinar el plano de interés, calcular la posición en el espacio 3D de su punto medio y la orientación de la normal para que el efector final del robot se oriente en modo opuesto. Este calculo de la posición se lo hace en base al origen de coordenadas que se ubicará en el eje óptico de la cámara izquierda, por lo que es necesario cambiar el sistema de coordenadas al del robot para que este pueda sincronizarse con el de la superficie de trabajo, esto se lo hace mediante el cómputo de una matriz de rotación y una de traslación entre sistemas de coordenadas.

El algoritmo también hará el seguimiento (tracking) de esta superficie en tiempo real, sin embargo al ser las imágenes sensibles al ruido, es necesario añadir una etapa de filtrado de los datos de posición y orientación obtenidos, así como, la compensación del tiempo empleado en realizar todas las operaciones matemáticas del algoritmo, todo esto hecho mediante el filtro de Kalman. Una vez que estos datos hayan sido filtrados se enviarán al robot para que este sincronice su movimiento con el plano detectado. A continuación se realiza una descripción detallada de cada una de las etapas que conforman el algoritmo realizado.