# Input Data Parameters ## Annotation Images - **Format**: JPEG - **Naming**: UUID-based (`{uuid}.jpg`) - **Source**: Azaion annotation platform via RabbitMQ Streams - **Volume**: Up to 360K+ annotations observed in training comments - **Delivery**: Real-time streaming via annotation queue consumer ## Annotation Labels - **Format**: YOLO text format (one detection per line) - **Schema**: `{class_id} {center_x} {center_y} {width} {height}` - **Coordinate system**: All values normalized to 0–1 relative to image dimensions - **Constraints**: Coordinates must be in [0, 1]; labels with coords > 1.0 are treated as corrupted ## Annotation Classes - **Source file**: `classes.json` (static, 17 entries) - **Schema per class**: `{ Id: int, Name: str, ShortName: str, Color: hex_str }` - **Classes**: ArmorVehicle, Truck, Vehicle, Artillery, Shadow, Trenches, MilitaryMan, TyreTracks, AdditArmoredTank, Smoke, Plane, Moto, CamouflageNet, CamouflageBranches, Roof, Building, Caponier - **Weather expansion**: Each class × 3 modes (Norm offset 0, Wint offset 20, Night offset 40) - **Total class IDs**: 80 slots (51 used, 29 reserved as placeholders) ## Queue Messages - **Protocol**: AMQP via RabbitMQ Streams (rstream library) - **Serialization**: msgpack with positional integer keys - **Message types**: AnnotationMessage (single), AnnotationBulkMessage (batch validate/delete) - **Fields**: createdDate, name, originalMediaName, time, imageExtension, detections (JSON string), image (raw bytes), createdRole, createdEmail, source, status ## Configuration Files | File | Format | Key Contents | |------|--------|-------------| | `config.yaml` | YAML | API URL, email, password, queue host/port/username/password, directory paths | | `cdn.yaml` | YAML | CDN endpoint, read access key/secret, write access key/secret, bucket name | | `classes.json` | JSON | Annotation class definitions array | | `checkpoint.txt` | Plain text | Last training run timestamp | | `offset.yaml` | YAML | Queue consumer offset for resume | ## Video Input (Inference) - **Format**: Any OpenCV-supported video format - **Processing**: Every 4th frame sampled, batched in groups of 4 - **Resolution**: Resized to model input size (1280×1280) during preprocessing