vista.detections.detector.Detector¶
- class vista.detections.detector.Detector(name, frames, rows, columns, sensor, description='', color='r', marker='o', marker_size=10, line_thickness=2, visible=True, complete=False, labels=<factory>)[source]¶
Collection of detection points from a detection algorithm or manual creation.
A Detector represents a set of detected objects or points of interest across multiple frames. Unlike Tracks, detections are unassociated points without temporal continuity. Each detection point can have its own set of labels.
- Parameters:
name (str) – Unique identifier for this detector
frames (NDArray[np.int_]) – Frame numbers where detections occur
rows (NDArray[np.float64]) – Row (vertical) pixel coordinates for each detection
columns (NDArray[np.float64]) – Column (horizontal) pixel coordinates for each detection
sensor (Sensor) – Sensor object associated with these detections
description (str, optional) – Description of detection algorithm or method, by default “”
- marker¶
Marker style (‘o’, ‘s’, ‘t’, ‘d’, ‘+’, ‘x’, ‘star’), by default ‘o’ (circle)
- Type:
str, optional
- labels¶
List of label sets, one set per detection point, by default empty list
Notes
Detections are unassociated points (unlike tracks which represent trajectories)
Multiple detections can exist at the same frame
Labels are per-detection, allowing individual detection categorization
Detection coordinates are always in pixel space (row/column)
- __init__(name, frames, rows, columns, sensor, description='', color='r', marker='o', marker_size=10, line_thickness=2, visible=True, complete=False, labels=<factory>)¶
Methods
__init__(name, frames, rows, columns, sensor)copy()Create a deep copy of this detector object.
from_dataframe(df, sensor[, name])Create Detector from pandas DataFrame.
get_detections_at_frame(frame_num)Get detection coordinates at a specific frame using O(1) cached lookup.
get_pen([width])Get cached PyQtGraph pen object, creating only if parameters changed.
Get all unique labels across all detections in this detector.
Invalidate cached data structures when detector data changes.
to_csv(file)Attributes
- get_detections_at_frame(frame_num)[source]¶
Get detection coordinates at a specific frame using O(1) cached lookup.
- Parameters:
frame_num (int) – Frame number to query
- Returns:
rows (NDArray) – Row coordinates of detections at this frame
cols (NDArray) – Column coordinates of detections at this frame
- get_pen(width=None, **kwargs)[source]¶
Get cached PyQtGraph pen object, creating only if parameters changed.
- Parameters:
width (int, optional) – Line width override, uses self.line_thickness if None
- Returns:
PyQtGraph pen object
- Return type:
pg.mkPen
- classmethod from_dataframe(df, sensor, name=None)[source]¶
Create Detector from pandas DataFrame.
- Parameters:
- Returns:
New Detector object
- Return type:
Notes
Optional styling columns: “Color”, “Marker”, “Marker Size”, “Line Thickness”, “Visible”, “Labels”
Labels should be comma-separated strings in the “Labels” column.
- copy()[source]¶
Create a deep copy of this detector object.
- Returns:
New Detector object with copied arrays and styling attributes
- Return type:
- __init__(name, frames, rows, columns, sensor, description='', color='r', marker='o', marker_size=10, line_thickness=2, visible=True, complete=False, labels=<factory>)¶