Jiann

Inspiración

El mundo es un lugar peligroso y aislarnos detrás de paredes y jaulas en nombre de la seguridad impide momentos cruciales de intercambio cultural. Tradicionalmente, la violencia en los entornos laborales ha seguido este patrón destructivo en lugares con altos índices de criminalidad desde una perspectiva estadística. Las estaciones de servicio, los centros comerciales de venta minorista, los almacenes y las tiendas de compra exprés instalan jaulas incómodas entre clientes y empleados para mejorar la seguridad. La estrategia mejora la protección en los lugares de trabajo, pero tiene un costo significativo para la comunidad. Jiaan es una oportunidad que permite cambiar para mejor las reacciones tradicionales, la cultura en el lugar de trabajo y la comunidad. El sistema de seguridad inteligente identifica una amenaza en tiempo real y permite que se tome una acción al respecto. Mi meta es reducir y, en última instancia, eliminar encuentros violentos prolongados que, de otra manera, implicarían que el empleado tuviese que notificar a las autoridades con posterioridad al hecho.

Qué hace

Jiaan detecta y clasifica objetos en una fuente en directo y mide un nivel de amenaza acumulativo que activará una respuesta configurada. Si el sistema detecta un nivel de amenaza elevado como resultado de la presencia de un revólver, se podría enviar una notificación de inmediato a las autoridades, las agencias de seguridad, la gerencia e, inclusive, a los empleados que se encuentran en el lugar. El sistema reduce significativamente el tiempo necesario para que el personal o las autoridades sean notificados de un posible encuentro violento, al mismo tiempo que distribuye notificaciones sobre la amenaza para aumentar el nivel de alerta en las instalaciones.

Cómo se desarrolló

Se entrenó un modelo ajustado a partir del modelo VGG16 Reduced con Single Shot MultiBox Object Detection en 2,6 GB de imágenes comentadas que incluían interacciones con y sin violencia. Cuando el modelo produjo resultados satisfactorios para este proyecto, el modelo personalizado se optimizó con DeepLearning Toolkit de Intel y portó al dispositivo DeepLens.

Los microservicios en las funciones de Amazon Lambda se desarrollaron en Python a los fines de realizar tareas de preprocesamiento, interpretación y ejecución en la fuente en directo proveniente del dispositivo DeepLens y así medir un nivel de amenaza mediante el cálculo de la precisión del objeto detectado y la clasificación del objeto.

Desafíos

Se me presentaron tres desafíos importantes durante el desarrollo de Jiaan (y aproximadamente tres decenas de desafíos menores) que tuve que resolver. El primer desafío fue identificar la red óptima para detectar y predecir de manera precisa y eficiente la clasificación de varios objetos dentro de una sola imagen. La primera pasada mientras creaba el proyecto utilizó la clasificación de objetos CNN, que no podía predecir con precisión una o más amenazas dentro de una sola imagen. Esto generaba una investigación mayor y una creación del modelo más amplia para que este proyecto pudiese implementar una red Single Shot MultiBox Detection.

El segundo desafío fue planificar ciclos de entrenamiento con conjuntos de datos únicos para el proyecto. El entrenamiento implicaba adquirir una colección importante de recursos nuevos, comentarlos y entrenar el modelo en ellos. Recopilar y comentar un conjunto de datos que se pudiera medir llevó más de 100 horas de trabajo manual. Entrenar el modelo en los recursos llevó más de 500 horas, que debía mitigarse con el costo.

Resolver algunos de los errores que surgieron con el motor de inferencias y el optimizador de modelos de Intel consumió muchísimo tiempo que, de otra manera, se hubiese podido invertir en mejoras. La mayor parte de la última semana me dediqué a implementar ingeniería inversa en el marco de trabajo de Intel, corregir errores en el optimizador e implementar tareas de flashing en el dispositivo DeepLens. Sin embargo, la experiencia resultó ser muy educativa y ahora cuento con conocimientos detallados del conjunto de herramientas de aprendizaje profundo de Intel.

Logros de los que estoy orgulloso

  • Crear un modelo funcional basado en SSD r-CNN
  • Ampliar el alcance de mi conocimiento para incluir las API de SageMaker y mxnet con experiencia previa únicamente en OpenCV y Numpy
  • Conocer en mayor profundidad las tecnologías sobre las que se basan Greengrass, DeepLens y Sagemaker
  • Paciencia insólita mientras comentaba miles de imágenes

Lo que aprendí

Crear una aplicación inteligente basada en DeepLens o cualquier proyecto de aprendizaje automático es, en igual medida, una tarea de administración de proyectos y una tarea de desarrollo. Existe una cantidad de variables que afecta la capacidad de los recursos y puede resultar en tiempos de inactividad inesperados que deben tenerse en cuenta como parte de la planificación. 

Pasos siguientes

Jiaan se ampliará para incluir un alcance más amplio de clasificaciones de amenazas idóneas para un entorno dinámico donde pueda implementarse y donarse a la comunidad.

Desarrollado con

deeplens
python
greengrass
lambda
sagemaker
iot
ssd