Эти инструкции объясняют, как обучить собственные данные с использованием YOLOv6 (например, для настраиваемого обучения модели YOLOv6-s).
Клонируйте этот репозиторий и следуйте инструкциям в README.md для установки требуемых библиотек в среде Python3.8.
$ git clone https://github.com/meituan/YOLOv6.git
Шаг 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'] # названия классов
Мы используем конфигурационный файл для указания структуры сети и настроек обучения, включая оптимизатор и гиперпараметры аугментации данных.
Если вы создаёте новый конфигурационный файл, пожалуйста, поместите его в директорию 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,
...
)
Одиночный 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
python tools/eval.py --data data/data.yaml --weights output_dir/name/weights/best_ckpt.pt --task val --device 0
python tools/infer.py --weights output_dir/name/weights/best_ckpt.pt --source img.jpg --device 0
Экспорт в формате 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 )