1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors_trending-YOLOv6

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Train_custom_data.md 7.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 23.04.2025 02:07 11beda4

Обучение собственных данных

Эти инструкции объясняют, как обучить собственные данные с использованием YOLOv6 (например, для настраиваемого обучения модели YOLOv6-s).

0. Перед началом

Клонируйте этот репозиторий и следуйте инструкциям в README.md для установки требуемых библиотек в среде Python3.8.

$ git clone https://github.com/meituan/YOLOv6.git

1. Подготовка собственного набора данных

Шаг 1: Подготовьте собственный набор данных с изображениями. Для маркировки изображений вы можете использовать инструменты, такие как Labelme или Roboflow.

Шаг 2: Сгенерируйте файлы меток в формате YOLO.

Один файл меток соответствует одному изображению, и пример формата меток представлен ниже.

# class_id center_x center_y bbox_width bbox_height
0 0.300926 0.617063 0.601852 0.765873
1 0.575 0.319531 0.4 0.551562
  • Каждая строка представляет один объект.
  • Номер класса начинается с 0.
  • Координаты ограничивающего прямоугольника должны быть в нормализованном формате xywh (от 0 до 1). Если ваши ограничивающие прямоугольники указаны в пикселях, разделите center_x и bbox_width на ширину изображения, а center_y и bbox_height — на высоту изображения.

Шаг 3: Организуйте директории.

Организуйте директорию вашего собственного набора данных следующим образом:shell custom_dataset ├── images │   ├── train │   │   ├── train0.jpg │   │   └── train1.jpg │   ├── val │   │   ├── val0.jpg │   │   └── val1.jpg │   └── test │   ├── test0.jpg │   └── test1.jpg └── labels ├── train │   ├── train0.txt │   └── train1.txt ├── val │   ├── val0.txt │   └── val1.txt └── test ├── test0.txt └── test1.txt Шаг 4: Создайте dataset.yaml в $YOLOv6_DIR/data.

# Убедитесь, что ваш custom_dataset находится в той же родительской директории, что и YOLOv6_DIR
train: ../custom_dataset/images/train # изображения для обучения
val: ../custom_dataset/images/val # изображения для проверки
test: ../custom_dataset/images/test # изображения для тестирования (необязательно)

# является ли это набором данных COCO, только для набора данных COCO значение должно быть True.
is_coco: False

# Классы
nc: 20  # количество классов
names: ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor']  # названия классов

2. Создание конфигурационного файла

Мы используем конфигурационный файл для указания структуры сети и настроек обучения, включая оптимизатор и гиперпараметры аугментации данных.

Если вы создаёте новый конфигурационный файл, пожалуйста, поместите его в директорию configs. Или просто используйте предоставленный конфигурационный файл в $YOLOV6_HOME/configs/*_finetune.py. Скачайте предобученную модель, которую вы хотите использовать, здесь.

## Конфигурационный файл модели YOLOv6s
model = dict(
    type='YOLOv6s',
    pretrained='./weights/yolov6s.pt', # скачайте предобученную модель с GitHub YOLOv6, если вы собираетесь использовать её
    depth_multiple = 0.33,
    width_multiple = 0.50,
    ...
)
solver=dict(
    optim='SGD',
    lr_scheduler='Cosine',
    ...
)
```data_aug = dict(
    hsv_h=0.015,
    hsv_s=0.7,
    hsv_v=0.4,
    ...
)

3. Обучение

Одиночный GPU

# Убедитесь, что режим use_dfl включен в конфигурационном файле (use_dfl=True, reg_max=16), если вы хотите провести обучение с самодистилляцией.
python tools/train.py --batch 32 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --fuse_ab --device  YöloV6

Множество GPU (рекомендуется режим DDP)

# Убедитесь, что режим use_dfl включен в конфигурационном файле (use_dfl=True, reg_max=16), если вы хотите провести обучение с самодистилляцией.
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --batch 256 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --fuse_ab --device 0,1,2,3,4,5,6,7

Обучение с самодистилляцией

# Убедитесь, что режим use_dfl включен в конфигурационном файле (use_dfl=True, reg_max=16).
python -m torch.distributed.launch --nproc_per_node 8 tools/train.py --batch 256 --conf configs/yolov6s_finetune.py --data data/dataset.yaml --distill --teacher_model_path your_model_path --device 0,1,2,3,4,5,6,7

4. Оценка

python tools/eval.py --data data/data.yaml --weights output_dir/name/weights/best_ckpt.pt --task val --device 0

5. Вывод

python tools/infer.py --weights output_dir/name/weights/best_ckpt.pt --source img.jpg --device 0

6. Развертывание

Экспорт в формате ONNX

# Без операции NMS, чистая модель.
python deploy/ONNX/export_onnx.py --weights output_dir/name/weights/best_ckpt.pt --simplify --device 0
# Если вы хотите запустить с ONNX-Runtime (NMS встроен).
python deploy/ONNX/export_onnx.py --weights output_dir/name/weights/best_ckpt.pt --simplify --device 0 --dynamic-batch --end2end --ort
# Если вы хотите запустить с TensorRT (NMS встроен).
python deploy/ONNX/export_onnx.py --weights output_dir/name/weights/best_ckpt.pt --simplify --device 0 --dynamic-batch --end2end

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors_trending-YOLOv6.git
git@api.gitlife.ru:oschina-mirror/mirrors_trending-YOLOv6.git
oschina-mirror
mirrors_trending-YOLOv6
mirrors_trending-YOLOv6
main