dev #17

Merged
elirtf merged 10 commits from dev into master 2026-07-07 13:56:57 +00:00
Owner
No description provided.
Caddyfile mirroring nginx/nginx.conf (security headers, forward_auth gate on
go2rtc, /go2rtc prefix strip + HLS cache rules, ONVIF discovery long timeouts,
static + SPA fallback). Added as a 'caddy' compose profile on host :8081 so it
runs side-by-side with nginx (:80) for A/B testing — nginx stays default and
untouched. Caddy gives automatic HTTPS and transparent websockets at ~5x less
config. Caddyfile passes 'caddy validate'. See docs/caddy-trial.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reusable single-frame latency benchmark + results. On real hardware: OpenVINO
gives YOLOv8n a 3.4x speedup over OpenCV-DNN (66ms->19.5ms), landing within ~7ms
of MobileNet-SSD@300 while detecting all people SSD missed. Verdict: the YOLO+
OpenVINO migration is worth it for the motion-gated single-inference use case.
Results: docs/research/detector-benchmark-2026-06-30.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The digest topics file + dated digests are now tracked so they stop getting
swept into unrelated commits. Added FFmpeg to the standing digest scope.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v1: the discovery probe asks each camera's ONVIF Analytics service whether it
runs its own motion/object detection (classify_native_detection — pure, unit-
tested) and stores it (has_native_detection True|False|NULL + info). Surfaced as
a per-camera Detection badge (Native/Opus/Unknown) in Device Setup, with an
operator override via the camera update API. Deferred per spec: consuming
camera-side events, auto-skipping Opus detection for native cameras.

Spec: docs/superpowers/specs/2026-06-30-onvif-native-detection-design.md

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rewrites ObjectDetector to run a YOLO ONNX through the OpenVINO runtime (CPU,
LATENCY hint) instead of MobileNet-SSD on OpenCV-DNN -- ~3.4x faster than YOLO
on OpenCV-DNN and far more accurate (benchmark:
docs/research/detector-benchmark-2026-06-30.md). COCO's 80 classes replace
VOC's 20. detect() does letterbox preprocess + YOLO decode + NMS
(cv2.dnn.NMSBoxes) + scale-back in pure, unit-tested helpers; keeps the
singleton/semaphore/fail-open contract and the detect() signature, so callers
are unchanged.

Model provisioning mirrors the old pattern: drop yolov8n.onnx in
OPUS_MODELS_DIR (yolo export model=yolov8n.pt format=onnx imgsz=640) or set
OPUS_YOLO_MODEL_URL; absent model / missing openvino -> motion-only. imgsz is
read from the model (env override for weak hosts). Adds openvino + numpy deps.

Note: COCO class names differ from VOC (motorbike->motorcycle, +truck);
existing object_detect_classes settings using VOC-only names may need updating.
Validated end-to-end on the real model (3 persons + 1 bus on a test image).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Detector dropdown exposed backend internals (opencv/KNN/MOG2/Stub); replace
it with a simple Motion detection On/Off (On=KNN default, Off=Stub). Removed the
Advanced section (stagger delay + raw per-detector tuning params) — too granular
and never touched; those settings keep their defaults, just no longer shown.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
13 runbook skills distilled from the repo: architecture contract, change
control, build/env, operations, validation, debugging, failure archaeology,
config catalog, detection, streaming, recording/storage, migrations, docs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
elirtf merged commit e0edb7865a into master 2026-07-07 13:56:57 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
elirtf/opus!17
No description provided.