MSAD Multi-Scenario Anomaly Detection
Video anomaly detection across multiple scenarios. Annotators watch surveillance-style videos and mark temporal segments containing anomalous events, classifying the anomaly type.
Configuration Fileconfig.yaml
# MSAD Multi-Scenario Anomaly Detection Configuration
# Based on Zhang et al., NeurIPS 2024
# Task: Detect and classify anomalous events in surveillance-style videos
annotation_task_name: "MSAD Multi-Scenario Anomaly Detection"
task_dir: "."
# Data configuration
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "video_url"
# Output
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
# Annotation schemes
annotation_schemes:
# Temporal anomaly segment marking
- name: "anomaly_segments"
description: |
Mark temporal segments where anomalous events occur.
Drag to select the start and end of each anomalous event.
Normal segments do not need to be marked.
annotation_type: "video_annotation"
mode: "segment"
labels:
- name: "anomaly"
color: "#EF4444"
key_value: "a"
- name: "suspicious"
color: "#F59E0B"
key_value: "s"
frame_stepping: true
show_timecode: true
playback_rate_control: true
zoom_enabled: true
timeline_height: 80
# Anomaly type classification
- name: "anomaly_type"
description: |
Classify the type of anomaly detected in the marked segment.
Select the most appropriate category for the anomalous event.
annotation_type: radio
labels:
- name: "Violence"
tooltip: "Physical altercation, fighting, assault"
key_value: "1"
- name: "Theft"
tooltip: "Stealing, pickpocketing, shoplifting, robbery"
key_value: "2"
- name: "Traffic Violation"
tooltip: "Running red lights, wrong-way driving, reckless driving"
key_value: "3"
- name: "Fire"
tooltip: "Fire, smoke, explosion"
key_value: "4"
- name: "Vandalism"
tooltip: "Property damage, graffiti, destruction"
key_value: "5"
- name: "Trespassing"
tooltip: "Unauthorized entry, breaking and entering, fence climbing"
key_value: "6"
- name: "Normal"
tooltip: "No anomaly detected, normal activity"
key_value: "7"
# Severity assessment
- name: "severity"
description: "Rate the severity of the detected anomaly"
annotation_type: radio
labels:
- name: "Low"
tooltip: "Minor incident, low risk"
key_value: "q"
- name: "Medium"
tooltip: "Moderate incident, potential risk"
key_value: "w"
- name: "High"
tooltip: "Serious incident, significant risk"
key_value: "e"
- name: "Critical"
tooltip: "Severe incident, immediate danger"
key_value: "r"
# User configuration
allow_all_users: true
# Task assignment
instances_per_annotator: 40
annotation_per_instance: 3
# Instructions
annotation_instructions: |
## Multi-Scenario Video Anomaly Detection Task
Your goal is to detect and classify anomalous events in surveillance-style video clips.
### Step 1: Watch the Video
- Watch the entire video at normal speed first
- Note any unusual or abnormal events
### Step 2: Mark Anomaly Segments
- Use the timeline to mark the START and END of each anomalous event
- Mark clearly anomalous events as "anomaly" (red)
- Mark borderline/uncertain events as "suspicious" (yellow)
- Normal segments do not need annotation
### Step 3: Classify Anomaly Type
For each marked segment, select the anomaly type:
- **Violence (1)**: Physical fights, assaults, aggression
- **Theft (2)**: Stealing, pickpocketing, robbery
- **Traffic Violation (3)**: Reckless driving, red light running
- **Fire (4)**: Fire, smoke, explosions
- **Vandalism (5)**: Property damage, destruction
- **Trespassing (6)**: Unauthorized entry, fence climbing
- **Normal (7)**: No anomaly (use for false alarms)
### Step 4: Rate Severity
- **Low**: Minor, no immediate harm
- **Medium**: Moderate risk, requires attention
- **High**: Serious, requires immediate response
- **Critical**: Life-threatening or extremely dangerous
### Tips:
- Use slow motion for fast events
- Pay attention to background activity, not just foreground
- Mark the entire duration of the anomalous event
- When in doubt between types, choose the most severe classification
Sample Datasample-data.json
[
{
"id": "msad_001",
"video_url": "https://example.com/videos/parking_lot_night_001.mp4",
"scenario": "parking_lot",
"duration": 120,
"description": "Nighttime parking lot surveillance showing vehicles entering and exiting, with a suspicious figure near a parked car"
},
{
"id": "msad_002",
"video_url": "https://example.com/videos/intersection_traffic_001.mp4",
"scenario": "traffic",
"duration": 90,
"description": "Busy urban intersection during rush hour with multiple vehicles and pedestrians crossing"
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/video/msad-anomaly-detection potato start config.yaml
Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
EPIC-KITCHENS Egocentric Action Annotation
Annotate fine-grained actions in egocentric kitchen videos with verb-noun pairs. Identify cooking actions from a first-person perspective.
FineGym Action Segmentation
Annotate fine-grained gymnastic actions with hierarchical labels. Identify specific elements, sub-actions, and routines in competition videos.
How2Sign Sign Language Multi-Tier Annotation
Multi-tier ELAN-style annotation of continuous American Sign Language videos. Annotators segment sign glosses, mark mouthing patterns, classify sign handedness, and provide English translations aligned to video timelines. Based on the How2Sign large-scale multimodal ASL dataset.