face-detect
List of contents
What is face-detect?
- Face-Detect detects human faces in an image using the Face REST API and Python.
- A successful response is returned is JSON.
For example, consider the following image:
The response for this image will be as follows:
[
{
"faceId": "e93e0db1-036e-4819-b5b6-4f39e0f73509",
"faceRectangle": {
"top": 621,
"left": 616,
"width": 195,
"height": 195
},
"faceAttributes": {
"smile": 0,
"headPose": {
"pitch": 0,
"roll": 6.8,
"yaw": 3.7
},
"gender": "male",
"age": 37,
"facialHair": {
"moustache": 0.4,
"beard": 0.4,
"sideburns": 0.1
},
"glasses": "NoGlasses",
"emotion": {
"anger": 0,
"contempt": 0,
"disgust": 0,
"fear": 0,
"happiness": 0,
"neutral": 0.999,
"sadness": 0.001,
"surprise": 0
},
"blur": {
"blurLevel": "high",
"value": 0.89
},
"exposure": {
"exposureLevel": "goodExposure",
"value": 0.51
},
"noise": {
"noiseLevel": "medium",
"value": 0.59
},
"makeup": {
"eyeMakeup": true,
"lipMakeup": false
},
"accessories": [],
"occlusion": {
"foreheadOccluded": false,
"eyeOccluded": false,
"mouthOccluded": false
},
"hair": {
"bald": 0.04,
"invisible": false,
"hairColor": [
{
"color": "black",
"confidence": 0.98
},
{
"color": "brown",
"confidence": 0.87
},
{
"color": "gray",
"confidence": 0.85
},
{
"color": "other",
"confidence": 0.25
},
{
"color": "blond",
"confidence": 0.07
},
{
"color": "red",
"confidence": 0.02
}
]
}
}
},
{
"faceId": "37c7c4bc-fda3-4d8d-94e8-b85b8deaf878",
"faceRectangle": {
"top": 693,
"left": 1503,
"width": 180,
"height": 180
},
"faceAttributes": {
"smile": 0.003,
"headPose": {
"pitch": 0,
"roll": 2,
"yaw": -2.2
},
"gender": "female",
"age": 56,
"facialHair": {
"moustache": 0,
"beard": 0,
"sideburns": 0
},
"glasses": "NoGlasses",
"emotion": {
"anger": 0,
"contempt": 0.001,
"disgust": 0,
"fear": 0,
"happiness": 0.003,
"neutral": 0.984,
"sadness": 0.011,
"surprise": 0
},
"blur": {
"blurLevel": "high",
"value": 0.83
},
"exposure": {
"exposureLevel": "goodExposure",
"value": 0.41
},
"noise": {
"noiseLevel": "high",
"value": 0.76
},
"makeup": {
"eyeMakeup": false,
"lipMakeup": false
},
"accessories": [],
"occlusion": {
"foreheadOccluded": false,
"eyeOccluded": false,
"mouthOccluded": false
},
"hair": {
"bald": 0.06,
"invisible": false,
"hairColor": [
{
"color": "black",
"confidence": 0.99
},
{
"color": "gray",
"confidence": 0.89
},
{
"color": "other",
"confidence": 0.64
},
{
"color": "brown",
"confidence": 0.34
},
{
"color": "blond",
"confidence": 0.07
},
{
"color": "red",
"confidence": 0.03
}
]
}
}
}
]
Installation
- Clone the project by running the following command:
git clone https://github.com/hmangukia/face-detect.git
- For setting up the project, you will need a valid Azure subscription for
KEY
andFace API URL
. - Then you will need to create a resource for using Azure's cognitive services. You can do it by following this tutorial.
- After getting the keys, set the values of
KEY
andAPI
. - Set the url(image_url) of the image you want to perform detection on.
- To run the project, open terminal in your project folder and run the following command:
python3 detect-face.py
Successful JSON response will be given in the terminal showing various features like age, gender, facial hair, emotion, makeup(eye/lip), accessories, hairs(color/bald or not) and more.