BT Labeler

Draw boxes around bags

Open the ZIP from BT Frame Extractor (or any pictures). Everything stays on this device. Your work saves automatically in this browser.

Press ? for shortcuts. You can also drop files onto this page.

Export YOLO dataset

By video keeps near-identical frames from one clip out of both sets, so validation scores stay honest.

Shortcuts

B / V / HDraw, Select (move boxes), Pan
DragDraw a box. Click a box to select it. Drag its handles to resize.
Select toolDrag inside a box to move it
1–9Pick a class. If a box is selected, it changes that box's class.
A / DPrevious / next image (arrow keys too when no box is selected)
ArrowsNudge the selected box 1 px (hold Shift for 10 px)
CCopy boxes from the previous image (great for bags sitting on boards)
EMark image as empty background, then go to next
UJump to next unlabeled image
DeleteDelete the selected box
Ctrl+Z / Ctrl+YUndo / redo
Wheel, + / −, 0Zoom, zoom, fit to window
Space + dragPan (also right-drag, or two fingers on a touch screen)
PinchZoom on a touch screen
RSelected bag has stopped: resting (red). Press again to clear
MA resting bag got bumped: moved (green)
☰ (bag row)More actions for that bag: In the hole (this frame), Delete from here on (this frame and every later frame of the video), Delete this frame only.
Board borderPress Build board border (side panel), then tap the four corners: top-left, bottom-left, bottom-right, top-right (in that order; the app puts them in order for you anyway). Drag any dot to adjust. When all four are set, Save board lights up (or press Enter). Esc cancels, Backspace removes the last dot. It carries to the next frames; drag a corner on a frame where the board moved and it follows from there.
Rotation dotsSide-panel button Start rotation dots: tap the same corner of the flying bag on each frame (it uses the bag under "Now drawing"). A faint ring shows where the dot was on the last frame. Delete removes this frame's dot, Esc or Stop ends it. Dots sit beside any boxes, so you can add them before or after drawing boxes. They are saved in the labels file and left out of the YOLO export.
Delete border or ringThe Delete button beside Build board border or Draw hole ring removes it from this frame and the later frames that still share it (it asks first). Earlier frames are not touched, so go to the first frame that has it to clear a whole video. While rebuilding a border, Delete border also appears beside Save board and Cancel.
Draw hole ringSide-panel button: switches to the hole class so you can drag a box around the hole once per video. It carries like the board.
☰ → Off the boardThe bag is off the board but still in the picture (left, right or in front). Its box turns red with a dashed border and a slash, stays on every later frame like a resting bag, and is training data. Delete it from here on when the bag is gone.
☰ → Left the pictureThe bag left the picture entirely. Marks that frame with a one-frame purple marker (like the hole one, not training data) and removes the bag's old resting boxes from later frames.
XSelected bag went in the hole. On an old resting bag this declares it on this frame and releases it from the later frames.
3, then dragDraw the hole ring once per video (press Esc first so you do not change a selected box). It is an ellipse in its box, carries to the next frames, and turns green on a frame where a bag is declared in the hole.
N / Shift+NNext / previous bag to draw (Player 1 bag 1, Player 2 bag 1, ...)
PSwitch between Player 1 and Player 2
TGive the selected box the bag chosen under "Now drawing"
ZHold view: keep zoom and position on the next image
LShow or hide box labels
EscDeselect (or cancel an edit)
✎ (in the list)Edit a box: drag it to move, drag a handle to resize, then Save (or Enter). Going to another box or frame saves it too; Esc cancels. Arrows nudge 0.5 px, Shift 5 px.