Skip to content

v2.0.0 — AI-driven privacy masking

Choose a tag to compare

@0ldManPlaying 0ldManPlaying released this 11 May 20:07
· 21 commits to main since this release

v2.0.0 — major release

InteractiveMask now applies privacy masks per detected object instead of per tile. The system recognises people, cyclists and vehicles by itself via a local AI model and blurs only those — the rest of the camera frame stays fully visible. Fully GDPR-compliant: no facial recognition, no number-plate reading, no external database links.

Backward compatible with v1.3.x. Customers without a suitable GPU keep the v1.x masking behaviour unchanged; AI is strictly opt-in per camera.

What's new

AI-driven object masking

  • Three categories, colour-coded: Person (red), TwoWheeler (orange), Vehicle (blue)
  • Per-camera configuration: enable / disable, category selection, confidence threshold with hysteresis, mask padding, region-of-interest polygon
  • Two rendering styles: colour-coded silhouette or classic CCTV source-blur
  • Mask opacity slider (20–100 %) per camera
  • Redesigned per-camera AI settings dialog in the app's card style

Per-tile AI reveal (F2)

  • Small "AI" pill in the top-left of any tile with active AI detections
  • Click → authenticate (PIN or AD, same policy as v1.x unmask) → pick duration (30 s / 1 min / 5 min / until remask)
  • Live countdown badge in the top-right, one click to remask early
  • Every reveal is audited (reviewer identity + duration + reason)
  • Per-detection reveal is intentionally not supported — privacy first

Adaptive load management (F3)

  • Runtime monitor watches rolling p95 inference latency
  • Three-step degradation ladder with hysteresis to prevent flapping:
    1. Frame-skip multiplier raised per tile
    2. AI auto-disabled on the lowest-priority cameras
    3. Global AI fallback (all tiles show live image without overlay)
  • Each transition writes an audit event; affected tiles show a small "AI paused (load)" badge
  • Automatic recovery when load drops; no operator action required

Plus

  • In-app manual chapter 10 "AI masking" with operator-facing walkthrough (NL + EN)
  • About tab shows live AI runtime info: model, execution provider, inference latency, frame counter
  • Full audit-log coverage for the AI lifecycle: AiDetectorInit, AiDetectorFault, AiDetectorStopped, AiRevealRequested, AiRevealExpired, AiDetectorDegraded, AiDetectorRestored
  • ONNX Runtime DirectML bumped 1.20.1 → 1.24.4
  • Centralised inference coordinator (no more native crashes under concurrent submissions)
  • Carry-over polish from the v1.3 pre-release review (dead loc keys, persistent audit-log handle, hot-path closure-allocation removal, periodic web-session sweep, PIN-counter consistency fix)

What it does not do

  • No facial recognition
  • No licence-plate / OCR / plate-string storage
  • No links to external databases
  • NVR recordings are unaffected — masking is applied on the kiosk screen only

System requirements

  • Windows 10 22H2 or Windows 11 23H2 / 24H2, 64-bit
  • DirectML-capable GPU (NVIDIA RTX, AMD 700-series, Intel Arc; driver from 2020 or newer)
  • 4 GB free on system drive
  • LAN access to the IDIS NVR

Installer

InteractiveMask-2.0.0.msi (180.8 MB, signed by IDIS Nederland BV)

  • SHA-256: 6D503F5D0C9838C5BBC41DF77FD22896F38E87ACCF3CCA6F94A066386FFB9DEC
  • Certificate: CN=IDIS Nederland BV, valid until 4 April 2027
  • Self-contained: bundles the .NET 9 runtime, ONNX Runtime DirectML, and the YOLO26 models — no separate runtime install needed
  • Upgrade: double-click on a host running v1.x; the old version is replaced in-place and configuration is preserved

Unattended deployment

msiexec /i InteractiveMask-2.0.0.msi /qn INTERACTIVEMASK_LANGUAGE=en

(Replace en with nl, de, fr, or es to pre-seed the UI language for SCCM / Intune rollouts.)

Documentation