GAFAM AI

La présente contribution est la suite de mon article récent Le web intelligent. AI est l’abbréviation de Artificial Intelligence, GAFAM est l’acronyme de Google, Apple, Facebook, Amazon et Microsoft. On appele ces cinq entreprises les géants du Web.

Dans l’article précité, on a passé en revue les produits commerciaux d’intelligence artificielle de Google et Amazon. Abstraction faite de Siri, Apple n’a pas encore lancé ses propres services AI pour le public, mais l’entreprise a publié sa première publication scientifique sur l’intelligence artificielle le 22 décembre 2016 (Learning from Simulated and Unsupervised Images through Adversarial Training).

Facebook publie depuis quelques années déjà des articles scientifiques sur l’intelligence artificielle et dispose de son propre site web Facebook Research. Parmi les activités de recherche on trouve Applied Machine Learning, Computer Vision, Data Science, Human Computer Interaction & UX, Natural Language Processing & Speech, Facebook AI Research (FAIR). Facebook n’offre pas encore de services AI en ligne, mais quelques logiciels qui accompagnent ses publications scientifiques sont disponibles en téléchargement sur son site web de recherche.

Parmi les entreprises GAFAM, Microsoft est le pionnier de la recherche technologique. Avec plus de 10.000 publications scientifiques et plus de 800 chercheurs internes dans ses laboratoires, Microsoft est le “leader” incontesté des services d’intelligence artificielle, appelés Microsoft Cognitive Services.

Microsoft a démarré ses services AI en 2015 et présente actuellement une panoplie impressionnante de produits commerciaux afférents. Rien que dans le domaine de la vision, les cinq services en ligne suivants sont à la disposition des développeurs:

Nous allons tester les trois premiers services avec les mêmes photos que celles utilisées pour les tests de Google Cloud Vision et Amazon Rekognition.

Microsoft Computer Vision

Parmi les données fournies par le service Computer Vision, les informations principales sont:

  • une description succincte de la photo
  • des étiquettes (tags) concernant le contenu
  • une catégorie
  • le sexe et l’âge des personnes

tags: indoor, child, baby, sitting, boy, young, toddler, room, high

Au sujet de la photo de Charles et Capucine ci-dessus, la description fournie est “a ltitle boy eating a piece of cake”. La catégorie est “others”, le sexe et l’âge (male et 0 ans pour Charles, female et 3 ans pour Capucine) sont indiqués correctement. Les étiquettes attribuées à la photo sont toutes correctes. Une meilleure description serait toutefois: “a baby boy and a toddler girl are eating a piece of cake”.

En ce qui concerne la photo ci-dessous, la description “person sitting on a beach in a park” est fausse. Le sexe (female) de Charles est également faux, l’âge (1 an), les étiquettes et la catégorie (outdoor) sont correctes.

tags: outdoor, ground, tree, grass, park, way, sidewalk

La prochaine photo s’appelle “a little girl sitting at a table with a cake”. La petite fille est en réalité le petit garçon Charles. Google Vision et Amazon Rekognition avaient le même problème de reconnaître les jouets. La catégorie (people-young) et les étiquettes sont OK. Le visage n’est pas reconnu par l’algorithme de Microsoft, ce qui explique l’absence des informations au sujet du sexe et de l’âge.

tags: table, person, indoor, child, little

La première photo de Thomas ci-après est décrite comme “a baby sitting in front of a cake”. Décidément le service Computer Vision de Microsoft favorise les gâteaux. Rien  à critiquer au sujet du sexe (male), âge (0 ans), catégorie (people-young) et étiquettes. Même la fenêtre à l’arrière-plan est reconnue correctement.

tags: person, indoor, sitting, baby, window, orange, high

La prochaine photo est intitulée “a baby sitting on a table”. Catégorie (people-young), sexe (male), âge (1 an) et étiquettes sont également correctes, abstraction faite du tag “cabinet” qui n’est pas approprié.

tags: cabinet, indoor, person, table, sitting, boy, little, baby, orange, toddler

La dernière photo de Thomas ci-après s’énonce “a young boy laying in the snow”. La catégorie est “people”, l’âge (2 ans) est correcte. Ce qui n’est pas cohérent, c’est l’indication du sexe féminin pour une personne libellée comme petit garçon.  Ce qui dérange en outre, c’est l’étiquette “bed”.

tags: snow, person, outdoor, little, boy, child, yound, laying, bed, toddler

Malgré les quelques erreurs et incohérences, il semble que l’application Computer Vision de Microsoft soit plus performante que Google Vision et Amazon Rekognition.

Microsoft Emotion

Contrairement aux services AI de Google et Amazon, Microsoft propose un service spécifique pour la reconnaissance des émotions dans les visages.

emotions: neutral, neutral

Je partage les avis de “visage neutre” pour Charles et Capucine sur la photo ci-dessus et de “joie” sur le visage de Charles sur la photo ci-dessous.

emotion: happiness

La troisième photo de Charles, où le visage n’est pas reconnu, n’est pas affichée dans l’application “Emotion” de Microsoft.

visage non détecté

emotion: neutral

Sur la photo en haut Thomas affiche effectivement un visage “neutre”, tandis que sur la photo en bas on décèle une légère surprise.

emotions: neutral, surprise

Microsoft Computer Vision est le seul service qui interprète correctement l’émotion de Thomas sur la photo qui suit:”sadness”.

emtion: sadness

Microsoft Face

La comparaison de visages est également un service spécifique dans la famille des produits AI de Microsoft. La comparaison des jumeaux Charles et Thomas est difficile pour les humains et on pardonne à l’application Computer Vision de prétendre que les deux personnes sont identiques, avec une très grande certitude.

Charles et Thomas : même personne

On pardonne moins que Computer Vision nous dit que Capucine et Charles sont la même personne, même s’il y a une petite ressemblance.

Capucine et Charles: même personne

C’est toutefois incompréhensible que Charles et Astor sont identifiés comme les mêmes personnes,

Charles et Astor: même personne

tandis que Capucine qui souffle des bougies sur un gâteau n’est pas reconnue comme Capucine.

Capucine et Capucine: personnes différentes

Marco n’est pas reconnu non plus comme même personne sur deux photos ayant un écart d’âge de 40 ans. Décidément le service “Microsoft Face” doit encore faire beaucoup de séances de “deep learning” pour se perfectionner. Heureusement les outils afférents pour parfaire la reconnaissance des visages fait partie du service en ligne “Face” de Microsoft.

