Age & Gender Estimation by Grip
Estimate age and gender using Grip's demographics models.
Overview
Estimate age and gender using Grip's demographics models.
Inputs & Outputs
- Input media: Raw Video.
- Output media: Raw Video.
- Output metadata:
objects[].attributes(age and gender).
Pipeline usage
Place a face detector and Grip demographics model upstream. This node only evaluates objects whose label is face, and expects the corresponding object tensor to contain a 12-value age/gender classification layer. A tracker is strongly recommended because estimates are cached by object ID between model inference frames.
For each recognized face, the node appends two attributes to the object:
- A numeric age estimate with class ID
999. maleorfemalewith class ID998.
max_object_lifespan controls how long a cached estimate is reused after its object ID disappears. Use gender_bias_adjustment only after evaluating the model on representative camera placement and lighting; positive values bias toward female, while negative values bias toward male.
Properties
| Property | Description | Type | Default | Required |
|---|---|---|---|---|
max_object_lifespan | Max. object lifespan. Unit: seconds. | float | 60 | No |
gender_bias_adjustment | Adjust for gender skew introduced by environmental factors. Negative values adjust towards male, positive values adjust towards female. Range: minimum -0.5, maximum 0.5. Step: 0.05. | float | 0.15 | No |
Output Metadata
The fields below are declared by this node's metadata schema; the JSON values are representative examples.
| Path | Type | Description |
|---|---|---|
objects | array | Value of objects. |
objects[].attributes | array | Value of attributes. |
objects[].attributes[].class_id | integer | Value of class id. |
objects[].attributes[].label | string | Value of label. |
objects[].attributes[].probability | number | Value of probability. |
objects[].class_id | integer | Value of class id. |
objects[].id | integer | Value of id. |
objects[].label | string | Value of label. |
objects[].probability | number | Value of probability. |
objects[].rect.height | integer | Value of height. |
objects[].rect.left | integer | Value of left. |
objects[].rect.top | integer | Value of top. |
objects[].rect.width | integer | Value of width. |
JSON example
{
"objects": [
{
"attributes": [
{
"class_id": 999,
"label": "20",
"probability": 1.0
},
{
"class_id": 998,
"label": "female",
"probability": 1.0
}
],
"class_id": 1,
"id": 1,
"label": "face",
"probability": 0.9,
"rect": {
"height": 40,
"left": 20,
"top": 20,
"width": 40
}
},
{
"attributes": [],
"class_id": 1,
"id": 9,
"label": "person",
"probability": 0.9,
"rect": {
"height": 120,
"left": 10,
"top": 10,
"width": 60
}
},
{
"attributes": [
{
"class_id": 999,
"label": "66",
"probability": 1.0
},
{
"class_id": 998,
"label": "male",
"probability": 1.0
}
],
"class_id": 1,
"id": 2,
"label": "face",
"probability": 0.9,
"rect": {
"height": 40,
"left": 20,
"top": 20,
"width": 40
}
}
]
}Object labels and attributes
- Object labels/classes added: None.
- Object attribute labels/classes added: Estimated age values use class
999; estimated gender values use class998.
Updated about 22 hours ago
