INICIO > Software  > > Vision artificial >  
007.jpg
SOFTWARE DE VISION ARTIFICIAL
  • MOTIVACIONES
  • Siempre he tenido interés por el tema de la visión artificial, así que en unos ratos libre que tuve aproveche para empezar a estudiar como hacer este software.

  • PLANTEAMIENTO DEL PROYECTO
  • Este proyecto presenta varios retos bien diferenciados.

    • En primer lugar hay que hacerse con unos conocimientos básicos de ficheros BMP, ya que este tipo de fichero es con el que voy a trabajar.
    • También he tenido que estudiar conceptos sobre Webcams y sobre las APIS de Windows que trabajan con dichas cámaras. Aunque en un primer momento este software solo procesaba imagenes BMP se ha ampliado para poder trabajar con imagenes en tiempo real de cualquier WebCam.
    • En un primer momento, solo iba a implementar un software capaz de detectar movimiento en imagenes BMP, pero poco a poco se me fueron ocurriendo ideas y asi ir ampliando y evolucionando, llegando hasta los cinco tipos de visión de los que dispone hoy en día.
  • OBJETIVOS
  • Los objetivos que me propongo en este proyecto no son solo son los concernientes a su implementación que es en VB6 sino también a conceptos teóricos:

  • Estudio del estándar BMP, estructura de los fichero, lectura, escritura, etc.
  • Estudio del funcionamiento de las Webcams para la adquisición de imagen en tiempo real por mi programa.
  • El punto anterior implica el estudio de la API de Windows para poder pasar imágenes de la Webcam a mi programa para su tratamiento.
  • Ampliación del software con distintos tipos de visión artificial.
  • DESARROLLO DEL PROYECTO
  • Pues como he comentado anteriormente, en primer, lo primero que hago es documentarme sobre el estándar BMP, ya que es sobre el formato que va ha trabajar el software. Después de esto, paso a estudiar el funcionamiento de las Webcams para poder visualizar y procesar imágenes de la Webcam directamente en mi programa. Conseguido esto, paso a desarrollar las distintas opciones de visión artificial que me he planteado, como son:

  • Identificación de movimientos en secuencia grabada en imagenes BMP
  • Identificación de movimientos de objetos en WebCam
  • Tecla virtual sobre WebCam
  • Movimiento de objetos virtuales en WebCam
  • VIDEOS DEL PROYECTO
  • Identificación de movimiento de objetos en imagenes BMP

    Esta opción que ofrece el software consiste en la identificación de objetos(coches) o personas que circulan en un tramo de calle que es visulizada por la Webcam.

    img/SoftwareVisionArtificial/secuenciaCarretera_001.gif

    Identificación de movimiento de objetos en WebCam

    Esta opción ofrece la posibilidad de identificar movimientos en la imagen que recibe de la WebCam en tiempo real, estos son marcados con rojo y como se puede observar en el GIF es muy basico pero funciona.

    MovimientoGlobal_001.gif


    Tecla virtual en WebCam

    Segunda opción de visión que nos ofrece una tecla virtual en la zona superior derecha de la imagen, cuando pasamos el dedo en la zona del espacio que corresponde con la tecla, esta pasa del color azul al color rojo, indicando así que el software ha detectado que ha sido pulsada virtualmente. El video es un GIF de capturas de la pantalla del PC, por eso se ve a trompicones.

    SoftwareVisionArtificial/TecladoVirtual_001.gif


    Movimiento de objeto virtual en WebCam

    Esta opcion consiste en el movimiento de un cuadrado virtual que se superpone a la imagen que esta capturando la WebCam. Este objeto virtual esta sobre una línea de tierra colorada de verde y sobre ella esta el cuadrado virtual de color azul, el movimiento que se simula es como si arrastrasemos el cuadrado a lo largo de la linea de tierra, cuando nosotros introducimos un dedo en el interior del cuadrado y lo movemos a derecha o izquierda, el cuadrado se desplaza siguiendo al dedo. El ejemplo que se presenta es un GIF que tiene un determiando numero de fotogramas de una de las pruebas.

    MoverObjetoVirtual_video_001.gif
  • CONCLUSIONES
  • Aunque el sofware que he desarrollado es muy básico en la identificacion de movimiento, puedo decir, que los objetivos que me propuse al inicio de este proyecto los he cumplido, por lo que puedo llegar a las siguientes conclusiones:

    • Es posible crear aplicaciones básicas de identificación de movimiento con una Webcam y unos conocimientos básicos de la API de Windows y del formato BMP.
    • Trabajando únicamente con diferencia de color de pixeles se puede conseguir un funcionamiento aceptable en el sistemas de vision.

  • LÍNEAS FUTURAS
  • Como otros proyectos que he realizado, este proyecto, fue iniciado simplemente por el interés que tenia hacia la materia de la visión artificial, por lo que es un desarrollo muy básico y por tal hecho tal como iba implementando se me iban ocurriendo nuevas opciones.

    • Ampliación con nuevas funciones, como por ejemplo activación de alarmas por intrusión en la zona vigilada, envío de alarma al teléfono móvil, etc.
    • Depuración del código para el tratamiento de las imágenes adquiridas en la Webcam.
    • Estudio de nuevos métodos de identificación del movimiento a través de tratamiento digital de señales.
  • DESCARGA DE EJECUTABLE
  • Si dispones de una Webcam puedes descargarte un ejecutable a través de este enlace para que lo evalúes,pruebes y si te parece me des tu opinión.