Marco et Marco: 40 ans d’écart > personnes différentes

Google Vision n’offre pas encore un service public de reconnaissance des visages. Si on compare l’application Microsoft Face avec le service de reconnaissance faciale d’Amazon, il faut dire que ce dernier a plusieurs longueurs d’avance. Les services Microsoft Cognition offrent toutefois des options de “training” pour parfaire la reconnaissance des visages, ce qui manque encore pour Amazon Rekognition.

Le web intelligent

Dernière mise à jour: 19 mars 2017

Chronologie Internet

Il y a presque 4 ans, j’avais publié sur mon blog une proposition de diviser la chronologie du web (timeline) en neuf époques. J’avais opté pour le nom de web intelligent (web 3.5) pour caractériser la période de début 2015 à mi 2017.

Pour moi, le web intelligent a les compétences suivantes:

  • il parle notre langue
  • il lit notre écriture
  • il comprend notre langage et reconnaît notre voix
  • il reconnaît notre visage et décode nos émotions
  • il interprète des images et scènes vidéo
  • il a des connaissances vastes sur tous les sujets
  • il prend des décisions autonomes
  • il est capable d’apprendre afin de parfaire ses compétences

Les technologies qui sont à la base de ces compétences existent depuis des années, voire des décennies. Ils ont fait l’objet de recherches, de  tests, de prototypes, d’applications innovantes et de produits commerciaux, mais le plus souvent d’une façon isolée, pour une seule compétence.

Le GPS nous parle dans la voiture, Siri et Alexa répondent à nos questions sur le mobile, Google Photo et Facebook reconnaissent les visages sur nos photos, Wikipedia sait tout (ou presque), des outils d’aide à la décision sont omniprésents et les réseaux neuraux permettent aux machines d’apprendre en profondeur (deep learning).

Ce qui a changé en 2016, c’est le fait que toutes ces technologies ont été assemblées par Google et par Amazon Web Services (AWS) dans des produits commerciaux d’intelligence artificielle qui sont maintenant à la disposition des développeurs du monde entier.

Le web 3.5 est donc devenu réalité.

Google Cloud Platform

Google est bien connu pour son moteur de recherche, sa plateforme vidéo Youtube et ses services de traduction. Depuis 2011, Google offre aux programmeurs et sociétés d’héberger leurs propres applications sur la même infrastructure que celle qu’elle utilise en interne. Ce service est appelé Google Cloud Platform et se compose d’une famille de produits, chacun comportant une interface web, un outil de lignes de commande, et une interface de programmation applicative REST. Parmi ces produits on distingue:

  • Google App Engine
  • Google Storage
  • Goggle Compute Engine
  • Google Translate

L’ensemble des produits et services est décrit sur la page web cloud.google.com.

En mars 2016, Google a annoncé le lancement de la famille Cloud Machine Learning service mainstream. Les services suivants font partie, entre autres, de cette famille:

  • Cloud ML : Large Scale Machine Learning Service
  • Cloud Natural Language API : Powerful Text Analysis
  • Cloud Speech API : Powerful Speech Recognition in 80 languages
  • Cloud Translate API : Fast, Dynamic Translation
  • Cloud Vision API : Powerful Image Analysis

Google Cloud Vision

De prime abord, je me suis intéressé pour le nouveau service Cloud Vision. Dans le passé j’avais déjà effectué des tests avec différentes applications de reconnaissance faciale et de lecture de textes. Les contributions afférentes sont disponibles sur mon blog.

Pour faire des tests, j’ai pris au hasard quelques photos de mes petits-enfants.

Les résultats de Google Vision sont affichés dans plusieurs onglets:

  • Faces : reconnaissance de visages et d’émotions
  • Labels : reconnaissance de scènes et d’objets
  • Text : lecture de caractères et de textes
  • Colors : classification des couleurs dominantes
  • Safe Search : contenus avec nudité, violence, haine ou sujets médicaux
  • JSON Response : ensemble détaillé des données en format JSON

Les résultats ont été assemblés dans une seule image, par copie-collage, pour donner une meilleure vue globale.

Google Vision ne fournit pas un service de reconnaissance des personnes comme dans Google Photo, mais se limite à détecter les visages et à interpréter les émotions. Dans la figure ci-dessus les informations pour les deux visages sont indiquées en haut à droite (Charles) et en bas à gauche (Capucine). Les étiquettes (label)  pour la scène sont affichées en bas au milieu, le texte reconnu se trouve en bas à droite.

Les termes reconnus “Carla” et “Charlie” sont les noms de vaches qui figurent sur la nappe de la table, comme on peut le voir sur l’agrandissement ci-dessous.

Un exemple de l’onglet “JSON Response” est présenté ci-après. Tous les détails de l’analyse sont fournis dans cette structure JSON.

En ce qui concerne l’analyse proprement dite, Google Vision ne détecte pas d’émotions sur les visages des deux enfants, sauf une légère surprise sur le visage de Charles. Hormis la reconnaissance de personnes (toddler, child),  Il n’y a guère d’informations sur le contexte.

Pour les images suivantes, seuls les résultats “Faces” et “Labels” sont présentés dans les figures montées.
 Google Vision voit de la joie dans le visage de Charles qui se trouve dehors, dans une sorte de jardin, avec des feuilles, en automne. Bonne interprétation.
 Google Vision estime que Charles fête son anniversaire à Noël. En réalité il joue en février 2016 avec du Lego. Echec.
L’activity-Center Fisher-Prize de Thomas fait penser Google Vision à un anniversaire et à de la nourriture.

Google Vision considère que Thomas est un peu surpris et combine les activités jouer et manger. Bien.

Thomas semble être en colère et se trouve dans la neige, en hiver et il a froid. Analyse correcte.

Amazon Web Services

Tout le monde connaît Amazon en tant que fournisseur en ligne de livres et d’autres objets non périssables, mais peu de personnes savent que Amazon est un des plus grand fournisseurs mondiaux de services informatiques sous le nom de Amazon Web Services (AWS). Tout comme Google, Amazon profite de l’infrastructure nécessaire pour ses propres besoins pour offrir de la capacité et des services à des tiers. Lancé en 2006, AWS se classe aujourd’hui au premier rang des fournisseurs Cloud avec une part de marché de 31%, devant Microsoft (11%) et IBM (7%).

J’utilise les services d’AWS depuis octobre 2008.

