8 may 2020

Detectando fusiles de asalto con Teachable Machine

Buenas a todos, la pasada semana tuvieron lugar los Hands on Labs de Fran Ramírez (@cybercaronte) sobre Machine Learning & Deep Learning, dentro de nuestro Bootcamp. Los que tuvimos la oportunidad de asistir, pudimos aprender cosas bastante interesantes para iniciarnos en la materia. Es algo complejo y que requiere de un profundo estudio, pero sin embargo, han surgido ideas y proyectos con el fin de hacer la vida más fácil a todos aquellos profesionales que trabajan en estas temáticas tan interesantes. Sobre ello, el profesor del taller habló largo y tendido durante ambas sesiones, y presentó algunos proyectos de interés como Teachable Machine (Google):


Este proyecto de Google permite que cualquier usuario con poco más que un PC, pueda realizar sus primeras pruebas de concepto con temas de IA, sin tener apenas conocimientos en la materia, permitiéndole entrenar un modelo propio de aprendizaje automático para el reconocimiento de imágenes, videos o audios.



En la prueba de concepto que os quería enseñar en el post de hoy, he querido entrenar un modelo que fuese capaz de distinguir fotografías que contengan 2 tipos de armas, AK47 y MP5 (lo sé, demasiadas horas invertidas en el CSGO durante el confinamiento... :P). Para ello, me he bajado poco más de 30 imágenes de cada arma al azar y las he cargado en la plataforma. En un ejemplo real, haría falta un gran nº de imágenes para que el entrenamiento fuese el adecuado, así mismo, debería haber realizado un preprocesado, con el objetivo de limpiar las imágenes, e incluso, podríamos haberlas pasado a blanco y negro, para reducir el tiempo de entrenamiento, pero quería que vieseis las capacidades del sistema sin realizar ninguna etapa previa de data cleaning.


Una vez tengamos nuestro dataset subido en Teachable Machine, y debidamente etiquetado, solo deberemos pulsar el botón correspondiente para iniciar el entrenamiento haciendo uso de redes neuronales. Del algoritmo utilizado podremos olvidarnos, ya que esa labor ya la ha realizado Google por nosotros, por lo que tan solamente, y una vez hayamos finalizado el entrenamiento de nuestro modelo, tendremos que exportarlo para trabajar con él en cualquier proyecto personal, eso sí, utilizando TensorFlow y Keras.

De forma previa, podremos utilizar la misma plataforma para evaluar nuestro modelo. Por ponérselo más difícil, no he querido pasarle imágenes reales de los fusiles AK47 y MP5, sino que he tratado de complicarselo un poco, y aún así, los resultados son realmente sorprendentes. Con casi el 100% de éxito, el modelo entrenado es capaz de detectar que una joya es un rifle AK47:


Y lo mismo ocurre con una imagen del videojuego CSGO, que aún teniendo un fondo con mucho ruido (si os fijáis, solamente he entrenado al modelo con imagenes con fondo blanco), ha sido capaz de detectar el fusil MP5 con un 100% de éxito:


Finalmente, para liarle un poco, le he pasado una imagen con los 2 fusiles, y parece que ha sido capaz de detectar mejor el MP5:


Cómo os indicábamos más arriba, el modelo podréis exportarlo desde el botón correspondiente. Por lo que no tenéis excusa para jugar con esta herramienta increíble:


Os he dejado el modelo en Github para que podáis descargarlo:


Saludos!

1 comentario:

  1. mmmmm curioso sí es.. pero si el humano que es un HP.. decide llamar a su fusil Juanita... cada vez que hable de Juanita no se enterará que el terrorista habla de un arma letal. Buff queda mucho por que aprendan.. Incluso diferenciar materiales (estilo pistola de plastico a verdadera).. Deberían entrenarlos para descerebrar intrusos que se quedasen como lelos pensando en una mosca volando y con la babita cayendoseles por ejemplo! jajajaja así se les pilla pronto.. cerebro estilo politico y cosas así. que diga uuyy este promete mucho y habla muy generalizado zasca el tio la vara en acción directa! Saludos Mostoleñosss!

    ResponderEliminar