El documento describe un proyecto para desarrollar un sistema de seguridad con cámaras y visión por computadora para detectar ladrones reincidentes. El sistema usaría Raspberry Pi, OpenCV, Keras y otras librerías de aprendizaje profundo para procesar imágenes de cámaras en tiempo real y enviar una alerta si detecta un ladrón conocido. El objetivo es demostrar la viabilidad del enfoque a pequeña escala antes de implementarlo a mayor escala en la nube.
Este proyecto propone utilizar una Raspberry Pi con cámara y visión por computadora para detectar armas en tiempo real en una tienda y enviar una alerta al guardia de seguridad. La Raspberry Pi ejecutaría un modelo de aprendizaje profundo entrenado con OpenCV para reconocer armas en los videos de la cámara. Si se detecta un arma, se enviaría una notificación al teléfono del guardia con la foto del arma para que pueda responder rápidamente. El objetivo es mejorar la seguridad de la tienda mediante la dete
ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE Telecomputer
ORIGINstack nace tras constatarse la falta de soluciones en el mercado de Nube Privada capaces de federarse de forma nativa con los distintos proveedores de soluciones de Cloud Pública basada en Openstack. Esta percepción nos ha llevado a integrar en un formato hardware accesible y con un bajo coste de entrada, junto con una solución software, completamente basada en proyectos OpenSource, que ofrece a nuestros clientes un primer acceso fácil y sin riesgos a la tecnología de Cloud OPENSTACK.
Policy as Code by David Acacio - DevOps BCN - October 2023devopsbcnmeetup
En esta charla explicaremos cómo usando política como código (policy-as-code) podemos dotar de la máxima agilidad y flexibilidad a nuestros equipos sin sacrificar la seguridad y control
Este documento describe un curso taller sobre computación en la nube que cubrirá sus principales aspectos técnicos, jurídicos y de negocios a lo largo de 80 horas. El curso estará dirigido a ingenieros, directores IT, abogados y empresas interesadas en la tecnología de la nube. Contará con conferencistas expertos y casos prácticos para mostrar la mejor manera de implementar soluciones en la nube.
El documento presenta información sobre IoT, arquitecturas de IoT, sistemas embebidos como Arduino y Raspberry Pi, plataformas como Xilinx Spartan-3E y nVidia Jetson Nano, sensores, programación, OpenCV y ejemplos de aplicaciones IoT como ciudades inteligentes y cuidado de la salud.
Este documento presenta información sobre un centro de innovación tecnológica llamado Fidesol que se dedica al desarrollo de software libre. Fidesol fue fundado en 2006 y tiene sedes en Granada, Panamá y Estados Unidos. Cuenta con 25 investigadores y su objetivo principal es fomentar la investigación y desarrollo de tecnologías de la información y comunicaciones mediante proyectos de software libre.
Este documento describe el appliance de virtualización ORIGINSTACK de Telecomputer y NimbusConcept. ORIGINSTACK es un appliance todo-en-uno basado en Openstack que ofrece virtualización, almacenamiento y red definidas por software de forma sencilla y a bajo coste, preparando al cliente para la nube híbrida. El documento explica las funcionalidades y beneficios de ORIGINSTACK así como su configuración y soporte.
Este documento describe un proyecto de Trabajo Fin de Grado que consiste en diseñar e implementar un sistema de seguridad domótico utilizando una Raspberry Pi. Se explica brevemente la Raspberry Pi, sus componentes y software. Luego, se detallan los componentes elegidos para el sistema de seguridad, como sensores, cámara, módulos de relés, y cómo fueron montados y configurados. Finalmente, se describe el funcionamiento general del sistema, que incluye una interfaz web para controlar y monitorear la seguridad de forma rem
Este proyecto propone utilizar una Raspberry Pi con cámara y visión por computadora para detectar armas en tiempo real en una tienda y enviar una alerta al guardia de seguridad. La Raspberry Pi ejecutaría un modelo de aprendizaje profundo entrenado con OpenCV para reconocer armas en los videos de la cámara. Si se detecta un arma, se enviaría una notificación al teléfono del guardia con la foto del arma para que pueda responder rápidamente. El objetivo es mejorar la seguridad de la tienda mediante la dete
ORIGIN STACK EL APLIANCE DE VIRTUALIZACIÓN ENTERPRISE Telecomputer
ORIGINstack nace tras constatarse la falta de soluciones en el mercado de Nube Privada capaces de federarse de forma nativa con los distintos proveedores de soluciones de Cloud Pública basada en Openstack. Esta percepción nos ha llevado a integrar en un formato hardware accesible y con un bajo coste de entrada, junto con una solución software, completamente basada en proyectos OpenSource, que ofrece a nuestros clientes un primer acceso fácil y sin riesgos a la tecnología de Cloud OPENSTACK.
Policy as Code by David Acacio - DevOps BCN - October 2023devopsbcnmeetup
En esta charla explicaremos cómo usando política como código (policy-as-code) podemos dotar de la máxima agilidad y flexibilidad a nuestros equipos sin sacrificar la seguridad y control
Este documento describe un curso taller sobre computación en la nube que cubrirá sus principales aspectos técnicos, jurídicos y de negocios a lo largo de 80 horas. El curso estará dirigido a ingenieros, directores IT, abogados y empresas interesadas en la tecnología de la nube. Contará con conferencistas expertos y casos prácticos para mostrar la mejor manera de implementar soluciones en la nube.
El documento presenta información sobre IoT, arquitecturas de IoT, sistemas embebidos como Arduino y Raspberry Pi, plataformas como Xilinx Spartan-3E y nVidia Jetson Nano, sensores, programación, OpenCV y ejemplos de aplicaciones IoT como ciudades inteligentes y cuidado de la salud.
Este documento presenta información sobre un centro de innovación tecnológica llamado Fidesol que se dedica al desarrollo de software libre. Fidesol fue fundado en 2006 y tiene sedes en Granada, Panamá y Estados Unidos. Cuenta con 25 investigadores y su objetivo principal es fomentar la investigación y desarrollo de tecnologías de la información y comunicaciones mediante proyectos de software libre.
Este documento describe el appliance de virtualización ORIGINSTACK de Telecomputer y NimbusConcept. ORIGINSTACK es un appliance todo-en-uno basado en Openstack que ofrece virtualización, almacenamiento y red definidas por software de forma sencilla y a bajo coste, preparando al cliente para la nube híbrida. El documento explica las funcionalidades y beneficios de ORIGINSTACK así como su configuración y soporte.
Este documento describe un proyecto de Trabajo Fin de Grado que consiste en diseñar e implementar un sistema de seguridad domótico utilizando una Raspberry Pi. Se explica brevemente la Raspberry Pi, sus componentes y software. Luego, se detallan los componentes elegidos para el sistema de seguridad, como sensores, cámara, módulos de relés, y cómo fueron montados y configurados. Finalmente, se describe el funcionamiento general del sistema, que incluye una interfaz web para controlar y monitorear la seguridad de forma rem
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
1) El documento describe una arquitectura para integrar modelos de machine learning en una aplicación mediante microservicios.
2) Se propone dividir la aplicación en tres servicios principales - interfaz, servicios y ML - empaquetados como contenedores Docker y orquestados por Kubernetes.
3) La arquitectura permite el desarrollo políglota usando diferentes tecnologías para cada servicio, con integración continua y entrega continua mediante Jenkins.
Se denomina computación en la nube, conocido también como servicios en la nube, es un paradigma que permite ofrecer servicios de computación a través de internet
En esta presentación haremos una pequeña introducción a Deep Learning. Posteriormente, veremos cómo entrenar y evaluar nuestros modelos haciendo uso del servicio de Azure ML, utilizando Cntk con Python para el entrenamiento y C# para la evaluación del modelo.
El documento describe tres casos de uso de tecnologías de Big Data para banca móvil y TI. Se diseñó una arquitectura híbrida en la nube para procesar datos de clientes y ofrecer analíticas en tiempo real. Esto permitió un mayor conocimiento del cliente y ofertas más precisas. También se implementó una solución SIEM basada en Apache Spark e ingesta de datos de seguridad para detección temprana de problemas y ahorro de costos. Finalmente, se diseñó un sistema de monitorización para recopilar métricas de rendim
Este documento presenta una introducción a la observabilidad en OpenShift. Explica conceptos clave como métricas, logs y trazas distribuidas, y describe la arquitectura y herramientas de observabilidad de OpenShift como Prometheus, Loki, Jaeger y OpenTelemetry. También menciona áreas de futuro como exemplars y AIOps para correlacionar y analizar datos de observabilidad.
Containers en .NET (Dot Net 2018 - Spain)Eduard Tomàs
Este documento presenta una charla sobre contenedores en .NET. Se discuten las diferencias entre .NET Core y .NET Framework en contenedores, incluidas las ventajas de .NET Core como ser más modular y funcionar en Linux. También se cubren buenas prácticas para .NET Core como configuración, secretos y multi-stage builds. Se explican escenarios para mover aplicaciones .NET Framework existentes a contenedores y se concluye con una discusión sobre CI/CD utilizando contenedores.
Este documento describe el diseño e implementación de un sistema de adquisición de datos usando un microcontrolador PIC16F877A. El hardware incluye el microcontrolador, un cristal de 20MHz, capacitores, un MAX232 y un convertidor serial-USB. El software incluye programación del PIC para adquirir datos analógicos y enviarlos vía puerto serial, y programas en Matlab y Visual Basic para recibir los datos y graficar las formas de onda. El proyecto logró implementar con éxito el hardware y software propuestos para adquiri
BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)pmluque
Proyecto fin de carrera que nos introduce en el paradigma de Big Data y de las tecnologías que como Hadoop y sus ecosistema permiten la recolección y procesamiento masivo de datos. Incluye un caso práctico de movimiento, transformación y presentación de métricas e indicadores aplicado al sector de las máquinas expendedoras (vendings).
En la actualidad el "Big Data" se ha convertido en una palabra de moda que genera confusión en muchos escenarios. Los conceptos que usualmente se le asocian son: gran cantidades de datos, analítica de redes sociales, modernas herramientas para gestionar datos, datos en tiempo real, entre otros. Independientemente de como lo catalogamos, las empresas necesitan comprender y explorar cómo procesar y analizar de nuevas formas la variedad de información que tienen a su disposición. En muchas de las investigaciones aparecen referencias de tecnologías como Spark y Cassandra que se mencionan como un recurso externo dado por sentado su existencia. Brindar una solución que incluya todos los componentes de procesamiento y análisis puede llegar a ser un reto desde la perspectiva de infraestructura que se requiere provisionar, monitorizar y gestionar por el personal de
operaciones. Por otra parte crear la infraestructura de apoyo al desarrollo de estas aplicaciones bajo conceptos como inmutabilidad, consistencia y disponibilidad son elementos que se deben tener en cuenta desde las primeras fases de diseño de una solución. Ver el Big Data desde la perspectiva de DevOps en aras de viabilizar el desarrollo y liberación de aplicaciones y servicios con mayor velocidad es el tema central de esta presentación donde se abordaran conceptos y métodos generales, tecnologías y frameworks recomendados.
Este documento presenta un capítulo introductorio sobre cifra moderna. Explica conceptos básicos como que los criptosistemas modernos usan operaciones algebraicas en cuerpos finitos más grandes que el alfabeto utilizado. También clasifica los métodos de cifra moderna en cifrado en flujo, cifrado en bloque y cifrado de clave pública, dando ejemplos de cada uno. Finalmente, introduce el cifrado asimétrico y las funciones unidireccionales con trampa como la factorización y el logaritmo discreto.
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptxGabriela Soto
Este documento presenta el programa de un bootcamp de 4 semanas sobre fundamentos de inteligencia artificial que incluye introducciones a conceptos de machine learning, redes neuronales y TensorFlow.js, así como ejercicios prácticos. La cuarta semana se centra en introducir las redes neuronales y TensorFlow.js, explicando los componentes básicos de las redes neuronales, diferentes tipos de arquitecturas y cómo usar TensorFlow.js para ejercicios prácticos.
SafeHomeFace - Sistema de reconocimiento facial.Big-Data-Summit
Brindar a las Empresas de seguridad y administradoras de condominios, una plataforma para gestionar las cámaras de seguridad instaladas en sus clientes, utilizando algoritmos de machine learning
Este documento describe el diseño e implementación de BRAINWAVE, un sistema para crear flujos de trabajo a través de herramientas gráficas que simplifican la gestión de un clúster de supercomputación GPGPU. El sistema incluye un clúster de 4 nodos con procesadores Intel Xeon y tarjetas gráficas Nvidia Tesla, y un planificador de tareas que permite a los usuarios crear, modificar y ejecutar flujos de trabajo de manera sencilla. El documento también discute campos de aplicación potenciales como bio
El Cloud computing nos permite ofrecer servicios a través de Internet de una forma rápida y sencilla. Ofrecemos Cloud Services, de forma auto-escalable y elástica que nos permite centrarnos en el negocio, ahorrar costes, facilita la innovación y aporta un time to market menor.
Este documento describe cómo configurar dos routers Cisco en GNS3 para habilitar el protocolo CDP (Cisco Discovery Protocol). Las instrucciones guían al usuario a configurar las direcciones IP y habilitar CDP en cada router, observar la información de CDP, y capturar los paquetes CDP enviados entre los routers usando Wireshark para explorar su contenido.
Este documento describe el desarrollo de una extensión para gvSIG que permite ejecutar procesos geoespaciales de forma remota a través del estándar OGC Web Processing Service (WPS). El proyecto utilizó metodologías ágiles y orientadas a objetos durante el análisis, diseño y programación para crear un cliente WPS para gvSIG usando herramientas como Eclipse, Ant y JUnit. La extensión resultante, denominada extWPS 1.0, permite a gvSIG acceder y ejecutar procesos WPS de forma
Este documento presenta una introducción a los sistemas de cifra modernos. Explica que los criptosistemas modernos usan operaciones algebraicas en cuerpos finitos y que su fortaleza se basa en la imposibilidad de descubrir una clave secreta única a pesar de que el algoritmo es público. Además, distingue entre cifrado en flujo y en bloque y menciona algunos ejemplos de cada uno. Finalmente, introduce el cifrado asimétrico basado en funciones unidireccionales con trampa como RSA.
Plug&play:deploying big data_solutionsDavid Piris
Este documento describe cómo los contenedores Docker pueden agilizar el despliegue de aplicaciones Big Data mediante la virtualización a nivel de sistema operativo. Los contenedores permiten empaquetar aplicaciones y sus dependencias para ejecutarlas de forma aislada en cualquier entorno, lo que facilita el paso entre desarrollo y producción. El documento también presenta herramientas como Docker Compose y Docker Swarm para automatizar el despliegue de múltiples servicios Big Data como HDFS, Hive y YARN usando contenedores.
Commit 2018 - Integrando Microservicios y Machine LearningRafa Hidalgo
1) El documento describe una arquitectura para integrar modelos de machine learning en una aplicación mediante microservicios.
2) Se propone dividir la aplicación en tres servicios principales - interfaz, servicios y ML - empaquetados como contenedores Docker y orquestados por Kubernetes.
3) La arquitectura permite el desarrollo políglota usando diferentes tecnologías para cada servicio, con integración continua y entrega continua mediante Jenkins.
Se denomina computación en la nube, conocido también como servicios en la nube, es un paradigma que permite ofrecer servicios de computación a través de internet
En esta presentación haremos una pequeña introducción a Deep Learning. Posteriormente, veremos cómo entrenar y evaluar nuestros modelos haciendo uso del servicio de Azure ML, utilizando Cntk con Python para el entrenamiento y C# para la evaluación del modelo.
El documento describe tres casos de uso de tecnologías de Big Data para banca móvil y TI. Se diseñó una arquitectura híbrida en la nube para procesar datos de clientes y ofrecer analíticas en tiempo real. Esto permitió un mayor conocimiento del cliente y ofertas más precisas. También se implementó una solución SIEM basada en Apache Spark e ingesta de datos de seguridad para detección temprana de problemas y ahorro de costos. Finalmente, se diseñó un sistema de monitorización para recopilar métricas de rendim
Este documento presenta una introducción a la observabilidad en OpenShift. Explica conceptos clave como métricas, logs y trazas distribuidas, y describe la arquitectura y herramientas de observabilidad de OpenShift como Prometheus, Loki, Jaeger y OpenTelemetry. También menciona áreas de futuro como exemplars y AIOps para correlacionar y analizar datos de observabilidad.
Containers en .NET (Dot Net 2018 - Spain)Eduard Tomàs
Este documento presenta una charla sobre contenedores en .NET. Se discuten las diferencias entre .NET Core y .NET Framework en contenedores, incluidas las ventajas de .NET Core como ser más modular y funcionar en Linux. También se cubren buenas prácticas para .NET Core como configuración, secretos y multi-stage builds. Se explican escenarios para mover aplicaciones .NET Framework existentes a contenedores y se concluye con una discusión sobre CI/CD utilizando contenedores.
Este documento describe el diseño e implementación de un sistema de adquisición de datos usando un microcontrolador PIC16F877A. El hardware incluye el microcontrolador, un cristal de 20MHz, capacitores, un MAX232 y un convertidor serial-USB. El software incluye programación del PIC para adquirir datos analógicos y enviarlos vía puerto serial, y programas en Matlab y Visual Basic para recibir los datos y graficar las formas de onda. El proyecto logró implementar con éxito el hardware y software propuestos para adquiri
BIG DATA en CLOUD PaaS para Internet de las Cosas (IoT)pmluque
Proyecto fin de carrera que nos introduce en el paradigma de Big Data y de las tecnologías que como Hadoop y sus ecosistema permiten la recolección y procesamiento masivo de datos. Incluye un caso práctico de movimiento, transformación y presentación de métricas e indicadores aplicado al sector de las máquinas expendedoras (vendings).
En la actualidad el "Big Data" se ha convertido en una palabra de moda que genera confusión en muchos escenarios. Los conceptos que usualmente se le asocian son: gran cantidades de datos, analítica de redes sociales, modernas herramientas para gestionar datos, datos en tiempo real, entre otros. Independientemente de como lo catalogamos, las empresas necesitan comprender y explorar cómo procesar y analizar de nuevas formas la variedad de información que tienen a su disposición. En muchas de las investigaciones aparecen referencias de tecnologías como Spark y Cassandra que se mencionan como un recurso externo dado por sentado su existencia. Brindar una solución que incluya todos los componentes de procesamiento y análisis puede llegar a ser un reto desde la perspectiva de infraestructura que se requiere provisionar, monitorizar y gestionar por el personal de
operaciones. Por otra parte crear la infraestructura de apoyo al desarrollo de estas aplicaciones bajo conceptos como inmutabilidad, consistencia y disponibilidad son elementos que se deben tener en cuenta desde las primeras fases de diseño de una solución. Ver el Big Data desde la perspectiva de DevOps en aras de viabilizar el desarrollo y liberación de aplicaciones y servicios con mayor velocidad es el tema central de esta presentación donde se abordaran conceptos y métodos generales, tecnologías y frameworks recomendados.
Este documento presenta un capítulo introductorio sobre cifra moderna. Explica conceptos básicos como que los criptosistemas modernos usan operaciones algebraicas en cuerpos finitos más grandes que el alfabeto utilizado. También clasifica los métodos de cifra moderna en cifrado en flujo, cifrado en bloque y cifrado de clave pública, dando ejemplos de cada uno. Finalmente, introduce el cifrado asimétrico y las funciones unidireccionales con trampa como la factorización y el logaritmo discreto.
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptxGabriela Soto
Este documento presenta el programa de un bootcamp de 4 semanas sobre fundamentos de inteligencia artificial que incluye introducciones a conceptos de machine learning, redes neuronales y TensorFlow.js, así como ejercicios prácticos. La cuarta semana se centra en introducir las redes neuronales y TensorFlow.js, explicando los componentes básicos de las redes neuronales, diferentes tipos de arquitecturas y cómo usar TensorFlow.js para ejercicios prácticos.
SafeHomeFace - Sistema de reconocimiento facial.Big-Data-Summit
Brindar a las Empresas de seguridad y administradoras de condominios, una plataforma para gestionar las cámaras de seguridad instaladas en sus clientes, utilizando algoritmos de machine learning
Este documento describe el diseño e implementación de BRAINWAVE, un sistema para crear flujos de trabajo a través de herramientas gráficas que simplifican la gestión de un clúster de supercomputación GPGPU. El sistema incluye un clúster de 4 nodos con procesadores Intel Xeon y tarjetas gráficas Nvidia Tesla, y un planificador de tareas que permite a los usuarios crear, modificar y ejecutar flujos de trabajo de manera sencilla. El documento también discute campos de aplicación potenciales como bio
El Cloud computing nos permite ofrecer servicios a través de Internet de una forma rápida y sencilla. Ofrecemos Cloud Services, de forma auto-escalable y elástica que nos permite centrarnos en el negocio, ahorrar costes, facilita la innovación y aporta un time to market menor.
Este documento describe cómo configurar dos routers Cisco en GNS3 para habilitar el protocolo CDP (Cisco Discovery Protocol). Las instrucciones guían al usuario a configurar las direcciones IP y habilitar CDP en cada router, observar la información de CDP, y capturar los paquetes CDP enviados entre los routers usando Wireshark para explorar su contenido.
Este documento describe el desarrollo de una extensión para gvSIG que permite ejecutar procesos geoespaciales de forma remota a través del estándar OGC Web Processing Service (WPS). El proyecto utilizó metodologías ágiles y orientadas a objetos durante el análisis, diseño y programación para crear un cliente WPS para gvSIG usando herramientas como Eclipse, Ant y JUnit. La extensión resultante, denominada extWPS 1.0, permite a gvSIG acceder y ejecutar procesos WPS de forma
Este documento presenta una introducción a los sistemas de cifra modernos. Explica que los criptosistemas modernos usan operaciones algebraicas en cuerpos finitos y que su fortaleza se basa en la imposibilidad de descubrir una clave secreta única a pesar de que el algoritmo es público. Además, distingue entre cifrado en flujo y en bloque y menciona algunos ejemplos de cada uno. Finalmente, introduce el cifrado asimétrico basado en funciones unidireccionales con trampa como RSA.
Plug&play:deploying big data_solutionsDavid Piris
Este documento describe cómo los contenedores Docker pueden agilizar el despliegue de aplicaciones Big Data mediante la virtualización a nivel de sistema operativo. Los contenedores permiten empaquetar aplicaciones y sus dependencias para ejecutarlas de forma aislada en cualquier entorno, lo que facilita el paso entre desarrollo y producción. El documento también presenta herramientas como Docker Compose y Docker Swarm para automatizar el despliegue de múltiples servicios Big Data como HDFS, Hive y YARN usando contenedores.
Estilo Arquitectónico Ecléctico e Histórico, Roberto de la Roche.pdfElisaLen4
Un pequeño resumen de lo que fue el estilo arquitectónico Ecléctico, así como el estilo arquitectónico histórico, sus características, arquitectos reconocidos y edificaciones referenciales de dichas épocas.
GRAFICA POR ATRIBUTOS EN CONTROL DE LA CALIDAD.pptx
Proyecto wonderful
1.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
1
SYSTEM
SECURITY
CAMARA + ML /
OPENCV
2.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
2
Indice
A
Amazon Web Services (AWS) ∙ 7
Aplicaciones de terceros ∙ 6
C
Codigo ∙ 9
D
Diagrama de Gantt ∙ 8
E
Entorno de desarrollo ∙ 4
Estado del arte y motivación ∙ 3
H
Hardware ∙ 7
I
Instancias en la nube ∙ 5
Intel NCSM2485.DK Movidius Neural Compute Stick
2 with Myriad X Vision Processing Unit ∙ 8
Introduccion
Objetivos del proyecto ∙ 2
Introducción ∙ 2
K
Keras ∙ 5
M
Maquinas e instancias ∙ 5
Mxnet ∙ 5
N
NOOBS ∙ 6
O
OpenCV, scikit‐image, scikit‐learn y mas ∙ 5
P
Paquetes y librerías ∙ 4
Python ∙ 5
R
Raspberry Pi 3 B+ ∙ 7
Raspberry Pi módulo de cámara V2, 8 megapixeles,
1080p ∙ 8
Resumen ∙ 11
RGPD ∙ 10
T
Twilio ∙ 6
3.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
3
Introducción
Objetivos del proyecto
Este proyecto sigue la idea de las cámaras de seguridad del gobierno Chino, mediante el video obtenido
de las cámaras de seguridad instaladas es capaz de detectar a criminales usando inteligencia artificial.
Nuestro proyecto mucho mas modesto, sigue esta idea y trata de que mediante el uso openCV y ML
(Machine learning / Maquinas de aprendizaje) pueda detectar ladrones reincidentes y avisar a la
seguridad de la tienda para tener una mejor vigilancia y evitar cualquier tipo de robo.
Como sabrán el RGPD (Reglamento general de protección de datos) evita que cualquier imagen sea
almacenada por más de 30 días, pero este problema no nos afectaría primero porque son imágenes de
video en tiempo real y porque se trataría de delincuentes reincidentes, de todas formas trataremos este
problema y su solución en profundidad en el apartado correspondiente.
Aunque la finalidad de este proyecto sería la creación de un clúster de servidores a los que se enviarían
las imágenes de las distintas cámaras de las tiendas para así tratar con mayor agilidad y escalabilidad las
imágenes, nos hemos centrado en la creación de un prototipo basado en Raspberry Pi para demostrar la
viabilidad del proyecto incluso a pequeña escala.
En resumen, las cámaras de la tienda enviaran las imágenes a nuestro equipo (Raspberry Pi) y estas
serán tratadas con la última tecnología en reconocimiento facial y cuando detecten un ladrón, nuestro
equipo enviara un sms al guardia asignado a la tienda con la foto del ladrón indicando que se trata de un
delincuente para que tome las medidas que estime oportunas para evitar un robo.
4.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
4
Estado del arte y motivación
La historia de las redes neuronales es larga y a la par confusa para los no profanos. Mucha gente se
sorprende de que el termino Deep learning (aprendizaje profundo) ha existido desde 1940 con
diferentes nombres, el más común es ANN (Artificial Neural Network). Este modelo esta inspirado en
por el cerebro humano y como las neuronas interactúan entre si, aunque esto no significa que sea un
modelo realista del cerebro humano, sino que imita el funcionamiento de este basando se en capas y
algoritmos.
El primer modelo de red neuronal fue realizado por McCulloch y Pitts en 1943. Esta red neuronal fue un
clasificador binario capaz de reconocer 2 categorías diferentes desde una misma entrada. El peso usado
para clasificar las etiquetas debía ser ajustado manualmente, lo que lo hacía poco escalable y preciso.
En 1950 el algoritmo del perceptrón fue publicado por Rosenblatt, este modelo automáticamente
ajustaba los pesos requeridos para la clasificación.
Luego vinieron Perceptron con activación linear publicado por Minsky y Papert en 1960, el algoritmo de
bakpropagation publicado por Werbos en 1974, feedforward neural networks publicado por Rumenlhart
y LeCun en 1986 y 1998 respectivamente.
Hasta por fin llegar al Convolutional Neural Network (CNN) publicado por LeCun en 1988, que es justo el
que usaremos en nuestra aplicación de reconocimiento fácil para así poder discernir entre compradores
y ladrones. CNN es considerado uno de los más potentes clasificadores de imágenes y es uno de los
responsables actuales del empuje que en estos días está teniendo el subcampo de la visión por
computador dentro de la época en que vivimos de las máquinas de aprendizaje.
La motivación para realizar este proyecto es que durante un tiempo estuve muy interesado en el master
de visión por computador, al final me decante en el de seguridad informática, pero tener esa pasión en
la visión por computar me a permitido adentrarme en este apasionante mundo y aprender una gran
cantidad de conocimientos técnicos que espero poder plasmarlos en este proyecto.
Este proyecto me permitirá poner énfasis en mis conocimientos de big data, machine learning, CCN,
openCV, etc.
5.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
5
Entorno de desarrollo
Paquetes y librerías
Para hacer posible este proyecto hemos optado por trabajar con diferentes librerías y paquetes usadas
en el estudio de aprendizaje profundo en visión por computador, nuestro entorno de desarrollo consta
de lo siguiente:
Python
Python es un lenguaje de programación compilado que es fácil de aprender y es una de las mejores
soluciones para trabajar con los algoritmos de aprendizaje profundo, tiene una sintaxis intuitiva y simple
y nos permite centrarnos en el aprendizaje de los conceptos básicos de aprendizaje profundo. Esta
simplicidad nos ahorrara horas de trabajo buscando errores de código que podía suceder con otros
lenguajes de programación.
Keras
Se trata de una librería de redes neuronales de aprendizaje profundo lo que nos permitirá construir y
entrenar nuestro modelo de una forma rápida. Keras soporta ambas librerías TensorFlow y Theano,
facilitando muchísimo la creación y entrenamiento de redes rápidamente.
Mxnet
También usaremos mxnet, una libraría de aprendizaje profundo que esta especializado en aprendizaje
distribuido y multimaquina. Tiene la habilidad de paralelizar el entrenamiento a través de múltiples
GPUs/dispositivos lo cual es critico cuando entrenamos arquitecturas de redes neuronales profundas
con dataset de imágenes masivas.
OpenCV, scikit‐image, scikit‐learn y mas
OpenCV es una librería para el procesado de imágenes en tiempo real, esta librería creada entorno a
1999 no fue hasta 2009 en la versión 2.0 que incluyo un soporte increíble para Python lo cual nos
permite representar imágenes como arrays Numpys.
OpenCv se ha convertido en el estándar de facto para procesar imágenes en tiempo real, nos permite
funciones como cargar imágenes desde el disco del PC, mostrar la imagen en la pantalla y el uso de
diferentes operaciones de procesado de imágenes (redimensionar, encoger, agrandar, recortar, etc)
Como complemento a OpenCV también usaremos scikit‐image que se trata de una pequeña colección
de algoritmos para el procesado de imágenes.
Scikit‐learn is una librería de Python desarrollada para maquinas de aprendizaje, validación cruzada y
visualización. Esta librería open source es el complemento ideal a Keras ya que nos evita volver a
reinventar la rueda cuanto tratamos de entrenar, testear y validar nuestros modelos de aprendizaje
profundo.
6.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
6
Maquinas e instancias
Nos centraremos en las maquinas he instancias para realizar este proyecto:
Instancias en la nube
Tal como indicamos en la introducción no nos centraremos en la creación de instancias en la nube, ya
que nuestro proyecto mucho mas modesto se basa en la utilización de Raspberry y no un servidor
central en al que le pasaremos los videos de todas las cámaras para poder pasarle los algoritmos.
En caso de que deseáramos realizar esto, amazon dispone de AMI (Amazon Machine Instance)
preconfiguradas con todas las librerías necesarias para el aprendizaje profundo preinstaladas y
preconfiguradas, así como soporte para uso de GPUs lo que es extremadamente beneficioso.
NOOBS
Se trata de una imagen del software Raspberry con herramientas preinstaladas.
Raspbian viene preinstalado con un montón de software para la educación, la programación y el uso
general. Tiene Python, Scratch, Sonic Pi, Java y más.
7.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
7
Aplicaciones de terceros
Nos centraremos en aplicaciones de terceros o en nuestros caso almacenamiento en la nube apra
realizar correctamente nuestro proyecto.
Twilio
Twilio es un servicio telefónico en la nube que mediante una API REST nos permite llamadas, SMS, MMS
y mas funciones.
Twilio servirá de puente entre nuestra raspberry y el teléfono del guardia de seguridad, ya que será el
que se encargará de enviar el MMS con la imagen del delincuente una vez sea detectado por nuestro
algoritmo. Según indica la documentación se podría enviar los mensajes via Whatsapp pero ahora
mismo nos vamos a centrar en el envió de SMS standards.
Amazon Web Services (AWS)
AWS tiene un servicio llamado Servicio de almacenamiento simple (S3). Es un servicio muy popular
usado como almacén de archivos, nosotros usaremos S3 para almacenar las imágenes generadas por la
cámara de seguridad de Raspberry que son enviados al móvil. S3 está organizado en buckets, un bucket
contiene archivos y carpetas. También puede tener permisos y grupos de seguridad propios o
customizados.
Permite guardar incluso en diferentes formas de base de datos (Postgres, Mysql, etc), permite usar
funciones almacenadas mediante lambdas (otra de las funcionalidades de amazon).
Las imágenes almacenadas serán enviadas desde S3 al teléfono del guardia de seguridad mediante la Api
de Twilio.
8.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
8
Hardware
Enumeraremos todo el hardware necesario para llevar acabo este proyecto:
Raspberry Pi 3 B+
La Raspberry Pi 3 B+ apareció en marzo del 2018 para actualizar el modelo anterior la Raspberry Pi 3
Model B y entre sus mejoras cuenta con un nuevo procesador y mejor conectividad, así que pasa de
tener 1.2Ghz a tener 1.4Ghz y en cuanto a la conectividad inalámbrica ahora incorpora doble banda a
2,4GHz y 5GHz, y su nuevo puerto Ethernet se triplica, pasa de 100 Mbits/s en el modelo anterior a 300
Mbits/s en el nuevo modelo, también cuenta con Bluetooth 4.2 (Low Energy).
Intel NCSM2485.DK Movidius Neural Compute Stick 2 with Myriad X Vision Processing
Unit
Se trata de un USB que contiene hardware especializado para acelerar la computación en redes
neuronales y visión por computador, así como ciertos dataset preentrenados para evitar gastar tiempo
en el entrenamiento de las redes neuronales.
Según la web de Intel: “ Intel® Neural Compute Stick 2 (Intel® NCS 2) nuevo y mejorado cuenta con la
última unidad de procesamiento de la visión de alto desempeño de Intel: La Unidad de procesamiento
de visión Intel® Movidius™ Myriad™ X. Con más núcleos informáticos y un acelerador de hardware
dedicado para inferencia de redes neuronales profundas, Intel® NCS 2 ofrece hasta ocho veces más
desempeño, en comparación con la Barra de cómputo neuronal Intel® Movidius™ (NCS) de la
generación anterior.”
Raspberry Pi módulo de cámara V2, 8 megapixeles, 1080p
Se trata de la segunda versión de la cámara oficial de Raspberry, con 8 megapixeles y definición en HD.
Sera la encargada en recoger las imágenes que serán tratadas en la Raspberry.
9.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
9
Diagrama de Gantt
Hemos realizado un diagrama de Gantt viendo la complejidad de nuestro microproyecto, podemos ver
que se trata de un proyecto con un prototipado rápido (en 1 mes) ya tendremos un prototipo valido
para probar el funcionamiento del prototipo correctamente.
10.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
10
Codigo
En nuestro código hemos seguido de inspiración uno de los muchos codigos disponibles en internet que
previamente hemos modificado para realizar las funciones que deseamos, asi pues hemos elegido un
código de reconocimiento facial que ha sido modificado para permitir detectar ladrones, el código
original funciona exactamente al contrario, ya que detecta pasado 20 segundos quien es un usuario
desconocido y envia un SMS de advertencia. En nuestro caso hemos quitado el temporizador de 20
segundos por que no es útil en nuestro caso y los ladrones son los que identificara nuestro algoritmo,
una vez detecte a los ladrones el algortimo lo que suele tardar 125 frames unos 5 segundos (Aunque
esto depende mucho del numero de fotos de ladrones del dataset, la potencia del equipo, si esta
distribuido el calculo entre diferentes equipos o solamente en uno como en nuestro caso)
El esquema del código es el siguiente:
En el directorio de Cascades que es donde se almacena los Haar Cascades (Algoritmo de reconocimiento
facial) para el reconocimiento de caras dentro de las imágenes.
En conf guardaremos un archivo json donde almacenaremos todas las claves ya sean de S3 hasta Twilio.
Dentro de pyimagesearch tendremos toda la lógica necesaria para el reconocimiento de caras y su
posterior identificación en los videos obtenidos por la cámara raspberry.
gather_selfies.py es donde almacenaremos nuestros dataset con las imágenes de los delicuentes que
queremos detectar.
train_recognizer.py es un script que permite entrenar nuestro algoritmo de reconocimiento facial.
security_cam.py es el encargado de monitorizar todos los videos obtenidos por la cámara en buscar de
identificar delicuentes, una vez identificado un delicuente se encarga de usar el twilionotifier.py que es
un script que se encarga de enviar la foto del delicuente al móvil de la persona de seguridad.
11.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
11
RGPD
Tal como hemos indicado anteriormente, este proyecto esta fuertemente afectado por la RGPD
(Reglamento general de protección de datos), en nuestro caso es afectado por que las imágenes de
video solo pueden ser almacenadas por un máximo de 30 días, excepto si se trata de un cuerpo de
seguridad o son imágenes que pertenecen a la comisión de un delito, que podrían ser almacenadas
hasta un total de 3 años.
En nuestro proyecto las imágenes de la cámara son en tiempo real y solo se vería afectada tal vez las
fotografías de los delincuentes que usáramos como muestra para el reconocimiento facial, pero como
son fotografías que habrían sido obtenidas durante la comisión de un delito anterior, estamos hablando
que podríamos almacenar hasta 3 años dichas fotografías.
Esta es la única parte tediosa del proyecto ya que dependería de la interpretación de la ley y habría que
consultarlo con un abogado especializado en protección de datos si se estuviera incurriendo en un delito
al difundir las imágenes del delincuente vía móvil al personal de seguridad, pero todos los demás pasos
incluidos en el proyecto no están afectados por la RGPD.
12.
SYSTEM SECURITY CAMARA + ML / OPENCV Autor: Diego Muiño Orallo
12
Resumen
El resumen de nuestro proyecto seria el siguiente:
‐La Raspberry Pi monitorizaria todos los videos obtenidos por la cámara en busca de caras identificables,
una vez identificada la cara de un delincuente, la raspberry enviaría la foto al móvil de la persona de
seguridad y mostraría en los videos un cuadrado rojo con la palabra ladron para facilitar la identificación
en la tienda.