Le 30 novembre 2016, Werner Vogels, le CTO (Chief Technological Officer) de Amazon, annonçait sur son blog All Things Distributed le lancement des nouveaux services d’intelligence artificielle (AmazonAI) de AWS.

Amazon AI

Le but d’Amazon AI est d’apporter une intelligence artificielle puissante à tous les développeurs. La gamme des services Amazon AI se compose de:

  • Amazon Lex : concevoir des interfaces conversationnelles ayant recours à la voix et au texte, via les mêmes technologies d’apprentissage approfondi que celles utilisées par Alexa
  • Amazon Rekognition : reconnaissance d’image basée sur l’apprentissage approfondi
  • Amazon Polly : convertir un texte en voix numérique
  • Amazon Machine Learning : un service d’apprentissage automatique évolutif pour les développeurs

Chez Amazon AI, je me suis également intéressé d’abord pour Amazon Rekognition. Du premier coup j’ai vu des ressemblances avec la technologie Orbeus ReKognition que j’avais exploré en 2014. Dans la suite j’ai trouvé sur le net un article de Bloomberg relatant que Amazon a acquis en automne 2015  la startup Orbeus Inc., mais sans en faire une annonce officielle.

Amazon Rekognition ne fournit pas seulement des informations sur les émotions détectées sur les visages, mais également des renseignements sur le sexe et sur des accessoires comme lunettes, barbes, moustaches. Dans la détection des scènes et objets on reçoit en général plus d’étiquettes qu’avec Google Vision. Amazon Rekognition n’offre toutefois pas une reconnaissance intégrée de textes.

Les résultats des tests effectués avec les mêmes six photos de mes petits-enfants sont présentés ci-après. On peut donc les comparer avec ceux fournis par Google Vision.

Charles est identifié comme une fille, ce qui n’est pas correct. Le décor est reconnu correctement comme maison et même le Dudu de Capucine est associé correctement à une courtepointe (quilt, towel).

La scène est considérée comme un labyrinthe, une arène ou un amphithéâtre. Il n’y a pas de notion de nature ou de bois.  Google a fait mieux. Amazon AI est toutefois d’accord avec Google Vision que Charles sourit.

Le système reconnaît des personnes, des jouets, une chaise et un coussin dans un décor de maison. Il confond toutefois des jouets avec de la nourriture. Google Vision n’a pas fait mieux.

Le centre d’activités Fisher-Price de Thomas est identifié comme un gâteau d’anniversaire, ou un dessert, en tout cas quelque chose pour manger. Google Vision a fait les mêmes réflexions.

Dans cette scène, le système détecte correctement qu’il s’agit d’objets pour boire et manger. Thomas, plus âgé que sur la précédente photo, est reconnu maintenant comme un garçon qui ne rit pas, mais qui paraît surpris.

La scène n’est pas reconnue comme activité dans la neige et le système interprète le pleur de Thomas comme un grand sourire. Echec complet.

Amazon Face Comparison

Le service Amazon Rekognition comprend l’application Face Comparison (comparaison faciale) qui est très performante. A partir d’une photo avec un visage de référence, le service Face Comparison fournit des taux de ressemblance des visages qui figurent sur une photo de comparaison. La série des figures ci-dessous montre quelques exemples:

Thomas est reconnu avec une fiabilité de 93%; similitude avec Charles (83%) et Capucine (76%).

Charles n’est pas reconnu, mais il y a similitude de 74,9% avec Thomas et de 55,1% avec Capucine.

Capucine est reconnue avec une fiabilité de 91%. Il n’y a pas de ressemblance avec les autres.

Marco est reconnu avec une fiabilité de 92%. Il n’y a pas de similitude détectée avec les enfants.

Astor, qui ne figure pas sur la photo à droite, ne ressemble à personne sur cette photo

Amazon fournit également un service de reconnaissance faciale. Il s’agit d’un processus d’identification et de vérification de l’identité d’une personne, en recherchant son visage dans un répertoire d’images de visages. Un répertoire d’images de visages est un index de recherche de vecteurs de caractéristiques faciales. AWS offre plusieurs interfaces (API) pour gérer un tel répertoire et pour ajouter ou supprimer des visages de référence dans le répertoire.

En ce temps Google Vision ne supporte pas encore la reconnaissance des visages dans son API public. Il n’y a donc pas moyen de comparer les performances avec Amazon Rekognition.

Dessins de Capucine

Pour pousser Google Vision et Amazon Rekognition aux limites, j’ai soumis deux dessins récents de ma petite-fille Capucine (4 ans et demi) et une des premières ébauches d’écriture de son nom aux deux systèmes.

Dessins et texte de Capucine à l’âge de 4 ans et demi

Les résultats fournis par Google Vision et Amazon Rekognition ont été assemblés chaque fois dans une seule image.

Le dessin du bonhomme est reconnu par Google Vision (résultats au milieu) comme cartoon et oeuvre d’art, tandis que Amazon Rekognition voit une signature ou un insecte. Aucun des deux systèmes reconnaît une figure humaine.
Les visages avec des boucles d’oreille qui ornent le contour de la main de Capucine ne sont pas identifiés comme tels par aucun des systèmes. Ce sont des lignes, des dessins, des formes ou diagrammes. Amazon Rekognition est au moins d’avis qu’il s’agit de l’art.
En ce qui concerne le nom de Capucine, Google Vision estime qu’il s’agit d’un texte, mais n’est pas en mesure de le lire. L’OCR (optical character recognition) ne fait pas encore partie du produit Amazon Rekognition. Ce système détecte toutefois qu’il s’agit de textes, de caractères, d’une signature ou d’un autographe.

Conclusions

Les performances des deux systèmes Google Vision et Amazon Rekognition sont impressionnantes. Globalement Google Vision semble être plus fiable dans ses analyses en comparaison avec Amazon Rekognition, abstraction faite de la reconnaissance faciale d’Amazon qui est unique.

Bien sûr il y a encore un besoin d’amélioration pour les deux systèmes. Les services Machine Learning des deux fournisseurs permettent de mieux adapter la reconnaissance d’objets et de scènes à son propre environnement, en formant les systèmes moyennant un échantillon d’images et de photos d’apprentissage, avec des étiquettes (labels) sélectionnées manuellement et des étiquettes corrigées en cas d’erreur.

Google profite d’ailleurs sur son site de démonstration d’une variante de son système reCAPTCHA pour exclure les robots à l’utilisation de sa plateforme Cloud. Les réponses fournies par les humains sont utilisées pour parfaire Google Vision.

