Обнаружение объектов - это форма контролируемого обучения, при которой модель обучается распознавать и классифицировать объекты на изображениях. Система автоматического обучения упрощает процесс, позволяя вам обучать самую современную модель обнаружения объектов, просто загружая примеры изображений с надписями.

Подготовка ваших данных

Чтобы обеспечить эффективное обучение вашей модели обнаружения объектов, следуйте этим рекомендациям по подготовке данных:

Упорядочивание изображений

Подготовьте zip-файл, содержащий ваши изображения и metadata.jsonl.

Archive.zip
├── 0001.png
├── 0002.png
├── 0003.png
├── .
├── .
├── .
└── metadata.jsonl

Пример для файла metadata.jsonl:

{"file_name": "0001.png", "objects": {"bbox": [[302.0, 109.0, 73.0, 52.0]], "category": [0]}}
{"file_name": "0002.png", "objects": {"bbox": [[810.0, 100.0, 57.0, 28.0]], "category": [1]}}
{"file_name": "0003.png", "objects": {"bbox": [[160.0, 31.0, 248.0, 616.0], [741.0, 68.0, 202.0, 401.0]], "category": [2, 2]}}

Пожалуйста, обратите внимание, что поля b должны быть в формате COCO [x, y, ширина, высота].

Требования к изображению

  • Формат: Убедитесь, что все изображения выполнены в формате JPEG, JPG или PNG.
  • Количество: Включите не менее 5 изображений, чтобы предоставить модели достаточное количество примеров для изучения.
  • Эксклюзивность: zip-файл должен содержать исключительно изображения и metadata.jsonl. Никаких дополнительных файлов или вложенных папок включать не следует.

Некоторые моменты, которые следует иметь в виду:

  • Изображения должны быть в формате jpeg, jpg или png.
  • В каждом фрагменте должно быть не менее 5 изображений.
  • В zip-файле не должно быть никаких других файлов.
  • Внутри zip-папки не должно быть никаких других папок.

При распаковке train.zip не создается никаких папок: только изображения и metadata.jsonl.

Параметры

class autotrain.trainers.object_detection.params.ObjectDetectionParams

( 
    data_path: str = None,
    model: str = 'google/vit-base-patch16-224',
    username: typing.Optional[str] = None,
    lr: float = 5e-05epochs: int = 3,
    batch_size: int = 8,
    warmup_ratio: float = 0.1,
    gradient_accumulation: int = 1,
    optimizer: str = 'adamw_torch',
    scheduler: str = 'linear',
    weight_decay: float = 0.0,
    max_grad_norm: float = 1.0,
    seed: int = 42,
    train_split: str = 'train',
    valid_split: typing.Optional[str] = None,
    logging_steps: int = -1,
    project_name: str = 'project-name',
    auto_find_batch_size: bool = False,
    mixed_precision: typing.Optional[str] = None,
    save_total_limit: int = 1,
    token: typing.Optional[str] = None,
    push_to_hub: bool = False,
    eval_strategy: str = 'epoch',
    image_column: str = 'image',
    objects_column: str = 'objects',
    log: str = 'none',
    image_square_size: typing.Optional[int] = 600,
    early_stopping_patience: int = 5,
    early_stopping_threshold: float = 0.01 
)

Параметры

  • data_path (str) — Путь к набору данных.
  • model (str) — Название используемой модели. По умолчанию используется “google/vit-base-patch16-224”.
  • username (Optional[str]) — Имя пользователя Hugging Face.
  • lr (float) — Скорость обучения. Значение по умолчанию 5e-5.
  • epochs (int) — Количество периодов обучения. Значение по умолчанию 3.
  • batch_size (int) — Размер обучающего пакета. Значение по умолчанию 8.
  • warmup_ratio (float) — Пропорция прогрева. Значение по умолчанию 0.1.
  • gradient_accumulation (int) — Этапы накопления градиента. Значение по умолчанию 1.
  • optimizer (str) — Будет использоваться оптимизатор. Значение по умолчанию - “adamw_torch”.
  • scheduler (str) — Будет использоваться планировщик. Значение по умолчанию - “linear”.
  • weight_decay (float) — Уменьшение веса. Значение по умолчанию равно 0.0.
  • max_grad_norm (float) — Максимальная норма градиента. Значение по умолчанию 1.0.
  • seed (int) — Случайное начальное число. Значение по умолчанию 42.
  • train_split (str) — Название раздела обучающих данных. По умолчанию используется “train”.
  • valid_split (Optional[str]) — Название разделения проверочных данных.
  • logging_steps (int) — Количество шагов между регистрациями. По умолчанию -1.
  • project_name (str) — Имя проекта для выходного каталога. По умолчанию используется “project-name”.
  • auto_find_batch_size (bool) — Следует ли автоматически определять размер пакета. Значение по умолчанию False.
  • mixed_precision (Optional[str]) — Смешанный тип точности (fp16, bf16 или None).
  • save_total_limit (int) — Общее количество сохраняемых контрольных точек. Значение по умолчанию 1.
  • token (Optional[str]) — Токен Hub для аутентификации.
  • push_to_hub (bool) — Следует ли перемещать модель в Hugging Face Hub. Значение по умолчанию False.
  • eval_strategy (str) — Стратегия оценки. Значение по умолчанию - “epoch”.
  • image_column (str) — Имя столбца изображения в наборе данных. По умолчанию используется “image”.
  • objects_column (str) — Имя целевого столбца в наборе данных. Значение по умолчанию - “objects”.
  • log (str) — Метод ведения журнала для отслеживания эксперимента. Значение по умолчанию - “none”.
  • image_square_size (Optional[int]) — Максимальный размер, до которого будет изменен размер изображения, затем будет дополнен до квадратного. Значение по умолчанию 600.
  • early_stopping_patience (int) — Количество периодов без улучшений, по истечении которых обучение будет прекращено. Значение по умолчанию 5.
  • early_stopping_threshold (float) — Минимальное изменение, которое может считаться улучшением. Значение по умолчанию 0.01.

ObjectDetectionParams - это класс конфигурации для обучающих параметров обнаружения объектов.