I’ve wanted to use Azure Machine Learning for a while but didn’t know where to start. Microsoft have released some gallery applications for Azure ML to take away some of the complexity and make it easy for developers to use the service. One item in the gallery that will be useful is Project Oxford. Project Oxford offers a number of features and the one I am going to talk about here is the Face API.
With the Face API you can train Azure ML with pictures of a number of people and then use the matching api to see whether any of the trained people appear in the image.
This is easy to setup and there is a good tutorial here: http://www.projectoxford.ai/doc/face/How-To/identifyperson
Firstly you will need to sign up and get a subscription key http://www.projectoxford.ai/doc/general/subscription-key-mgmt
Login to Azure portal with an Azure subscription, The link should open market place. Scroll down to find Face APIs and then click through to the purchase button and purchase. This api is currently free.
Your face api service will now be created. Once complete you need to extract the keys for use in your app. Click on your face api service then click the Manage Button
Click on show to view your key and copy it into your application
Download the face api from https://www.projectoxford.ai/sdk unzip and add to your project, then add a reference in your application.
Follow the code here: http://www.projectoxford.ai/doc/face/How-To/identifyperson
Be aware that when this is run you may get a bad request error (I used fiddler to see the error) when creating a Person Group. This seems to be due to case sensitivity and when I made the parameters lower case it worked! The sample code above is mixed case but the service seems to want all lowercase. Details of the error messages can be found here: https://dev.projectoxford.ai/docs/services/54d85c1d5eefd00dc474a0ef/operations/54f0387249c3f70a50e79b84 The body of the response contains the exact details of the error.
There are limitations on file size so I ended up editing mine down to below 4MB
Once trained you can detect multiple people in one photo graph and will identify those that it knows
I've trained it with a number of people especially as my daughter was identified as her mum :-)
Now I've added her into the training files she is not mistaken.
You might need to play around with the training files especially to take into account hats and glasses.