Google CAPTCHA: Completely Automated Public Turing test to tell Computers and Humans Apart

Face Recognition Tests

Referring to my recent post about Face Recognition Systems, I did some trials with my “About” photo. Here are the results of my Face Recognition Tests :

Animetrics

Face Detection Tests : Animetrics

Face Detection Tests : Animetrics

{"images": [
{"time": 4.328,
"status": "Complete",
"url": "http://www.web3.lu/download/Marco_Barnig_529x529.jpg",
"width": 529,
"height": 529,
"setpose_image": "http://api.animetrics.com/img/setpose/d89864cc3aaab341d4211113a8310f9a.jpg",
"faces": [
{"topLeftX": 206,
"topLeftY": 112,
"width": 82,
"height": 82,
"leftEyeCenterX": 227.525,
"leftEyeCenterY": 126.692,
"rightEyeCenterX": 272.967,
"rightEyeCenterY": 128.742,
"noseTipX": 252.159,
"noseTipY": 158.973,
"noseBtwEyesX": 251.711,
"noseBtwEyesY": 126.492,
"chinTipX": -1,
"chinTipY": -1,
"leftEyeCornerLeftX": 219.005,
"leftEyeCornerLeftY": 126.308,
"leftEyeCornerRightX": 237.433,
"leftEyeCornerRightY": 127.85,
"rightEyeCornerLeftX": 262.995,
"rightEyeCornerLeftY": 129.004,
"rightEyeCornerRightX": 280.777,
"rightEyeCornerRightY": 129.094,
"rightEarTragusX": -1,
"rightEarTragusY": -1,
"leftEarTragusX": -1,
"leftEarTragusY": -1,
"leftEyeBrowLeftX": 211.478,
"leftEyeBrowLeftY": 120.93,
"leftEyeBrowMiddleX": 226.005,
"leftEyeBrowMiddleY": 117.767,
"leftEyeBrowRightX": 241.796,
"leftEyeBrowRightY": 120.416,
"rightEyeBrowLeftX": 264.142,
"rightEyeBrowLeftY": 121.101,
"rightEyeBrowMiddleX": 278.625,
"rightEyeBrowMiddleY": 119.38,
"rightEyeBrowRightX": 290.026,
"rightEyeBrowRightY": 124.059,
"nostrilLeftHoleBottomX": 243.92,
"nostrilLeftHoleBottomY": 168.822,
"nostrilRightHoleBottomX": 257.572,
"nostrilRightHoleBottomY": 170.683,
"nostrilLeftSideX": 236.867,
"nostrilLeftSideY": 163.555,
"nostrilRightSideX": 262.073,
"nostrilRightSideY": 165.049,
"lipCornerLeftX": -1,
"lipCornerLeftY": -1,
"lipLineMiddleX": -1,
"lipLineMiddleY": -1,
"lipCornerRightX": -1,
"lipCornerRightY": -1,
"pitch": -6.52624,
"yaw": -6.43,
"roll": 2.35988
}]}]}

APICloudMe

Face Recognition Tests : APICloudMe FaceRect and FaceMark

Face Recognition Tests : APICloudMe FaceRect and FaceMark

{"faces" : [
{"orientation" : "frontal",
"landmarks" : [
{"x" : 193,"y" : 125},
{"x" : 191,"y" : 145},
{"x" : 192,"y" : 163},
{"x" : 196,"y" : 178},
{"x" : 206,"y" : 194},
{"x" : 218,"y" : 204},
{"x" : 229,"y" : 206},
{"x" : 243,"y" : 209},
{"x" : 259,"y" : 206},
{"x" : 268,"y" : 202},
{"x" : 278,"y" : 195},
{"x" : 287,"y" : 182},
{"x" : 292,"y" : 167},
{"x" : 296,"y" : 150},
{"x" : 297,"y" : 129},
{"x" : 284,"y" : 112},
{"x" : 279,"y" : 108},
{"x" : 268,"y" : 110},
{"x" : 263,"y" : 116},
{"x" : 270,"y" : 113},
{"x" : 277,"y" : 111},
{"x" : 214,"y" : 111},
{"x" : 223,"y" : 107},
{"x" : 234,"y" : 110},
{"x" : 238,"y" : 115},
{"x" : 232,"y" : 113},
{"x" : 223,"y" : 110},
{"x" : 217,"y" : 127},
{"x" : 228,"y" : 121},
{"x" : 236,"y" : 129},
{"x" : 227,"y" : 131},
{"x" : 227,"y" : 126},
{"x" : 280,"y" : 129},
{"x" : 271,"y" : 123},
{"x" : 262,"y" : 130},
{"x" : 271,"y" : 133},
{"x" : 271,"y" : 127},
{"x" : 242,"y" : 128},
{"x" : 238,"y" : 145},
{"x" : 232,"y" : 157},
{"x" : 232,"y" : 163},
{"x" : 247,"y" : 168},
{"x" : 262,"y" : 164},
{"x" : 262,"y" : 158},
{"x" : 258,"y" : 146},
{"x" : 256,"y" : 129},
{"x" : 239,"y" : 163},
{"x" : 256,"y" : 164},
{"x" : 221,"y" : 179},
{"x" : 232,"y" : 178},
{"x" : 240,"y" : 179},
{"x" : 245,"y" : 180},
{"x" : 251,"y" : 180},
{"x" : 259,"y" : 180},
{"x" : 269,"y" : 182},
{"x" : 261,"y" : 186},
{"x" : 253,"y" : 189},
{"x" : 245,"y" : 189},
{"x" : 236,"y" : 187},
{"x" : 229,"y" : 184},
{"x" : 235,"y" : 182},
{"x" : 245,"y" : 184},
{"x" : 255,"y" : 184},
{"x" : 254,"y" : 183},
{"x" : 245,"y" : 183},
{"x" : 235,"y" : 182},
{"x" : 245,"y" : 183},
{"x" : 249,"y" : 160}
]}],
"image" : {
"width" : 529,
"height" : 529
}}

Betaface API

Image ID : 65fe585d-e565-496e-ab43-bcfdc18c7918
Faces : 2

Face detection Test : Betaface API

Face Recognition Tests : Betaface API

