Labeling gate
Overview
Checks every image’s annotations in the source dataset against a set of rules, then moves the image into a passed or failed dataset depending on the result.
Place it right after a labeling step to gate submissions before human review: images that pass move on to review, images that fail can go back to labeling.
How it works
FAQ
Which annotation does it check when an image has more than one?
A dataset holds one annotation per image. If an image ends up with more than one anyway, the newest is checked and the others are ignored.
What is a label compared against?
The other images checked in the same run. The node takes the median area and object count per class over the whole batch it is processing, so the image that stands out from its own submission is the one that fails. Nothing outside the run is read, and the passed dataset is only a destination. The trade-off: a submission that is uniformly wrong sets its own norm and passes.
Why didn't the area or count anomaly checks flag anything?
Each is off until you give it a deviation. Leaving Max area deviation or Max count deviation empty skips that check. A class is also skipped until it reaches Minimum reference samples measurements in the same run — labels for the area check, images for the count check — so a small batch checks little.
What happens to an image the labeling step left without any annotation?
It always goes to the failed dataset. Fail images with no objects governs images whose annotation is empty — a legitimate negative sample — not images that carry no annotation at all, so turning it off never lets unannotated work through.
Do the box checks apply to polygons and masks?
Yes. Min box side and Max duplicate IoU compare the bounding box around each object, whatever its shape.
What does a rerun do?
It checks whatever is in the source dataset at that moment. Checked images have already left the source, so a rerun only sees images that arrived since. The passed and failed datasets are written as you picked them and keep growing, with no new version per run.
What happens if an image's annotation can't be read?
The image is routed to the failed dataset and the error is written to the run log.
What does this node not support?
It only checks images. Videos in the source dataset are left in place. It doesn’t record per-image failure reasons beyond the run log, and it doesn’t notify anyone or create a report.
Inputs
Source dataset the freshly submitted images are drawn from. Every checked image leaves it for the passed or the failed dataset. Key: SOURCE_DATASET.
Destination dataset for images that clear every enabled check. Key: PASSED_DATASET.
Destination dataset for images that fail at least one enabled check. Key: FAILED_DATASET.
Fails an image whose annotation holds no objects. An image left without any annotation fails whatever the rules say. Key: CHECK_NO_OBJECTS.
Fails an image whose number of annotated objects falls outside this range. Empty means the check is off. Minimum: 0. Step: 1. Key: OBJECTS_RANGE.
Fails an image holding an object that covers a smaller or larger share of it than this range allows. Empty means the check is off. Minimum: 0. Maximum: 100. Step: 0.5. Key: AREA_RANGE.
Fails an image holding a bounding box narrower or shorter than this many pixels. Empty means the check is off. Minimum: 1. Key: MIN_BOX_SIDE_PX.
Fails an image where two bounding boxes of one class overlap more than this, usually the same object annotated twice. Empty means the check is off. Minimum: 0.01. Maximum: 1. Key: MAX_DUPLICATE_IOU.
Fails an image holding an object more than this percent away from the median area of its class in the run. Empty means the check is off. Minimum: 1. Step: 1. Key: MAX_AREA_DEVIATION.
Fails an image holding more or fewer objects of a class than this percent away from the median count for that class in the run. Empty means the check is off. Minimum: 1. Step: 1. Key: MAX_COUNT_DEVIATION.
Number of examples a class needs in the run before the deviation checks judge it. A median taken over fewer of them is too easy to skew. Minimum: 1. Key: MIN_REFERENCE_SAMPLES.
Outputs
Compact pass/fail count for the latest run. Shown on the node as a badge. Key: QC_SUMMARY.
ID of the dataset that received the passing images. Shown as an artifact. Key: PASSED_DATASET.
ID of the dataset that received the failing images. Shown as an artifact. Key: FAILED_DATASET.
JSON config
Machine-readable node interface for automation and advanced usage.