MaskAnnotator paints CompactMask detections into their bounding-box crop, but HaloAnnotator never got that path: it materialized every mask full-frame, painted via full-frame boolean indexing, and built its foreground mask as a 2M-element Python list per frame. Extract the shared compact/dense painting into a single _paint_masks_by_area helper used by both annotators. On a 1080p frame with 30 masks, HaloAnnotator on CompactMask runs about 4x faster; output is unchanged. - Replace in-place `union` param with `collect_union: bool` return value; HaloAnnotator now captures the returned union array - Add Google-style Args/Returns to `_paint_masks_by_area` docstring - Fix HaloAnnotator.annotate() example (was maskless → no-op) and scene arg wording - Add section comment above shared helper for discoverability - Add union accumulation tests (dense + CompactMask paths via collect_union=True) - Add test documenting out-of-bbox True-pixel divergence between compact and dense - Add image-edge bbox test for CompactMask annotators - Move helper tests into TestPaintMasksByArea and TestCompactMaskParity classes - Rename test_annotate_with_empty_masks → test_annotate_with_all_false_mask --------- Co-authored-by: jirka <6035284+Borda@users.noreply.github.com> Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| annotators | ||
| assets | ||
| classification | ||
| dataset | ||
| detection | ||
| draw | ||
| geometry | ||
| key_points | ||
| metrics | ||
| tracker | ||
| utils | ||
| __init__.py | ||
| conftest.py | ||
| helpers.py | ||
| test_validate_deprecations.py | ||