hair color type: red (24%), gender: male (52%), age: 49 (14%), ethnicity: white (57%), smile: yes (15%), glasses: yes (48%), mustache: yes (46%), beard: yes (35%)
500: HEAD Height/Width level parameter (POS = long narrow face NEG = short wide face)(min -2 max 2): 1
501: HEAD TopWidth/BottomWidth level parameter (POS = heart shape NEG = rectangular face)(min -2 max 2):0
502: NOSE Height/Width level parameter (NEG = thinner) (min -2 max 2) : 2
503: NOSE TopWidth/BottomWidth level parameter (NEG = wider at the bottom) (min -2 max 2) : 1
504: MOUTH Width level parameter (min -2 max 2) : 1
505: MOUTH Height level parameter (NEG = thin) (min -2 max 2) : 1
521: MOUTH Corners vertical offset level parameter (NEG = higher) (min -2 max 2) : -2
506: EYES Height/Width level parameter (NEG = thinner and wider, POS = more round) (min -2 max 2) : -1
507: EYES Angle level parameter (NEG = inner eye corners moved towards mouth) (min -2 max 2) : 1
517: EYES closeness level parameter (NEG = closer) (min -2 max 2) : 0
518: EYES vertical position level parameter (NEG = higher) (min -2 max 2) : 0
508: HAIRSTYLE Sides thickness level parameter (min 0 max 3) : 0
509: HAIRSTYLE Hair length level parameter (min 0 max 5) : 0
510: HAIRSTYLE Forehead hair presence parameter (min 0 max 1) : 1
511: HAIRSTYLE Hair Top hair amount level parameter (min 0 max 4) : 3
512: FACE HAIR Mustache level parameter (min 0 max 2) : 0
513: FACE HAIR Beard level parameter (min 0 max 2) : 0
514: GLASSES presence level parameter (min 0 max 1) : 0
515: EYEBROWS thickness level parameter (min -2 max 2) : -2
516: EYEBROWS vertical pos level parameter (POS = closer to the eyes) (min -2 max 2) : -2
520: EYEBROWS Angle level parameter(NEG = inner eyebrows corners moved towards mouth)(min -2 max 2) :-2
519: TEETH presence level parameter (min 0 max 1) : 1
522: NOSE-CHIN distance level parameter (min -2 max 2) : 0
620756992: face height/face width ratio / avg height/width ratio : 1.0478431040781575
620822528: face chin width/face width ratio / avg height/width ratio : 1.0038425243863847
620888064: face current eyes distance/ avg eyes distance ratio : 1.0104771666577224
620953600: eyes vertical position - avg position, minus - higher : -0.00089347261759175321
621019136: distance between chin bottom and low lip / avg distance : 0.97106500562603393
621084672: distance between nose bottom and top lip / avg distance : 1.0075242288018134
621150208: distance between nose top and bottom / avg distance : 1.0619860919447868
621215744: distance between nose left and right / avg distance : 1.0426301239394231
621281280: distance between left mouth corner and right mouth corner / avg distance : 1.0806991515139102
621346816: eyebrows thichkness / avg thichkness : 0.83331489266473235
621412352: ratio (low nose part width / top nose part width) / avg ratio : 0.9717897529241869
621477888: eye height/width ratio / avg height/width ratio : 0.9611420163590253
621543424: width of the chin / avg width of the chin : 0.96738062415147075
621608960: angle of the eyes in degrees - avg angle. Negative angle mean inner eye corners moved towards mouth from average position : -0.35247882153940435
621674496: distance between eyebrows and eyes / avg distance : 0.88418599076781756
621740032: face width / avg width ratio : 0.96367766920692888
621805568: skin color (Weight) (min 0 max 1) : 1.340999960899353
621871104: skin color (H) (min 0 max 180) : 7
621936640: skin color (S) (min 0 max 255) : 81
622002176: skin color (V) (min 0 max 255) : 208
622067712: skin color (R) (min 0 max 255) : 208
622133248: skin color (G) (min 0 max 255) : 157
622198784: skin color (B) (min 0 max 255) : 142
622264320: mustache color if detected (Weight) (min 0 max 1) : 0
622329856: mustache color if detected (H) (min 0 max 180) : 0
622395392: mustache color if detected (S) (min 0 max 255) : 0
622460928: mustache color if detected (V) (min 0 max 255) : 0
622526464: mustache color if detected (R) (min 0 max 255) : 0
622592000: mustache color if detected (G) (min 0 max 255) : 0
622657536: mustache color if detected (B) (min 0 max 255) : 0
622723072: beard color if detected (Weight) (min 0 max 1) : 0
622788608: beard color if detected (H) (min 0 max 180) : 0
622854144: beard color if detected (S) (min 0 max 255) : 0
622919680: beard color if detected (V) (min 0 max 255) : 0
622985216: beard color if detected (R) (min 0 max 255) : 0
623050752: beard color if detected (G) (min 0 max 255) : 0
623116288: beard color if detected (B) (min 0 max 255) : 0
623181824: weight of teeth color (Weight) (min 0 max 1) : 0.4440000057220459
623247360: glasses detection (weight floating value, related to thickness of rim/confidence) (min 0.03 max 1) : 0.065934065934065936
623312896: color of the hair area (Weight) (min 0 max 1) : 0.23899999260902405
623378432: color of the hair area (H) (min 0 max 180) : 4
623443968: color of the hair area (S) (min 0 max 255) : 151
623509504: color of the hair area (V) (min 0 max 255) : 130
623575040: color of the hair area (R) (min 0 max 255) : 130
623640576: color of the hair area (G) (min 0 max 255) : 63
623706112: color of the hair area (B) (min 0 max 255) : 53
673513472: eyebrows angle. Negative angle mean inner eyebrow corners moved towards mouth from average position : 0.086002873281683989
673579008: mouth corners Y offset - avg offset : -0.12499242147802289
673644544: mouth height / avg height : 1.1755344432588537
673710080: nose tip to chin distance / avg distance : 1.0093704038280917

BioID

Face Recognition Tests : BioID

Face Recognition Tests : BioID

