Idea de proyecto | Hazme pasar

TÍTULO DEL PROYECTO: Hazme pasar

¿Por qué este nombre?
El nombre del proyecto es solo una exclamación para guiarse a través del trabajo monótono, en el mundo actual de tecnologías de automatización en expansión.

DESCRIPCIÓN GENERAL:
una aplicación web gratuita, sin conexión, en tiempo real, de código abierto (con licencia MIT) para ayudar a los organizadores de cualquier evento a permitir que solo las personas autorizadas/invitadas utilicen la tecnología de reconocimiento facial o el código QR.

Está hecho para automatizar la tarea de autenticar a las personas y ya no es necesario verificar las tarjetas de invitación, verificar las aplicaciones requeridas instaladas (como en la mayoría de los festivales universitarios), etc.

El proyecto utiliza el marco MaterializeCSS basado en las pautas de diseño de materiales de Google.

El proyecto está realmente fuera de línea y está construido utilizando el modelo dlib preentrenado que tiene una precisión del 99,38 % (personas adultas) en Label Faces in the Wild Dataset.

La persona necesita un navegador líder (preferiblemente Chrome) para usar la aplicación web y un sistema MacOS o Linux basado en UNIX para interactuar/usar el proyecto.
La interfaz de usuario de la aplicación web cuando se abre en Google Chrome.
Proyecto 1

REQUISITOS

  • Node.js
  • MongoDB
  • Python3
  • C++11

USO
La persona tiene que alimentar las imágenes de las personas invitadas en la aplicación, almacenar información en la base de datos y entrenar el modelo antes de usar esas imágenes.
El usuario tendría la opción de elegir rastrear a las personas entrantes/salientes. Primero, se reconoce el rostro de la persona usando la cámara y se muestra el nombre si su información está guardada en el servidor. El nombre se muestra en color rojo. La información de esta persona luego se compara con el registro buscado en la base de datos MongoDB. Si la información coincide y la persona está permitida, el nombre se muestra en color verde.
Si el método anterior no se realiza con éxito por algún motivo, existe un método adicional o un método alternativo que se puede utilizar, es decir, el código QR. La persona puede mostrar su código QR en el que se almacena su identificación única, que luego se busca en la base de datos de MongoDB para la autenticación.
Hay 3 capas de seguridad.

  1. Reconocimiento facial
  2. Verificación cruzada de la información de la base de datos de MongoDB
  3. Verificación cruzada de información físicamente

El front-end de la aplicación también muestra toda la información de la persona almacenada en la base de datos. Se le puede pedir a la persona que confirme la información confidencial almacenada en la base de datos en caso de alguna ambigüedad.
proyecto2

Barack Obama ha sido reconocido con el rostro y sus datos han sido cotejados con la información almacenada en la base de datos MongoDB, por lo que se muestra en verde.

Shubham Malik (yo) tiene su rostro verificado, por lo que se muestra el nombre, pero la información no se pudo cotejar con la base de datos, ya que no se guardó dicho registro, por lo tanto, el color rojo.

Hay un pequeño ícono azul que muestra el código QR que se debe usar para leer el código QR en caso de que la persona no pueda ser identificada o pueda ser mal identificada (en el caso de niños) el nombre se mostrará como Desconocido (si no está identificado) . El usuario debe detener la aplicación para que la información almacenada no se actualice según los datos en tiempo real. Haga clic en el botón Código QR para escanear el código. Se notifica al usuario si el código QR es legítimo y si la persona está autenticada o no. Luego, el usuario debe reanudar la aplicación después de escanear el código QR, para que los datos se puedan actualizar una vez más en tiempo real.
proyecto3

Cuando la persona se vaya, marque el botón Salir para registrar su tiempo de salida. Se muestran notificaciones útiles al usuario, como durante la autenticación, se produce algún error, etc.
Autenticar a las personas de esta manera, de forma gratuita, SIN INTERNET , sin límite de API, por lo que debería ser muy fácil.

En el futuro, se agregará la función de información de datos para el análisis de datos utilizando tablas, gráficos, etc.

DIAGRAMA
proyecto4
Este es un modelo de alto nivel de cómo funciona la aplicación. El poder de JavaScript y Python se combina en una sola aplicación. El comando puede ser entrenar o ejecutar .

Todo esto sucede dentro de la computadora, por lo que no se requiere Internet.

