You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A hero 'plug in any detector -> one event stream' table in supported-models
(framing the Supervision boundary on our output), plus three Open-in-Colab
badges wiring the new notebooks/ from the quickstart section.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+19-1Lines changed: 19 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -53,6 +53,14 @@ for event in cam.run(video_frames("dock.mp4")):
53
53
54
54
No model, no GPU? The [`examples/`](examples/) quickstarts run on synthetic detections — `git clone` the repo (they ship with the source, not the wheel) and start with `python examples/quickstart.py` (the forecast / video demos need `[video]` + a clip).
|[](https://colab.research.google.com/github/machinefi/trio-retina/blob/main/notebooks/02_camera_to_webhook.ipynb)|**camera → webhook** — a restricted-zone alert pushed to your endpoint |
62
+
|[](https://colab.research.google.com/github/machinefi/trio-retina/blob/main/notebooks/03_from_supervision.ipynb)|**from Supervision** — pipe your existing `sv.Detections` straight in |
63
+
56
64
### compose models with `|`
57
65
58
66
Wire models like n8n / LangChain, no GUI. Add a cheap gate and a VLM enricher anywhere in the chain:
@@ -96,7 +104,17 @@ Register your own for `from_json` with `register_node("my_type", builder)`.
96
104
97
105
## 🎛️ supported models
98
106
99
-
Retina imports no model — **any**`callable(image) -> [Detection]` plugs in (`CallableDetector` wraps a function in one line). Batteries-included:
107
+
Retina imports no model — **any** detector plugs in, and out comes one standard event stream. That seam *is* the point:
108
+
109
+
| plug in any detector… | → | …out comes one `retina.event` stream |
|**Grounding DINO** (open-vocab, no training) | → |`{"type":"zone.dwell", "dur":31.0, …}`|
114
+
| your existing **`sv.Detections`** (Supervision) | → |`{"type":"count.threshold", "n":12, …}`|
115
+
| any **`callable(image) -> [Detection]`**| → | …+ an optional latent `vec` on the same record |
116
+
117
+
Supervision gives you boxes on a screen; Retina turns *any* of those into a serializable state + event stream the next layer (dynamics, twin, agent) can consume. Batteries-included adapters:
100
118
101
119
-**YOLO family** — `YoloDetector("<weights>.pt")` (Ultralytics): YOLOv5/8/9/10/11/12, RT-DETR. Open-vocab via YOLO-World.
102
120
-**Open-vocab from text** — `GroundingDinoDetector(["forklift", "hard hat"])`, no training.
0 commit comments