Upload
luigi-oliveto
View
1.952
Download
2
Embed Size (px)
Citation preview
Template designed by
Face Recognition using C#
Matteo Valoriani
@matteovaloriani
Luigi Oliveto
@luigioliveto
Matteo Valoriani
CEO of Fifth ElementSpeaker and ConsultantPhD at Politecnico of Milano
Microsoft MVP
Intel Software Innovator
email: [email protected]: @MatteoValorianilinkedin: https://it.linkedin.com/in/matteovaloriani
Nice to Meet You
2
Luigi Oliveto
DeveloperCo-SpeakerMaster of Science at Politecnico of Milano
email: [email protected]: @LuigiOlivetolinkedin: https://it.linkedin.com/in/luigioliveto
Nice to Meet You
3
Face Detection vs Face Recognition vs Face Identification
Face Analysis HomeMade• OpenCV/Emgu
Face Analysis with Cloud Services• BetaFace
• Microsoft Face API
Face Analysis with Special Camera• Kinect
• RealSense
Conclusions• Common Problems and Limits
Agenda
Face detection is a computer technology that
identifies human faces in digital images.
Face Detection
Facial Point DetectionFace Detection/Tracking
Face Analysis is a computer technology that
analyze human faces in digital images and
elaborate physical and emotional characteristics.
Face Analysis
Gender/Age/Race AnalysisEmotion Analysis
Facial recognition system is a computer
application for automatically identifying or
verifying a person from a digital image or a video
frame from a video source.
Face Recognition
Face Similarity/GroupingFace Verification Face Identification
The basic layer (layer 1)
contains function, structure
and enumeration mappings
which directly reflect those in
OpenCV.
The second layer (layer 2)
contains classes that mix in
advantanges from the .NET
world.
EMGU Architecture
To start with you need to reference 3 EMGU DLL’s.
• Emgu.CV.dll
• Emgu.CV.UI.dll
• Emgu.Util.dll
using Emgu.CV;
using Emgu.Util;
using Emgu.CV.Structure;
Create a project with EMGU
cudart64_32_16.dll
cufft64_32_16.dll
cvextern.dll
npp64_32_16.dll
opencv_calib3d220.dll
opencv_contrib220.dll
opencv_core220.dll
opencv_features2d220.dll
opencv_flann220.dll
opencv_gpu220.dll
opencv_highgui220.dll
opencv_imgproc220.dll
opencv_legacy220.dll
opencv_ml220.dll
opencv_objdetect220.dll
opencv_video220.dll
Add > Existing Item
The goal of statistical classification is to use an object's
characteristics to identify which class (or group) it belongs to.
An object's characteristics are also known as feature values and
are typically presented to the machine in a vector called a feature
vector.
Machine Learning Classifier
OpenCV/EmguCV uses a type of face detector called a Haar Cascade.
The Haar Cascade is a classifier (detector) trained on thousands of human faces.
This training data is stored in an XML file, and is later used by the classifier during detection.
It’s the easiest ready to use face detection method which is supported by OpenCV/EmguCV and has great results.
Haar Feature-based Cascade Classifier
The Fisher Classifier is a linear classifier.
A linear classifier achieves this by
making a classification decision based
on the value of a linear combination of
the characteristics.
The Fisher Classifier
General face info:- faces (positions, sizes, angles)- face landmarks locations (22 basic, 101 pro)- cropped face images- gender, age, ethnicity, smile, glasses, mustache and beard detection
Extended measurements:- face and facial features shapes description- hair and skin color- facial hair detection- approximate hairstyle shape- background color and clothes color.
BetaFace - Metadata
Following functions supported:
- upload image file or submit image url
- retrieve image and face metadata, including cropped face image
- compare single faces or groups of faces and receive similarity confidence along with match
decision.
- transform face image(s) - generate averages from two or more faces, change face
expression or otherwise modify them.
- add user defined metadata tags, store user-adjusted points and face info.
BetaFace - Metadata
JSON/XML response
<FaceInfo>
<angle>3.3149</angle>
<height>78.05</height>
<image_uid>2bdcd1ad-47a6-45f8-ba74-
86c765272422</image_uid>
<points>
<PointInfo>
<name>basic eye left</name>
<type>512</type>
<x>313.82</x>
<y>48.88</y>
</PointInfo>
…
</points>
<score>4.81</score>
<tags>
<TagInfo>
<confidence>0.07</confidence>
<name>age</name>
<value>31</value>
</TagInfo>
….
< /tags >
22 Points (Basic mode)
101 Points (Advanced Mode)
Basic:Age - approximate age value beard - yes, no gender - male, female glasses - yes, no mustache - yes, no smile - yes, norace - asian-middle-eastern, asian, african-american, hispanic, white, middle eastern, other
1. Get XML string
2. Generate XSD• https://devutilsonline.com/xsd-xml/generate-xsd-from-xml
3. Generate C# classes• XML Schema Definition Tool (Xsd.exe)
Create C# Classes from XML
FREE: Current public API key limits: faces search/recognition requests - no limits; new images - 500 images per day (15000 images per month); Same image with different set of processing flags counts as new image; images in processing queue - 500; transform requests - no limits.
Freemium: 0 EUR/month 500 IMAGE /day, 0.035 EUR extraBasic: 199 EUR/month 40000 IMAGE/month 0.025 EUR extraPremium: 399 EUR/month 100000 IMAGE/month 0.02 EUR extra.
IMAGE – Each new image processed via UploadImage, UploadNewImage_File or UploadNewImage_Url functions.- uploading the same image with different detection_flags counts as IMAGE.- uploading the same image with the same set of detection_flags while previous processing results are still in cache does not count as IMAGE.- no restrictions on recognize, GetRecognizeInfo or GetImageInfo requests; no restrictions on number of namespaces or their size
If you like to subscribe to one of those plans send email to [email protected] with your details for invoice and plan you selected. We will send you your personal API key.
Current data storage policy: Source images are removed from cache shortly after processing. Faces that have no person/namespace assigned and corresponding image metadata usually cleaned up after 10 days (face IDs and image IDs will be invalidated).
Licensing: Free VS PRO
Online test: http://www.betafaceapi.com/demo.html#
Documentation:
http://www.betafaceapi.com/service_json.svc/help
Links
Face Analysis with Cloud Services
Project Oxfordhttp://www.projectoxford.ai/
Face Detection
Face Recognition• Face Verification
• Similar Face Searching
• Automatic Face Grouping
• Person Identification
Project Oxford Services
1. Access the Project Oxford Portal https://www.projectoxford.ai, and then click on the "Sign up" button.
2. Sign in with your Microsoft account, or Sign up for a new Azure subscription if you don't already have one.
3. Go down the list to select an offered service such as "Face APIs" from the list, and then click through the various windows in order to make a purchase.
4. Click on the item to view the dashboard, and at the bottom of the page, click on the 'Manage' button to go to the 'Developer Manage Keys' page.
5. Finally, Copy or regenerate subscription keys in the page.
Get Start
Grazie a tutti per la partecipazione
Riceverete il link per il download a slide e demo via email nei
prossimi giorni
Per contattarmi
Grazie