Nous avons eu quelques jours entre les grands projets et nous avons décidé de nous moquer de la porte du chef d'unité. Juste pour le plaisir. Parce que les drones nous reconnaissent déjà sur nos visages - qu'est-ce qui aggrave la porte?
Au moment du démarrage du projet informatique, nous avions déjà un panneau de brassage imprimé sur une imprimante 3D. Pendant deux jours, nous avons réalisé un prototype d'appareil en fer, des bibliothèques prêtes à l'emploi, et une maman, qui prend en compte les employés ou permet de vérifier qu'une personne est passée par le tourniquet par son laissez-passer.
Pas d'argent. Nous avons utilisé uniquement l'open source.
Vous pouvez répéter cela en 15 à 20 minutes avec notre script.
Idée et approche de mise en œuvre
Tout a commencé avec une résidence d'été, où nous nous sommes reposés après l'achèvement d'un grand projet. Il y avait un tel moment où il était très difficile de frapper la porte avec la clé. En ce sens que nous avons immédiatement pensé qu'il était mauvais de sortir nos mains de nos poches en hiver, eh bien, nous avons trouvé un tas d'autres applications, jusqu'à vérifier les laissez-passer et les identités du personnel.
En fait, nous voulions faire un couloir avec des faisceaux laser, comme dans le film Resident Evil, mais nous n'avions pas le temps. En général, je voulais l'effet de l'interaction avec le système pour qu'il réponde également par une voix.
Puisque nous voulions un prototype, voici l'orientation maximale sur la fonctionnalité et les résultats rapides au détriment de l'apparence, des dimensions et de la belle architecture. Cela s'est avéré effrayant, mais rapide et fonctionne.
Tout d'abord, nous avons divisé la commande de porte en modules et chacun a commencé à écrire le sien. Le module de reconnaissance du premier jour était externe au service Web du partenaire, il y avait toujours notre ancien moteur de réseau neuronal interne d'un autre projet, en plus il y avait des solutions open source. En conséquence, il a gagné l'open source: notre propre moteur nécessitait une refactorisation et une mise à jour (cela a pris beaucoup de temps), la ressource web partenaire voulait de l'argent et ne l'a pas laissé entrer, mais l'open source est une open source.
Electronique et boîtier
Au départ, ils ont envisagé la possibilité d'acheter simplement une serrure à commande électronique et de la remplacer par une serrure de porte interne standard. Mais en raison de la présence de verre avec des volets dans la porte, la serrure interne était inhabituellement étroite et il n'y avait tout simplement pas de remplacement électronique sur le marché. Par conséquent, notre ingénieur a imprimé un cadenas détachable, fournissant des conteneurs pour l'unité de contrôle et l'unité d'ouverture de la serrure.
Ainsi, le projet du bâtiment:
Nous l'avons imprimé à partir d'un modèle que nous avions nous-mêmes réalisé avant le projet (la modélisation et l'ajustement ont pris plus de temps que l'écriture du code):
La conception de l'étui est réalisée en Compass-3D. En conséquence, Dima a fait 3 versions du boîtier, tant qu'il a pu choisir la disposition optimale des éléments et des attaches.
À l'intérieur du boîtier de la serrure, un moteur MG-995 avec une force de 10 kg (la force de démarrage réelle est de 5 à 7 kg), une paire de capteurs infrarouges pour contrôler l'automatisation à l'entrée et à la sortie, un microcontrôleur Esp8266 avec un module Wi-Fi et un serveur Web qui, pour plus de simplicité, a reçu des commandes de contrôle pour l'ouverture et la fermeture des portes via http. Le même contrôleur a tourné les vitesses de la clé.
La partie logicielle du microcontrôleur est écrite en C.
Plongés dans les détails de la fabrication de l'étui et du remplissage, nous avons involontairement pensé à la complexité d'objets apparemment simples.
Total: la centrale de fermeture peut accepter les commandes d'ouverture via Wi-Fi.
Partie de reconnaissance faciale
Nous avons besoin d'une unité de reconnaissance faciale qui enverra une commande «d'ouverture» au château si elle doit être ouverte. En raison de l'architecture modulaire, il peut fonctionner sur un mini-serveur dans une maison intelligente ou être un service Web sur Internet. Nous avons également besoin d'un point Wi-Fi dans le réseau local avec l'unité de contrôle de verrouillage: il s'agit soit d'un client léger soit d'un serveur domestique. Nous avons déployé le serveur directement sur l'ancien ordinateur portable, c'est-à-dire que nous avons combiné le serveur et le client léger. Ils ont branché l'appareil photo sur l'ordinateur portable via USB.
Pour la reconnaissance elle-même, nous nous sommes arrêtés à la
reconnaissance faciale de la bibliothèque Python sous une licence ouverte de la Massachusetts University of Technology.
Plusieurs photos de chaque participant au projet ont été téléchargées sur le modèle - devant, de profil et dans la nature. En théorie, plus vous téléchargez de photos sur le modèle, plus sa précision sera élevée, mais dans la plupart des cas, il y a suffisamment d'avatars de Facebook ou d'images de la base de données d'Eychars.
Nous avons déployé l'infrastructure en tant que service dans notre
Technoserv Cloud et avons rapidement débogué. Le déploiement d'une nouvelle machine virtuelle avec tous les services a pris 20 minutes. Ensuite, ils ont téléchargé tout le code avec les bibliothèques sur un ordinateur portable de travail pour un travail autonome.
Le système sélectionne le plus grand visage du cadre et le reconnaît 2 fois avec une fréquence de 0,5 seconde.
La webcam est sortie de la boîte des choses oubliées des années 90. Ce qui était déjà, mais c'était suffisant.
Le temps de reconnaissance total est d'un peu plus de trois secondes. C'est parce que l'ordinateur portable est vraiment vieux et ne possède pas de carte vidéo. Avec vidyuha et la vitesse de reconnaissance rapide des caméras Web augmentera considérablement.
Ils ont immédiatement écrit un connecteur pour la reconnaissance vocale, puisque seul le visage n'est pas assez fiable (plus de détails plus tard), deux facteurs sont nécessaires.
Il a fallu 6 heures pour un prototype plus ou moins débogué après avoir choisi une bibliothèque.
Nous avons également connecté un haut-parleur Bluetooth à l'ordinateur portable pour qu'il puisse parler. L'ordinateur portable lui-même était caché dans un placard avec des lettres de remerciements, comme un appareil intégré.
Les tests
La description de la bibliothèque dit: «Construit à l'aide de la
reconnaissance faciale de
pointe de
dlib , construite avec un apprentissage en profondeur. "Le modèle a une précision de 99,38% sur le benchmark
Faces étiquetées dans la nature ." Naturellement, il n'y en a pas 99,38%, mais beaucoup moins. Parce que vous devez charger des photos normales (et plus), réglez un appareil photo normal et égalisez la lumière. Mais puisque, pendant que vous creusez à la porte, elle parvient à faire 4 à 5 cadres, il s'ouvre généralement presque immédiatement.
Erreurs: à quelques reprises, la porte s'est confondue et ne nous a pas laissés partir tout de suite. Des inconnus d'autres services n'ont pas pu entrer.
Vous pouvez faire des grimaces à la porte, elle comprend tout et ouvre.
Selon la photo de l'employé, bien sûr, il s'ouvre. Nous avons ajouté le module de reconnaissance de la personne entière dans la version suivante (en dehors de ces deux jours), et il a commencé à s'ouvrir uniquement au buste.
Ensuite, ils ont tordu un test de couleur (la bibliothèque de sous-échantillonnage et prend les images en noir et blanc dans le traitement), les mouvements du visage et les clignotements - vous avez besoin d'un meilleur appareil photo pour voir une personne quand il est encore en forme, et tout sera.
C'est, en remplacement de clé, bien sûr que non, car un deuxième facteur est nécessaire - par exemple, la voix. Mais adapté aux portes non critiques. Tenir compte également des employés qui passent devant la porte. Pour vérifier si un employé correspond également au laissez-passer au point de contrôle. Vous pouvez également reconnaître le chien qui rentre chez lui près de la porte. Si vous vous souvenez de l'histoire de la reconnaissance des formes, l'une des premières applications industrielles a été que le développeur américain a eu un chat voisin, de la merde sur la pelouse. Il a fait une reconnaissance de chat dans le semi-squat et a connecté le système d'irrigation à son mini-serveur. Après quelques jours, le chat s'est rendu compte qu'il valait mieux ne pas faire de merde. Jamais. Nulle part.
L'affaire s'est avérée futuriste et encombrante, dans la version commerciale, il ne devrait y avoir rien du tout à la porte, à l'exception d'une caméra avec un microphone et d'un petit écran avec un assistant visuel et audio.
Répétez à la maison
Lien vers la bibliothèque ci-dessus.
Dans le script lui-même, les noms des employés (Emp1, Emp2) correspondent aux fichiers avec leurs photos dans le répertoire, vous devez ajouter les vôtres. La résolution n'a pas d'importance, vous pouvez au moins 640x480. Il y a deux catégories d'employés - ciblés, à ignorer et ceux qui envoient immédiatement chez eux.
En tant qu'appareil photo, nous avons utilisé la webcam logitech la plus simple. Au lieu d'un ordinateur portable, il est tout à fait possible d'utiliser un microcontrôleur, mais vous devez comprendre comment y mettre du python et des bibliothèques sélectionnées.
Résultat
La technologie a été ressentie par les vendeurs des départements voisins travaillant avec nous au même étage. Le boîtier de serrure superposé a l'air particulièrement cool, et avec quel son, il ouvre la porte! Ne le croyez pas, mais la promotion interne de la technologie est aussi nécessaire que celle externe.
On nous a demandé à quelques reprises pourquoi nous avions fait cela après les heures.
La réponse est parce que je voulais vraiment amuser nos gars pour qu'ils ressentent les technologies que nous utilisons sur un appareil qui fonctionne. Parce que c'est un prototype sur le matériel et les logiciels tout de suite et c'est une si petite session de formation avant de plus gros projets. Il est peu probable que le prototype lui-même soit utilisé quelque part, mais il a une fonction éducative et une morale.
Eh bien, nous nous sommes assurés de la rapidité avec laquelle les prototypes industriels peuvent être fabriqués. Nous réalisons généralement des projets pilotes rapides (2-3 semaines) pour la production. Soit dit en passant, s'il est intéressant de calculer rapidement quelque chose en termes d'automatisation et de faire un pilote - ce n'est que la spécialisation de notre équipe.
Envoyez un e-mail à tmishin@technoserv.com .
On se sent comme après un bon hackathon.
Et maintenant, nous avons un jouet.
Un collègue est venu en courant hier et a montré une vidéo d'un
drone avec un lance-flammes . Nous semblons avoir quelques idées ...
J'ai également dit tout cela au fait qu'il y a littéralement 3 à 4 ans, il était très coûteux et long d'écrire des détecteurs industriels pour la vidéosurveillance. Contrôler la taille de la fraction de matière sur la bande transporteuse, s'arrêter en cas de corps étrangers, s'arrêter lorsque l'on travaille dans une zone dangereuse et ainsi de suite. Aujourd'hui, cela se fait très, très rapidement. Et beaucoup moins cher. Pas aussi vite que la porte, mais un pilote en 2 semaines est une estimation très réaliste.