Skip to content

Commit 29268fc

Browse files
Merge pull request #44 from OlafenwaMoses/main
release - ScaleObservation task - estimation by object inference and reference + Scene mask annotation
2 parents 6cf86ad + 694f75e commit 29268fc

61 files changed

Lines changed: 6111 additions & 228 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,5 +236,9 @@ image.png
236236
image2.png
237237
sample.py
238238

239+
# Research workspace and generated research outputs are intentionally excluded
240+
# from product lint/format checks and version control.
241+
research/
242+
239243
# uv python pin (library — consumers choose their own Python)
240244
.python-version

docs/CNAME

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
docs.vizion3d.org

docs/annotation/object_mask_annotation_3d.md

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,10 @@ The default checkpoint (`yolo26l-seg.pt`) is trained on the [COCO](https://cocod
173173
| **Appliances** | microwave, oven, toaster, sink, refrigerator |
174174
| **Indoor** | book, clock, vase, scissors, teddy bear, hair drier, toothbrush |
175175

176-
Objects not in this list will not be detected. To annotate other categories, supply a custom YOLO segmentation checkpoint via `model_backend`.
176+
Objects not in this list will not be detected by the default checkpoint. To
177+
annotate other categories, supply a custom YOLO segmentation checkpoint via
178+
`model_backend`, or use the prompt-free YOLOE model described below for broader
179+
annotation coverage.
177180

178181
---
179182

@@ -226,8 +229,8 @@ Each `MaskAnnotation3D` item contains:
226229

227230
| Field | Type | Description |
228231
|---|---|---|
229-
| `label` | `str` | COCO class name, e.g. `"person"`, `"chair"`. |
230-
| `class_id` | `int` | COCO integer class index (0-based). |
232+
| `label` | `str` | Model class name, e.g. `"person"`, `"chair"`. With the default checkpoint this is a COCO class name; with prompt-free YOLOE this is a YOLOE runtime label. |
233+
| `class_id` | `int` | Model class index (0-based). With the default checkpoint this is the COCO class index. |
231234
| `confidence` | `float` | Detection confidence in `[0, 1]`. |
232235
| `bbox_2d` | `list[float]` | Bounding box in image pixels: `[x1, y1, x2, y2]`. |
233236
| `mask_2d` | `np.ndarray` | Boolean segmentation mask, shape `(H, W)`. |
@@ -590,3 +593,51 @@ result = ObjectMaskAnnotation3D().run(
590593
- **Relative depth point clouds** — if the input point cloud was generated by monocular depth estimation (which produces relative, not metric, depth), object sizes in 3D will not correspond to real-world dimensions. For metric results, use a calibrated stereo or RGB-D camera.
591594
- **Open3D required** — this task requires Open3D, which currently only supports Python 3.12 in this project.
592595
- **Front-view synthesis** — when no image is supplied, the synthesised view is a simple point-splatting projection. Dense regions render well; sparse or occluded regions may produce a patchy image that reduces detection quality compared to a real photo.
596+
597+
## Prompt-free YOLOE model for broader annotation
598+
599+
`ObjectMaskAnnotation3D` also supports the prompt-free YOLOE segmentation
600+
checkpoint released with the essentials bundle:
601+
602+
```text
603+
https://github.com/OlafenwaMoses/vizion3D/releases/download/essentials-v1/yoloe-26l-seg-pf.pt
604+
```
605+
606+
The model can be passed directly through `model_backend`; no annotation-library
607+
code changes are required:
608+
609+
```python
610+
annotation_result = ObjectMaskAnnotation3D().run(
611+
ObjectMaskAnnotation3DCommand(
612+
point_cloud=pcd,
613+
image_input="scene.jpg",
614+
model_backend=(
615+
"https://github.com/OlafenwaMoses/vizion3D/releases/download/"
616+
"essentials-v1/yoloe-26l-seg-pf.pt"
617+
),
618+
)
619+
)
620+
```
621+
622+
This prompt-free model exposes **4,585 runtime labels**, so it is useful when
623+
the goal is broad instance annotation beyond the default COCO categories.
624+
625+
Recommended use:
626+
627+
- Use the default `yolo26l-seg.pt` checkpoint when COCO coverage is sufficient
628+
and higher closed-set COCO segmentation accuracy is preferred.
629+
- Use `yoloe-26l-seg-pf.pt` when broad prompt-free annotation is more important
630+
than COCO-only precision.
631+
- For ScaleObservation, `yoloe-26l-seg-pf.pt` can provide additional useful
632+
labels such as desks, cabinets, monitors, doors, and appliances. Most of its
633+
4,585 labels still do not have calibrated metric priors, so unsupported labels
634+
are ignored by the scale estimator. See
635+
[Scale Observation](../observation/scale_observation.md#supported-scale-priors)
636+
for the current prior list.
637+
638+
The supported prompt-free labels are listed and grouped here:
639+
640+
- [YOLOE-26L Prompt-Free Supported Classes](./yoloe_26l_prompt_free_classes.md)
641+
642+
The source runtime label files used to build that class reference are also kept
643+
under `research/instance_segmentation/`.

0 commit comments

Comments
 (0)