Skip to main content

AILabTools API - Face Analyzer - API

Request

  • URL: https://www.ailabapi.com/api/portrait/analysis/face-analyzer
  • Method: POST
  • Content-Type: multipart/form-data

Image requirements

  • Image format: JPG JPEG PNG BMP
  • Image size: No more than 5 MB.
  • Image resolution: Less than 2000x2000px.
FieldRequiredTypeDescription
ailabapi-api-keyYESstringApplication API KEY. Get API KEY

Body

FieldRequiredTypeScopeDefaultExampleDescription
imageYESfile
max_face_numNOinteger[1, 120]1The maximum number of faces processed. When set to 1, only the largest face in the image is detected. A smaller value leads to faster processing speed.
face_attributes_typeNOstring
  • None
  • Age
  • Beauty
  • Emotion
  • Eye
  • Eyebrow
  • Gender
  • Hair
  • Hat
  • Headpose
  • Mask
  • Mouth
  • Moustache
  • Nose
  • Shape
  • Skin
  • Smile
  • NoneAge,BeautyWhether to return attributes such as age, gender, mood, etc. AttributesInfo is returned for up to 5 faces with the largest area, and AttributesInfo for more than 5 faces (the 6th and later faces) are not referenced.
    need_rotate_detectionNOinteger
  • 0
  • 1
  • 0Whether to enable image rotation recognition support. When the face in the picture is rotated and there is no exif information in the picture, if you don't turn on the picture rotation recognition support, you can't detect and recognize the face in the picture correctly. If you are sure that the picture contains exif information or you are sure that the face in the input picture will not be rotated, please do not turn on this parameter. If this parameter is turned on, the overall time required may increase by hundreds of milliseconds.
  • 0: Close.
  • 1: Open.
  • Response

    Processing Flow
    1. Handle Public Parameters:

      First, parse and validate the Public Parameters, checking the status code or response message to ensure the request is successful and no errors are present.

    2. Handle Business Parameters:

      If the public parameters are valid and no exceptions are found, proceed to process the business logic in the Business Parameters.

    Public Parameters

    Viewing Public Parameters and Error Codes

    Business Parameters

    FieldTypeScopeDescription
    image_widthintegerImage width.
    image_heightintegerImage height.
    face_detail_infosarrayList of face information.
    +face_rectobjectFace frame position.
    ++xintegerThe horizontal coordinate of the upper left corner of the face frame.The face frame contains the positions of the five senses of the face and expands on them, if the face frame is out of the range of the picture, it will lead to negative coordinates.If you need to intercept the complete face, you can take the negative coordinate to 0 if the complete subcompletess meets the demand.
    ++yintegerThe vertical coordinate of the upper left corner of the face frame. The face frame contains the positions of the five senses of the face and expands them to a certain extent. If the face frame exceeds the range of the picture, it will lead to negative coordinates. If you need to intercept the complete face, you can take the negative coordinate to 0 if the complete subcompletess meets the demand.
    ++widthintegerFace width.
    ++heightintegerFace height.
    +face_detail_attributes_infoobjectFace attribute information.
    ++ageinteger[0, 65]Age. 65: 65 years old and above. When face_attributes_type does not contain Age or when more than 5 faces are detected, this parameter is still returned but is not informative.
    ++beautyinteger[0, 100]Beauty Score. When face_attributes_type does not contain Beauty or when more than 5 faces are detected, this parameter is still returned but is not informative.
    ++emotionobjectEmotional information. When face_attributes_type does not contain Emotion or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 0: Neutral.
  • 1: Happy.
  • 2: Surprised.
  • 3: Angry.
  • 4: Sad.
  • 5: Disgusted.
  • 6: Fearful.
  • +++probabilityfloat[0, 1]Probability of being correct.
    ++eyeobjectEye-related information. face_attributes_type does not contain Eye or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++glassobjectWearing glasses.
    ++++typeinteger
  • 0
  • 1
  • 2
  • 0: No glasses.
  • 1: Regular glasses.
  • 2: Sunglasses.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    +++eye_openobjectClosed eyes.
    ++++typeinteger
  • 0
  • 1
  • 0: No.
  • 1: Yes.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    +++eyelid_typeobjectDouble eyelids.
    ++++typeinteger
  • 0
  • 1
  • 0: No.
  • 1: Yes.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    +++eye_sizeobjectEye size.
    ++++typeinteger
  • 0
  • 1
  • 2
  • 0: Small eyes.
  • 1: Regular eyes.
  • 2: Large eyes.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    ++eyebrowobjectEyebrow information. face_attributes_type does not contain Eyebrow or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++eyebrow_densityobjectThick eyebrows.
    ++++typeinteger
  • 0
  • 1
  • 0: Sparse eyebrows.
  • 1: Thick eyebrows.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    +++eyebrow_curveobjectCurved eyebrows.
    ++++typeinteger
  • 0
  • 1
  • 0: Not curved.
  • 1: Curved eyebrows.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    +++eyebrow_lengthobjectEyebrow length.
    ++++typeinteger
  • 0
  • 1
  • 0: Short eyebrows.
  • 1: Long eyebrows.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    ++genderobjectGender information. face_attributes_type does not contain Gender or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++typeinteger
  • 0
  • 1
  • 0: Male.
  • 1: Female.
  • +++probabilityfloat[0, 1]Probability of being correct.
    ++hairobjectHair information. face_attributes_type does not contain Hair or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++lengthobjectHair length information.
    ++++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 4
  • 0: Bald.
  • 1: Short hair.
  • 2: Medium-length hair.
  • 3: Long hair.
  • 4: Tied hair.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    +++bangobjectFringe (bangs) information.
    ++++typeinteger
  • 0
  • 1
  • 0: No fringe (bangs).
  • 1: Has fringe (bangs).
  • ++++probabilityfloat[0, 1]Probability of being correct.
    +++colorobjectHair color information.
    ++++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 0: Black.
  • 1: Blonde.
  • 2: Brown.
  • 3: Gray/White.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    ++hatobjectHat information. face_attributes_type does not contain Hat or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++styleobjectHat wearing status information.
    ++++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 0: No hat.
  • 1: Regular hat.
  • 2: Helmet.
  • 3: Security hat.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    +++colorobjectHat color.
    ++++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 0: No hat.
  • 1: Red shades.
  • 2: Yellow shades.
  • 3: Blue shades.
  • 4: Black shades.
  • 5: Gray/White shades.
  • 6: Mixed colors.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    ++head_poseobjectFace offset information. face_attributes_type does not contain HeadPose or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++pitchinteger[-30, 30]Vertical Offset.
    +++yawinteger[-30, 30]Horizontal Offset.
    +++pitchinteger[-180, 180]Planar Rotation.
    ++maskobjectMask wearing information. face_attributes_type does not contain Mask or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 4
  • 0: No mask.
  • 1: Mask without covering face.
  • 2: Mask covering chin.
  • 3: Mask covering mouth.
  • 4: Correctly worn mask.
  • +++probabilityfloat[0, 1]Probability of being correct.
    ++mouthobjectMouth information. face_attributes_type does not contain Mouth or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++mouth_openobjectMouth open.
    ++++typeinteger
  • 0
  • 1
  • 0: No.
  • 1: Yes.
  • ++++probabilityfloat[0, 1]Probability of being correct.
    ++moustacheobjectFacial hair information. face_attributes_type does not contain Moustache or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++typeinteger
  • 0
  • 1
  • 0: No facial hair.
  • 1: Facial hair.
  • +++probabilityfloat[0, 1]Probability of being correct.
    ++noseobjectNose information. face_attributes_type does not contain Nose or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 0: Upturned nose.
  • 1: Hooked nose.
  • 2: Normal.
  • 3: Round-tipped nose.
  • +++probabilityfloat[0, 1]Probability of being correct.
    ++shapeobjectFace shape information. face_attributes_type does not contain Shape or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 4
  • 0: Square face.
  • 1: Triangular face.
  • 2: Oval face.
  • 3: Heart-shaped face.
  • 4: Round face.
  • +++probabilityfloat[0, 1]Probability of being correct.
    ++skinobjectSkin color information. face_attributes_type does not contain Skin or when more than 5 faces are detected, this parameter is still returned but is not informative.
    +++typeinteger
  • 0
  • 1
  • 2
  • 3
  • 0: Yellow skin.
  • 1: Brown skin.
  • 2: Black skin.
  • 3: White skin.
  • +++probabilityfloat[0, 1]Probability of being correct.
    ++smileinteger[0,100]Smile Rating. face_attributes_type does not contain Smile or when more than 5 faces are detected, this parameter is still returned but is not informative.

    Example

    {
    "request_id": "",
    "log_id": "",
    "error_code": 0,
    "error_code_str": "",
    "error_msg": "",
    "error_detail": {
    "status_code": 200,
    "code": "",
    "code_message": "",
    "message": ""
    },
    "image_width": 0,
    "image_height": 0,
    "face_detail_infos": [
    {
    "face_rect": {
    "x": 0,
    "y": 0,
    "width": 0,
    "height": 0
    },
    "face_detail_attributes_info": {
    "age": 0,
    "beauty": 0,
    "emotion": {
    "type": 0,
    "probability": 0
    },
    "eye": {
    "glass": {
    "type": 0,
    "probability": 0.99936753511429
    },
    "eye_open": {
    "type": 0,
    "probability": 0.99949336051941
    },
    "eyelid_type": {
    "type": 1,
    "probability": 0.75467920303345
    },
    "eye_size": {
    "type": 2,
    "probability": 0.59152442216873
    }
    },
    "eyebrow": {
    "eyebrow_density": {
    "type": 0,
    "probability": 0
    },
    "eyebrow_curve": {
    "type": 0,
    "probability": 0
    },
    "eyebrow_length": {
    "type": 0,
    "probability": 0
    }
    },
    "gender": {
    "type": 0,
    "probability": 0
    },
    "hair": {
    "length": {
    "type": 0,
    "probability": 0
    },
    "bang": {
    "type": 0,
    "probability": 0
    },
    "color": {
    "type": 0,
    "probability": 0
    }
    },
    "hat": {
    "style": {
    "type": 0,
    "probability": 0
    },
    "color": {
    "type": 0,
    "probability": 0
    }
    },
    "head_pose": {
    "pitch": 0,
    "yaw": 0,
    "roll": 0
    },
    "mask": {
    "type": 0,
    "probability": 0
    },
    "mouth": {
    "mouth_open": {
    "type": 0,
    "probability": 0
    }
    },
    "moustache": {
    "type": 0,
    "probability": 0
    },
    "nose": {
    "type": 2,
    "probability": 0.75233882665634
    },
    "shape": {
    "type": 0,
    "probability": 0
    },
    "skin": {
    "type": 0,
    "probability": 0
    },
    "smile": 0
    }
    }
    ]
    }

    Code example