Giter Site home page Giter Site logo

usr-ein / learn-n-recognize-cpp Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 7.19 MB

Recognizes faces and learn to associate them to names, in C++

License: GNU General Public License v3.0

C++ 100.00%
face-recognition haar-cascade lbph-face-recognizer opencv

learn-n-recognize-cpp's Introduction

Learn 'n' Recognize Cpp

Version C++


Détecte, analyse et compare des visages sur des images issues de différentes sources
  • V0: Cette image est le résultat fonctionnel du tout premier algorithme de ma fabrication utilisant le mécanisme de Haar Cascade, basé sur les travaux de Naotoshi Seo :

Learn 'n' Recognize V0 (testCam) "proof of concept"

  • V1, V2 & V3: Cette image est le résultat fonctionnel de la version 3 de Learn 'n' Recognize. Cette version reprend certains principes des version 0, 1 et 2 tout en utilisant comme image d'entré un flux vidéo issue d'une webcam. Les algorithme à partir de la version 1 utilisent LBPH (Local Binary Pattern Histogram). Il s'agit d'un algorithme permettant de transcrire des zones d'une image en nombres décimaux afin d'analyser des patternes, comme des formes, permettant ainsi de discriminer les visages.

Learn 'n' Recognize V3

Learn 'n' Recognize V3 "proof of concept"

  • V4 & V5: La version 5 allie la version 3, permettant de détecter et analyser en directe un visage, et la version 4, permettant l'apprentissage d'un visage (en l'associant à un nom), en proposant ces fonctionnalités sous formes de deux modes. Il est alors possible, d'apprendre un visage en l'associant à un nom (mode apprentissage) et ensuite de le distinguer parmis plusieurs autres visage (mode scan); le tout en une seule et unique application.

Voici un "proof of concept" en vidéo de la version 5 (cliquez sur la vignette pour ouvrir YouTube.com):

Learn 'n' Recognize V5 - Proof of concept

  • C++ V1: Cette première version en C++ est une refonte total de l'algorithme puisque il fut totalement réécris en C++. Le code source est bien plus lisible, plus facile à éditer, à améliorer, à débugger mais également à utilisé. Le programme se présente dorénavant une interface claire avec un code couleur. L'utilisateur à également la possibilité de rentrer les arguments du programme après son lancement. Le programme est maintenant divisé en plusieurs classe ayant chacune un rôle précis. La base de donnée faisant correspondre les noms des sujets à leur identifiant est maintenant sous forme de fichier SQLite. D'aitre part, puisque le C++ est un langage compilé (à l'instar du Python qui est un langage interprété), la version en C++ est bien plus rapide que son homologue en Python. Le programme est également plus exportable. En effet, puisqu'il n'est plus interprété comme en Python, l'ordinateur executant le programme ne requière plus la présence d'une installation OpenCV. Le programme peut maitenant être distribué sur une simple clef USB.

  • C++ V2.0: Cette seconde version est une importante amélioration de la première version en C++, elle ajoute notamment le support de "flags", ils premettent d'organiser plus facilement les arguments en ligne de commande. On note également l'amélioration très importante de la base de donnée embarqué. En effet, dorénavant il est possible de simplement lancer le programme avec comme entrée un répertoire de sauvegarde ainsi qu'une Face Cascade (Haar) et le programme se chargera alors de constituer une nouvelle base de donnée au nom unique dans laquel pourront être enregistrées les sujets et leur identifiants. Le programme sauvegarde aussi automatiquement le classifieur LBP à la fin de chaque session en lui attribuant un nom unique pourvus de la date complète de création du fichier. Beaucoup de bugs ont été résolus et l'interface en couleur à été refaite en grande partie. Dorénavant, le programme considère le seuil de succès entré par l'utilisateur et détermine grâce à celui-ci si le nom obtenu est juste (s'il est au dessus du seuil).')'

Learn 'n' Recognize est distribué sous licence Apache Version 2.0

learn-n-recognize-cpp's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.