mirror of
https://github.com/azaion/ai-training.git
synced 2026-04-23 00:36:36 +00:00
142c6c4de8
- Replaced module-level path variables in constants.py with a structured Pydantic Config class. - Updated all relevant modules (train.py, augmentation.py, exports.py, dataset-visualiser.py, manual_run.py) to access paths through the new config structure. - Fixed bugs related to image processing and model saving. - Enhanced test infrastructure to accommodate the new configuration approach. This refactor improves code maintainability and clarity by centralizing configuration management.
68 lines
2.8 KiB
Markdown
68 lines
2.8 KiB
Markdown
# Traceability Matrix
|
||
|
||
## Acceptance Criteria Coverage
|
||
|
||
| AC / Restriction | Test IDs | Coverage |
|
||
|------------------|----------|----------|
|
||
| 8× augmentation ratio | BT-AUG-01, BT-AUG-06, BT-AUG-07, RL-AUG-01 | Full |
|
||
| Augmentation naming convention | BT-AUG-02 | Full |
|
||
| Bounding boxes clipped to [0,1] | BT-AUG-03, BT-AUG-04 | Full |
|
||
| Tiny bboxes (< 0.01) discarded | BT-AUG-05 | Full |
|
||
| Augmentation skips already-processed | BT-AUG-08 | Full |
|
||
| Augmentation parallelized | PT-AUG-02 | Full |
|
||
| Augmentation handles corrupted images | RT-AUG-01 | Full |
|
||
| Augmentation handles missing labels | RT-AUG-02 | Full |
|
||
| Transform failure graceful | RT-AUG-03 | Full |
|
||
| Dataset split 70/20/10 | BT-DSF-01, RL-DSF-01 | Full |
|
||
| Dataset directory structure | BT-DSF-02 | Full |
|
||
| Dataset integrity (no data loss) | BT-DSF-03, RL-DSF-02 | Full |
|
||
| Corrupted label filtering | BT-DSF-04, BT-LBL-01 to BT-LBL-05 | Full |
|
||
| AES-256-CBC encryption | BT-ENC-01 to BT-ENC-06, ST-ENC-01, ST-ENC-02 | Full |
|
||
| Model encryption roundtrip | BT-ENC-02 | Full |
|
||
| Model split ≤3KB or 20% | BT-SPL-01, BT-SPL-02 | Full |
|
||
| 17 base classes | BT-CLS-01 | Full |
|
||
| 3 weather modes (Norm/Wint/Night) | BT-CLS-02 | Full |
|
||
| 80 total class slots | BT-CLS-03, RL-CLS-01 | Full |
|
||
| YAML generation (nc: 80) | BT-CLS-03 | Full |
|
||
| Hardware hash determinism | BT-HSH-01 to BT-HSH-03, ST-HSH-01, ST-HSH-02 | Full |
|
||
| Hardware-bound API encryption | ST-HSH-03, ST-HSH-04 | Full |
|
||
| ONNX inference loads model | BT-INF-01 | Full |
|
||
| ONNX inference returns detections | BT-INF-02, BT-INF-03 | Full |
|
||
| NMS overlap removal (IoU 0.3) | BT-NMS-01, BT-NMS-02, BT-NMS-03 | Full |
|
||
| Annotation message parsing | BT-AQM-01 to BT-AQM-04, RT-AQM-01 | Full |
|
||
| Encryption size overhead bounded | RL-ENC-01 | Full |
|
||
| Static model encryption key | ST-ENC-03 | Full |
|
||
| Random IV per encryption | ST-ENC-01 | Full |
|
||
|
||
## Uncovered (Require External Services)
|
||
|
||
| AC / Restriction | Reason |
|
||
|------------------|--------|
|
||
| TensorRT inference (54s for 200s video) | Requires NVIDIA GPU + TensorRT runtime |
|
||
| API upload/download with JWT auth | Requires live Azaion API |
|
||
| CDN upload/download (S3) | Requires live S3-compatible CDN |
|
||
| Queue offset persistence | Requires live RabbitMQ Streams |
|
||
| Auto-relogin on 401/403 | Requires live Azaion API |
|
||
| Frame sampling every 4th frame | Requires video file (fixture not provided) |
|
||
| Confidence threshold 0.3 filtering | Partially covered by BT-INF-03 (validates range, not exact threshold) |
|
||
|
||
## Summary
|
||
|
||
| Metric | Value |
|
||
|--------|-------|
|
||
| Total AC + Restrictions | 36 |
|
||
| Covered by tests | 29 |
|
||
| Uncovered (external deps) | 7 |
|
||
| **Coverage** | **80.6%** |
|
||
|
||
## Test Count Summary
|
||
|
||
| Category | Count |
|
||
|----------|-------|
|
||
| Blackbox tests | 32 |
|
||
| Performance tests | 5 |
|
||
| Resilience tests | 6 |
|
||
| Security tests | 7 |
|
||
| Resource limit tests | 5 |
|
||
| **Total** | **55** |
|