Documento de Requisitos de “Estacionamiento Inteligente” Fecha 06/07/2012 Versión 0.2 Integrantes del grupo Francisco Becker Eduardo Castillo Víctor Fernández Ignacio Gómez Documento de Inicio de Estacionamiento Inteligente Prefacio Este es el Documento de Requisitos del Proyecto de Procesamiento Digital de Imágenes llamado “Estacionamiento Inteligente”, el cual tiene como propósito el reconocimiento de patentes de automóviles para mantener un registro de entrada y salida de estos, calculando el tiempo de estadía en un estacionamiento. Alcance del El Documento de Requisitos es la base de todo el desarrollo futuro de documento “Estacionamiento Inteligente”. Describe los siguientes aspectos del sistema: propósito, contexto, requisitos funcionales, requisitos de pruebas, requisitos de ambiente, arquitectura del sistema y riesgos del proyecto. Documentos Documento de Inicio de Proyecto, proyecto “Estacionamiento Inteligente”, relacionados versión 0.1. Autores Francisco Becker, Eduardo Castillo, Víctor Fernández, Ignacio Gómez. Lectores Este documento está dirigido principalmente a los desarrolladores del proyecto, pero es de interés de todos los interesados en el mismo. Historia del Documento Versión Fecha Explicación del cambio Autor 0.1 08/06/2012 Primer borrador Francisco Becker, Eduardo Castillo, Víctor Fernández, Ignacio Gómez 0.2 06/07/2012 Segundo borrador Francisco Becker, Eduardo Castillo, Víctor Fernández, Ignacio Gómez Documento de Inicio de Estacionamiento Inteligente Índice de Materias Prefacio 2 Historia del Documento 2 Lista de Figuras 4 Lista de Tablas 4 1 Introducción 5 1.1 Propósito 1.2 Alcance 1.3 Contexto 1.4 Estándares 1.5 Referencias 5 5 5 5 5 2 Requisitos del Sistema 6 2.1 Requisitos Funcionales 2.2 Requisitos de Interfaces 2.3 Manejo de Excepciones 2.4 Requisitos de Prueba 2.5 Matriz de Requisitos Funcionales y de Pruebas 6 6 7 9 8 3 Requisitos de Ambiente 9 3.1 Requisitos del Ambiente de Desarrollo 3.1.1 Hardware de Desarrollo 3.1.2 Software de Desarrollo 3.2 Requisitos del Ambiente de Pruebas 3.2.1 Hardware de Pruebas 3.2.2 Software de Pruebas 9 9 9 9 9 9 4 Arquitectura del Sistema 10 4.1 Diagrama de Arquitectura 4.2 Descripción de Módulos 10 10 5 Gestión de Riesgos 13 5.1 Supuestos 5.2 Dependencias 5.3 Restricciones 5.4 Riesgos 5.4.1 Riesgo 1 5.4.2 Riesgo 2 5.4.3 Riesgo 3 13 13 13 13 13 13 13 Documento de Inicio de Estacionamiento Inteligente Lista de Figuras Figura 1: Diagrama de arquitectura del sistema 10 Lista de Tablas Tabla 1: Eventos externos 6 Tabla 2: Respuestas del sistema 7 Tabla 3: Excepciones 7 Tabla 4: Matriz de requisitos funcionales y de pruebas 9 Tabla 5: Matriz de requisitos funcionales y componentes Documento de Inicio de Estacionamiento Inteligente 12 1. Introducción En esta introducción se describe brevemente el contexto, objetivos y alcance del proyecto a desarrollar, así como la documentación relativa al mismo. Esta información está basada en el Documento de Inicio de Proyecto. 1. Propósito El proyecto a desarrollar busca manejar el acceso a un estacionamiento de una forma rápida, sin intervención de alguna persona, calculando el tiempo de estadía de un vehículo mediante el reconocimiento de su patente. 2. Alcance El alcance del proyecto se orienta a la detección de patentes, el procesamiento que se aplicará a estas, el cálculo del tiempo de estadía. 3. Contexto El programa que se desarrolla se está elaborando en C++ y se trabaja en OpenCV. En estos tiempo existen diferentes códigos ya desarrollados y disponibles para los usuarios para la detección de patentes. 4. Referencias Libros y Manuales: Programación en C++. Algoritmos , Estructuras. (Joyanes Aguilar) Learning OpenCV: Computer Vision with the OpenCV Library (Gary Bradski, Adrian Kaehler). Documento de Inicio de Estacionamiento Inteligente 2. Requisitos del Sistema 1. Requisitos Funcionales RF1 El software debe ejecutarse en el momento en que un automóvil se encuentre en una posición donde pueda reconocerse la patente del mismo. RF2 Mediante una cámara IP, el sistema debe detectar y reconocer las patentes de los automóviles, al reconocerlos este debe de guardarlos en una base de datos. RF3 El sistema al detectar que un automóvil desea salir debe reconocer la patente de este, buscarlo en la base de datos y proceder a calcular su tiempo de estadía en el estacionamiento. 2. Requisitos de Interfaces La Tabla 1 muestra la lista de eventos externos a los que el sistema responde. La primera columna es el nombre del evento; la segunda es la descripción del mismo. El “iniciador” es la componente externa al sistema que inicia el evento. Los parámetros son los datos asociados al evento. La respuesta es el nombre de una respuesta, cuya descripción está en la Tabla 2. Tabla 1: Eventos externos Evento Descripción Iniciador Parámetros Respuesta Evento externo 1 El sistema debe detectar cuando un automóvil ingresa al recinto. El automóvil al ingresar al recinto. El parámetro será el automóvil que se debe colocar en una posición determinada. Inicio del procesamiento. Evento externo 2 El software debe detectar la patente del automóvil y registrarlo en la base de datos. El software será el que inicie este evento, al detectar el automóvil entrante debe ser capaz de detectar la patente del mismo. El parámetro será la patente del automóvil la cual debe estar en una posición determinada. El software al detectar la patente, podrá registrarlo en la base de datos del sistema. Evento externo 3 El sistema debe detectar cuando un automóvil se disponga a salir del recinto. El automóvil al disponerse a salir del recinto. El parámetro será el automóvil que se debe colocar en una posición determinada. El software al detectar la patente, podrá buscarlo en la base de datos del sistema. Evento externo 4 El sistema debe calcular el tiempo de estadía del automóvil en el establecimiento El software será el que inicie este evento, al detectar la patente de un automóvil saliendo del recinto. El parámetro será la patente entregada por la base de datos del sistema. El sistema entregará el tiempo de estadía del automóvil en el recinto. Documento de Inicio de Estacionamiento Inteligente La Tabla 2 muestra las respuestas del sistema frente a eventos externos. Tabla 2: Respuestas del sistema Respuesta Descripción Parámetros Respuesta al evento 1 Se iniciará el software mediante la captura de imágenes para su posterior procesamiento. Detectará el automóvil para iniciar la captura de imágenes. Respuesta al evento 2 El software detectará y almacenará en una base de datos la patente del auto entrante. Las imágenes de la patente del automóvil. Respuesta al evento 3 El software detectará y buscará en una base de datos la patente del auto saliente. Las imágenes de la patente del automóvil. Respuesta al evento 4 El software calcula y entrega la diferencia de tiempo entre la entrada y salida del automóvil. El número de patente del automóvil encontrada en la base de datos. 3. Manejo de Excepciones Excepción 1: El caso en que el software sufra un fallo de ejecución y no responda, se tendrá que reiniciar el sistema para su correcto funcionamiento. Excepción 2: El caso en que el software no detecte el automóvil entrante y/o saliente del establecimiento. Excepción 3: El caso en que el software no pueda detectar las patentes de los automóviles por encontrarse en un lugar no esperado. Excepción 4: El caso en que el software detecte un valor que no corresponda a la patente del automóvil y la registre en la base de datos. La siguiente tabla muestra las condiciones de excepción que se pueden dar en el sistema, en relación con eventos externos y internos. Tabla 3: Excepciones Excepción Descripción Eventos o situaciones en que ocurre 1 El software no responda por error del sistema. Puede ocurrir por motivos por falta de memoria o problemas en el código (ejecución). 2 No se detecten los automóviles en la entrada y/o salida del recinto. Puede ocurrir por falla del procesamiento de las imágenes obtenidas al no diferenciar el automóvil con el resto del establecimiento. 3 No se logre detectar la patente del automóvil . Puede ocurrir por falta de luz o mala ubicación del automóvil o de la patente. 4 Se registre una patente que no corresponde al automóvil. Puede ocurrir por mal estado de la patente (óxido, suciedad) o por falta de luz. Documento de Inicio de Estacionamiento Inteligente 4. Requisitos de Prueba Los requisitos de prueba son clases de pruebas que se harán sobre el sistema para determinar que se cumplen los requisitos funcionales. Un requisito de prueba dará lugar a muchos casos de prueba. RP1 ○ ○ ○ Probar que el software se ejecute al acercarse un automóvil. Probar el software que funcione correctamente con el automóvil en diferentes ángulos respecto a la cámara. Probar que el software se mantenga activo en todo momento. RP2 ○ ○ ○ ○ Probar que el software detecte las patentes. Probar que el software detecte correctamente las patentes. Probar que el sistema pueble correctamente la base de datos. Probar que el software no le ocurre problemas de memoria. RP3 ○ ○ ○ 5. Detectar si la patente del automóvil que se encuentre en la salida del establecimiento esté en la base de datos. El software rescate correctamente los datos de la base de datos. Calcular correctamente el tiempo de estadía del automóvil. Matriz de Requisitos Funcionales y de Pruebas Tabla 4: Matriz de requisitos funcionales y de pruebas RP1 RP2 RP3 RF1 El software debe ejecutarse en el momento en el que un automóvil se acerque a alguna entrada o salida del establecimiento. RF2 El software detecta la patente del automóvil y procede a registrarlo en la base de datos del sistema. RF3 El sistema al detectar que sale un automóvil debe de buscarlo en la base de datos del sistema para proceder a calcular el tiempo de estadía. Documento de Inicio de Estacionamiento Inteligente X X X 3. Requisitos de Ambiente Esta sección describe el hardware y software relevante para el sistema “Estacionamiento Inteligente”. 1. Requisitos del Ambiente de Desarrollo 1. Hardware de Desarrollo En el desarrollo de este proyecto se utilizará un computador, el cual deberá tener conectado incorporado una cámara RGB, en caso de no poseerla se deberá tener disponible una cámara vía USB. El computador con que se trabajará deberá tener la potencia necesaria para ejecutar todas las herramientas para el desarrollo del proyecto, esto es tener una buena memoria RAM, espacio de disco duro disponible para los softwares y la base de datos y un puerto USB disponible para la conexión de la cámara web. 2. Software de Desarrollo Para el desarrollo del proyecto se utilizarán las librerías de OpenCV para la detección de patentes, utilizando el sistema operativo linux GNU/Linux. Su programación es en código C++. Para la creación de la base de datos se utilizará el motor MySql y como lenguaje transaccional C++. 2. Requisitos del Ambiente de Pruebas El ambiente de pruebas incluye todos los elementos de software y hardware identificados en la sección 3.1 además del hardware y software adicional aquí identificado. 1. Hardware de Pruebas El hardware que se usará para las pruebas del funcionamiento del sistema será un computador, en él se realizarán todas las pruebas para ver el su buen funcionamiento. Se realizarán pruebas con una cámara RGB, la cual estará conectada al computador, colocándola en diferentes ángulos para probar el desempeño del sistema. 2. Software de Pruebas Los software que se utilizarán para las pruebas son los siguientes: ○ ○ ○ ○ Tanto el Sistema operativo Linux y Windows. Software de detección de patentes en OpenCV. Lenguaje de programación C++, desarrollado con QtCreator. MySql para el motor de base de datos. Documento de Inicio de Estacionamiento Inteligente 4. Arquitectura del Sistema 1. Diagrama de Flujo de Datos La siguiente figura muestra los módulos del sistema y los principales flujos de información. Los módulos aparecen indicados con su nombre corto o abreviatura. Figura 1: Diagrama de flujo de datos del sistema 2. Descripción de Módulos Las siguientes son las componentes descritas en la Figura 1. Por cada componente se entrega un breve párrafo descriptivo de su función y sus interacciones con otras componentes y con el medio. Módulo Detección. Será el encargado de detectar la patente del automóvil mediante la cámara RGB, y enviar la información al Programa principal. Módulo Procesamiento. Este módulo se encarga de recibir la patente desde el programa principal para almacenarlo en la base de datos, como también de enviar la información que se le solicite como alguna patente o registros de tiempos. Módulo Programa Principal. Módulo principal el cual está encargado de coordinar todo el programa. Documento de Inicio de Estacionamiento Inteligente Módulo Tiempo. Este módulo recibe los diferentes tiempos de entrada y salida para calcular el tiempo de estadía del automóvil en el recinto. Módulo Salida. Es el módulo que está encargado de entregar toda la información del sistema. Módulo de Detección de la Patente (Patente). Este módulo captura la imagen, mediante una cámara RGB, de un automóvil que está entrando o saliendo del recinto. Esta imagen será procesada mediante los diferentes filtros para así obtener la patente de este. La salida de este módulo, que será la patente del automóvil, será enviada como entrada del programa principal. Módulo de Procesamiento de la patente (BD). Este módulo está encargado de recibir la información de la patente desde el programa principal, el cual lo tiene que almacenar en la base de datos del sistema, para luego utilizarlo cuando el programa principal lo requiera. Este módulo interactúa en ambas direcciones con el Módulo de Programa Principal, enviándole los valores de las patentes para su registro en la base de datos, como también cuando se necesita recuperar datos al ser requeridos por el Programa principal. Módulo Programa Principal. Este bloque será el encargado del control total del programa, será el encargado de hacer uso de los módulo de procesamiento de patente y procesamiento de tiempo para entregar la salida correspondiente. Módulo Procesamiento del tiempo de estadía (Tiempo). Módulo encargado de procesar la información entregada por el programa principal para hacer el cálculo del tiempo transcurrido. Al recibir la información de la patente de salida, con la información almacenada en la base de datos respecto a la hora de ingreso, se procederá a hacer el cálculo del tiempo de estadía del automóvil en el recinto, para luego retornar este valor y proceder al siguiente módulo. Módulo Salida Módulo encargado de recibir los datos entregados por el programa principal y mostrar por pantalla el tiempo transcurrido desde el ingreso del vehículo hasta la salida de este. Documento de Inicio de Estacionamiento Inteligente 3. Matriz de Requisitos Funcionales y Componentes Tabla 5: Matriz de requisitos funcionales y componentes C1 C2 C3 C4 C5 El software debe ejecutarse en el momento en que un automóvil se encuentre en la posición adecuada. X Mediante una cámara, el sistema debe detectar y reconocer las patentes de los automóviles. Al reconocerlas, este debe guardarlas en una base de datos. X El sistema al detectar que un automóvil desea salir debe reconocer la patente de este, buscarlo en la base de datos y proceder a calcular el tiempo su estadía en el estacionamiento. X Documento de Inicio de Estacionamiento Inteligente X X X X X 5. Gestión de Riesgos 1. Supuestos 1. El usuario tendrá una patente clara y de 6 caracteres. 2. Se dispondrá de 1 cámara RGB para realizar la detección de entrada y salida de los vehículos. 3. Las patentes sólo corresponderán a automóviles con patente chilena que se encuentren ubicadas en la posición inferior central del mismo, tanto atrás como adelante. 2. Dependencias 1. El automóvil se posicionará en un ángulo adecuado para que la patente pueda ser detectada de forma correcta. 4. Restricciones 1. Limitaciones de la cámara a utilizar. 2. Limitaciones del sistema operativo (Linux). 5. Riesgos A continuación se indican los principales riesgos del proyecto. Riesgo 1: Cámara RGB La capacidad, resolución y sensibilidad a la luz de la cámara con la que se dispondrá podrían dificultar la detección de la patente. Riesgo 2: Luz ambiental La posición estratégica de la cámara, en lo posible, no se verá afectada por los rayos de luz del exterior, pero también se necesitará complementar la iluminación en la noche y evitar la saturación durante el día. Riesgo 3: Posición de la patente del automóvil Si la patente del automóvil se encuentra sucia, deteriorada o en condiciones no legibles no se podrá proceder a la detección de la misma. Documento de Inicio de Estacionamiento Inteligente