Documentation

Detection Results

Detection Results is the read-only feed of everything your AI models have detected. You’ll find it under AI & Detections → Detection Results in the sidebar. It shows detections as they happen (pushed live over a WebSocket) plus recent history from the database.

[!NOTE] This tab is shown to users with the AI Models permission (byom.manage). Anyone signed in can view results; the Delete and Delete Old actions are superuser-only.

Detection Results — live table of detections with a per-camera sidebar

What you can do here

  • Watch detections stream in live — new rows appear the instant the backend produces them, with no polling.
  • Filter by model, by task, and by result limit.
  • Click a camera in the right-hand sidebar to focus on just that camera’s detections.
  • Open a Camera Details dialog for per-camera statistics (total detections, models used, task types, average latency, recent detections).
  • Refresh to reload history, and (superuser) delete individual results or bulk-delete old ones.

Read the results table

Each row shows one detection:

Column Shows
ID Result id (#…); live-pushed rows use a temporary negative id until you Refresh
Model Model name and the camera it came from (Cam …)
Task The task that produced it (e.g. person_detection)
Label Detected class, or a caption for scene-description results
Confidence Percentage, color-coded (green ≥ 80%, yellow ≥ 60%, orange below)
BBox Bounding box: X, Y and width × height
Count Object count (e.g. for person counting)
Latency Inference latency in ms, color-coded (green < 200, yellow < 500, orange above)
Timestamp Local date/time of the detection
Actions Delete (superuser only)

[!NOTE] The table header counts the currently shown rows, e.g. Detection Results (100). Empty state reads “No detection results found. Run inference to generate results.” — start a model on AI Models (BYOM) to populate it.

Filter the feed

The filter bar sits above the table:

  1. Filter by Model — pick a specific model or All Models.
  2. Filter by Task — pick a task (options come from the tasks present in the current results) or All Tasks.
  3. Limit — cap the number of rows: 50, 100, 200, or 500 (default 100).
  4. Clear Filters resets model and task and returns the limit to 100.

Filters apply to both the loaded history and the live-pushed rows.

Focus on one camera

The right sidebar lists every camera with a badge showing how many results it has.

  1. Click All Cameras to see everything, or click a camera to filter to it.
  2. Clicking a camera also opens the Camera Details dialog, which shows:
    • Camera info (name, id, IP:port, status, manufacturer, model, location, active).
    • Detection statistics — Total Detections, Models Used, Task Types.
    • Models & Tasks running on that camera, each with its detection count and average latency.
    • Recent Detections — the last few for that camera.
  3. Click Close (or outside the dialog) to dismiss it.

Refresh and clean up

  • Refresh (top-right) reloads history from the server. Events that arrive mid-refresh are buffered so live rows aren’t lost.
  • Delete (per row, superuser only) removes a single result after confirmation.
  • Delete Old (7d+) (superuser only) bulk-deletes results older than 7 days after confirmation.

📸 Screenshots to capture

The existing infeencing results.jpeg is reused for the overview. Optionally add:

  • detection-results-filters.png — the filter bar with a model and task selected.
  • detection-results-camera-dialog.png — the Camera Details dialog open, showing the statistics tiles and Models & Tasks list.