<?xml version="1.0" encoding="utf-16"?>
<OperationResults xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.bioid.com/2012/02/BWSMessages">
  <JobID>955410d9-eb2c-43db-b3ca-deeedcd665af</JobID>
  <Command>QualityCheck</Command>
  <Succeeded>true</Succeeded>
  <Samples>
    <Sample Trait="Face" Suitable="true">
      <Errors>
        <Error>
          <Code>ImageTooSmall</Code>
          <Message>The part of the image containing the found face is too small.</Message>
          <Details>The found face (with an eye-distance of 43 pixels) does not have the required eye-distance of at least 240 pixels.</Details>
        </Error>
        <Error>
          <Code>ImageTooSmall</Code>
          <Message>The part of the image containing the found face is too small.</Message>
          <Details>The cropped face image (with 146 x 188 pixels) does not have the minimum expected resolution of 827 x 1063 pixels.</Details>
        </Error>
        <Error>
          <Code>FaceAsymmetry</Code>
          <Message>It seems that the face of the found person is somehow asymmetric, maybe due to bad illumination and/or due to a wrong pose.</Message>
          <Details>An asymmetry of 88.20 was calculated, where only a value up to 50.00 is allowed.</Details>
        </Error>
        <Error>
          <Code>MissingTimeStamp</Code>
          <Message>The image does not have any tag attached which could be used to find out when it was taken. It cannot be assured that the image is not older than 183 days.</Message>
          <Details />
        </Error>
        <Error>
          <Code>ImageOverExposure</Code>
          <Message>The image is over-exposed, i.e. it has too many very light pixels.</Message>
          <Details>The amount of very bright pixels is 1.34%, where only 1.00% are allowed.</Details>
        </Error>
      </Errors>
      <Tags>
        <RightEye X="52.174" Y="84.108" />
        <LeftEye X="95.448" Y="86.173" />
      </Tags>
    </Sample>
  </Samples>
  <Statistics>
    <ProcessingTime>00:00:01.3642947</ProcessingTime>
    <TotalServiceTime>00:00:01.6941376</TotalServiceTime>
  </Statistics>
</OperationResults>

BiometryCloud

No demo app available.

HP Labs Multimedia Analytical Platform

Face Recognition Tests : HP Labs Multimedia

Face Recognition Tests : HP Labs Multimedia Analytical Platform

{
"pic":{
"id_pic":"8f2cb88987e9e6b88813c5c17599204a25a8d63b",
"height":"529",
"width":"529"
},
"face":[{
"id_face":"2500002",
"id_pic":"8f2cb88987e9e6b88813c5c17599204a25a8d63b",
"bb_left":"209",
"bb_top":"109",
"bb_right":"290",
"bb_bottom":"190"
}]}

Lambda Labs Face

Face Recognition Tests : Lambda Labs

Face Recognition Tests : Lambda Labs

{
"status": "success",
"images": ["http://www.web3.lu/download/Marco_Barnig_529x529.jpg"],
"photos": [{"url": "http://www.web3.lu/download/Marco_Barnig_529x529.jpg",
"width": 529,
"tags": [
{"eye_left": {"y": 128,"x": 269},
"confidence": 0.978945010372561,
"center": {"y": 143,"x": 250},
"mouth_right": {"y": 180,"x": 267},
"mouth_left": {"y": 180,"x": 220},
"height": 128,"width": 128,
"mouth_center": {"y": 180,"x": 243.5},
"nose": {"y": 166,"x": 250},
"eye_right": {"y": 129,"x": 231},
"tid": "31337",
"attributes": [{"smile_rating": 0.5,"smiling": false,"confidence": 0.5},
{"gender": "male","confidence": 0.6564017215167235}],
"uids": [
{"confidence": 0.71,"prediction": "TigerWoods","uid": "TigerWoods@CELEBS"},
{"confidence": 0.258,"prediction": "ArnoldS","uid": "ArnoldS@CELEBS"}]}],
"height": 529
}]}

Orbeus ReKognition

Face Recognition Tests : Orbeus ReKognition

Face Recognition Tests : Orbeus ReKognition

