Processing Settings
app.domain.export.processing_settingsUser-configurable settings for detection, tracking, and rendering pipelines.
See Also
SessionState— owns the settings used by an active sessionSessionSettingsViewModel— exposes editable settings to the UI
Layer: Domain. Context: Defines application concepts independently of UI and infrastructure implementations.
ProcessingSettings
dataclass
Mutable configuration snapshot for a video processing session.
| ATTRIBUTE | DESCRIPTION |
|---|---|
detection_model_name |
YOLO model name, or
TYPE:
|
min_detection_confidence |
Confidence threshold used to filter detections.
TYPE:
|
chosen_labels |
Whitelist of class names to detect.
TYPE:
|
tracking_strategy |
Tracking algorithm name.
TYPE:
|
tracking_source |
Input layer used for tracking.
TYPE:
|
reid_embedding_dim |
Embedding size used by Re-ID tracking.
TYPE:
|
min_iou |
IoU threshold for matching detections to tracks.
TYPE:
|
min_tracker_confidence |
Confidence floor before pruning a track.
TYPE:
|
confidence_decay |
Per-frame confidence decay for coasted tracks.
TYPE:
|
offline_stitching_enabled |
Whether post-processing bridges fragmented tracks.
TYPE:
|
max_stitch_gap |
Maximum number of missed frames to bridge.
TYPE:
|
gsi_smoothness |
Gaussian interpolation lengthscale.
TYPE:
|
privacy_features_enabled |
Whether conservative privacy redaction rules are active.
TYPE:
|
resist_box_shrinking |
Whether track boxes resist sudden size contractions.
TYPE:
|
shrink_resistance |
Damping factor for shrinking track boxes.
TYPE:
|
pre_detection_padding_sec |
Backfill duration before the first detection.
TYPE:
|
post_detection_padding_sec |
Hold duration after the last detection.
TYPE:
|
box_safety_padding_pct |
Proportional outward inflation of privacy boxes.
TYPE:
|
draw_boxes |
Whether box outlines are shown in the editor preview.
TYPE:
|
box_border_width |
Preview outline width in pixels.
TYPE:
|
show_preview_mask |
Whether to show the export blur mask in preview.
TYPE:
|
preview_blur_enabled |
Whether to render blur in the editor preview.
TYPE:
|
blur_enabled |
Whether Gaussian blur is applied during export.
TYPE:
|
blur_strength |
Blur sigma in pixels.
TYPE:
|
Note
Created per session with defaults, updated when the user changes UI
controls, and converted to SessionSettingsViewModel through
as_view_model() for widget binding.
Example
settings = ProcessingSettings( detection_model_name="yolov8n", min_detection_confidence=0.50, chosen_labels=["person", "car"], tracking_strategy="hungarian", blur_enabled=True ) view_model = settings.as_view_model() # For UI binding
Layer: Domain. Context: Represents application concepts without UI or infrastructure dependencies.
blur_enabled: bool = False
class-attribute
instance-attribute
blur_strength: float = 15.0
class-attribute
instance-attribute
box_border_width: int = 2
class-attribute
instance-attribute
box_safety_padding_pct: float = 0.1
class-attribute
instance-attribute
chosen_labels: list[str] = field(default_factory=lambda: ['person', 'cat', 'dog'])
class-attribute
instance-attribute
confidence_decay: float = 0.05
class-attribute
instance-attribute
detection_model_name: str = 'None'
class-attribute
instance-attribute
draw_boxes: bool = True
class-attribute
instance-attribute
gsi_smoothness: float = 10.0
class-attribute
instance-attribute
max_stitch_gap: int = 25
class-attribute
instance-attribute
min_detection_confidence: float = 0.25
class-attribute
instance-attribute
min_iou: float = 0.3
class-attribute
instance-attribute
min_tracker_confidence: float = 0.1
class-attribute
instance-attribute
model_name_is_null: bool
property
Return whether no detection model is selected.
| RETURNS | DESCRIPTION |
|---|---|
bool
|
|
offline_stitching_enabled: bool = True
class-attribute
instance-attribute
post_detection_padding_sec: float = 0.5
class-attribute
instance-attribute
pre_detection_padding_sec: float = 0.5
class-attribute
instance-attribute
preview_blur_enabled: bool = False
class-attribute
instance-attribute
privacy_features_enabled: bool = False
class-attribute
instance-attribute
reid_embedding_dim: int = 256
class-attribute
instance-attribute
resist_box_shrinking: bool = True
class-attribute
instance-attribute
show_preview_mask: bool = False
class-attribute
instance-attribute
shrink_resistance: float = 0.85
class-attribute
instance-attribute
tracking_source: str = 'b'
class-attribute
instance-attribute
tracking_strategy: str = 'hungarian'
class-attribute
instance-attribute
__init__(detection_model_name: str = 'None', min_detection_confidence: float = 0.25, chosen_labels: list[str] = (lambda: ['person', 'cat', 'dog'])(), tracking_strategy: str = 'hungarian', tracking_source: str = 'b', reid_embedding_dim: int = 256, min_iou: float = 0.3, min_tracker_confidence: float = 0.1, confidence_decay: float = 0.05, offline_stitching_enabled: bool = True, max_stitch_gap: int = 25, gsi_smoothness: float = 10.0, privacy_features_enabled: bool = False, resist_box_shrinking: bool = True, shrink_resistance: float = 0.85, pre_detection_padding_sec: float = 0.5, post_detection_padding_sec: float = 0.5, box_safety_padding_pct: float = 0.1, draw_boxes: bool = True, box_border_width: int = 2, show_preview_mask: bool = False, preview_blur_enabled: bool = False, blur_enabled: bool = False, blur_strength: float = 15.0) -> None
as_view_model() -> SessionSettingsViewModel
Create the widget-ready view of this session's processing settings.
| RETURNS | DESCRIPTION |
|---|---|
SessionSettingsViewModel
|
A view model with labels joined for direct text-field assignment. |
Note
This conversion is a snapshot; later UI edits update the settings through the application service rather than mutating the snapshot.
Example
view_model = settings.as_view_model()