Everything you need to get from install to a fully annotated dataset.
PixelTagger is available for Windows, macOS, and Ubuntu Linux. Download your platform version below.
Links will be available when PixelTagger exits beta. Contact us for early access.
| Platform | Requirements |
|---|---|
| Windows | Windows 10/11 64-bit, 4 GB RAM |
| macOS | macOS 11 Big Sur or later, Intel or Apple Silicon |
| Ubuntu Linux | Ubuntu 20.04+, 4 GB RAM |
PixelTagger_Setup.exePixelTagger_macOS.dmgPixelTagger_Linux_x86_64.AppImagechmod +x PixelTagger_Linux_x86_64.AppImage./PixelTagger_Linux_x86_64.AppImagePixelTagger works with a simple two-folder structure: one folder for images, one for annotations.
PixelTagger saves annotations in Pascal VOC XML format by default. Annotations auto-save every time you change an image or make edits — you never need to manually save.
The PixelTagger interface has four main areas:
The basic annotation workflow is the same for all shape types:
Select an annotation and press Delete or Backspace. To delete all annotations on an image, press Ctrl+A to select all, then Delete.
Click and drag to draw a rectangle. Eight resize handles appear when selected. Best for standard object detection tasks.
Click to place each vertex. Press Enter or double-click to close the polygon (minimum 3 points). Press Esc to cancel. Best for irregular object shapes.
Click and drag to draw a directional line with an arrowhead. Useful for direction, flow, or connection annotation.
Click to place a single point. A second click toggles the keypoint between visible and occluded states. Used for pose estimation and landmark detection.
Click and drag to create an oriented bounding box. A green rotation handle appears — drag it to rotate the box freely. Best for aerial and satellite imagery.
Click to place 8 corner points (front face first, then rear face). Used for 3D object annotation in autonomous driving datasets.
Click and drag to define the bounding rectangle of the ellipse. A green rotation handle lets you rotate it. Useful for circular or oval objects.
Labels are the class names assigned to your annotations (e.g. "car", "person", "dog").
Click the +/- button next to the Label dropdown. Type a name in the text field and click + Add.
Go to Edit → Rename Label. Select the label to rename and enter the new name. The rename applies to all annotations across your entire dataset.
Go to Edit → Remove Label. This removes all annotations with that label from every image in your dataset. Use with caution.
Each label has its own color for visual clarity. Colors are automatically assigned and saved alongside your annotations folder in a label_colors.json file.
PixelTagger tracks up to 10 undo steps per image session.
The undo history resets when you switch to a different image.
Note: Split Dataset into Train/Test has been moved to the Edit menu.
All export options are under the Export / Import menu.
classes.txt fileAnnotations are always stored internally in Pascal VOC XML format, regardless of which export format you choose.
PixelTagger can import annotations from external tools. Imported annotations are converted to VOC XML and saved automatically.
PixelTagger includes a built-in video frame picker powered by FFmpeg.
Found at Edit → Split Dataset into Train/Test subsets...
Randomly shuffles your entire dataset and splits it into Train and Test subfolders at a configurable ratio.
Train/ and Test/ subfoldersThe shuffle uses a Fisher-Yates algorithm for an unbiased random distribution. Original files are not modified.
Found at Edit → Split Dataset into Train/Test subsets... — Opens a dialog where you set the Train % and Test % ratio. PixelTagger randomly shuffles your dataset and copies images and annotations into Train/ and Test/ subfolders in your chosen output directory.
Found at Edit → Split Dataset into Train/Test subsets...
Randomly shuffles your entire dataset and splits it into Train and Test subfolders at a configurable ratio.
Train/ and Test/ subfoldersThe shuffle uses a Fisher-Yates algorithm for an unbiased random distribution. Original files are not modified.
Found at Edit → AI Video Frame Extraction (YOLO)... This feature uses a YOLO model to automatically extract frames from a video based on what objects appear in them.
| Field | Description |
|---|---|
| YOLO Version | Select v10, v11, or v12 — all are supported |
| Model File (.pt) | Path to your YOLO model file |
| Labels | Comma-separated list of class names to watch for, e.g. person, car |
| Confidence | Minimum detection confidence (0.0–1.0, default 0.25) |
| Input Video | Source video file (MP4, AVI, MOV, MKV, WebM, M4V) |
| Output Folder | Where extracted frames are saved |
Saved frames have unique timestamped filenames: frame_004300_143052123456.jpg (frame number + time-of-day to microseconds), ensuring no collisions across multiple runs.
Click Install AI Dependencies to set up the Python environment before first use. See AI Dependencies & GPU Setup for details.
Found at Edit → Annotate Video with YOLO... Runs YOLO inference on every frame of a video and writes a new output video with all detections rendered directly on the frames.
| Field | Description |
|---|---|
| YOLO Version | Informational — auto-detected from the model file |
| Model File (.pt) | Your YOLO model |
| Input Video | MP4, AVI, MOV, MKV, WMV, WebM, M4V |
| Output Folder | Annotated video saved here with timestamped filename |
Every frame is processed and written to the output video. The file size stays at 0 KB while processing (normal behavior) and jumps to full size when complete.
Open via Edit → Manage Labels.
From Export/Import menu:
classes.txt)Both AI features (AI Video Frame Extraction and Annotate Video with YOLO) share the same Python environment and only need to be set up once.
PixelTagger creates an isolated Python environment so AI packages never conflict with other software:
| Platform | Venv Location |
|---|---|
| Windows | %USERPROFILE%\PixelTagger_venv |
| macOS | ~/PixelTagger_venv |
| Linux | ~/PixelTagger_venv |
When you click Run Inference, PixelTagger automatically uses this environment — no manual management needed.
The installed environment supports YOLOv10, v11, and v12 models (.pt files only).
PixelTagger automatically detects and uses GPU acceleration:
| Hardware | Backend |
|---|---|
| NVIDIA GPU (CUDA) | CUDA — detected automatically via nvidia-smi |
| Apple Silicon | MPS (Metal) — used automatically on M1/M2/M3 |
| No GPU | CPU fallback |
The inference log always shows which device is active: Running on GPU: [name] or Running on CPU.
| Shortcut | Action |
|---|---|
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+A | Select all annotations |
| Ctrl+C | Copy selected annotation(s) |
| Ctrl+V | Paste annotation(s) |
| Delete / Backspace | Delete selected annotation(s) |
| → / ← | Next / previous image (when no annotation selected) |
| Arrow keys | Nudge selected annotation by 1px |
| Shift+Arrow | Nudge selected annotation by 10px |
| Enter / Dbl-click | Close polygon (while drawing) |
| Esc | Cancel drawing / deselect |
| Space+drag | Pan the canvas |
| Right-click+drag | Pan the canvas |
| Mouse wheel | Zoom in / out |
| F1 | Open Help |