Основываясь на YOLOv5: интеллектуальный инструмент для автоматической маркировки данных лиц
Реализован инструмент для автоматической маркировки данных лиц, основанный на YOLOv5.
Информация о проекте
Проверка кода
Используется pre-commit для проверки кода.
Python: версия 3.8+.
Количество звёзд проекта на GitHub: [значение].
Количество вилок проекта на GitHub: [значение].
Автор
Цзэн Ифу — исследователь и разработчик в области искусственного интеллекта. Специализируется на компьютерном зрении. Внёс вклад в проекты YOLOv8, YOLOv5, Gradio. 2022-07-20 ⚡ [Face Labeling v0.2.2 выпущена]
.
├── face-labeling # Название проекта
│ ├── util # Пакет инструментов
│ │ ├── voc_xml.py # PASCAL VOC XML
│ │ ├── coco_json.py # MS COCO JSON
│ │ ├── yolo_txt.py # YOLO TXT
│ │ ├── model_opt.py # Управление моделью
│ │ ├── obj_opt.py # Управление целями
│ │ ├── path_opt.py # Управление путями
│ │ ├── log.py # Управление журналом
│ │ └── time_format.py # Формат даты
│ ├── data # Тестовые данные
│ │ └── imgs # Тестовые изображения, полученные из WIDER FACE Test
│ ├── models # Модель Hub
│ │ ├── readme.md # README модели Hub
│ │ ├── *.pt # Модели PyTorch
│ │ └── *.onnx # Модели ONNX
│ ├── face_labeling.py # Основной файл запуска
│ ├── LICENSE # Лицензия проекта
│ ├── CodeCheck.md # Проверка кода
│ ├── .gitignore # Файл игнорирования git
│ ├── yolov5_widerface.md # Построение модели обнаружения лиц на основе YOLOv5
│ ├── yolov5_pytorch_gpu.md # Руководство по установке YOLOv5 PyTorch GPU
│ ├── README.md # Описание проекта
│ └── requirements.txt # Зависимости скриптов
📌 Создание среды conda
conda create -n facelabel python==3.8
conda activate facelabel # Вход в среду
📌 Клонирование
git clone https://gitee.com/CV_Lab/face-labeling.git
cd ./face-labeling
conda activate facelabel # Войти в среду
pip install -r requirements.txt -U
📌 Поместите файлы модели лица (*.pt) в каталог моделей
❗ Обратите внимание: YOLOv5 по умолчанию использует pip для установки версии PyTorch для GPU, если вы используете установку PyTorch с официального сайта, см. Руководство по установке YOLOv5 PyTorch GPU
📌 Модель обнаружения лиц widerface-m была обучена на наборе данных WIDER FACE на основе YOLOv5 v6.1, подробности процесса обучения см. в yolov5_widerface.md.
📌 Модель обнаружения лиц darkface-m была обучена на наборе данных DARK FACE на основе YOLOv5 v6.1, подробности процесса обучения см. в yolov5_darkface.md.
❤️ Этот проект предоставляет следующие модели обнаружения лиц:
Название модели | Адрес загрузки | Размер модели | Диапазон использования | Подходит для оборудования |
---|---|---|---|---|
widerface-m | Baidu Cloud, код извлечения: 5gfs | 42,1 МБ | В реальном времени, изображения, видео | GPU |
darkface-m | Baidu Cloud, код извлечения: mm2k | 42,2 МБ | В реальном времени, изображения, видео | GPU |
# a для захвата кадров видео, q для выхода
python face_labeling.py
python face_labeling.py -m img # Каталог тестовых изображений по умолчанию data/imgs
python face_labeling.py -m img -imd ./img_dir # Укажите каталог изображений
❗ Примечание: этот проект поддерживает входные форматы изображений: jpg | jpeg | png | bmp | tif | webp
python face_labeling.py -m video # Каталог тестового видео по умолчанию data/videos
python face_labeling.py -m video -vd ./video_dir # Укажите каталог видео
❗ Примечание: этот проект поддерживает следующие форматы входных видеофайлов: mp4 | avi | wmv | mkv | mov | gif | vob | swf | mpg | flv | 3gp | 3g2
❗ Объяснение: три вышеуказанных режима обнаружения будут генерировать каталог FaceFrame в корневом каталоге проекта, а каталог будет генерировать подкаталог frame*, структура подкаталога следующая:
# Обнаружение с помощью веб-камеры и маркировка изображений
.
├── FaceFrame # Каталог сохранения данных лиц
│ ├── frame
``` **Перевод текста на русский язык:**
# Подкаталоги
│ │ ├── raw # Исходное изображение
│ │ ├── tag # Помеченное изображение (включая: рамка обнаружения лица, ID лица, достоверность, идентификатор кадра, FPS, общее количество лиц, количество размеров лица (малый, средний, большой))
│ │ └── voc_xml # PASCAL VOC XML файл разметки
│ │ coco_json # MS COCO JSON файл разметки
│ │ yolo_txt # YOLO TXT файл разметки
├── frame2 # Подкаталог
│ ├── raw # Исходное изображение
│ └── ......
# Каталог с видеоразметкой
.
├── FaceFrame # Каталог сохранения данных лиц
│ ├── frame # Подкаталог
│ │ ├── video_name01 # Подвидеокаталог
│ │ │ ├── raw # Исходное изображение
│ │ │ ├── tag # Помеченное изображение (включая: рамку обнаружения лица, ID лица, достоверность, идентификатор кадра, FPS, общее количество лиц, количество размеров лица (малый, средний, большой))
│ │ │ ├── voc_xml # PASCAL VOC XML файл разметки
│ │ │ ├── coco_json # MS COCO JSON файл разметки
│ │ │ ├── yolo_txt # YOLO TXT файл разметки
│ │ ├── video_name02 # Подвидеокаталог
│ │ │ ├── raw # Исходное изображение
│ │ │ ├── ......
❗ Просмотр результатов обнаружения: результаты обнаружения лиц будут сохранены в FaceFrame/frame*/tag
, например, для запуска проекта с использованием встроенного детектора изображений python face_labeling.py -m img
результат будет следующим:
# По умолчанию используется widerface-m
python face_labeling.py -mn face_model # Пример использования для реального времени
python face_labeling.py -mn darkface-m # Пример использования для реального времени, darkface-m.pt
# По умолчанию используется «лицо», пример использования для распознавания масок
python face_labeling.py -cls mask # Класс маски
python face_labeling.py -cls without-mask # Класс без маски
# Можно настроить параметры в соответствии с выбранной моделью лица для выполнения соответствующей настройки, пример использования для реального времени:
# Выбор устройства, по умолчанию используется cuda:0
python face_labeling.py
python face_ling.py -dev 0 # cuda:0 версия
python face_ling.py -dev cpu # версия cpu
# Пороговое значение достоверности NMS, по умолчанию 0,5
python face_labeling.py -conf 0.8
# Пороговое значение IoU NMS, по умолчанию 0,45
python face_labeling.py -iou 0.5
# Максимальное количество целей обнаружения для одной картинки, по умолчанию 1000
python face_labeling.py -mdn 10
# Вышеуказанные параметры также могут использоваться одновременно, например:
python face_labeling.py -conf 0.8 -iou 0.5
python face_labeling.py -conf 0.8 -iou 0.5 -mdn 10
# Размер вывода модели
python face_labeling.py -isz 320
# Принудительно перезагрузить YOLOv5
python face_labeling.py -ry
# Пример использования для реального времени
python face_labeling.py -ls id # Отображение только ID метки
python face_labeling.py -ls conf # Отображение только достоверности (%) метки
python face_labeling.py -lpb bar
python face_labeling.py -lds # Пример использования для реального времени
# По умолчанию используется FaceFrame
python face_labeling.py -fsd face_dir # Пример использования для реального времени
# По умолчанию используется frame
python face_labeling.py -fdn face_subDir # Пример использования для реального времени
# По умолчанию используется face_test
python face_labeling.py -in face # Пример использования для реального времени
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )