CiclopeIA: Inteligencia artificial para la ayuda a personas con discapacidad visual

Latam online. Segunda Edición. 2021

A mucha gente le motiva los retos en el trabajo, en los estudios y en la vida en general, pero pregunto, puedes imaginar una vida en donde cada día existen retos diferentes, iniciando desde la mañana cuando al levantarte y tomar un refrescante baño en la mañana, debes hacer lo necesario para no tropezar en el camino para encontrar tu ropa y combinarla adecuadamente para la ocasión, pues hoy debes ir al centro de la ciudad a cumplir con unos trámites burocráticos que requieres, además de hacer las compras del supermercado para la semana. Luego de prepararte un café y conseguir que no se te riegue del borde de la taza, estás listo para empezar tu día, sales de tu casa y esperas no tener que tropezar con obstáculos que son comunes en la calle: basura que no llegó a su respectivo tacho, las mejoras de la ciudad caracterizadas por sus constantes cambios de planificación a costa de dejar trabajos inconclusos en las calles, los no tan amigables perros en la calle que podrían poner a prueba tu instinto y la razón, pero bueno es algo que uno ya sabe y lo que debe hacer es llegar hasta la estación del bus y esperar que algún transeúnte de buen corazón te ayude a identificar la línea de bus que te acerque a tu destino. Ya habrá tiempo para ir luego al supermercado, conseguir lo necesario y confiar en recibir lo justo como cambio o tener la seguridad de pagar lo que corresponda.

Estas situaciones describen una vida llena de retos que deben afrontar las personas no videntes cotidianamente, y que muchas veces les impide integrarse socialmente en entornos laborales, comerciales, de ocio e incluso incrementan su dependencia de terceros, lo cual supone, además, un impacto psicológico que eventualmente y de a poco va minando su autoestima.

Dependiendo de la edad en que las personas no-videntes pierden el sentido de la vista puede llegar a ser una experiencia más o menos traumática que podrá ser llevadera si se cuenta con apoyo emocional sobre todo en la etapa inicial y se trabaja fuertemente para educarse y adaptarse a su nueva condición y calidad de vida, que demandará pasar por un tortuoso camino de duelo por la pérdida de la vista.

A pesar de estas situaciones nada alentadoras, existen muchas personas que no se dejan vencer por la adversidad y logran con éxito adaptarse tanto emocional y socialmente para llevar una vida digna y con razones para continuar retando la adversidad día a día.

De acuerdo a la OMS [1] “A nivel mundial, se estima que aproximadamente 1300 millones de personas viven con alguna forma de deficiencia visual.

A nivel mundial, las principales causas de la visión deficiente son los errores de refracción no corregidos y las cataratas.

La mayoría de las personas con visión deficiente tienen más de 50 años.”

Además, El deterioro de la vista o su pérdida, tiene impactos en la calidad de vida de las personas que lo padecen, de acuerdo a OMS, “Los niños pequeños con deterioro grave de la visión a edad temprana pueden sufrir retrasos en el desarrollo motor, lingüístico, emocional, social y cognitivo”.

“En el caso de los adultos mayores, el deterioro de la visión puede contribuir al aislamiento social, a la dificultad para caminar, a un mayor riesgo de caídas y fracturas, y a una mayor probabilidad de ingreso temprano en residencias de ancianos.”

The Lancet Global Health [ 2] afirma que:

“En 2020, un estimado de 596 millones de personas a nivel mundial, tienen deficiencia de visión a distancia, y de estos 43 millones son ciegos.”

“Una proporción grande de estos (90%), viven en países de ingresos bajos o medios”.

“Para 2050, el envejecimiento de la población, el crecimiento y la urbanización conllevarán un estimado de 895 millones de personas con deficiencia visual a distancia y 61 millones de ciegos.”

Ante esta problemática, y como parte de la aplicación práctica de un curso de Machine Learning [ 3] e Inteligencia Artificial (IA) [4], nace la idea de usar la tecnología para identificar ideas que puedan abordar la problemática de las personas con discapacidad visual y diseñar una herramienta que les apoye en la consecución de sus actividades cotidianas. La idea del grupo fue pensar en un proyecto que pueda aportar socialmente y que tenga un impacto en la comunidad. Desde el punto de vista de los Objetivos de Desarrollo Sostenible (ODS) [5] estarían relacionadosSalud y bienestar, Industria, innovación e infraestructura, reducción de las desigualdades y alianzas para lograr los objetivos.

El proyecto Ciclope.IA, como lo hemos llamado, busca integrar en una aplicación para celular, diferentes opciones (skills) orientadas a solucionar limitaciones que experimentan personas con discapacidad visual en sus actividades cotidianas tales como: Reconocimiento de billetes y monedas de manera rápida y efectiva, identificación de la línea de autobús, identificación de colores, conocer el nivel de llenado de un recipiente, encontrar objetos perdidos, etc.

Como se puede observar las opciones que se pretenden integrar son ambiciosas y demandarán un trabajo extenso, sin embargo, es necesario empezar por algo, se suele decir que una “torta se la come en pedazos” y es por ello que la aplicación inicialmente dispone de la funcionalidad que permite al usuario reconocer la cantidad de dinero en efectivo en dólares (billetes), haciendo uso de la cámara de su celular. Posterior a la detección, la app reproduce un mensaje de voz con el resultado del monto reconocido. El uso de Ciclope.IA brinda al usuario seguridad y autonomía al momento de realizar transacciones en efectivo y disminuye el riesgo de ser víctima de engaño. La interacción con la aplicación se puede realizar en idioma español bajo el sistema operativo Android.

Alcance inicial del proyecto

Cuando iniciamos el proyecto y luego de un acercamiento con un grupo de no-videntes identificamos algunas opciones (skills) que deberíamos incluir en la aplicación, así que para tomamos la opción más frecuentemente demandada que es la de identificación de billetes al momento de realizar transacciones monetarias con terceros. Adicionalmente se conoció que la mejor forma de interacción con personas no-videntes es a través de audio, por lo que decidimos que la interacción del usuario con la aplicación se debía hacer a través de voz tanto de entrada como de salida.

Para soportar nuestra configuración revisamos en algunas estadísticas en el sitio yiminshum.com, “actualmente hay 5.190 millones de usuarios únicos en dispositivos móviles, donde no divide el tipo de teléfono, esto cubre el 67% de la población.”

“El 73% de las personas están conectadas y comparten su tiempo desde un teléfono inteligente o smartphone. El 23,5% está asociado en un teléfono común, donde sus funciones son las básicas y limitadas que debe cumplir un teléfono que es llamar y enviar mensajes y el 3,6% está asociado a un router, tablet o PC móvil.”

“OS mejor conocido como sistema operativo, son importantes para el funcionamiento de los equipos en el mundo, el 74% de los usuarios son en equipos Android, 25% es iOS, 0,4% es KAI, 0,2% Samsung OS y 0,6% otros sistemas operativos.”

Con esta información se limitó el alcance del proyecto a teléfonos inteligentes Android que cubre una gran parte del mercado sobre todo en lugares diferentes a los Estados Unidos, a países hispanohablantes y que tengan su moneda de uso corriente el Dólar.

IA Aplicada

Frente a la problemática identificada se determinó que la mejor manera de apoyar a personas no-videntes es desarrollar una aplicación para celular que haga las veces de sus ojos en situaciones que se requieran, para ello desde el punto de vista técnico se exploraron diferentes modelos de reconocimiento de imágenes que podrían aplicarse, y al final se decidió usar YoloV5 por la versatilidad al momento de identificar objetos y basados en pruebas realizadas por Towards Data Science [6] que recomiendan el modelo frente a otro también muy conocido, otros elementos que consideramos fue la posibilidad de usar el modelo sin necesidad de tener una conexión de internet activa sino un modelo pre-entrenado que se copia en el celular en una versión Pytorch Lite que ocupe menos tamaño y recursos.

Para entrenar el modelo, se exploró opciones de dataset disponibles, desafortunadamente no se consiguió uno por lo que se optó por crear un dataset propio.

Unos de los grandes retos, justamente fue afinar el dataset para que incluya las imágenes adecuadas, considerando diferentes escenarios en los que podrían estar los billetes, considerar el reverso y adverso, y la cantidad suficientes de imágenes. Para conseguir las imágenes se usó una herramienta de Web scrapping y posteriormente con la herramienta online https://labelflow.ai/ se asignó a cada imagen las etiquetas para identificar a cada billete en las diferentes imágenes.

Luego de entrenar el modelo en la herramienta colab de Google se obtuvo un archivo con el mejor modelo generado y se lo uso en la aplicación de celular.

Sin lugar a dudas la IA dará solución a muchas problemáticas del día de hoy y permitirá que su aplicación se extienda masivamente en diferentes áreas del conocimiento y de la vida cotidiana. Nuestro trabajo es una pequeña muestra del potencial a explotar con IA y un aporte para aquellos interesados en apoyar a grupos como los no-videntes que deben superar la adversidad con poco o limitado apoyo de la sociedad.

Conclusiones

Las herramientas de Inteligencia Artificial pueden ser usadas para múltiples propósitos, sin embargo, desarrollar productos que permitan dar solución a necesidades de carácter social, representan una oportunidad enorme que reditúa en bienestar y mejora de la calidad de vida de grupos minoritarios de la sociedad.

Desde el punto de vista técnico el proyecto representó una oportunidad para continuar aprendiendo de este apasionante mundo de la IA y entender entre otras cosas que para crear modelos efectivos es importante trabajar de manera exhaustiva en:

  • Crear o disponer de datasets de calidad.
  • Aplicar diferentes modelos para evaluar el desempeño.
  • Hacer a los usuarios participes del desarrollo de productos.
  • Trabajar con equipos multidisciplinarios.
  • Mantener una permanente búsqueda de nuevas soluciones.

Video de demostración

Refererencias

[1] Organización Mundial De La Salud. (2021). Ceguera y discapacidad visual. Retrieved January 12, 2022, from https://www.who.int/es/news-room/fact-sheets/detail/blindness-and-visual-impairment.

[2] The Lancet Global Health. (2021). The Lancet Global Health Commission On Global Eye Health: Vision Beyond 2020. Retrieved January 12, 2022, from https://www.thelancet.com/journals/langlo/article/PIIS2214-109X(20)30488-5/fulltext

[3] BBVA (2019). ¿Machine Learning que es y cómo funciona? Retrieved February 4, 2022 from https://www.bbva.com/es/machine-learning-que-es-y-como-funciona/

[4] Juan Antonio Pascual Estapé(2019). Inteligencia artificial: qué es, cómo funciona y para qué se utiliza en la actualidad. Retrieved February 4, 2022 from https://computerhoy.com/reportajes/tecnologia/inteligencia-artificial-469917

[5] Naciones Unidades (2021). La agenda para el desarrollo sostenible. Retrieved February 4, 2022. https://www.un.org/sustainabledevelopment/es/development-agenda/

[6] Towards Data Science (2020). YOLOv5 compared to Faster RCNN. Who wins?. Retrieved February 4, 2022. https://towardsdatascience.com/yolov5-compared-to-faster-rcnn-who-wins-a771cd6c9fb4

Integrantes

  • Alexander Cortes
  • Ariosto Olmedo Cabrera
  • Antonio Paucar
  • Carlos Sesma
  • Miriam Quimi
  • Santiago Yunes
  • Viviana Márquez

Presentación del proyecto: DemoDay

Repositorio

En el siguiente repositorio se encuentra el código usado para desarrollar esta aplicación: https://github.com/SaturdaysAI/Projects/tree/master/LATAM_remote/Ciclopeia

¡Más inteligencia artificial!

La misión de Saturdays.ai es hacer la inteligencia artificial más accesible (#ai4all) mediante cursos y programas intensivos donde se realizan proyectos para el bien (#ai4good).

Si quieres aprender más inteligencia artificial únete a nuestra comunidad en community.saturdays.ai o visítanos en nuestra web www.saturdays.ai ¡te esperamos!

Contenedor de residuos educativo inteligente

«Aprendí que nunca somos demasiado pequeños para hacer la diferencia»

Greta Thunberg

Latam online. Segunda Edición. 2021

Es una de las frases celebres de Greta Thunberg, haciendo alusión al poder de los jóvenes de cambiarlo todo, en particular su forma de ver el mundo y las oportunidades de hacer cosas nuevas en pro de su futuro.

Pero… y sí ese futuro se ve gris y contaminado ¿Entonces cómo pueden hacer la diferencia hoy?

Mascota de conciencIA ecológica

Actualmente, muchos jóvenes se preocupan por los problemas ambientales, volviéndose actores proactivos en la búsqueda de soluciones, esta urgencia de cambio nos motivó a crear ConciencIA Ecológica para enseñar a los niños la forma correcta de clasificar sus residuos de una manera divertida, promoviendo las prácticas de las (4R), Reducir, Reutilizar, Reciclar y Recuperar, utilizando tecnología e inteligencia artificial.

Este equipo conformado por siete (07) apasionados de la inteligencia artificial ha unido tres países como: Ecuador, México y Venezuela, participando en la 2da edición de Saturdays.AI LATAM y a través de su método build to learn elaboró un proyecto basado en Deep Learning llamado ConciencIA Ecológica, enfocado en estudiantes de educación básica de la ciudad de Guayaquil — Ecuador.

Si quieres saber más te invito a seguir leyendo.

Integrantes del equipo del proyecto ConciencIA Ecológica

El problema

De acuerdo al Instituto Nacional de Estadísticas y Censo (INEC), en el año 2017 cada ecuatoriano produjo 860 gramos de residuos sólidos en un día, a pesar de que este número se encontró por debajo del kilogramo de basura por día en América Latina y el Caribe, ese año se tuvo un crecimiento de 48% con respecto al año anterior, por lo que no es sorprendente imaginar, que si no se tomaron medidas a tiempo, estos números sean mayores hoy en día.

De la basura recolectada el 96% se entierra en rellenos sanitarios, celdas emergentes o botaderos a cielo abierto y solo el 4% se recicla. Para tener una idea de las razones por la que el reciclaje es bajo, en el 2016 el INEC realizó una encuesta de hogares detectando que el 59% de los hogares no clasificaron residuos.

Cuando se le preguntó las razones por las cuales no clasificaban, el 43% respondió por la falta de contenedores específicos. Sin embargo, el 57% restante se debió a problemas culturales: “no saben clasificar” (18%), “no le interesa” la clasificación de residuos (16%), dicen “no conocer los beneficios” (15%) o el restante (8%) no confía en los sistemas de recolección de basura.

De esta realidad, Guayaquil es la primera ciudad que produce basura generando el 28% del total de desechos diarios del país, y la más elevada a nivel de porcentaje de desinterés: el 29% de los ciudadanos no le interesa clasificar, el 15% no conoce los beneficios y el 6% no sabe clasificar, este desinterés es seguido por Ambato (20%), Machala (14%), Quito (11%), Cuenca (9%).

Por esta razón nuestro proyecto centra sus esfuerzos en esta ciudad y abre su primer capítulo llamado Guayaquil.

Problema dectectado

Los niños no sólo son el futuro, también son el presente del mundo

Los niños de hoy serán los adultos del mañana, si queremos cambiar la forma como las personas interactúan con nuestro planeta, debemos empezar desde edades tempranas creando hábitos amigables con el ambiente, y estos pueden estimularse en la escuela a través de la educación y la creación de espacios destinados a las buenas prácticas ambientales.

Conscientes de los anterior nace la idea de ConciencIA Ecológica el cual busca enseñar a los niños a clasificar sus residuos de forma divertida.

Este proyecto se enfoca en disminuir el desinterés y el desconocimiento en la clasificación de residuos de estudiantes de educación básica en la ciudad de Guayaquil, a través de contenedores con visión inteligente que oriente a niños desde los 5 años hasta los 14 años, en la correcta clasificación y gestión de residuos, promoviendo las prácticas de Reducir, Reutilizar, Reciclar y Recuperar (4R).

La propuesta une varios conceptos, primero buscando que el niño desde la edad escolar se familiarice con la gestión de residuos, orientándose a través de audio y luces hacia el contenedor correcto, también que gestione correctamente el residuo en su contenedor contribuyendo a la clasificación desde el origen, y creando conciencia en el niño a través de mensajes educativos.

Los contenedores están pensados para poder medir el volumen de residuos y emitir una señal al encontrarse el recipiente lleno, esto permitirá a la escuela vaciarlo a tiempo y evitar daños en la compuerta del recipiente.

Génesis de conciencia ecológica

En este punto existía dos decisiones para el módulo central de ConciencIA Ecológica, la primera ubicar un Jason Nano Nvidia, que condensa en su interior la cámara, la capacidad de cómputo y la posibilidad de conectar el micro controlador, o ubicar una Tablet reciclada, utilizar su cámara y alojar la capacidad de cómputo en la Tablet y que esta coordine la clasificación con las señales a los contenedores, las bocinas y las luces.

La decisión se tomó considerando la base del presupuesto que puede tener una escuela, por lo que la segunda opción parece ser la más viable, ya que por menos presupuesto se podrían llevar ConciencIA Ecológica a más escuelas. El equipo estimo 70$ considerando la donación de una Tablet reciclada.

Luego de decidir cómo realizar la clasificación, se pensó en qué se quería clasificar y utilizando la Norma Ecuatoriana INEN 2841, 2014, referente a la estandarización de colores para recipientes de depósito y almacenamiento temporal de residuos sólidos, se establecieron 5 clases: vidrio, papel, cartón, plástico, orgánico.

Que finalmente se agruparon en:

  • En un contenedor de color verde: Orgánicos.
  • En un contenedor de color azul: Plástico.
  • En un contenedor de color blanco. Vidrio.
  • En un contenedor de color gris: Cartón y Papel.
  • En un contenedor negro: Desechos, el cual lo establecimientos como los porcentajes de predicción más bajo que presente el modelo.

Pasos para seguir

1. Dataset

Los datos fueron seleccionados de tres fuentes: Un repositorio abierto de imágenes de desechos llamado Waste datasets review”, en particular con el data set Trashnet, que contiene 2527 imágenes; fotos en páginas web especializadas de fotografías y fotos captadas desde el celular relacionadas con productos que se consideró etiquetar relacionadas al ámbito escolar.

El dataset se construyó con un total de 5000 imágenes en 5 clases: vidrio, papel, cartón, plástico, orgánico. Para el proyecto no se consideró la clase metal. El dataset se dividió en 80% entrenamiento y 20% para validar.

2. Procesamiento: el ABC

Esta fue la fase más larga por el tiempo invertido para hacer los cuadros delimitadores (bounding box). Para el procesamiento se utilizó LabelImg, el cual es una herramienta gratuita de anotación de imágenes gráficas disponible en pip para python3.0 o superior.

Para cada etiquetado se cuidó encerrar el objeto dentro del cuadro delimitador, lo más ajustado posible a la imagen y haciendo tantos cuadros como objetos existieran.

Ejemplo de la utilización de la herramienta LabelImg

Las imágenes fueron guardadas en formato Yolo (*.txt). Este formato establece la clase y las coordenadas de los cuadros delimitadores con la siguiente estructura:(c, xn, yn, wn, hn)

5 Formato yolo (*.txt)

Donde:

  • c : es el número de la clase, en este proyecto hay 5 clases, donde c puede tomar el valor 0 para cartón, 1 papel, 2 vidrio, 3 plástico y 4 orgánico.
  •  xn: centro del cuadro delimitador normalizado en la dirección x.
  • yn: centro del cuadro delimitador normalizado en la dirección y.
  • wn: ancho normalizado del cuadro delimitador (x).
  • hn: alto normalizado del cuadro delimitador (y).

3. El modelo

El modelo seleccionado fue el YOLOv5 (You Only Look Once). Este es un sistema de código abierto para la detección de objetos en tiempo real pre-entrenado con el dataset COCO, el cual hace uso de una única red neuronal convolucional (CNN) para detectar objetos en imágenes.

De acuerdo con la revisión bibliográfica, Yolo en su quinta versión es un buen algoritmo para detectar objetos en el campo de la alimentaciónrobóticasalud, entre otros, logrando un buen posicionamiento y reconocimiento de objetos, más precisos que otros algoritmos, incluso versiones anteriores de Yolo. Este equipo seleccionó YoloV5, por considerarlo un algoritmo robusto con buenos resultados en investigaciones recientes relacionadas con detección.

4. Resultados:

El modelo se entrenó 4 veces utilizando la técnica de “Transferencia de aprendizaje, llegando a obtener una mejora del 50% en el último entrenamiento con respecto al primero. En el modelo se usaron las siguientes variables:

  • Modelo: Se usó la versión Small (Yolov5s) ya que es el más rápido de entrenar y permitió tener una buena idea del comportamiento de la base de dato y del modelo frente al problema. Sin embargo, la desventaja de la rapidez es que se sacrifica precisión en comparación con otras versiones como la Extra Large (Yolov5x)
  • Pesos (weights): para el primer entrenamiento se utilizó los pesos predeterminados en Yolo, los cuales provienen del entrenamiento del data set COCO, llamado “yolov5.pt. Durante cada entrenamiento se generó un archivo con el mejor peso encontrado, el cual se utilizó para el siguiente entrenamiento.
  • Épocas: Se inició el entrenamiento con 10 épocas, llegando hasta 30 épocas.
  • Batch, se mantuvo fijo en 6 para todo el entrenamiento.
  • Tamaño de imágenes: El data set se configuro para que cada imagen tuviera un tamaño de 640 x 640.
Se aprecia las ultimas variables de entrenamiento

Los resultados de

  • Matriz de confusión
  • Precisión y Sensibilidad (Recall)

La matriz de confusión indica que tipo de error está cometiendo el modelo, en el caso de Yolo para el cálculo utiliza una confianza de 0,25 y un límite de IoU (Intersection over Union) de 0,45. Esto quiere decir que para clasificar un objeto este debe tener un 50% de probabilidad de estar en una clase.

La clase para la matriz de confusión en el cálculo de confianza de 0,25 y un límite de IoU (Intersection over Union) de 0,45

Yolo presenta su matriz en valores relativos, donde cada elemento de la matriz está normalizado al total de la columna, por lo que la suma de los valores de cada columna es igual a 1.

Para el data set, tenemos que el cartón lo clasifica relativamente bien, en el 72% de los casos reconoció esta clase, mientras el restante 24% lo clasificó como background. El vidrio lo reconoció en el 85% de los casos, mientras un 10% lo confundió con plástico quizás por la similitud de la transparencia. El papel un 59%, siendo este el valor más bajo, compartiendo un 8% con cartón, y un 32% con el background. Para el caso del plástico se obtuvo un 64% de asertividad, y el restante 34% con el background. Por último, en orgánico se obtuvo un 85% de verdaderos positivos y apenas un 13% de background.

La precisión promedio de todas las clases del modelo fue 0.748, la cual para este tipo de algoritmo es buena, nos indica que de cada 10 imágenes, aproximadamente 7 la clasifica correctamente. Su sensibilidad (Recall) fue 0.723, lo que es una buena medida de la cantidad de objetos por clase clasificados correctamente, en una clase determinada de cada 10 imágenes 7 son correctas, apenas 3 son falsos positivos.

Resultados de las métricas que nos muestra al obtener de la matriz de confusión

5. El prototipio: su crecimiento

Es importante mencionar que el alcance del proyecto se limitó a realizar el prototipado de ConciencIA Ecológica que consistió en el despliegue, la simulación de los componentes del hardware y un bosquejo de una aplicación que conecta la predicción del modelo con el hardware para clasificar imágenes de seis (6) tipos de residuos: orgánicos, vidrio, plástico, papel, cartón, desechos.

A continuación se explicará el funcionamiento del prototipo.

ConciencIA Ecológica consistirá en cinco (05) contenedores de diferentes colores y un módulo central donde se encontrará una Tablet con cámara. Los contenedores se diseñaron pensando en el tamaño de los niños y la forma más fácil de depositar el residuo en estos.

Diseño propuesto

Se buscará que el aprendizaje se realice a través de la interacción del niño con los contenedores, para ello el niño presentará un residuo a la cámara de la Tablet y a través de un modelo, se podrá reconocer hasta seis (6) tipos de residuos: orgánicos, vidrio, plástico, papel, cartón y desechos en general. Luego de reconocer el residuo, se enviará la predicción a una App alojada en la Tablet en el módulo central, la cual mostrará en pantalla lo reconocido y emitirá un sonido con el nombre del material categorizado y el color del contenedor.

Se presenta un bosquejo del proceso del prototipo

Al mismo tiempo, la Tablet enviará una señal a un micro controlador para abrir el contenedor destinado a recolectar el residuo y se enviará una señal que encenderá una luz ubicada en el contenedor. La App emitirá información sobre la práctica de las 4R para promover su uso. El niño finalmente se dirigirá al contenedor señalado y deposita el residuo.

Se presenta un bosquejo del proceso del prototipo

En cada contenedor se instalará un sensor ultrasónico para medir el volumen de residuos acumulados, el sensor enviará una señal a tres led´s que indicarán tres niveles: Disponible (verde), Intermedio (amarillo) y Lleno (rojo). Esto con el fin de evitar que los contenedores rebasen su capacidad, ya que, de producirse, pueden obstaculizar la apertura de la puerta con la entrada de residuos produciendo daños a los servomotores.

Estructura interna del contenedor (arriba sensor ultrasónico)

6. Despliegue

Por otro lado, la aplicación en esta fase no tendrá interacción física con el niño, por el momento servirá como centralizador de la información que viene del modelo y que dirige la acción de la apertura de los contenedores, mostrar en pantalla el resultado, emitir sonido y prender las luces de los contenedores.

La App debe ser iniciada por el administrador, el cual podrá comenzar a ejecutar Conciencia Ecológica a través de su usuario y contraseña.

Diseño de la aplicación propuesta

Inmediatamente, se despliega un menú el cual mostrará un botón de “comenzar a reciclar” que pondrá a Conciencia Ecológica en modo de reconocimiento de residuos. Al darle al botón se enciende el sensor de aproximación y el sensor óptico (cámara); a futuro se tiene pensado implementar un módulo de estadísticas visible en el menú, a los efectos de esta idea de proyecto se colocará como deshabilitado.

Diseño de la aplicación propuesta-iniciando el proceso

En el modo reconocimiento, cuando el sensor de aproximación se activa, se mostrará un mensaje para que el niño presente el objeto a la cámara, cuando detecte el objeto se realizará la predicción.

App en Android para clasificación, mostrando la categorización en tiempo real.

Una vez realizada, se mostrará en la pantalla la clase identificada y emitirá un sonido con el nombre del contenedor, luego emitirá un corto mensaje educativo.

Diseño de la aplicación propuesta con la interacción del sonido

Al mismo tiempo la App enviará la información por bluetooth al micro controlador, el cual se encargará de abrir la compuerta correcta y emitir la señal para encender los led´s. Abajo se muestra un diagrama simulado en Tinkercad.

Bosquejo del circuito

Su futuro: Próximos pasos

Hasta este punto, tenemos una idea de cómo Conciencia Ecológica de una forma sencilla puede orientar a los niños en la creación de hábitos para Reducir, Reutilizar, Reciclar y Recuperar. Pero…

¿hasta aquí llegamos?

A corto plazo, lo primero sería llevar esta conceptualización a la realidad, mejorando cada uno de los aspectos técnicos contemplados en el prototipo. El financiamiento de la Municipalidad de Guayaquil o una institución interesada seria la chispa para propulsar el proyecto.

A mediano plazo, aumentar la base datos e incluir otros materiales para la clasificación, como por ejemplo metal e incluso escalarse el proyecto a empresas para materiales peligrosos como baterías, bombillos ahorradores, bombillo fluorescentes, que están ocasionando un grave problema al ambiente.

En principio, el diseño de los contenedores educativos esta ajustados a las necesidades de cada región e incluso país, ya que actualmente no existe una regulación internacional que dicte las normas de los colores de los contenedores o qué tipo de material se recicla, se puede adaptar Conciencia Ecológica a las necesidades del usuario.

¿Por qué no buscamos que la inteligencia artificial le responda al niño sus inquietudes y dudas?. La App puede ser mejorada para incluir la interacción con el niño y se podría tener una conversación de reciclaje y de aspectos de interés para la educación de los niños de acuerdo a los programas educativos de cada región o país.

Pensando en el futuro de la información. El sensor ultrasónico, podría generar datos a través de la estimación de volumen de cada contenedor. Estos datos ayudarán a llevar la estadística acumulada en el tiempo, sea por contenedor y en sus 5 categorías; así como también por escuelas.

Esta información se alojará en una base de datos para posteriormente alimentar un dashboard de indicadores que permitirá su monitoreo, así como otras funcionalidades como: el control de dispositivos que no estén en funcionando; las escuelas que no están siendo proactivas; tiempo de contenedores llenos sin gestionar; entre otros. En fin una serie de indicadores primordiales, que permita a través de los entes encargados llevar un control de unidades “contenedores” por escuela e incentivar a estas para que su alumnado aprenda jugando.

Integrantes:

  • Luis Reyes
  • Lady Sangacha
  • Jostin Maldonado
  • Karely Mayorquín
  • Jorge Chiquito
  • Verónica Abad
  • Carlos González

Presentación del proyecto: DemoDay

Repositorio:

GitHub: https://github.com/SaturdaysAI/Projects/tree/master/LATAM_remote/ConcienciaEcologica

¡Más inteligencia artificial!

La misión de Saturdays.ai es hacer la inteligencia artificial más accesible (#ai4all) mediante cursos y programas intensivos donde se realizan proyectos para el bien (#ai4good).

Si quieres aprender más inteligencia artificial únete a nuestra comunidad en community.saturdays.ai o visítanos en nuestra web www.saturdays.ai ¡te esperamos!

Deep Learning para detectar el cansancio y la inantención del conductor.

Latam online. Segunda Edición. 2021

En Ecuador, el uso del celular mientras se conduce un vehículo registró un incremento en los primeros nueve meses del 2021; entre enero y septiembre de 2021 se reportaron 15,393 siniestros de tránsito. De ellos, 3,989 están relacionados con distracciones, ejemplo el uso del celular el cual representa el 26% del total mencionado. Si se compara con igual periodo del 2020 se observa un incremento: 240 siniestros más causados por este tipo de distracciones. (ANT, 2021)

Como se puede apreciar en la Figura 1, solo en Guayaquil, una de las ciudades más importantes del país, registra un total de 1,450 accidentes de tránsito por conducir desatento a las condiciones de tránsito (celular, pantallas de video, comida, maquillaje o cualquier otro elemento distractor) etiquetada como C14; estos tipos de distractores dejaron 1,256 fallecidos en la vía”, siendo una de las primeras causales de esto. El conducir en estado de somnolencia o malas condiciones físicas (C03) solo registra un total de 9 accidentes y 11 fallecidos en el año 2021.

Clasificación de estados y distractores

Existen varios tipos de distracciones al conducir y así lo determina la National Center for Statistics and Analysis (NCSA por sus siglas en inglés) las cuales se clasifican de la siguiente manera: (NHTSA, 2021)

Estado del conductor:

  • Atento
  • Distraído
  • Miró, pero no vio
  • Tiene sueño o se quedó dormido

Distracciones relacionadas al conductor:

  • Comer o beber
  • Persona, objeto o evento externo
  • Ajuste de radio, casete o CD
  • Otros ocupantes del vehículo
  • Objeto en movimiento en el vehículo

Descripción del problema

De acuerdo con los datos estadísticos obtenidos un número importante de personas mueren como resultado de accidentes de tránsitos. De todos ellos, muchos son provocados por lo que se conoce como inatención, cuyos principales factores contribuyentes son tanto la distracción como la somnolencia. Por lo tanto, los conductores con fatiga pueden beneficiarse de un sistema que los alerte al momento de perder la atención.

En base a lo mencionado en líneas anteriores, se plantea el siguiente problema:

¿Cómo evitar que un conductor de vehículo se distraiga o caiga en estado de somnolencia?

Objetivo general

El objetivo fue diseñar una herramienta para entornos vehiculares, la cual, mediante técnicas de Deep Learning detecte tanto la distracción como la somnolencia en los conductores y pueda enviar una alerta sonora directamente al conductor, para que vuelva la atención inmediatamente a la vía y así evitar que ocurra un siniestro de tránsito, además de que se pueda monitorear las alertas mediante una consola de administración, con el fin de controlar al personal que está maniobrando el vehículo.

Estructura de la herramienta

La Figura 2 muestra la estructura de la herramienta, su funcionamiento será de la siguiente manera:

  1. Cámara web con altavoz implementada en la cabina del conductor de manera frontal directa.
  2. Servidor Web donde se ejecutará el algoritmo, el cual procesará las imágenes y realizará las detecciones acordes al entrenamiento, sea por distracciones o estado de somnolencia. Luego del procesamiento y la detección, este, enviará una alerta directa al conductor, el tipo de esta alerta será sonora, con el objetivo de que regrese la atención a la vía.
  3. Panel de administración o control, luego del procesamiento y ejecución del algoritmo, se enviará también una alerta visual o textual al administrador de la herramienta, para que internamente se lleve un control de los actos cometidos por el conductor.

La Figura 3 y 4, muestra la alerta que se mostrará en el panel administrativo de la herramienta en diseño, enviando la imagen del conductor con el objeto distractor o con el estado del conductor.

Técnicas implementadas

A. Detección de inatención

Para detectar las distracciones del conductor necesitamos entrenar un modelo de detección de objetos. La detección de objetos es una tecnología de visión artificial que localiza e identifica objetos en una imagen, debido a su versatilidad, se ha convertido en los últimos años en la tecnología de visión artificial más utilizada.

La tarea de detección de objetos localiza objetos en una imagen y los etiqueta como pertenecientes a una clase objetivo, como se muestra en la imagen a continuación.

Los modelos de detección de objetos logran este objetivo al predecir las coordenadas X1, X2, Y1, Y2 y las etiquetas de clase de objeto.

Para nuestro proyecto utilizamos YOLO V5, YOLO se introdujo inicialmente como el primer modelo de detección de objetos que combinaba la predicción de cuadros delimitadores y la clasificación de objetos en una única red diferenciable de extremo a extremo. Fue escrito y se mantiene en un framework llamado Darknet. YOLO V5 es el primero de los modelos de YOLO escrito en el marco PyTorch y es mucho más liviano y fácil de usar. Dicho esto, YOLO V5 no realizó cambios importantes en la arquitectura de la red en YOLO V4 y no supera a YOLO V4 en un punto de referencia común, el conjunto de datos utilizado fue de COCO dataset.

La Figura 6, nos muestra la arquitectura utilizada de Yolo V5, que está compuesta de la siguiente manera:

Backbone:

Model Backbone actúa como un extractor de características de una imagen de entrada. El extractor de características no es más que el uso de capas convolucionales como kernel, stride, la normalización por lotes se aplica a las imágenes de entrada para extraer características importantes como bordes, formas, etc. CSP (redes parciales de etapa cruzada) se utilizan como columna vertebral en YOLO V5 para extraer características útiles de una imagen de entrada.

Cuello:

En la capa de cuello, la red se diseñó para realizar predicciones de múltiples escalas además de la red de pirámide de características. La predicción multiescalar ayuda a detectar objetos de diferentes tamaños al enviar imágenes a tres valores de cuadrícula diferentes. Entonces, las imágenes de cuadrículas pequeñas detectan objetos grandes y las imágenes de cuadrículas grandes detectan objetos pequeños.

Head:

El modelo Head es el principal responsable del paso final de detección. Utiliza cuadros de anclaje para construir vectores de salida final con probabilidades de clase, puntajes de objetividad y cuadros delimitadores.

B. Detección de sueño y distracción de la visión

Para la detección de los ojos se utilizó la librería Dlib en conjunto con el modelo de referencia de rostros: shape_predictor_68_face_landmarks.dat, el cual utiliza la máscara de detección de puntos (Figura 7) para determinar ubicaciones clave que conforman un rostro.

Utilizando estas herramientas se logró identificar la ubicación de los ojos tomando como referencia desde el punto 36 hasta el 41 para delinear el ojo izquierdo y del 42 al 47 el ojo derecho.

Con esta información se logró determinar si frente a la cámara se encontraba un rostro humano, y en caso afirmativo se utilizó la distancia euclidiana (para determinar la longitud de una línea recta entre dos puntos) y así establecer si los ojos se encuentran abiertos o cerrados.

Posteriormente, si los ojos permanecen cerrados por más de dos segundos entonces se activa una alarma cuya finalidad es despertar al conductor (Figura 3). Por otra parte, si el conductor está viendo en cualquier dirección que no sea el frente, después de cuatro segundos la alarma se activa para alertar respecto a la distracción (Figura 3).

Evaluación del modelo

Utilizamos YOLO V5, posterior al entrenamiento, evaluamos las pérdidas de entrenamiento y las métricas de rendimiento en Weights & Biases.

El mAP a 0,5 y el mAP a 0,5:0,95 se trazan para 200 épocas. mAP@[0.5:0.95] significa mAP promedio sobre diferentes umbrales de IoU, de 0.5 a 0.95, paso 0.05 (0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95).

En cuanto a la precisión y la recuperación para 200 épocas se dan a continuación. La precisión fue buena durante las últimas épocas, pero los valores de recuperación fueron más bajos durante las últimas épocas.

Pérdida de entrenamiento y validación:

En detección de objetos, hubo un total de 3 pérdidas para calcular

  • Pérdida de caja: que es una pérdida al cuadrado porque detectar las coordenadas de la caja es una tarea de regresión simple
  • Pérdida de clase, que es una pérdida de registro porque predice la probabilidad de que un objeto pertenezca a una clase.
  • Pérdida de objetos

Generación y preparación del conjunto de datos

Para entrenar nuestro modelo de detección de objetos necesitamos supervisar su aprendizaje con anotaciones de cuadro delimitador. Dibujamos un cuadro alrededor de cada distractor que el detector reconozca: celular, comida, cigarrillo y botellas para identificar cuando el conductor está distraído o realizando alguna actividad ajena a la conducción. Existen muchas herramientas de etiquetado (CVAT , LabelImg , VoTT, Roboflow ) y soluciones a gran escala (Scale, AWS Ground Truth), en nuestro caso utilizamos Roboflow.

Las imágenes para construir nuestro conjunto de datos fueron descargadas de Kaggle y COCO Dataset:

  • Dataset containing smoking and not-smoking images (smoker vs non-smoker)
  • Mobile Images Dataset
  • COCO Dataset

Ventajas de usar guardian

  • Innovador, diseñado con Inteligencia Artificial, algoritmo de Deep Learning
  • Preciso, algoritmo entrenado con una precisión de 92% de distractores y parpadeos de ojos.
  • Accesible, la herramienta se puede implementar en cualquier parte del mundo.
  • Adaptable, el algoritmo se puede re-entrenar las veces que haga falta.
  • Liviano y fácil de manejar, no necesita de instalación y su uso administración es muy fácil.
  • Confiable, herramienta diseñada para la nube, capaz de mantenerse activa 24/7

Conclusión

La inteligencia artificial ha incrementado sus posibilidades, especialmente desde la aparición de tecnologías como las redes neuronales y el aprendizaje automático (machine learning).

Al utilizar Deep Learning, para identificar patrones en fotos o vídeos y llevar a cabo la detección de distractores o estado de somnolencia del conductor, es posible enviarle una alerta sonora que regresaría la atención inmediata y probablemente se evitaría un siniestro de tránsito, reduciendo así la tasa de mortalidad por estas causas.

El proyecto se diseñó como un sistema para entornos vehiculares funcional, capaz de detectar la fatiga y los objetos distractores mientras se conduce un vehículo, además de emitir los dos tipos de alertas (sonora y textual). El modelo logra detectar los distractores correctamente en un 92 %.

El algoritmo podrá seguir entrenando y ampliando los objetos distractores para su detección.

Planes a futuro

El presente proyecto tiene la intención de llevar a las siguientes empresas:

  • Empresas de transporte masivo (Terminal terrestre, estación de autobuses)
  • Empresas de transporte ejecutivo (Uber, Cabify, Taxi amigo)

Integrantes

  • Ing. Carlos Watson (cwatsonm@gmail.com)
  • Ing. Josué Huamán (esai.huaman@gmail.com)
  • Ing. Yolanda C. Sarmiento (yolitasarmiento@hotmail.com)
  • Karyme Rodriguez (karyme.rodriguez@cetys.edu.mx)
  • Joanna Araiza (joanna.araiza7829@alumnos.udg.mx)

Presentación del proyecto: DemoDay

Nuestro repositorio en Github

https://github.com/SaturdaysAI/Projects/tree/master/LATAM_remote/GuardIAn

¡Más inteligencia artificial!

La misión de Saturdays.ai es hacer la inteligencia artificial más accesible (#ai4all) mediante cursos y programas intensivos donde se realizan proyectos para el bien (#ai4good).

Si quieres aprender más inteligencia artificial únete a nuestra comunidad en community.saturdays.ai o visítanos en nuestra web www.saturdays.ai ¡te esperamos!

Detección de fatiga en conductores de vehículos mediante Inteligencia Artificial

La Paz. Deep Learning. 2021

Las herramientas de visión artificial han demostrado vez tras vez el gran potencial que posee en sus distintas áreas de aplicación. Una de estas está justamente relacionada con los vehículos y sus conductores. Abarcando desde movilidades autónomas hasta herramientas de uso personal el espectro es muy amplio. Por ello, en este texto se explica la implementación de un detector de fatiga en conductores mediante Inteligencia Artificial utilizando OpenCV y Dlib.


DESCRIPCIÓN DEL PROBLEMA

Los accidentes de tránsito son una de las principales causas de muerte en ciudadanos de todos los países. Estos se pueden clasificar de acuerdo a sus causas. Se calcula que entre un 20% y un 30% de los accidentes se deben a conductores que conducen con fatiga. Si bien la fatiga al conducir es un riesgo evitable, lastimosamente, muchos conductores no toman las precauciones necesarias cuando conducen por periodos prolongados de tiempo. Por lo tanto, los conductores con fatiga pueden beneficiarse de un sistema de Inteligencia Artificial que los alerte al momento de perder la atención.


OBJETIVO

Diseñar un sistema para detectar la fatiga en conductores.


SELECCIÓN DEL MODELO

Se seleccionó un modelo de visión artificial pre entrenado basado en la librería cv2 de OpenCV y dlib para detección facial.


TÉCNICAS IMPLEMENTADAS

  • OpenCV: La biblioteca libre de visión artificial que se está usando para obtener la imagen del conductor.
  • Dlib face landmarks: Son 68 puntos que se colocan sobre el rostro detectado para la identificación de facciones faciales, en este caso los ojos.
  • NumPy: Esta biblioteca se está usando para el cálculo de la proporción de abertura de los ojos, mediante álgebra lineal y el posicionamiento de los puntos faciales de los ojos.


EVALUACIÓN DE MODELOS

El sistema construido hace uso de un modelo pre entrenado de detección facial. Con ayuda de las bibliotecas previamente mencionadas se realiza un procedimiento como sigue:

  1. Se carga el modelo detector y predictor que son los que detectan el rostro del conductor así como los 68 puntos faciales.
  2. Una función lineal detecta la proporción de aspecto en los ojos midiendo distancias entre los puntos oculares.
  3. Según el valor que se obtenga en esta proporción el programa se ramifica según el estado que considere correspondiente (despierto, cansado o dormido). Para que se considere la transición de un estado a otro debe haber una permanencia en ese estado durante un periodo de tiempo.
  4. El sistema indica en pantalla el estado identificado, este es el paso donde podría activarse o no una alarma.
  5. Este procedimiento se realiza fotograma a fotograma para tener una predicción constante del estado de fatiga de la persona.


ANÁLISIS DE RESULTADOS

Como se utilizó un modelo pre entrenado los resultados obtenidos por el detector facial y de los puntos de referencia del rostro son buenos.

Sin embargo, los resultados que obtuvimos en la detección del estado de fatiga son más bien fluctuantes. En ocasiones el sistema es poco sensible y no detecta estados con los ojos cerrados o, por el contrario, el sistema es pronto para indicar un estado posiblemente falso. Las razones que podrían causar este problema incluyen la calidad del video y el enfoque exclusivo en los ojos del conductor (cuando podrían tomarse en consideración otros factores como la boca).


CONCLUSIÓN

El proyecto ha desarrollado un sistema funcional capaz de detectar la fatiga en conductores de vehículos. La consistencia en estas detecciones no es buena así que se proponen algunas sugerencias: Aplicar operaciones de erosión y dilatación para reducir el ruido en la captura de video, implementar un sistema que detecte la proporción de abertura de la boca para aumentar la consistencia, y modificar los umbrales de detección para ajustarse a las necesidades de cada conductor.


INTEGRANTES

Carlos Claure –https://www.linkedin.com/in/carlos-manuel-claure-vargas-475226212

Raquel Calle –https://www.linkedin.com/in/raquel-veranda-calle-zapata-460226212

Liders Limpias –https://www.linkedin.com/in/limpiaslider/

Alejandro Carrasco. –https://www.linkedin.com/in/miguel-alejandro-carrasco-c%C3%A9spedes-785717215/


REFERENCIAS


Presentación del proyecto: DemoDay

¡Más inteligencia artificial!

La misión de Saturdays.ai es hacer la inteligencia artificial más accesible (#ai4all) mediante cursos y programas intensivos donde se realizan proyectos para el bien (#ai4good).

Infórmate de nuestro master sobre inteligencia artifical en https://saturdays.ai/master-ia-online/

Si quieres aprender más inteligencia artificial únete a nuestra comunidad en community.saturdays.ai o visítanos en nuestra web www.saturdays.ai ¡te esperamos!Saturdays.AI

Raquel Calle

WRITTEN BY

Raquel Calle

Saturdays.AI

Saturdays.AI

Saturdays.AI is an impact-focused organization on a mission to empower diverse individuals to learn Artificial Intelligence in a collaborative and project-based way, beyond the conventional path of traditional education.