Labeling jobs manager
Overview
Cuts the pool into batches and creates an ordinary Supervisely labeling job for each one, pinned to a person and reviewed by a person. Review happens inside that same job once the annotator submits it, so nobody works from a shared queue and everybody knows what their batch is.
Rejected images come back as a new job over exactly those images, and accepted images arrive in OvalBee with the annotations people drew. Six OvalBee datasets show where every image stands, and the card itself is one button into Supervisely. Once every required input is set, the node runs itself every minute.
Prerequisites
How it works
Uploads source images into one dataset of the chosen project, once each, and treats every image outside a job as the pool.
Reads the node’s jobs and moves each image into the stage dataset that matches its latest job’s status and the reviewer’s decision.
Pulls the current annotation back into OvalBee for images that just reached review, rework or accepted.
FAQ
Why did the run fail before anything happened in Supervisely?
The step needs at least one labeler, at least one reviewer, because every job is reviewed by one person, and a non-empty Classes vocabulary.
Why one job per person and not one per dataset?
Supervisely splits a job by dataset, so a batch spread over several datasets would become several jobs. Everything this node uploads lives in one dataset of the project, which keeps a person’s rework to a single job no matter which batches the rejected images came from.
Why create a new job for rework instead of restarting the old one?
Supervisely only restarts a job that is still on review. A batch that reached the end of its life cannot be reopened, so the rejected images become a fresh job with the same settings and the closed one stays closed as a record.
Why is a new job already in progress?
The annotation tool turns a labeler away from a job that has not been started yet, and only the job page in Supervisely starts it. The node starts every job it creates, so the links on the stats cards open straight into the tool.
How long do images stay in Rework?
From the rejection until the labeler submits the rework job. The new job is created right away, but the images stay in Rework while it is being labeled, so rejected work can be looked at before it is redone.
Where do closed jobs go?
They stay in Supervisely. The Open jobs button leads to the full list, and the Labeling stats and Review stats nodes keep the totals they contributed to.
Does the node submit or finish work for people?
No. It writes a log line for jobs that are fully labeled and waiting for their annotator to submit, and for jobs past the reminder or escalation deadline, but Submit and Finish stay with the people who own them.
What do the badges on the card mean?
Each one repeats a warning from the run log and disappears once its reason does. Both deadlines count from when the job was created. N overdue means jobs past the escalation deadline. N late means jobs past the reminder deadline that wait for their annotator to submit or for a review. N to submit means jobs fully labeled but not submitted yet. N not uploaded means source images that could not reach Supervisely yet and wait for the next run.
What does this node not support?
A shared pool people pull from one image at a time. Use Labeling queue manager for that. Quality check is out of scope for this version, and a rejected round leaves no historical snapshot behind, only the current annotation.
Inputs
Images to label. Each image leaves this dataset when it enters the first stage. Deleting the node returns the images still in progress. Key: SOURCE_DATASET.
Allowed credential types: supervisely. Key: SLY_SECRET.
Team the work happens in. It also scopes the labeler and reviewer lists. Values come from SLY_SECRET. Key: SLY_TEAM.
Workspace that holds the project. Empty means an OvalBee workspace in the team, used only when the project is created for you. Values come from SLY_SECRET. Key: SLY_WORKSPACE.
Project the whole step works in. Images are uploaded into one dataset of this project, which is what lets one person’s rework be a single job. Empty means this node creates its own project and reuses it on every run. Another project can be chosen only until the first job exists. Values come from SLY_SECRET. Key: SLY_PROJECT.
People who receive the batches. Values come from SLY_SECRET. Key: LABELERS.
People who review the batches. One reviewer is assigned per job. Values come from SLY_SECRET. Key: REVIEWERS.
Vocabulary this step labels in. Defaults to the source dataset’s ontology. Tick part of it to show labelers only those classes, or tick nothing to label in all of it. Values come from SOURCE_DATASET. Key: CLASSES.
How many images go into one job. Minimum: 1. Key: BATCH_SIZE.
Keep topping a person up until they hold this many jobs they have not submitted. Minimum: 1. Key: MIN_ACTIVE_JOBS.
On every scheduled run, or only when you press Run yourself. A rejected batch always becomes a new job over exactly the rejected images. Key: REWORK_MODE.
Options:
- Automatically (
auto) - Only on a manual run (
manual)
Key: REWORK_ANNOTATOR.
Options:
- The same annotator (
same) - Any available annotator (
any)
Key: REWORK_REVIEWER.
Options:
- The same reviewer (
same) - Any available reviewer (
any)
Wait for them to come back, or give the work to somebody who is configured. Visible when REWORK_ANNOTATOR is same. Key: ON_UNAVAILABLE.
Options:
- Wait for them (
wait) - Reassign (
reassign)
Where accepted images and their annotations land. Empty means this node creates and reuses its own result dataset. Key: ACCEPTED_DATASET.
A job waiting longer than this is reported in the run log. Minimum: 1. Key: REMIND_AFTER_MINUTES.
A job waiting longer than this is reported in the run log as past its deadline. Minimum: 1. Key: ESCALATE_AFTER_MINUTES.
Outputs
Images that are not in any job yet. Key: WAITING.
Images in a job the annotator has not submitted yet. Key: LABELING.
Submitted jobs the reviewer has not started deciding. Key: TO_REVIEW.
Submitted jobs with decisions under way. Key: REVIEWING.
Rejected images, waiting for their new job or already in it. Key: REWORK.
Accepted images with the annotations pulled back into OvalBee. Shown as an artifact. Key: ACCEPTED.
Badge counting jobs past the escalation deadline. Shown on the node as a badge. Hidden from the flow editor. Key: OVERDUE.
Badge counting jobs past the reminder deadline. Shown on the node as a badge. Hidden from the flow editor. Key: LATE.
Badge counting fully labeled jobs waiting for their annotator to submit. Shown on the node as a badge. Hidden from the flow editor. Key: TO_SUBMIT.
Badge counting source images that could not reach Supervisely yet. Shown on the node as a badge. Hidden from the flow editor. Key: NOT_UPLOADED.
Handle of this labeling process. Connect it to the Labeling stats and Review stats nodes. Key: PROCESS.
Link to the Supervisely labeling jobs list. Key: SLY_JOBS_URL.
Internal map of the Supervisely resources this node owns. Hidden from the flow editor. Key: STATE.
JSON config
Machine-readable node interface for automation and advanced usage.