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:

Example severity configuration
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.

Take a photo

or

Upload an image

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.

Quick start 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"
Response
{
  "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"
  }]
}

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.