Skip to content

Latest commit

 

History

History
109 lines (75 loc) · 3 KB

File metadata and controls

109 lines (75 loc) · 3 KB

Obscuro Documentation

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.

Quick Links

Overview

Obscuro provides three interfaces for video anonymization:

  1. Command-Line Interface (CLI) - For batch processing and automation
  2. REST API - For integration with other applications
  3. Desktop GUI - For interactive video processing

All interfaces share the same core processing pipeline:

Detection → Tracking → Blurring

Processing Pipeline

  1. Detection: Neural network-based detection of supported classes (bike, head, person, plate, vehicle)
  2. Tracking: Multi-object tracking to associate detections across frames
  3. Blurring: Apply blur effects (Gaussian, pixelate, blackout, etc.)

Installation

Prerequisites

  • Python 3.12 or higher
  • uv (recommended) or pip

Install from source

# 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 .

Quick Start Examples

CLI

# 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.toml

Python Library

from 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"))

API Server

# Start the API server
blur-api --host 0.0.0.0 --port 8000

# Or use uvicorn directly
uvicorn blur_api.serve:app --reload

Key Features

  • 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

Next Steps