Реализация Yolov5 на языке Python позволяет обнаруживать голову или шлем в реальных условиях. На Jetson Xavier Nx достигается 33 FPS.
Вы можете посмотреть видео на BILIBILI или YOUTUBE.
Если у вас возникли проблемы с этим проектом, вы можете обратиться к этой статье.
Для того чтобы попробовать обучить собственную модель, перейдите по ссылке yolov5-helmet-detection-python. Следуйте инструкциям в файле readme, чтобы получить свою собственную модель.
Набор данных можно получить по этому адресу aistudio. Проект по обнаружению головы и шлема pdpd версии можно найти по этой ссылке. Это замечательный проект.
Этот проект требует набора данных, подобного следующему:
../datasets/coco128/images/im0.jpg #image
../datasets/coco128/labels/im0.txt #label
Скачайте набор данных и распакуйте его.
unzip annnotations.zip
unzip images.zip
Вы получите следующее:
├── dataset
├── annotations
│ ├── fire_000001.xml
│ ├── fire_000002.xml
│ ├── fire_000003.xml
│ | ...
├── images
│ ├── fire_000001.jpg
│ ├── fire_000003.jpg
│ ├── fire_000003.jpg
│ | ...
├── label_list.txt
├── train.txt
└── valid.txt
Вам следует преобразовать файлы XML в текстовые файлы. Вы также можете ознакомиться с этой информацией.
Откройте script/sw2yolo.py
, измените save_path
на свой собственный путь сохранения, root
— на свой путь к данным, а list_file
— на пути к val_list.txt
и train_list.txt
.
list_file = "./val_list.txt"
xmls_path,imgs_path = get_file_path(list_file)
# 将train_list中的xml 转成 txt, img放到img中
save_path = './data/yolodata/fire/cocolike/val/'
root = "./data/yolodata/fire/"
train_img_root = root
Затем вам понадобится script/yolov5-split-label-img.py
для разделения файлов изображений и текстовых файлов.
mkdir images
mkdir lables
mv ./train/images/* ./images/train
mv ./train/labels/* ./labels/train
mv ./val/iamges/* ./images/val
mv ./val/lables/* ./lables/val
Наконец, вы получите следующее:
├── cocolike
├── lables
│ ├── val
│ ├── fire_000001.xml
| ├── ...
│ ├── train
│ ├── fire_000002.xml
| ├── ...
│
├── images
│ ├── val
│ ├── fire_000001.jpg
| ├── ...
│ ├── train
│ ├── fire_000003.jpg
| ├── ...
├── label_list.txt
├── train.txt
└── valid.txt
В {project}/yolov5/data/
добавьте свои собственные файлы YAML, такие как helmet.yaml
.
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017)
# Example usage: python train.py --data coco128.yaml
# parent
# ├── yolov5
# └── datasets
# └── coco128 downloads here
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: /home/data/tbw_data/face-dataset/yolodata/helmet/cocolike/ # dataset root dir
train: images/train # train images (relative to 'path') 128 images
val: images/val # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes
nc: 2 # number of classes
names: ['head','helmet'] # class names
Измените путь данных в {project}/train.py
на путь к вашему собственному файлу данных YAML.
python train.py
Измените batch-size
на подходящее число. Измените устройство, если у вас есть 2 или более устройств GPU. Затем выполните команду:
python train.py
Используйте detect.py
для тестирования.
python detect.py --source ./data/yolodata/helmet/cocolike/images --weights ./runs/train/exp/weights/best.pt
Результаты в формате PNG будут доступны в папке {project}/runs/detect/
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )