ci / smoke (push) Canceled after 0s
- CHANGELOG.md (Keep-a-Changelog, dated entries from git history) - README: production pipeline framing, config table, layout, flags, changelog link - configuration.md: legacy env overrides, zones geometry-only, archive paths - scripts.md: current flags, correct archive/ paths, tracked vs ignored weights - deployment.md: config.yaml in sync list, model_mode location, /api/model-modes - models.md + architecture.md: config.yaml pointers, deprecated src/config.py
3.7 KiB
3.7 KiB
Changelog
All notable changes to this project are documented here. Format follows
Keep a Changelog (dated entries; no
version tags are cut in this repo — POC stage, main is the release line).
[Unreleased]
Nothing pending.
2026-09-17 — Unified config.yaml with extensible model presets
Added
config.yaml— single canonical config (stream, models, counting knobs, batch, output paths, camera). Secrets/deployment-only values stay in.env.src/config_loader.py— stdlib-dataclasses + pyyaml loader, zero new dependencies. Missing file falls back to.env+ legacy defaults with aUserWarning;MODEL_MODEenv still honoured once with aDeprecationWarning.tests/test_config_loader.py— 8 smoke tests (load/validate, precedence, atomic mode-switch round-trip, YAML-only mode-E extension, legacy warnings).- Per-class
iouandmin_bbox_areainmodels.detection_params(shared across modes;ioudefault0.7= Ultralytics default, no behaviour change). --configCLI flag onpredict.py(default:config.yamlnext topredict.py).
Changed
- Model modes are data:
config.yaml → models.modesholds engines (path key + contributed classes) and class filters only.predict.pyderives tracker roles structurally — adding mode E/F/... needs no code change, and the dashboard/api/model-modeslists new modes automatically. - Dashboard
POST /api/batch/mode {"model_mode": "X"}validates againstconfig.yamland persists atomically (tmp+replace, comments preserved) tomodels.active_mode. Manualkarung-counterrestart still required. batch_mode.jsonkeeps only the manual/auto batchmode; its legacymodel_modekey is ignored (warned when it disagrees).zones.jsonkeeps geometry only (polygons + left/right limits); legacy knob keys there are ignored with a warning —config.yaml counting.*is canonical.deploy_to_jetson.pyalso syncsconfig.yaml.src/tracking.py/src/detection.pyaccept aniouparameter (default0.7, v3 callers unaffected).
2026-09-15 — Default model mode B → C
- Production default is now Mode C (combined v4 sack+truck + yolo11n
box-only on a dedicated tracker) instead of Mode B (shared sack+box tracker).
Changed in
predict.py,counter_dashboard.py,.env.example, and docs. Sack path uses the proven v4 model; sack/box track-ID spaces no longer collide.
2026-09-14 — models/modelREADME.md rename
models/README.md→models/modelREADME.mdto avoid confusion with the root README. No content change.
2026-09-11 — Model weights tracked, per-mode matrix
models/*.pt+*.onnxare now git-tracked (clone-ready);*.enginestays gitignored (rebuildable viaexport_model.pyon the Jetson).- All weights moved under
models/with a per-mode detector/filter matrix (models/modelREADME.md);predict.pypaths,deploy_to_jetson.py, and docs updated. - Multi-model modes (A/B/C/D, default B at the time) + box counting +
manual-mode banner (
6e4af50).
2026-09-10 — Single predict.py entrypoint, experiments archived
- Production + dev CLI unified in
predict.py(runs askarung-counter.servicewith zero args). Retired experiments moved toarchive/viagit mv(predict_new.py,rpo_iki/,simple_predict.py, check/merge/test scripts). - Docs guides added (
docs/architecture.md,models.md,configuration.md,scripts.md) plus DB/batch helper scripts; pytest smoke tests + CI.
2026-08-24 — Manual & auto batch modes, dual-port dashboards
- Manual/auto batch counting, operator (port 5000) + monitoring (port 5721) dashboards, historical batch data views and corrections.