Toposync Vision extension
First-party extension focused on public task-oriented vision operators for the Pipelines runtime.
What it provides
vision.detectvision.trackvision.group_eventsvision.crop_objectsvision.segment_instancesvision.pose_estimate(skeleton only; not launched yet)
The public surface is task-based, not vendor-based. The official first-party runtime is ONNX Runtime, with CPU as the default execution path.
Dependencies
- The default
toposyncapplication bundle includes the first-party ONNX Runtime CPU stack. - The GPU-oriented first-party bundles are published separately:
toposync-vision-cudatoposync-vision-directml
- The official extension package now also includes the first-party tracker stack:
byte_worldsimple_iou_kalmannorfair
Notes
vision.detectresolvesModelManifestentries and builds an ONNX Runtime backend automatically whenruntime=onnxruntime.- By default, the ONNX Runtime backend prefers
CPUExecutionProvider. Optional acceleration is opt-in via thetoposync-vision-cuda/toposync-vision-directmlbundles orTOPOSYNC_VISION_ONNXRUNTIME_PROVIDERS. - Manifest files can be loaded from
TOPOSYNC_VISION_MANIFESTS_DIRorTOPOSYNC_VISION_MANIFEST_PATHS. - Custom manifests imported from the UI are persisted under
.toposync-data/vision-manifests/for the selected processing server. - Built-in first-party manifests ship inside the wheel, but their ONNX weights do not. When no checkout-local artifact exists, official model ids resolve to
TOPOSYNC_DATA_DIR/vision-models/...(or.toposync-data/vision-models/...by default). - The extension now ships a built-in RTMDet detection shortlist in
extensions/vision/manifests/:rtmdet_det_tinyrtmdet_det_smallrtmdet_det_medium
- The extension now also ships a built-in RF-DETR detection shortlist in
extensions/vision/manifests/:rfdetr_det_nanorfdetr_det_smallrfdetr_det_medium
- In a source checkout, existing local artifacts under
extensions/vision/models/...are still honored. - In installed environments, official artifacts belong under the managed model store in
TOPOSYNC_DATA_DIR/vision-models/...and are intentionally not bundled in the published package. - The validated manual provisioning flow is documented in
docs/VISION_MODEL_PROVISIONING.md. - The initial assisted-provisioning foundation for RTMDet detection is already exposed in catalog metadata:
- upstream checkpoint/config/metafile/paper links
- planned local builder backend
- planned supported platforms
- explicit-consent requirement
- The UI can also trigger installation for models that have an admin-configured source. Supported source env vars are:
TOPOSYNC_VISION_MODEL_SOURCE_<MODEL_ID>TOPOSYNC_VISION_MODEL_URL_<MODEL_ID>TOPOSYNC_VISION_MODEL_PATH_<MODEL_ID>TOPOSYNC_VISION_OFFICIAL_MODEL_SOURCE_DIRTOPOSYNC_VISION_OFFICIAL_MODEL_BASE_URL
- RTMDet detection now also has an experimental assisted local build path:
- Linux only in this phase
- requires a local container runtime (
dockerorpodman) on the processing server - still downloads the upstream checkpoint directly on that machine
- still validates the exported
end2end.onnxagainst the manifest checksum - now records provenance per job, including actor, accepted upstream sources, builder metadata, and final ONNX sha256
- still keeps manual upload as the stable fallback path
- can be started from the model recovery card or the Processing Servers screen
- RF-DETR detection now also has an experimental assisted local build path:
- supports
linux,darwin, andwindowshosts in this phase - uses a host Python builder (
rfdetr[onnx]) instead of MMDeploy - downloads the upstream checkpoint directly on that machine before exporting the ONNX locally
- keeps manual ONNX upload available as the stable fallback path
- is prioritized in the operator UI when nothing is installed and the local builder is actually available on that machine
- supports
- Remote download sources are only enabled when the manifest explicitly allows redistribution. The current built-in RTMDet/RTMDet-Ins manifests do not, so the safe first-party flow is local admin-managed copy.
- Product policy: RTMDet and RTMDet-Ins stay on
guided_uploadfor now. RF-DETR is available only through assisted local build in this phase; it is not mirrored, bundled, or redistributed by Toposync. - Product policy: Ultralytics/YOLO is not part of the official first-party vision runtime path.
- The extension now also ships a built-in RTMDet-Ins segmentation shortlist:
rtmdet_ins_tinyrtmdet_ins_smallrtmdet_ins_medium
- RTMDet manifests use the dedicated
mmdet_rtmdetparser, letterbox preprocessing, and COCO-80 labels. - RF-DETR manifests use the dedicated
rfdetr_detrparser and the official DETR-styledets+labelsONNX outputs. - RTMDet-Ins manifests use the dedicated
mmdet_rtmdet_insparser and produce real binary mask artifacts. - The processing server status now exposes:
- heuristic hardware recommendations
- runtime upgrade suggestions for CUDA / DirectML bundles
- a per-task model catalog with availability (
available,manifest_only,incompatible) - installation capability and progress for models that can be fetched/copied automatically
- badges such as
recommended,fastest,best_quality,edge
vision.detectcan emit finite per-detection events (emit_mode="events"), filter the stream to packets that contain detections (emit_mode="filter"), or keep every frame annotated (emit_mode="annotate").vision.trackis now first-party and detector-agnostic: it consumespayload["vision"]["detections"].- Every
TrackedObjectnow carriescamera_id, and can optionally carryworld_anchorplusappearance_embedding_artifact_namefor future multi-camera association work. vision.segment_instanceswritespayload["vision"]["segmentations"], attaches mask artifacts when enabled, and exposes the top mask as the semantic image keymask.vision.pose_estimatealready reserves the public operator id, config schema, packet contract, andtask=poseregistry path so future pose models can land without breaking the architecture.- Tracking contracts already carry optional keypoints, so future pose-aware trackers do not require a structural rewrite.
ModelManifestnow also accepts optionalcapabilitiessuch asreid, so future re-identification models can be cataloged without changing the registry shape.- The pipeline editor now chooses models by task, not framework/vendor id. Basic setup is guided for common users, while advanced details expose runtime/model internals and custom manifest import when needed.
- The first-party tracking backends are:
byte_world(primary): ByteTrack-style high/low confidence association with optional world-anchor matching.simple_iou_kalmannorfair
simple_iou_kalmanandnorfairremain useful benchmark baselines, but camera presets and recipes should usebyte_world.vision.trackemits stable per-object lifecycle packets directly. The product identity ispayload["subject"]["id"]; technical tracker details stay available astracklet_id,tracklet_ids,raw_tracking_id, andidentity_id.- Frame annotations use
payload["vision"]["detections"],payload["vision"]["tracks"], andpayload["vision"]["segmentations"]. Consumers that need one visual subject from an annotated frame should prefer tracks, then detections, then segmentations. vision.group_eventsconsumes individualsubject.type="event"packets and emits aggregatedsubject.type="group_event"packets withgroup_event_id,member_event_ids,category_summary, and groupedsubject.bbox01for quieter storage and notifications.vision.detectevents are short OPEN/CLOSE notifications; usevision.trackwhen you need temporal identity, movement, and long-lived per-object lifecycle.vision.crop_objectscrops the bbox frompayload["subject"]["bbox01"]by default and preserves event/subject identifiers. It is not instance segmentation.
Future runtime compatibility
- Pipeline configs must stay task-oriented and model-oriented. Do not add runtime, device, delegate, or vendor-specific toggles such as
use_coraltovision.detect,vision.classify_image, or related operators. - New inference stacks should be introduced as optional runtime backends plus
ModelManifestentries. The manifest ownsruntime,artifact_format,input.dtype, hardware accelerators, acquisition metadata, and provenance. - Do not reuse an existing
model_idfor a materially different artifact/runtime. For example, an Edge TPU/TFLite artifact should get its own model id rather than replacing an ONNX model id. - Runtime-specific upload, build, and install flows should remain disabled with clear diagnostics until the backend and artifact validation are implemented.
Metadata
Release files for toposync-ext-vision 0.4.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| toposync_ext_vision-0.4.8.tar.gz | 101.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| toposync_ext_vision-0.4.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 242.7 kB
Release files / toposync_ext_vision-0.4.8.tar.gz
| Download URL | toposync_ext_vision-0.4.8.tar.gz |
|---|---|
| Size | 101.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8d04becdca992db8a011514870ca3ba59ab5e5d78ea2c5b1aa5a1d19cc9ad5d0
|
|
BLAKE2b-256 checksum How to use checksums |
5808fc31eafe786773baea80231659ba55d8b9c21e6f9174c6930009846e014d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.9
|
Release files / toposync_ext_vision-0.4.8-py3-none-any.whl
| Download URL | toposync_ext_vision-0.4.8-py3-none-any.whl |
|---|---|
| Size | 141.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ad84f9a4dee9b6c95a04ff52b7b825952c16bf1bfc838002c2653d0aea729c99
|
|
BLAKE2b-256 checksum How to use checksums |
0084dfe5d4b80c809370f3d1dc284ac8988507f29a3bc623bb4912ee4403ebec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.9
|