ESTRUCTURAS DE DATOS y ALGORITMOS
Actualmente, solo el reconocimiento facial usa los algoritmos que detectan rostros, encuentran la codificación, hacen coincidir la codificación con las codificaciones conocidas usando la distancia euclidiana (se usa el paquete python face_recogntion para aquellos que tienen estas funciones escritas). El modelo Dlib utilizado está preentrenado, por lo que no se aplican algoritmos externos a partir de ahora. En lo que respecta a la estructura de datos, las arrays Numpy se utilizan para almacenar la información de codificación multidimensional de la cara.

Actualmente, utiliza la búsqueda lineal para encontrar la codificación requerida dentro del límite de error permitido en tiempo O(N). En el futuro, intentaría usar la búsqueda binaria para bajarlo a O (logN). Pero los datos son dimensiones multidimensionales (alrededor de 150), por lo que llevaría tiempo.

HERRAMIENTAS UTILIZADAS

  • código de estudio visual
  • Navegador web Google Chrome
  • Base de datos MongoDB
  • RoboMongo

APLICACIÓN
Estos son algunos de los casos de uso que puedo ver, aunque yo mismo no los he usado en condiciones del mundo real.

Autenticación

Este proyecto encontraría su uso en todos los lugares donde se requiere autenticación y todavía se hace manualmente. Incluye festivales universitarios, eventos, reuniones, funciones corporativas, fiestas, etc.

Oportunidad para la comunidad

Este proyecto aprovecha el poder de Node.js y Python en una sola aplicación. Se puede utilizar para otros fines también. Las bibliotecas populares como Tensorflow, PyTorch, que son para Python, se pueden usar en la aplicación web Node.js para aprovechar el poder del aprendizaje automático en una aplicación creando un modelo para su caso de uso y usándolo sin enviar datos a empresas de terceros con API. límites. Se puede utilizar para el aprendizaje en línea/aprendizaje fuera de línea del modelo con sus datos para mejorar la precisión con el tiempo y la privacidad total. El idioma ya no debería ser una barrera para incluir ML en su aplicación. No necesita conocer la pila completa de desarrollo de Python para usar las bibliotecas de Python ML en su aplicación web Node.js. Node está aquí para vivir :).

Iniciativa Educativa

Puede ser utilizado por instituciones educativas para enseñar a los estudiantes a ver/experimentar el poder del aprendizaje automático, aprendizaje profundo con una interfaz gráfica de usuario (GUI) interactiva. Los alentaría a aprovechar este proyecto para construir algo para ayudar a otras personas.

Proyecto Enlace
Proyecto

¡Experiméntelo ejecutándolo en su máquina y contácteme para abrazos o errores!

¿POR QUÉ ES DIFERENTE?

  • Un proyecto único, tal vez único en su tipo. No hay códigos de respaldo en Internet para consultar si algo sale mal. Proyecto abierto.
  • La comunidad de Stackoverflow cerró/rechazó un tipo similar de preguntas «reconocimiento facial en Node.js». Es un abanderado de todos ellos.
  • Antes de este proyecto: this (posible con API de terceros), this (cerrado por la comunidad).
  • Después de este proyecto: esta (solución relevante, mi primer voto a favor), esta (respuesta editada para incluir este proyecto).

INVESTIGAR

Googleé mucho. Usé StackOverflow tal vez alrededor de 50 veces, busqué en Google alrededor de 100 veces. Leí esta publicación en etapas iniciales para entender. Después de eso, estaba solo junto con la Búsqueda de Google. Mucho más está en camino. Pista: Soporte de voz, deja volar tu imaginación.

LOGROS

  • Recibí ofertas de 4 publicaciones en línea para publicar mi publicación (donde compartí mi experiencia construyendo este proyecto, hablando sobre cómo funciona, por qué lo hice, cómo lo hice, qué significa para mí, para quién es…).
  • Publicado en Hacker Mediodía . Enlace al artículo
  • Más de 75 estrellas, más de 10 bifurcaciones en GitHub
  • Construido en unas pocas semanas. Código abierto el 23 de julio de 2017. Licencia MIT.
  • Una gran experiencia de aprendizaje que no puedo obtener con proyectos ya realizados.

Me enteré de ProGeek cuando se lanzó. En unas vacaciones de verano me pasó un incidente que derivó en este proyecto. Pensé que podría ser una buena idea tener un prototipo funcional del proyecto junto con la idea.

Este artículo es una contribución de Shubham Malik . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *