Getting started
Requirements
- Python 3.12+.
- A compatible monitor.
- Compatible model providers and weights for the intended detection features. Hardware support varies by provider.
Running on Ubuntu
On Ubuntu, Qt also needs native libraries that are not bundled in its Python wheel. For headless tests, install:
sudo apt-get update
sudo apt-get install --no-install-recommends -y libegl1 libopengl0 libpulse0
Running the app
Clone the repository
git clone https://github.com/CodeRSTech/Blurzy.git
cd Blurzy
Create virtual environment
python -m venv .venv
Activate the virtual env
source .venv/bin/activate (Linux/macOS)
.venv\Scripts\Activate.ps1 (Windows).
Install dependencies
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
Run
blurzy
The editable installation provides the blurzy GUI command. Runtime
dependencies are maintained in pyproject.toml; requirements.txt delegates
to that metadata.
Open Edit → Settings... to change persistent app preferences and defaults for newly opened videos. The settings form scrolls on shorter displays, while the dialog stays within the available screen area.
The Default theme preference offers System, Light, and Dark themes. The sidebar groups Detection, Tracking, Preview, Render, and optional Privacy Features into collapsible sections. Preview annotations use canvas-scaled outlines and readable captions; table colors are swatches with exact values in tooltips. Hover an annotation toolbar icon to see its action.
Typical workflow
- Open a video.
- Select an available YOLO, TorchVision, or MTCNN model, choose labels and confidence, then run Detect All Frames and wait for completion.
- Review detections in the editable detection layer, then choose Hungarian, ByteTrack, DeepSORT, or BoT-SORT and run tracking.
- Review and edit the resulting tracks in the editable tracking layer.
- Adjust Preview controls for editor overlays and Render controls for exported-video blur.
- Save the project when you want to preserve session state. Import or export detection/tracking layers as JSON or CSV when exchanging annotations.
- Export the processed video and review the result.
If stored detection results cover only part of the video, Start Tracking warns before replacing existing tracking output. Okay cancels by default; Proceed Anyway explicitly accepts potentially missing subjects. Tracking cannot start while detection is running. Stored empty detection results count as processed frames; imported/older data is not proof a full detection run completed.
The Detected objects tab shows reviewed detections (B), while Tracking results shows reviewed tracks (D). In the Tracking tab, the next/previous occurrence deletion actions remove the selected tracks strictly after/before the current frame, leaving that frame and original C output intact.
Preview masks follow tracking output, not the selected tab
Mask/live-blur preview and blurred-video export prefer populated D and otherwise use C for the video as a whole. They do not blur B just because Detected objects is active, and an empty D frame does not fall back to C for that frame. Outlines on the active tab can therefore differ from the regions being blurred. Review Tracking results before export.
Info
Long-running operations use background workers and report progress in the UI. If a provider is unavailable, consult its installation guidance and verify its model weights and hardware requirements.
Appearance-aware tracking uses frame-derived 128-, 256-, or 512-dimensional embeddings when a readable video path is available. Offline post-processing can stitch compatible tracklets in both temporal directions and apply Gaussian Smoothed Interpolation (GSI) across accepted gaps. Privacy Shield (Paranoid Mode) adds conservative track-box sizing and temporal padding; it supplements, but does not replace, review of the final result.