📚 Модули acmenra-ds¶
Config¶
Типобезопасный контейнер для конфигурации YOLO-датасета из YAML-файла.
Ключевые особенности¶
- Автодетект Layout: Автоматически определяет
DIRECT(train/images) илиREVERSE(images/train) на основе пути в YAML. - Валидация путей: Запрещает абсолютные пути,
..и пустые строки на этапе инициализации. - Защита от мутаций: Любая попытка изменить конфигурацию после
__init__логируется какWARNING.
Основные свойства¶
root,train,val,test: Разрешенные абсолютные пути (Path).names,nc: Список классов и их количество.task,layout:TaskTypeиDatasetLayoutenum'ы.*_leaf: Имена папок (например,images_leaf="frames").
Dataset¶
Верховный контейнер для всего датасета, оркестрирующий общие ресурсы.
Методы¶
health()→Dict: Агрегирует отчеты о здоровье всех активных сплитов. Возвращает количество отсутствующих файлов и список первых 30 ошибок.visualize(sample, style)→np.ndarray: Универсальный метод отрисовки. Автоматически определяетtask(DETECT/SEGMENT/OBB) и включает нужные флаги дляDrawer.split(name)→Optional[Split]: Безопасный доступ к конкретному сплиту по имени или Enum.
Split¶
Представляет один сплит (Train, Val или Test) с атомарным парсингом и опциональным кэшированием.
Методы¶
__iter__()/__getitem__(idx): Позволяет использовать сплит как итерируемый объект или список для PyTorchDataLoader.get_instances(idx)→List[Instance]: Абстрагирует логику кэша. Еслиis_cache=True, возвращает данные из RAM, иначе парсит.txtна лету.get_random_sample()→Sample: Возвращает случайный сэмпл для быстрого дебага без накладных расходов на парсинг.visualize(idx, style)→np.ndarray: Отрисовывает сэмпл по индексу.
Sample¶
Типизированное представление пары "изображение + опциональная разметка". Заменяет хрупкие кортежи (Path, Path).
Свойства¶
stem: Уникальный ключ для кэширования (имя файла без расширения).image_path: Абсолютный путь к изображению.label_path: Абсолютный путь к.txtфайлу (илиNone, если разметки нет).is_labeled(): Быстрая проверка наличия разметки.
LabelCache¶
In-memory кэш для распарсенных инстансов, оптимизированный для циклов обучения.
Особенности¶
- Хранит
List[Instance], ключом являетсяstem. - Поддерживает
max_sizeдля предотвращения Out-Of-Memory (OOM) ошибок. - Предоставляет Pythonic API:
__getitem__,__contains__,__len__.
Augmentation¶
In-memory пайплайн поверх acmenra-cv.Instance. Не ходит на диск — это делает Split + LabelWriter.
| Класс | Роль |
|---|---|
Transform |
ABC. p крутится в __call__, подклассы пишут только apply(). |
Compose |
Последовательность шагов. Пустой список запрещён. Getter возвращает копию. |
| Geometric | HorizontalFlip, VerticalFlip, Resize — пиксели + геометрия. |
| Photometric | Brightness, ChannelBrightness, Blur, Noise, Pixelate, Gray, Normalize — только пиксели. |
from acmenra_ds.augmentation import Compose, HorizontalFlip, Brightness
pipeline = Compose([
HorizontalFlip(p=0.5),
Brightness(p=0.8),
])
aug_image, aug_labels = pipeline(image, labels)
Полный контракт, список шагов и ограничения (Normalize, OBB + anisotropic Resize) — на странице Аугментация.
Следующие шаги¶
Вернуться к обзору | Аугментация | Документация плагина acmenra-yolo