Обзор acmenra-ds¶
Production-ready утилиты для управления датасетами, YOLO-парсинга, кэширования и аугментации в компьютерном зрении.
Назначение¶
Пакет acmenra-ds закрывает задачу подготовки, валидации, загрузки и аугментации данных для моделей компьютерного зрения. Он бесшовно интегрируется с ядром acmenra-cv, предоставляя типобезопасные абстракции поверх сырых файловых систем и YAML-конфигураций YOLO.
Единый контракт аугментации: (image, List[Instance]) → (image, List[Instance]). Источники Instance не мутируются — геометрические шаги собирают новые объекты, фотометрические возвращают shallow-copy списка.
Ключевые возможности¶
| Возможность | Описание |
|---|---|
| Строгая типизация | Валидация всех путей, имен классов и layout через property setters. |
| Агностик к структуре | Автоматическая поддержка DIRECT (train/images) и REVERSE (images/train) layout. |
| Диагностика здоровья | Метод .health() для мгновенного поиска отсутствующих изображений или разметки. |
| Встроенная визуализация | Метод .visualize() для отрисовки Box, Obb и Polygon в один клик через acmenra-cv.render. |
| RAM-кэширование | LabelCache для O(1) доступа к распарсенным инстансам во время обучения. |
| Аугментации | Compose из photometric + geometric шагов. Каждый шаг крутит свой p. DETECT / SEGMENT / OBB остаются согласованными с пикселями. |
| Zero-crash guarantee | Graceful degradation при битых файлах и строгое логирование нежелательных мутаций. |
flowchart LR
YAML[data.yaml] --> Config
Config --> Dataset
Dataset --> Train[Split.train]
Dataset --> Val[Split.val]
Dataset --> Test[Split.test]
Train --> Sample
Sample --> Parser[ImageParser + LabelParser]
Parser --> Pair["(image, List[Instance])"]
Pair --> Compose
Compose --> Geo[Geometric]
Compose --> Photo[Photometric]
Geo --> Out["(image, List[Instance])"]
Photo --> Out