Come si può intuire dal nome stesso, la Face detection è una tecnologia utilizzata per riconoscere, o meglio, determinare la posizione e dimensione di volti umani all’interno delle immagini digitali.
Questa tecnologia, ormai onnipresente sui principali social network, ha raggiunto la maturità ed è dimostrato dal fatto che sono proliferate implentazioni in tutte le forme e linguaggi di programmazione.
Di seguito, propongo alcuni progetti che hanno attirato la mia attenzione.
Face detection in PHP
Questa implentazione è stata creata da Maurice Svay e la sua particolarità sta nel fatto che è stata sviluppata in solo PHP, senza librerie esterne.
Il codice è relativamente breve (circa 200 righe) ed è facilmente leggibile.
Purtroppo è in grado di riconoscere soltanto un viso per foto.
Home page: http://svay.com/blog/index/post/2009/06/19/Face-detection-in-pure-PHP-(without-OpenCV)
Download: https://github.com/mauricesvay/php-facedetection
Licenza: GNU GPL v2
Face detection in Javascript e HTML5
Liu Liu (un programmatore cinese) ha rilasciato una applicazione basata su HTML5 e Javascript: si basa su una libreria di visione artificale creata da egli stesso. Nonostante sia ancora ai primi passi, già mostra tutte le sue potenzialità.
Demo: http://liuliu.me/detect/detect.html
Download: https://github.com/liuliu/ccv/tree/current/js
Face detection come plugin di JQuery
Sfruttando l’algoritmo sopra citato, Jay Salvat ha creato un plugin di JQuery che semplifica enormemente il lavoro di chi utilizza questo framework.
Demo: http://facedetection.jaysalvat.com
Download: https://github.com/jaysalvat/jquery.facedetection
Face.com
Diversamente dai precedenti, si tratta di una piattaforma che fornisce un servizio tramite REST API. È gratuito e consente l’analisi di 5000 foto all’ora per account.
In realtà è in grado di fare molto più della detection: dispone di tutte le funzionalità per analizzare le informazioni facciali nelle foto e tentare di riconoscere chi vi è ritratto.
Nessuna magia però! Il processo di face recognition richiede di creare un indice di volti noti prima di poter avviare il riconoscimento. Quindi sarà prima necessaria una fase di training, in cui si aggiungeranno nell’indice alcune foto con i relativi tag. Maggiore è la dimensione del training set, maggiore sarà l’accuratezza.
Facendo un rapido esempio per la detection, è in grado di rilevare non solo la posizione del viso, ma anche degli occhi, del naso e della bocca:
Home page: http://www.face.com
Demo: http://developers.face.com/tools/#faces/detect
Licenza: http://developers.face.com/docs/terms/tou/