Welcome to the comprehensive documentation for Obscuro, a dashcam video anonymization system for detecting, tracking, and blurring people, heads, vehicles, bikes, and plates in videos.
- CLI Reference - Command-line interface usage
- API Reference - FastAPI REST endpoints
- Configuration Guide - All configuration options explained
- Python Library - Using the anonymizer as a Python library
Obscuro provides three interfaces for video anonymization:
- Command-Line Interface (CLI) - For batch processing and automation
- REST API - For integration with other applications
- Desktop GUI - For interactive video processing
All interfaces share the same core processing pipeline:
Detection → Tracking → Blurring
- Detection: Neural network-based detection of supported classes (bike, head, person, plate, vehicle)
- Tracking: Multi-object tracking to associate detections across frames
- Blurring: Apply blur effects (Gaussian, pixelate, blackout, etc.)
- Python 3.12 or higher
- uv (recommended) or pip
# Clone the repository
git clone https://github.com/tfaehse/obscuro.git
cd obscuro
# Install with uv
uv sync
# Or install with pip
pip install -e .# Blur a video with default settings
blur-cli video input.mp4
# Blur an image with custom settings
blur-cli image input.jpg --blur-type pixelate --blur-strength 20
# Generate a configuration template
blur-cli config -o my_config.tomlfrom pathlib import Path
from anonymizer import Anonymizer, AnonymizerConfig
# Create configuration
config = AnonymizerConfig()
# Initialize anonymizer
anonymizer = Anonymizer(config=config)
# Process video
anonymizer.blur_video(Path("input.mp4"), Path("output.mp4"))# Start the API server
blur-api --host 0.0.0.0 --port 8000
# Or use uvicorn directly
uvicorn blur_api.serve:app --reload- Multiple blur types: Gaussian, pixelate, blackout boxes
- Advanced tracking: ByteTrack, BoT-SORT, Fused (distance/shape/embeddings), Hybrid SOT for detector gaps, or simple frame-by-frame
- SAHI support: Tiled inference for high-resolution videos
- GPU acceleration: Automatic GPU detection with CPU fallback
- Progress tracking: Real-time progress callbacks and cancellation support
- Flexible configuration: TOML files, environment variables, CLI arguments
- Model management: Upload, download, and manage ONNX models
- Read the CLI Reference for command-line usage
- Explore the Configuration Guide for detailed options
- Check the API Reference for REST endpoints
- Learn about the Python Library for programmatic usage