Puede automatizar mucho, aunque no todos. Sin embargo, con la ayuda de la automatización, puede simplificar significativamente su vida, haciéndola más cómoda y, en algunos casos, más segura. Quiero decir, protégete de los jefes. Uno de los desarrolladores de las redes neuronales decidió crear un sistema que, cuando se acercaba el jefe, minimizaba inmediatamente las "ventanas inapropiadas", ocultándolas fuera de la vista.Para el usuario, las acciones del sistema se ven bastante transparentes, ya que la red neuronal después de detectar a un jefe que se aproxima da una notificación correspondiente. Y solo entonces minimiza las ventanas, dando otra advertencia. El sistema en sí está involucrado en el hecho de que con la ayuda de una cámara web normal de buena calidad, captura las caras de las personas que se acercan al escritorio, y cuando se identifican los jefes, elimina rápidamente todo de la pantalla de la computadora, lejos del pecado. En el desarrollo, se utilizó la biblioteca Keras, lo que simplificó la tarea. ¿Cómo funciona todo?Sí, nada particularmente complicado, el desarrollador no recibió ningún problema especial en la implementación del sistema. Por cierto, una de las condiciones al crear un sistema de este tipo era enseñar a la red neuronal a reconocer la cara del jefe de 5 a 7 metros, para no preocuparse de que el jefe pueda ver todo desde cerca. No hay mucho tiempo para la identificación del jefe, solo unos 4-5 segundos.Por supuesto, no hay nada bueno en hacer trabajo externo en el trabajo. Este ejemplo es solo un sistema de trabajo, que se hizo, más bien por diversión, que por problemas reales de las autoridades.
Por lo tanto, el desarrollador decidió fotografiar constantemente todo lo que sucede a su alrededor, para notar al jefe a tiempo. El sistema de detección se llama Boss Sensor.
El sistema es simple:Es decir, en el sentido literal de la palabra, necesita: obtener imágenes faciales, reconocer, cambiar pantallas, lo que le permite ocultar ventanas abiertas de uno de los escritorios.El desarrollador decidió no filosofar con picardía, sino utilizar la cámara estándar Buffalo BSW20KM11BK.
Por supuesto, puede crear una imagen usted mismo, utilizando un software. Pero es mejor confiar en el sistema: trabajar en él duró bastante tiempo, además, el sistema funciona con bastante precisión. Con respecto a la obtención de fotos, el desarrollador ofrece a todos familiarizarse con la fuente .En cuanto a la capacitación, aquí todo es relativamente simple: existen sistemas similares desde hace bastante tiempo. Para lograr el objetivo, debe realizar tres pasos:- Colección de imágenes;
- Preprocesamiento de fotos;
- Crear un sistema de autoaprendizaje.
Implementación de ideas
Colección de imágenes. Para que las redes neuronales tengan algo para entrenar, los creadores del sistema usaron miles de fotos. Se pueden tomar, tanto de colecciones privadas como de otros paquetes de otros usuarios. Para el autoaprendizaje del sistema, necesita una gran cantidad de disparos. Decidieron tomar de:- Imagen de Google
- Colecciones de imágenes de Facebook
- Base de archivos de video.
Inicialmente, el desarrollador recibió miles de imágenes con diferentes caras, pero su sistema no pudo aprender por sí mismo en base a fotos. La biblioteca ImageMagick se utilizó para extraer caras de una gran cantidad de fotografías .El resultado es una base de datos de los rostros de los empleados y del jefe mismo:
si desea reconocer el rostro de una persona, es mejor probar la API web, para obtener una imagen, una herramienta como la API de visión artificial en los servicios cognitivos. El desarrollador decidió seguir su propio camino. La red neuronal creada por él tenía una cierta estructura:Estructura del programa____________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
====================================================================================================
convolution2d_1 (Convolution2D) (None, 32, 64, 64) 896 convolution2d_input_1[0][0]
____________________________________________________________________________________________________
activation_1 (Activation) (None, 32, 64, 64) 0 convolution2d_1[0][0]
____________________________________________________________________________________________________
convolution2d_2 (Convolution2D) (None, 32, 62, 62) 9248 activation_1[0][0]
____________________________________________________________________________________________________
activation_2 (Activation) (None, 32, 62, 62) 0 convolution2d_2[0][0]
____________________________________________________________________________________________________
maxpooling2d_1 (MaxPooling2D) (None, 32, 31, 31) 0 activation_2[0][0]
____________________________________________________________________________________________________
dropout_1 (Dropout) (None, 32, 31, 31) 0 maxpooling2d_1[0][0]
____________________________________________________________________________________________________
convolution2d_3 (Convolution2D) (None, 64, 31, 31) 18496 dropout_1[0][0]
____________________________________________________________________________________________________
activation_3 (Activation) (None, 64, 31, 31) 0 convolution2d_3[0][0]
____________________________________________________________________________________________________
convolution2d_4 (Convolution2D) (None, 64, 29, 29) 36928 activation_3[0][0]
____________________________________________________________________________________________________
activation_4 (Activation) (None, 64, 29, 29) 0 convolution2d_4[0][0]
____________________________________________________________________________________________________
maxpooling2d_2 (MaxPooling2D) (None, 64, 14, 14) 0 activation_4[0][0]
____________________________________________________________________________________________________
dropout_2 (Dropout) (None, 64, 14, 14) 0 maxpooling2d_2[0][0]
____________________________________________________________________________________________________
flatten_1 (Flatten) (None, 12544) 0 dropout_2[0][0]
____________________________________________________________________________________________________
dense_1 (Dense) (None, 512) 6423040 flatten_1[0][0]
____________________________________________________________________________________________________
activation_5 (Activation) (None, 512) 0 dense_1[0][0]
____________________________________________________________________________________________________
dropout_3 (Dropout) (None, 512) 0 activation_5[0][0]
____________________________________________________________________________________________________
dense_2 (Dense) (None, 2) 1026 dropout_3[0][0]
____________________________________________________________________________________________________
activation_6 (Activation) (None, 2) 0 dense_2[0][0]
====================================================================================================
Total params: 6489634
El código se puede encontrar aquí . El desarrollador dice que el sistema comenzó a reconocer casi inequívocamente al jefe cuando aparece cerca de la cámara.Bueno, ahora necesita establecer instrucciones claras sobre ese punto, si el chef aparece a continuación.
Ahora todo está listo, y la tecnología ha sido probada muchas veces. Ahora puede iniciar el sistema y hacer que responda al jefe.Después de la prueba, todo resultó ser viable. A pocos metros de la cámara, el jefe seguía tranquilo y en calma. El sistema tomó todas las fotos necesarias, realizó un análisis y pudo identificar correctamente al jefe desarrollador. La prueba mostró claramente una cosa: todo funciona.El código fuente de dicho sistema se puede encontrar en este enlace .El sistema de identificación primero determinó que realmente había un jefe, luego logró reconocer la imagen y ... sí, minimizar todas las ventanas. Por el momento, la detección de rostros está utilizando OpenCV. Quizás Dlib mejorará la precisión del reconocimiento.Hay, por supuesto, proyectos más serios, donde preparan, por ejemplo, sistemas de visión artificial que enseñan juegos de computadora . Las redes neuronales se están volviendo cada vez más populares: los desarrolladores de automóviles, científicos, creadores de sistemas robóticos y otros especialistas trabajan con ellos.