Privacy Keeper automatically detects and blurs faces and license plates in equirectangular (360°) panoramic images. Processing runs on your NVIDIA GPU for maximum speed, with automatic fallback to CPU.
Blurred images, log files and detections are saved to the output folder. The log file (named privacy_keeper_YYYY-MM-DD_HH-MM-SS.log) records all processing details. Detections are saved to detections.json. Your original input images are never modified.
Privacy Keeper is optimized for common panoramic cameras:
| Camera / Format | Resolution | GPU Time | CPU Time | FPS (GPU) |
|---|---|---|---|---|
| Mosaic 51 | 12,288 × 6,144 px | ~2 sec | ~26 sec | ~0.5 |
| Insta360 X4 | 8,192 × 4,096 px | ~1.2 sec | ~15 sec | ~0.8 |
| GoPro MAX | 5,760 × 2,880 px | ~0.7 sec | ~9 sec | ~1.4 |
Measured on NVIDIA RTX 3090 (GPU) and AMD Ryzen 9 7950X3D (CPU).
GPU acceleration is optional — the application falls back to CPU if CUDA is not installed.
Step 1 — CUDA Toolkit 12.9.1
Download from: https://developer.nvidia.com/cuda-12-9-1-download-archive
Select: Windows → x86_64 → exe (local)
Step 2 — cuDNN 9.20.0
Download from: https://developer.nvidia.com/cudnn-9-20-0-download-archive
Run the installer — no manual copying needed.
Run PrivacyKeeper_Setup_3.0.0.exe and follow the on-screen instructions.
Double-click the Privacy Keeper shortcut. The main window opens with Process and Review tabs. Additional tools open via the Tools menu.
Test data: Download Fort Myers Beach test dataset to verify your installation.
The main window on first launch. Select folders and press Process — no other steps needed.
Input Folder: Click Browse… and select the folder containing your panoramic JPEG images (.jpg / .jpeg).
Output Folder: Auto-set to the input folder name plus _out. Override at any time. Created automatically if it does not exist.
The Open button beside each field opens the folder in Windows File Explorer.
Open Tools → Settings to adjust detection and output parameters.
The Settings tab (Tools → Settings). Separate confidence thresholds for faces and plates.
| Setting | Default | Description |
|---|---|---|
| Face confidence | 0.35 | Minimum face detection score (0.1–0.99). |
| Primary FOV | 45° | Field of view for rectilinear projection patches. |
| Multi-scale | Enabled | Second pass at 22.5° FOV to catch very close faces. |
| Min face size | 12 px | Faces smaller than this in the patch are ignored. |
| Max face size | 300 px | Faces larger than this are ignored. |
| Setting | Default | Description |
|---|---|---|
| Plate confidence | 0.35 | Minimum plate detection score (0.1–0.99). |
| Max plate size | 500 px | Plates larger than this are discarded as false positives. |
| Setting | Default | Description |
|---|---|---|
| Blur radius | 51 px | Gaussian blur kernel size. Larger = stronger. |
| Blur expand | 1.3x | Expands bounding box before blurring. |
| JPEG quality | Auto-match | Matches each source image's original quality. Override with a fixed value (50–100) if needed. |
| Debug mode | Off | Draws coloured boxes instead of blurring (red = face, green = plate). |
| GPU Acceleration | Auto | Uses GPU if CUDA is available, otherwise CPU. |
Click Language in the menu bar to switch between English, Deutsch, and Français.
If the output folder already contains matching images, a dialog appears to skip existing or reprocess all.
The Process tab after a completed job, showing the full log.
An estimated finish time appears once the first image completes, using a rolling 10-image average.
Click Cancel at any time. The current image finishes before the job stops.
The summary card shown when the log is hidden.
When processing finishes the Review tab opens automatically. A summary card shows totals and elapsed time.
A timestamped log file is saved to the output folder after each job, e.g. privacy_keeper_2026-04-08_22-15-03.log.
The Review tab shows processed images at full resolution. Scroll to zoom, drag to pan.
| Control | Action |
|---|---|
| ← Prev / Left arrow | Go to previous image |
| Next → / Right arrow | Go to next image |
| Fit | Reset zoom to fit the window |
| Show Detections | Overlay bounding boxes from detections.json (red = face, green = plate). |
| Scroll wheel | Zoom in / out |
| Click and drag | Pan the image |
The Review tab showing a blurred panorama at full resolution.
Detection overlay: red boxes = faces, green boxes = license plates.
The Edit tab (Tools → Edit) lets you manually correct detection results after a batch. Add missing detections, remove false positives, and reprocess individual images.
Go to Tools → Edit. Images and detections load from detections.json automatically if an output folder is set.
Navigate with ‹ Prev / Next › or arrow keys.
detections.json.The Mask tab (Tools → Mask) lets you draw custom polygon masks. Masked regions are blurred in addition to detected faces and plates.
The Mask Editor tab (Tools → Mask). Draw polygon masks and save as named presets.
Select a saved mask from the Apply Mask dropdown in the Process tab toolbar. Presets saved in ~\.panohopper\masks\.
The tiled watermark tool composites repeating text onto output images after blurring. Open from Tools → Watermark. Presets saved in ~\.panohopper\watermarks\.
The Watermark tab (Tools → Watermark). Configure text, font, grid density, rotation, and opacity.
Select the preset from the Apply Watermark dropdown in the Process tab toolbar before clicking Process.
The EXIF tab (Tools → EXIF) lets you create presets that control which metadata tags are copied, stripped, or edited on output images. By default, Privacy Keeper copies all EXIF metadata — GPS coordinates, camera model, capture time, and all other tags are preserved unchanged.
The EXIF Editor tab (Tools → EXIF). Browse metadata tags and build strip/edit presets.
The Process tab toolbar includes an EXIF dropdown. Default is Copy all. Select a saved preset before clicking Process to apply your tag edits or strips to every output image. Presets are saved in ~\.panohopper\exif\.
Privacy Keeper uses your NVIDIA GPU for fast detection. The GPU Acceleration setting controls this:
If GPU is detected but CUDA/cuDNN is missing, a warning appears in the Process log with installation instructions.
Measured on NVIDIA RTX 3090 (GPU) and AMD Ryzen 9 7950X3D (CPU), 12 288 × 6 144 pixel Mosaic 51 panoramas:
| Mode | Hardware | Time per image | Panoramas per day |
|---|---|---|---|
| GPU | NVIDIA RTX 3090 (24 GB VRAM) | ~2 seconds | ~43,000 |
| CPU | AMD Ryzen 9 7950X3D (16 cores) | ~26 seconds | ~3,320 |
GPU processing is approximately 13× faster than CPU on this hardware.
Ensure the input folder contains .jpg / .jpeg files directly (not in subfolders).
Open Help → CUDA Installation Guide and install CUDA 12.9.1 and cuDNN 9.20.0.
Lower the Confidence threshold (e.g. to 0.20). Enable Multi-scale. Check images are equirectangular.
Raise the Confidence threshold (e.g. to 0.55). Use Debug mode to inspect.
Re-enable JPEG auto-match in Settings. All EXIF metadata is always preserved.
Website: https://www.panohopper.com
Email: info@panohopper.com
Manual release: 3.0.0 — 2026 May 28