Universidad de - Escuela Superior de Informática (UCLM ...

Universidad de - Escuela Superior de Informática (UCLM ... Universidad de - Escuela Superior de Informática (UCLM ...

12.07.2015 Views

Módulo de procesamientoCAPÍTULO 5. ARQUITECTURA DE ATRAVELAlgoritmo 2 Calcular similitud entre dos vectores.Entrada: Dados dos vectores unitarios en el espacio 3D de la forma V = (V x ,V y ,V z ) yU = (U x ,U y ,U z ).Salida: Devuelve un cierto si los dos vectores tienen una dirección similar y falso si éstostienen una dirección muy diferente.Se establece un umbral de diferencia entre vectores.si (‖U x −V x ‖ + ‖U y −V y ‖ + ‖U z −V z ‖) > umbral entoncesdevolver falsosi nodevolver ciertofin siAlgoritmo 3 Calcular la distancia entre dos puntos.Entrada: Dados dos puntos espacio 3D de la forma P = (P x ,P y ,P z ) y Q = (Q x ,Q y ,Q z ).Salida: Devuelve √ un float con el valor de la distancia.Distancia = (P x − Q x ) 2 + (P y − Q y ) 2 + (P z − Q z ) 2devolver DistanciaBase de conocimiento de objetos detectados.En esta sección se va a explicar las principales características que tiene este submódulo.Se trata de una de las partes más importantes para el correcto funcionamiento de Atravel.La principal función de este submódulo es la de almacenamiento de información. Sudiseño es fundamental para proporcionar al sistema la agilidad, eficiencia, rapidez y eficacianecesarias para un comportamiento óptimo de la aplicación.A grandes rasgos puede resumirse, como el lugar por el cual se almacena todala información necesaria de todos los objetos detectados en la escena monitorizada,en cualquier instante de tiempo. Por tanto, estamos ante uno de los submódulos másimportantes.Inicialmente se detectan la aparición de los diferentes objetos que tienen lugar en elentorno monitorizado. Éstos son detectados y leídos del archivo de texto resultante de laetapa de Tracking. A continuación, la aplicación identifica el objeto detectado, en caso deque el objeto no haya sido reconocido con anterioridad, es creado y almacenado en la basede conocimiento de objetos detectados. Si el objeto ha sido creado anteriormente se realizauna búsqueda de éste, para actualizar su información, incluyendo la información reciéndetectada. Dada la necesidad de almacenar los datos recogidos en la escena observada, sualmacenamiento debe ser lo más eficiente, manejable y sencillo posible. Para cumplir estosrequisitos se ha desarrollado una base de conocimiento de objetos detectados, que almacena102

CAPÍTULO 5. ARQUITECTURA DE ATRAVELMódulo de procesamientotoda la información de los objetos detectados para su posterior análisis y generación decomparaciones necesarias para el desarrollo de la aplicación.Para el almacenamiento de información utilizando el lenguaje de programación dePython, se ha utilizado la estructura de datos de diccionario [Lut09]. Esta estructura secaracteriza por almacenar datos de la forma . Las razones por las que seha decidido utilizar esta estructura de datos son:Flexibilidad: Los diccionario son junto con las listas las estructuras de datos másflexibles que Python integradas en Python.Facilidad de búsqueda: Al ser un tipo de estructura integrada en el lenguaje, lo quefacilita la búsqueda de items del diccionario. Esta característica evita la construcciónde algoritmos de búsqueda y estructuras de datos implementadas manualmente enlenguajes de bajo nivel.Utilización de Claves: Permite la recuperación de elementos del diccionario a travésde su clave. Lo cual resulta muy beneficioso para la recuperación de un elemento deldiccionario, ya que no es necesario recorrer todos los elementos que lo componen.Objetos desordenados: Python almacena aleatoriamente los elementos de izquierdaa derecha, para proporcionar mecanismos de búsqueda rápida. Las claves proporcionanuna posición simbólica (no física) de los elementos del diccionario.Longitud variable, heterogéneos y arbitrariamente anidables: Los diccionariospueden crecer y ser comprimidos sin necesidad de realizar copias nuevas. Puedencontener objetos de cualquier tipo y pueden ser anidables hasta cualquier tipode profundidad. Además se pueden añadir cualquier tipo de objetos como listas,diccionarios y otros objetos.Las operaciones y consultas con diccionarios que se han realizado se pueden ver en[Lut09].De forma que el almacenamiento de los objetos detectados en la escena monitorizadase realiza en un diccionario. Cada entrada o elemento del diccionario tiene una clave quedebe ser única y un valor. La clave del diccionario corresponde al identificador del objeto yen este caso se trata de una cadena de caracteres (string) de tamaño variable. El valor estáformado por un objeto de tipo Trajectory.El tipo de objeto Trajectory contiene información acerca de los objetos detectados en laescena monitorizada. La información que contienen es la siguiente:103

Módulo <strong>de</strong> procesamientoCAPÍTULO 5. ARQUITECTURA DE ATRAVELAlgoritmo 2 Calcular similitud entre dos vectores.Entrada: Dados dos vectores unitarios en el espacio 3D <strong>de</strong> la forma V = (V x ,V y ,V z ) yU = (U x ,U y ,U z ).Salida: Devuelve un cierto si los dos vectores tienen una dirección similar y falso si éstostienen una dirección muy diferente.Se establece un umbral <strong>de</strong> diferencia entre vectores.si (‖U x −V x ‖ + ‖U y −V y ‖ + ‖U z −V z ‖) > umbral entonces<strong>de</strong>volver falsosi no<strong>de</strong>volver ciertofin siAlgoritmo 3 Calcular la distancia entre dos puntos.Entrada: Dados dos puntos espacio 3D <strong>de</strong> la forma P = (P x ,P y ,P z ) y Q = (Q x ,Q y ,Q z ).Salida: Devuelve √ un float con el valor <strong>de</strong> la distancia.Distancia = (P x − Q x ) 2 + (P y − Q y ) 2 + (P z − Q z ) 2<strong>de</strong>volver DistanciaBase <strong>de</strong> conocimiento <strong>de</strong> objetos <strong>de</strong>tectados.En esta sección se va a explicar las principales características que tiene este submódulo.Se trata <strong>de</strong> una <strong>de</strong> las partes más importantes para el correcto funcionamiento <strong>de</strong> Atravel.La principal función <strong>de</strong> este submódulo es la <strong>de</strong> almacenamiento <strong>de</strong> información. Sudiseño es fundamental para proporcionar al sistema la agilidad, eficiencia, rapi<strong>de</strong>z y eficacianecesarias para un comportamiento óptimo <strong>de</strong> la aplicación.A gran<strong>de</strong>s rasgos pue<strong>de</strong> resumirse, como el lugar por el cual se almacena todala información necesaria <strong>de</strong> todos los objetos <strong>de</strong>tectados en la escena monitorizada,en cualquier instante <strong>de</strong> tiempo. Por tanto, estamos ante uno <strong>de</strong> los submódulos másimportantes.Inicialmente se <strong>de</strong>tectan la aparición <strong>de</strong> los diferentes objetos que tienen lugar en elentorno monitorizado. Éstos son <strong>de</strong>tectados y leídos <strong>de</strong>l archivo <strong>de</strong> texto resultante <strong>de</strong> laetapa <strong>de</strong> Tracking. A continuación, la aplicación i<strong>de</strong>ntifica el objeto <strong>de</strong>tectado, en caso <strong>de</strong>que el objeto no haya sido reconocido con anterioridad, es creado y almacenado en la base<strong>de</strong> conocimiento <strong>de</strong> objetos <strong>de</strong>tectados. Si el objeto ha sido creado anteriormente se realizauna búsqueda <strong>de</strong> éste, para actualizar su información, incluyendo la información recién<strong>de</strong>tectada. Dada la necesidad <strong>de</strong> almacenar los datos recogidos en la escena observada, sualmacenamiento <strong>de</strong>be ser lo más eficiente, manejable y sencillo posible. Para cumplir estosrequisitos se ha <strong>de</strong>sarrollado una base <strong>de</strong> conocimiento <strong>de</strong> objetos <strong>de</strong>tectados, que almacena102

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!