Skip to content

v2.0 — video and object tracks

Choose a tag to compare

@ILYAGRISH ILYAGRISH released this 09 Oct 08:16
· 2 commits to main since this release

Download & run (Windows)

  1. Download YOLO-Annotator-2.0-windows.zip below and unpack it.
  2. Install Python 3.12+ (3.13 recommended) with "Add python.exe to PATH".
  3. Double-click setup_venv.bat once (creates .venv, installs pinned dependencies, ~150 MB).
  4. Start with run.bat.

For the AI features (YOLO pre-labelling, automatic tracking, SAM): run setup_ml_env.bat once — a separate .venv-ml with PyTorch + Ultralytics (CUDA 12.8 build if an NVIDIA GPU is found, ~3 GB; --cpu for the CPU build) — or point ML → ML Settings… at an existing conda / venv with Ultralytics. The annotator itself never imports PyTorch.

User guide (RU): About.md inside the archive.

What's new in v2.0 — video and object tracks

Video as frames

  • File → Import Video… (or drop a video file on the image list) extracts every N-th frame of a chosen time range as JPEG images (default ≈ 5 per second). The frames are ordinary project images, so every tool, SAM, pre-labelling and review work on them.
  • A frame strip under the canvas shows which frames have annotations, the active track and its keyframes; click or drag it to go to a frame.

Tracks with interpolation

  • T turns the selected annotation into a track. On a later frame, Shift+T adds a keyframe (a copy you drag onto the object).
  • The frames in between are interpolated: boxes, OBBs, polygons and polylines (resampled when the point count differs), points and poses.
  • Editing an in-between frame makes it a keyframe. Every edit, delete, undo and redo re-interpolates.
  • Shift+A / Shift+D jump between keyframes. Video → Delete Active Track… removes a track from all frames.
  • Track ids are shown on the canvas and in the Annotations panel (#3, keyframe #3◆).

Automatic tracking with your YOLO model

  • In ML → Pre-label Dataset…, choose a video (🎞) and tick Track objects (video). The model runs with a tracker (ByteTrack or BoT-SORT) over the frames in order.
  • Every object becomes a project track and every detection a keyframe (🤖, reviewed with R / Shift+R as usual). Frames where the model missed the object are interpolated.
  • Works with detect, segment, OBB and pose models, and with Outlines via SAM (a detector plus SAM gives tracks of polygons or masks).
  • A new run replaces the unreviewed keyframes of the previous one. Accepted ones stay.
  • Tip: for tracking, import every 1st–3rd frame. On sparse frames, fast objects get lost.

Export and split

  • New export format MOTChallenge: gt/gt.txt + seqinfo.ini + img1/ per video.
  • Split Dataset can keep all frames of a video in one split, so near-identical frames don't leak between train and val.

Editing

  • Select tool: drag the body of an annotation to move it as a whole: box, OBB, polygon, polyline, point or pose. Before, only corners and vertices could be dragged. The annotation stops at the image edge, and a click with a small jitter doesn't move anything.

Upgrading from 1.9: unpack into a new folder and run setup_venv.bat again. Projects (.annproj) are compatible. For the AI features, keep using your existing ML environment (in ML → ML Settings… choose the python.exe of the old folder's .venv-ml\Scripts, or your conda env) or run setup_ml_env.bat in the new folder. Don't copy .venv-ml between folders. Tracking needs the small lap package: a new .venv-ml gets it automatically, while in an existing environment Ultralytics installs it on the first tracking run (internet needed), or you can run pip install lap yourself.