{
"url" : "base64_ZNlBfC.jpg",
"face_detection" : [{
"boundingbox" : {
"tl" : {"x" : "188.46","y" : "80.77"},
"size" : {"width" : "126.15","height" : "126.15"}},
"confidence" : "0.98",
"name" : "mark_zuckerberg:0.37,obama:0.33,brad_pitt:0.16,",
"matches" : [{"tag" : "mark_zuckerberg","score" : "0.37"},
{"tag" : "obama","score" : "0.33"},
{"tag" : "brad_pitt","score" : "0.16"}],
"eye_left" : {"x" : "229.6","y" : "125.6"},
"eye_right" : {"x" : "272.5","y" : "127.7"},
"nose" : {"x" : "252.4","y" : "161.5"},
"mouth l" : {"x" : "226.9","y" : "173"},
"mouth_l" : {"x" : "226.9","y" : "173"},
"mouth r" : {"x" : "266.1","y" : "175.6"},
"mouth_r" : {"x" : "266.1","y" : "175.6"},
"pose" : {"roll" : "1.68","yaw" : "19.83","pitch" : "-11.7"},
"b_ll" : {"x" : "211.6","y" : "118"},
"b_lm" : {"x" : "226.7","y" : "113.2"},
"b_lr" : {"x" : "242.2","y" : "116.1"},
"b_rl" : {"x" : "263.5","y" : "117.1",
"b_rm" : {"x" : "277.8","y" : "115.5"},
"b_rr" : {"x" : "290.5","y" : "120"},
"e_ll" : {"x" : "221.5","y" : "125.7"},
"e_lr" : {"x" : "237.4","y" : "126.7"},
"e_lu" : {"x" : "229.9","y" : "122.5"},
"e_ld" : {"x" : "229.4","y" : "128.1"},
"e_rl" : {"x" : "265.3","y" : "128.2"},
"e_rr" : {"x" : "279.5","y" : "128.4"},
"e_ru" : {"x" : "272.5","y" : "124.8"},
"e_rd" : {"x" : "272.5","y" : "130.1"},
"n_l" : {"x" : "240.3","y" : "161.2"},
"n_r" : {"x" : "259.7","y" : "163.8"},
"m_u" : {"x" : "248.2","y" : "174.2"},
"m_d" : {"x" : "246.3","y" : "189.3"},
"race" : {"white" : "0.56"},
"age" : "48.28",
"glasses" : "1",
"eye_closed" : "0",
"mouth_open_wide" : "0.77",
"sex" : "0.96"},
{"boundingbox" : {
"tl" : {"x" : "19.23","y" : "221.54"},
"size" : {"width" : "160","height" : "160"}},
"confidence" : "0.07",
"name" : "obama:0.03,brad_pitt:0.02,jim_parsons:0.01,",
"matches" : [
{"tag" : "obama","score" : "0.03"},
{"tag" : "brad_pitt","score" : "0.02"},
{"tag" : "jim_parsons","score" : "0.01"}
],
"eye_left" : {"x" : "93.7","y" : "257.9"},
"eye_right" : {"x" : "128.4","y" : "309.1"},
"nose" : {"x" : "95.8","y" : "299.5"},
"mouth l" : {"x" : "58.9","y" : "306.9"},
"mouth_l" : {"x" : "58.9","y" : "306.9"},
"mouth r" : {"x" : "94.1","y" : "350.9"},
"mouth_r" : {"x" : "94.1","y" : "350.9"},
"pose" : {"roll" : "59.26","yaw" : "-11.22","pitch" : "9.96"},
"b_ll" : {"x" : "102.4","y" : "227.3"},
"b_lm" : {"x" : "114.9","y" : "240.8"},
"b_lr" : {"x" : "119.5","y" : "259.5"},
"b_rl" : {"x" : "133.9","y" : "282.1"},
"b_rm" : {"x" : "147.7","y" : "295.7"},
"b_rr" : {"x" : "153.8","y" : "312.3"},
"e_ll" : {"x" : "88.2","y" : "248.3"},
"e_lr" : {"x" : "100.2","y" : "267.6"},
"e_lu" : {"x" : "94.2","y" : "257.4"},
"e_ld" : {"x" : "92.7","y" : "258.4"},
"e_rl" : {"x" : "122.3","y" : "299.1"},
"e_rr" : {"x" : "134.7","y" : "319.7"},
"e_ru" : {"x" : "129.5","y" : "308.5"},
"e_rd" : {"x" : "127.2","y" : "309.6"},
"n_l" : {"x" : "78.7","y" : "298.6"},
"n_r" : {"x" : "97.8","y" : "318.4"},
"m_u" : {"x" : "80.4","y" : "321.2"},
"m_d" : {"x" : "72.6","y" : "328.5"},
"race" : {"black" : "0.63"},
"age" : "23.07",
"glasses" : "0.98",
"eye_closed" : "0.9",
"mouth_open_wide" : "0.46",
"sex" : "0.66"
}],
"ori_img_size" : {
"width" : "529",
"height" : "529"
},
"usage" : {
"quota" : "-10261829",
"status" : "Succeed.",
"api_id" : "4321"
}
}

Sky Biometry

Face Recognition Tests : SkyBiometry

Face Recognition Tests : SkyBiometry

face: (85%)
gender: male (86%)
smiling: true (100%)
glasses: true (57%)
dark glasses: false (21%)
eyes: open (80%)
mood: angry (69%)
N: 0%
A: 69%
D: 40%
F: 0%
H: 23%
S: 0%
SP: 21%
roll: 3
yaw: -14

Face Recognition Systems

Last update : December 15, 2014

Face Recognition Definitions

A face recognition system is a computer application for automatically identifying or verifying a person from a digital image or from a video frame. One of the ways to do this is by comparing selected facial features (landmarks) from the image with a facial database.

Face recognition is used in biometrics, video surveillance, human computer interfaces and image database management (digital photo albums).

The prior step to face recognition is the accurate detection of human faces in arbitrary scenes. Face detection is the related computer technology that determines the locations and sizes of human faces in digital images. This is an effortless task for humans, but requires a great effort for computers.

Face detection is followed by normalization and extraction which leads to the final recognition. A next step could be the interpretation of the face. This understanding of an individual’s face is called face perception. The proportions and expressions of the human face are important to identify origin, emotions, health qualities, social information and accessories (glasses, beards, …).

Face detection is a general case of face localization and a specific case of object-class detection. In object-class detection, the task is to find the locations and sizes of all objects in an image that belong to a given class. Some digital cameras use face detection for autofocusor to take automatically a second picture if someone closed his eyes during exposure. Today face detection is a standard feature in various image edition programs, for instance in Adobe Photoshop Elements, Synology Photostation, Apple iPhoto, …

Face Recognition Promotion

In the years 2000, 2002, 2006, 2012 and 2013, the US National Institute of Standards and Technology (NIST), an agency of the U.S. Department of Commerce, organized a Face Vendor Recognition Test (FRVT). These tests provided independent government evaluations of commercially available and prototype face recognition technologies. These evaluations are designed to provide U.S. Government and law enforcement agencies with information to assist them in determining where and how facial recognition technology can best be deployed. In addition, FRVT results help identify future research directions for the face recognition community.

The US government conducted two other projects to promote and advance face recognition technologies. The FERET program started in September 1993 and ended in 1997. The Face Recognition Grand Challenge (FRGC) ran from May 2004 to March 2006. The test databases and results of FRVT and FRGC are still available for researchers.

There are other actors who promote face recognition technologies. The IEEE conference on Automatic Face and Gesture Recognition is the premier international forum for research in image and video- based face, gesture, and body movement recognition. Its broad scope includes advances in fundamental computer vision, pattern recognition, computer graphics, and machine learning techniques relevant to face, gesture, and body action, new algorithms, and analysis of specific applications. The Eleventh conference (FG 2015) will be held in Ljubljana, Slovenia in may 2015.

Another notable event in the domain of face recognition was the takeover in June 2012 by Facebook of Face.com Inc, an Israel-based technology company that developed a platform for efficient and accurate facial recognition in photos uploaded via web and mobile applications. One month later, the face.com API was shut down, which left some 45.000 developers stranded, and saw the developer community demanding an open source alternative. Six years earlier, Google acquired Neven Vision, whose technology for face recognition was integrated in Picasa Web Albums in September 2008.

Face Recognition Technologies

Face recognition is based on three approaches :

  • geometric : this approach is based on geometrical relationship between facial landmarks (distances and angles between eyes, nose, mouth , eyebrows, chin, jaw, cheekbones,  …).
  • photometric : this is a statistical approach that distills an image into values and compares the values with templates to eliminate variance.
  • 3D : three-dimensional (3D) face recognition  is based on distinctive features such as curves of eye sockets, chin, nose, tissues and cheekbones. This approach allows to identify a face from a range of viewing angles, including a profile view.

Popular recognition algorithms include :

Web based solutions

Animetrics : FaceR Identity Management System

Animetrics develops next-generation 2D-to-3D face recognition, identity management and biometrically enabled search engine products for authentication and search which links photographic clouds, cameras, video and image stores via Web-service based facial search engines. Animetrics is poised for strong growth in the Government market for mobile and intelligence, and the Commercial & Consumer markets for mobile, social networking and security by revolutionizing human interfaces to computing devices and social media.

APICloud.Me : FaceRect and FaceMark

FaceRect is a powerful and completely free API for face detection. FaceMark is a powerful API for facial feature detection. It finds 68 points for a frontal face and 35 for a profile one. FaceMark detects landmarks for faces on the image specified by URL or uploaded as a file and produces JSON output containing a vector of facial landmarks and orientation for each face found.

Betaface : Face Detection & Recognition

You can communicate with the Betaface webservice from any platform, any OS that will allow you to send and receive HTTP messages. The Website is owned and operated by Software Oleksandr Kazakov, Munich, Germany.

BioID : be recognized

BioID says to be the world’s first webcam-based personal recognition system for web and mobile users : convenient, reliable, secure. BioID provides a playground as test bed for the BioID Web Service, a collection of simple API calls enhancing existing systems with powerful biometrics (face recognition and voice recognition). You can sign up for a free My BioID account. Dr. Robert Frischholz, the author of the Face Detection Homepage, is the Chief Technical Officer (CTO) of BioID.

BiometryCloud : Face recognition for developers

BiometryCloud provides frameworks and plugins that, combined with their pattern recognition API’s, result in the most simple, fast and robust identity platform on the market. The service will be launched soon, you can subscribe to a private beta now.

HP Lab’s Multimedia Analytics Platform : beta

HP offers the Multimedia Analytics Platform Site as a place where you can experiment with some of the latest technologies that are under development at HP Labs, using your own media or sample pictures they provide. The following services are available : Face Detection, Face Verification, Face Demographic, Feature Extraction, Image Matching and Image Collage.

Lambda Labs : Face Recognition API βeta

Lambda Labs, Inc. was founded in the spring of 2012 in San Francisco and is now looking for the best hackers, academics, hustlers, and financiers to join them. A freemium subscription is offered to test the API which provides face recognition, facial detection, eye position, nose position, mouth position, and gender classification.

ReKognition : Integrated visual recognition solution based in Cloud

ReKognition is an open API platform provided by Orbeus, which helps developers easily incorporate the state-of-the-art computer vision capabilities of facial recognition, object recognition and scene understanding into your app or software. Orbeus is a computer vision company that empowers computers to see better than humans. Orbeus says to be the first and only company to provide a proprietary cloud-based image analysis solution that makes sense of faces, scenes and objects all together. You can sign up for a free Play Plan. An iOS beta app was available.

Sky Biometry : Cloud-based Face Detection and Recognition API

SkyBiometry introduces an cloud-based Face Detection and Recognition API. At the core of the product is one of the worlds best algorithms for the detection and recognition of faces that is successfully used in many commercial products around the globe. A free subscription is available.

More web services

Commercial solutions

Cybula FaceEnforce : 3D Face Recognition system

Cybula’s FaceEnforce system represents the leading edge technology for 3D facial biometrics.

FaceFirst : The Leader in Facial Recognition Technology

FaceFirst uses the world’s most highly developed facial recognition software. It is patent-pending technology rated number one by the 2006 Face Recognition Vendor Test conducted by the U.S. Commerce Department’s National Institute of Standards and Technology.

Luxand : FaceSDK 5.0

Luxand Inc. is a private hi-tech company formed in 2005. The company provides a broad range of facial feature recognition solutions. The company’s products and technologies are used by biometric identification and security companies, banks, the entertainment industry, medical and cosmetic industry, at online entertainment portals, chat rooms, and movie Web sites around the globe.

NEUROtechnology VeriLook

VeriLook facial identification technology is designed for biometric systems developers and integrators. The technology assures system performance and reliability with live face detection, simultaneous multiple face recognition and fast face matching in 1-to-1 and 1-to-many modes.

RoboRealm 2.67.45 : vision for machines

RoboRealm is an application for use in computer vision, image analysis, and robotic vision systems. RoboRealm’s face detection module is used to detect the presence of faces within an image.

Sensible Vision FastAccess SDK

FastAccess is facial recognition software for secure access to computing devices which reduces the need to manually log in to the device while maintaining strong security.

Free open source solutions

CCV 0.6 : A Modern Computer Vision Library

One core concept of ccv development is application driven. As a result, ccv end up implementing a handful state-of-art algorithms. It includes a very fast detection algorithm for rigid object (face etc.), an accurate object detection algorithm for somewhat difficult object (pedestrian, cat etc.), a state-of-art text detection algorithm, a long term object tracking algorithm, and the long-standing feature point detection algorithm.

FaceRecLib 2.0.0

The FaceRecLib is an open source platform that is designed to run comparable and reproducible face recognition experiments. This library is developed at the Biometrics group at the Idiap Research Institute. The FaceRecLib is a satellite package of the free signal processing and machine learning library Bob (version 2.0.0), and some of its algorithms rely on the CSU Face Recognition Resources.

OpenCV 3.0 : Open Source Computer Vision

OpenCV is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, C, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing.

An OpenCV version is also available for processing and Android.

OpenBR 0.5.0 : Open Source Biometric Recognition

OpenBR is a framework for investigating new modalities, improving existing algorithms, interfacing with commercial systems, measuring recognition performance, and deploying automated biometric systems. The project is designed to facilitate rapid algorithm prototyping, and features a mature core framework, flexible plugin system, and support for open and closed source development. Off-the-shelf algorithms are also available for specific modalities including Face Recognition, Age Estimation, and Gender Estimation. OpenBR requires OpenCV and Qt.

Bibliography

The following liist provides links to websites with additional informations about face recognition :

Optical and intelligent character recognition (OCR and ICR)

Optical character recognition (OCR) is the mechanical or electronic translation of scanned images of handwritten, typewritten or printed text into machine-encoded text.

Intelligent character recognition (ICR) is an advanced optical character recognition or handwriting recognition system that allows fonts and different styles of handwriting to be learned by a computer.

Today the platform for people to use OCR has been changed from single PC’s to web-based applications (Cloud Computing) and mobile devices.

A comparison of optical character recognition software is available at Wikipedia.

One of the best open source OCR engines available today is Tesseract. Tesseract was originally developed as proprietary software at Hewlett-Packard between 1985 and 1995. In 2005 it was released as open source by Hewlett Packard and University of Nevada-Las VegasUNLV (UNLV). Tesseract development has been sponsored by Google since 2006. It is now released under the Apache License, Version 2.0.

There are some free OCR tools available that are based on Tesseract, for desktop PC’s and as online services :