3.1 KiB
Module: ai_config
Purpose
Data class holding all AI recognition configuration parameters, with factory method for deserialization from dict format.
Public Interface
Class: AIRecognitionConfig
Fields
| Field | Type | Default | Description |
|---|---|---|---|
frame_period_recognition |
int | 4 | Process every Nth frame in video |
frame_recognition_seconds |
double | 2.0 | Minimum seconds between valid video annotations |
probability_threshold |
double | 0.25 | Minimum detection confidence |
tracking_distance_confidence |
double | 0.0 | Distance threshold for tracking (model-width units) |
tracking_probability_increase |
double | 0.0 | Required confidence increase for tracking update |
tracking_intersection_threshold |
double | 0.6 | IoU threshold for overlapping detection removal |
model_batch_size |
int | 1 | Batch size for inference |
big_image_tile_overlap_percent |
int | 20 | Tile overlap percentage for large image splitting |
has_camera_config |
bool | false | Whether camera parameters were supplied |
current_height |
double | 0.0 | Camera height in meters, from camera_config.current_height |
current_zoom |
double | 1.0 | Camera zoom multiplier |
current_angle |
double | 90.0 | Camera angle in degrees; 90 is nadir/downward |
focal_length |
double | 24 | Camera focal length in mm |
sensor_width |
double | 23.5 | Camera sensor width in mm |
altitude / has_altitude |
double / bool | legacy | Backward-compatible aliases for older flat camera config |
Methods
| Method | Signature | Description |
|---|---|---|
from_dict |
(dict data) -> AIRecognitionConfig |
Static cdef; deserializes from Python dict |
Internal Logic
from_dict applies defaults for missing keys using full descriptive key names. Camera parameters are read from nested camera_config first; legacy flat altitude, focal_length, and sensor_width keys remain supported for older clients.
Removed: paths field and file_data field were removed as part of the distributed architecture shift (AZ-174). Media paths are now resolved via the Annotations service API, not passed in config. from_msgpack() was also removed as it was unused.
Dependencies
- External: none
- Internal: none (leaf module)
Consumers
inference— creates config from dict, uses all fields for frame selection, detection filtering, image tiling, and tracking
Data Models
AIRecognitionConfig— the sole data class
Configuration
Camera parameters (camera_config.focal_length, camera_config.sensor_width, camera_config.current_zoom, camera_config.current_angle, camera_config.current_height) are used for ground sampling distance calculation in aerial image processing. If camera_config is missing or height/optics are invalid, the service skips GSD-based size filtering and does not tile large images by physical size.
External Integrations
None.
Security
None.
Tests
tests/test_ai_config_from_dict.py— testsai_config_from_dict()helper with defaults and overrides