Annotating¶
All annotation tabs work on the currently selected sample from the Dataset Explorer. The JSON field names below match the canonical OSL JSON Format page.
Classification¶
Use CLS for clip-level labels.
- Select a sample.
- Open
CLS. - Add or choose label heads and labels.
- Select the label values for the current sample.
Effective manual changes are saved immediately into the sample's labels
object. Single-label heads write {"label": "..."} and multi-label heads write
{"labels": [...]}. Smart predictions add confidence_score until confirmed or
rejected.
Localization¶
Use LOC for point events on the timeline.
- Select a sample and open
LOC. - Choose a label head and label.
- Move the playhead to the event time.
- Use the spotting controls to add the event.
- Edit or delete rows in the event table when needed.
Events are stored in events[] with head, label, and position_ms.
Smart inference can add predicted rows with confidence_score; confirming a row
keeps the event and removes only the confidence marker.
Description¶
Use DESC for one clip-level caption.
- Select a sample and open
DESC. - Enter or edit the caption text.
- Wait for autosave or save the project.
The text is stored in captions[]. Manual description edits currently write an
English caption entry with lang set to en.
Dense Description¶
Use DENSE for timestamped text descriptions.
- Select a sample and open
DENSE. - Move the playhead to the desired timestamp.
- Click Add New Description.
- Enter text in the modal.
- Edit time or text from the table when needed.
Dense descriptions are stored in dense_captions[] with position_ms, lang,
and text. The table keeps rows ordered by timestamp.
Question/Answer¶
Use Q/A for grouped questions and one or more answers per question.
- Select a sample and open
Q/A. - Click Add to create a question group.
- Choose a previous dataset question or enter custom question text.
- Click Answer to add answer text.
- Double-click or right-click a question or answer to edit or remove it.
Answers are stored as grouped answers[] entries with question and
answers[]. The app does not write a top-level questions bank.