Universidad de - Escuela Superior de Informática (UCLM ...
Universidad de - Escuela Superior de Informática (UCLM ... Universidad de - Escuela Superior de Informática (UCLM ...
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
- Page 73 and 74: CAPÍTULO 3. ANTECEDENTES.Necesidad
- Page 75 and 76: CAPÍTULO 3. ANTECEDENTES.Tendencia
- Page 77 and 78: CAPÍTULO 3. ANTECEDENTES.Análisis
- Page 79 and 80: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 81 and 82: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 83 and 84: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 85 and 86: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 87 and 88: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 89 and 90: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 91 and 92: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 93 and 94: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 95 and 96: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 97 and 98: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 99 and 100: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 101 and 102: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 103: CAPÍTULO 3. ANTECEDENTES.Ejemplos
- Page 106 and 107: Metodología de desarrolloCAPÍTULO
- Page 108 and 109: Tecnologías y herramientas utiliza
- Page 110 and 111: Tecnologías y herramientas utiliza
- Page 113 and 114: 5Arquitectura de AtravelEn este cap
- Page 115 and 116: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 117 and 118: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 119 and 120: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 121 and 122: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 123: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 127 and 128: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 129 and 130: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 131 and 132: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 133 and 134: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 135 and 136: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 137 and 138: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 139 and 140: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 141 and 142: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 143 and 144: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 145 and 146: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 147 and 148: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 149 and 150: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 151 and 152: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 153 and 154: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 155 and 156: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 157 and 158: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 159 and 160: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 161 and 162: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 163 and 164: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 165 and 166: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 167 and 168: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 169 and 170: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 171 and 172: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
- Page 173 and 174: CAPÍTULO 5. ARQUITECTURA DE ATRAVE
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