CSAM detection and severity classification
Rigr AI's Media Classification capability — find and grade seized media at case scale, on infrastructure you control.
Overview
Identifying and classifying sexual content in seized media is central to child exploitation investigations. Manual review is slow, traumatic for investigators, and inconsistent at scale.
Rigr AI's Media Classification capability uses deep-learning object detection to identify sexual content, body parts, activities, and contextual indicators in images — then maps those detections to a structured severity classification that your team configures.
Detection Capabilities
Our AI models detect visual elements across the following categories:
Body Parts & Anatomy
Genitalia, breasts, buttocks, hands, feet — each classified by developmental stage (infant through adult).
Sexual Activities
Intercourse, oral sex, penetration, masturbation, posing, and non-penetrative contact — detected and labelled precisely.
Age Demographics
Faces and full-body figures classified by developmental stage: infant, toddler, prepubescent, pubescent, and adult.
Contextual Indicators
Selfies (phone/camera), screenshots, CSAM network logos, clothing, jewellery, restraints, and other evidentiary markers.
Configure classification for your jurisdiction
Your team chooses which detected elements lead to each severity level. Rigr provides suggested rules that you can adapt to applicable legislation and your operational requirements, including where no national classification framework applies.
Every image is assigned a frame-level severity based on the most serious content detected. The scale below is the suggested configuration Rigr ships with:
| Severity | Classification | Description |
|---|---|---|
| 0 | No sexual content | No sexual content detected — not a finding that the item is irrelevant |
| 1 | Adult — benign (reviewer verdict) | Explicit adult material, assigned by an analyst on review. The classifier never emits level 1 — its scale is 0, 2, 3, 4, 5. |
| 2 | Exploitative / suggestive | Nudity, exposed anatomy, or sexualised context without explicit activity |
| 3 | Overt sexualised posing | Deliberate genital presentation or overtly sexualised positioning |
| 4 | Non-penetrative sexual activity | Masturbation, licking, or other non-penetrative sexual contact |
| 5 | Penetrative sexual activity | Intercourse, oral sex, anal or vaginal penetration |
Each detection is also enriched with contextual flags — such as Self-Generated, Sadomasochism, or CG Elements — providing additional investigative context. This is a triage scale, not a statutory one. Categories and thresholds differ by jurisdiction, and your team decides which detections map to which level.
Filter and sort by predicted severity and model confidence to prioritise review. A family photograph or a document can matter to a case without containing sexual content, so a low severity is a place in the queue rather than a decision about relevance.
Try It
Upload an image to see media classification in action. Adult content is accepted for testing purposes.
Adult content is fine for testing — do not upload CSAM.
Images you submit are kept for up to 7 days for trust & safety review, then deleted. How we handle demo data →
Operational Use
Within investigative workflows, Media Classification is used to:
- Triage large volumes of seized media by severity
- Identify specific sexual activities, body parts, and contextual indicators
- Flag self-generated content, CSAM network logos, and other evidentiary markers
- Prioritise review queues so investigators focus on the most serious material first
The capability is also available as a standalone API or containerised application that can be deployed in an air-gapped environment.
Deployment and Control
- Fully containerised
- On-premise and air-gapped operation
- No data retention
- Customer retains full control of inputs and outputs
For Developers
The classification API accepts images via multipart upload and returns a severity classification, contextual flags, and per-object detections with bounding boxes and confidence scores.
Facial age estimation runs in the same pass. Add estimate_age=true and every face detection carries an apparent age and its calibrated uncertainty alongside the severity classification and the per-object detections — one image, one API call. Apparent age and developmental stage are visual estimates: they do not verify identity or establish a person's legal age.
Full endpoint, response-schema and error-code detail is in the Media Examiner API reference, with a machine-readable OpenAPI document so you can generate a client rather than write one. English only.
POST /classify curl -X POST https://api.mes.rigr.ai/classify \
-H "X-API-KEY: $API_KEY" \
-F "[email protected]" \
-F "model=VisualyzeV2" \
-F "estimate_age=true" {
"classification": {
"key": "rigr-penetrative",
"display_name": "Penetrative sexual activity",
"severity": 5
},
"flags": ["Self-Generated"],
"detections": [{
"class_name": "Male Receive Oral",
"score": 0.87,
"bbox": {"x": 0.12, "y": 0.45, "w": 0.31, "h": 0.62},
"ucs_sexual_content": "Penetrative Sexual Activity",
"ucs_flags": []
}, {
"class_name": "Pubescent Female Face",
"score": 0.92,
"bbox": {"x": 0.50, "y": 0.17, "w": 0.09, "h": 0.18},
"age": 14.8,
"age_uncertainty": 2.1,
"original_class_name": "Prepubescent Female Face"
}]
} Facing a digital evidence backlog?
Severity classification is what makes a large seizure triageable: the review queue is ordered by what matters rather than by filename, so specialist time goes to the most serious material first. See where it sits in the wider triage layer in reducing digital evidence backlogs, or watch a team work down a device in the classification review tour.
Frequently asked questions
What does Rigr AI's Media Classification detect?
Our AI models identify sexual content, body parts, activities, and contextual indicators in seized images, then map each image to a structured severity classification that your team configures.
How is severity classified?
Every image is assigned a frame-level severity based on the most serious content detected, with contextual flags such as self-generated content or CSAM-network markers. Your team chooses which detected elements lead to each level: Rigr supplies a suggested 0–5 configuration that you adapt to applicable legislation and your operational requirements.
How does it reduce investigator exposure?
Within VST Teams it triages thousands of seized files by severity and builds the priority queue, keeping the most serious material off reviewers' screens until it has to be seen. It is also available as a standalone API or containerised application.
Can it be deployed air-gapped?
Yes — fully containerised, on-premise and air-gapped, with no data retention and full customer control of inputs and outputs.