Skip to content
Benjamín Muñoz edited this page Jul 17, 2022 · 27 revisions

Introducción

Semana 1 (28 Marzo)

Decidimos comenzar haciendo los siguientes avances:

  • Ensamblar el raspberry Pi en la caja con la pantalla.
  • Configuramos la pantalla LCD (rotación 180º).ᵘʳˡ
  • Configuramos el servidor tightVNC y OpenSSH.
  • Configuración de perfiles.
  • Configuración de UFW
  • Bloqueo del perfil por defecto de "pi"

Y tuvimos algunos problemas que quedan por arreglar:

  • Al rotar la pantalla se descalibro el touch
  • Tenemos problemas con ver las redes wifi desde el administrador de redes.

image

$ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 65  bytes 7517 (7.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 65  bytes 7517 (7.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.100.104  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx   prefixlen 64  scopeid 0x20<link>
        ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 3284  bytes 276910 (270.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4083  bytes 3378609 (3.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • Error. Libcam no encuentra ninguna camara conectada, por determinar si es error de la camara o del raspberry.ᵘʳˡ
Preview window unavailable
INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3424-e68e0f1e
ERROR MediaDevice media_device.cpp:479 /dev/media2[]: Failed to open media device at /dev/media2: Permission denied
INFO DeviceEnumerator device_enumerator.cpp:218 Unable to populate media device /dev/media2 (Permission denied), skipping
WARN DeviceEnumerator device_enumerator_udev.cpp:173 Failed to add device for '/sys/devices/platform/soc/fe00b840.mailbox/bcm2835-codec/media2', skipping
ERROR MediaDevice media_device.cpp:479 /dev/media0[]: Failed to open media device at /dev/media0: Permission denied
INFO DeviceEnumerator device_enumerator.cpp:218 Unable to populate media device /dev/media0 (Permission denied), skipping
WARN DeviceEnumerator device_enumerator_udev.cpp:173 Failed to add device for '/sys/devices/platform/soc/fe00b840.mailbox/bcm2835-isp/media0', skipping
ERROR MediaDevice media_device.cpp:479 /dev/media1[]: Failed to open media device at /dev/media1: Permission denied
INFO DeviceEnumerator device_enumerator.cpp:218 Unable to populate media device /dev/media1 (Permission denied), skipping
WARN DeviceEnumerator device_enumerator_udev.cpp:173 Failed to add device for '/sys/devices/platform/soc/fe00b840.mailbox/bcm2835-isp/media1', skipping
ERROR: *** no cameras available ***

Y nos quedaron cosas pendientes relacionadas:

  • Instalar la camara.ᵘʳˡ
  • Instalar ventilador.
  • Configurar DDNS.
  • Configurar FTP.
  • Instalar KIOSK.ᵘʳˡ
  • Otros.

Semana 2 (4 Abril)

Al comenzar a configurar el segundo Raspberry Pi nos topamos con un problema en la instalación, ya que se comenzó a actualizar y se crasheo en esta lo que provocó que se "brickeara" y tuvimos que reinstalar todo. A pesar de esto todo funciona bien sin contar la camara que aún no logramos hacer funcionar

Avances:

  • Ensamblar el segundo raspberry Pi.
  • Configuramos el servidor tightVNC y OpenSSH.
  • Configuración de perfiles.
  • Configuración de UFW
  • Bloqueo del perfil por defecto de "pi"
  • Configuración de DDNS para tener acceso remoto

Y tuvimos algunos problemas que quedan por arreglar:

  • Cámara

Debido a un Problema de incompatibilidad entre Debian 11 y diversas funciones de arduino tuvimos que formatear todos los RPI y comenzar desde 0 instalando Raspbian versión debian 10, esto corrigió el problema de visibilidad de las redes inalambricas, la cámara, entre otros.

Actualmente esta todo lo anterior publicado instalado y comenzaremos a configurar los nodos de Kubernetes para trabajar entre dos RPI's, un VPS y un tercer RPI como cámara que estará en una red distinta a los nodos funcionando a través de WIFI.


Semana 3 (11 Abril)

Debido a los certámenes la semana 3 no fue tan productiva como esperábamos, comenzamos con la instalación y configuración de Docker y Kubernetes en los nodos, comenzamos la instalación de Ubuntu Server en el nodo externo (sideam-gama no será un RPI) el cual será un VPS con mayor potencia y comenzamos a investigar sobre PostMan y como crear una API para comunicar sideam-cam (RPI encargado de capturar y enviar la imagen al cluster de procesamiento (sideam-cluster) el cual se compone por 2 nodos RPI y un VPS en proxmox (sidea-alpha, sideam-beta y sideam-gama). Esperamos poder avanzar más la semana próxima.


Semana 4 (18 Abril)

Comenzamos con la investigación del funcionamiento de opencv e hicimos un programa rápido de detección de caras e iniciamos el proceso de programación del código para crear el archivo cascade trabajando con formato haar.

Captura de pantalla 2022-04-24 153702


Semana 5 (25 Abril)

Esta semana fue una de las más aprovechadas, cambiamos de plataforma desde OpenCV a Pytorch con YOLOV.5, y comenzamos a usar la plataforma RoboFlow para manejar los datasets de imágenes, actualmente tenemos un Demo de como funciona el modelo IA después de un día de entreno con nuestro dataset y funciona considerablemente bien y rápido para la cantidad de tiempo que entrenó, aun así llegamos a la conclusión de que necesitamos mayor cantidad de muestras.

Avances:

  • Demo modelo IA.
  • Creación dataset V.1.
  • Creación presentación avance 1.
  • comienzo configuración cluster kubernetes en los RPI.
  • Inicio diseño de la red en donde funcionarán los clusters, con su respectivo router, Vlan y switch.

Y tuvimos algunos problemas que quedan por arreglar:

  • Necesitamos mayor cantidad de muestras para mejorar la precisión del dataset.
  • Error al enrutar la conexión desde el router principal hasta el router encargado del cluster (192.168.100.20 (no hay ruta pasado 192.168.100.1 >> 192.168.100.1 (router ISP Huawei, a pesar de que no haya ruta desde dispositivo 1 pasando por router ISP el router ISP como tal logra tener ruta hasta router Cisco) >> 192.168.100.70 (router Cisco 2901) >> 10.0.10.0/24 (donde las direcciones asignadas a SIDEAM van del 10.0.10.5 hasta 10.0.10.60 (ESTO ES AUNQUE EL ENRUTAMIENTO DESDE EL ROUTER CISCO HASTA LA RED LAN DE 192.168.100.1 Y WAN FUNCIONAN CORRECTAMENTE 10.0.10.50 >> 10.0.10.1 >> 192.168.100.1 >> WAN/LAN(192.168.100.0/24).

Semana 6 (25 Abril)

Esta semana nos enfocamos en terminar la presentación del avance 1, programar un script (SIDEAM_Trainer) para instalar automáticamente Yolov5 junto a todos los componentes para poder auto iniciar el programa en el laboratorio y comenzamos a entrenar el modelo con el dataset v.1 en 4 nodos para tener redundancia en caso de que se desconecte alguno y tenemos un tiempo estimado de que el entrenamiento finalizara la semana del 6 de junio. Además pudimos arreglar los problemas con la red aunque nos falta una pequeño ajuste de subnetting.


Semana 7 (02 Mayo)

Esta semana no hubo muchos avances, principalmente estamos esperando que el entrenamiento finalice y de momento hemos ido revisando las imágenes de debugging que va creando el entrenador.


Semana 8 (09 Mayo)

Esta semana nos enfocamos en investigar sobre apis y como comunicar el cluster con la cámara, además descartamos el uso del router cisco por problemas de enrutamiento del router principal.


Semana 9 (16 Mayo)

No pudimos avanzar mucho debido a la semana de receso pero perdimos la conexión con dos computadores encargados de entrenar el modelo.


Semana 10 (23 Mayo)

El computador encargado de entrenar el modelo finalizó (SIDEAMV.1) y así conseguimos comenzar a probar la primera versión del modelo el cual fue sorprendentemente preciso, ya que casi no contiene falsos positivos pero hay muchos casos en los que no detecta armas, es por esto que vamos a recolectar mas imágenes para el dataset a pesar de que en principio ya podríamos seguir avanzando con el modelo actual.


Semana 11 (30 Mayo)

Finalizamos la creación de presentación de avance numero 2, comenzamos a planear y escribir el código de reconocimiento de objetos y estamos analizando si trabajar con pytorch, tensorflow o opencv y seguimos avanzando con la preparación del RPI encargado de la cámara (SIDEAM-cam).


Semana 12 (06 Junio)

Presentamos el avance 2, logramos hacer funcionar el código de prueba y comenzamos con el desarrollo de SIDEAM-Launch, script Batch que instala todo lo necesario para usar SIDEAM en windows.


Semana 13 (13 Junio)

Continuamos desarrollando la integración de un modelo cliente-servidor para poder conectar y transmitir el video desde un raspberry pi a un servidor local o remoto que procese el video, esto lo pudimos hacer a través de imagezmq, además de lo ultimo pudimos continuar con las pruebas y llegamos a la conclusión que para la versión 2.0 del dataset este tendrá que ser seleccionado con mayor rigurosidad, ya que el modelo es muy bueno detectando armas en una mesa por ejemplo pero no tan bueno para casos en la vida real como un arma con fondos variables o armas desde distintas perspectivas y finalmente comenzamos a reescribir partes del código para poder optimizarlo y hacerlo mas crossplatform y fácil de usar.

Muestra SIDEAM


Semana 14 (20 Junio)

Finalizamos la presentación de avance 3 y nos enfocamos en ir planeando el video y mejorar el código junto con la estructura del repositorio de GitHub


Semana 15 (27 Junio)

Nos enfocamos en iniciar el video y a planificar la presentación final.


Semana 16 (04 Julio)

Finalizamos el video y continuamos con el código de auto instalación junto con mejorar el modelo de IA.

Trailer SIDEAM


Semana 17 (11 Julio)

Finalizamos el lanzamiento de la versión Alpha-1.0 arreglando el código y haciéndolo mas fácil de usar. Creamos la presentación y planeamos como continuar.