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

OSCHINA-MIRROR/CV_Lab-face-labeling

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Основываясь на YOLOv5: интеллектуальный инструмент для автоматической маркировки данных лиц

Реализован инструмент для автоматической маркировки данных лиц, основанный на YOLOv5.

  • Можно настроить модель обнаружения лиц.
  • Экспорт меток в различных форматах, включая PASCAL VOC XML, MS COCO JSON и YOLO TXT.

Информация о проекте

  • CodeCheck: успешно проходит проверку.
  • Версия: 0.2.2 (выпуски).
  • YOLOv5 версия: v7.0.
  • PASCAL VOC: формат XML.
  • MS COCO: формат JSON.
  • YOLO: формат TXT.
  • Лицензия: GPLv3.

Проверка кода

Используется pre-commit для проверки кода.

Python: версия 3.8+.

Количество звёзд проекта на GitHub: [значение].

Количество вилок проекта на GitHub: [значение].

Автор

Цзэн Ифу — исследователь и разработчик в области искусственного интеллекта. Специализируется на компьютерном зрении. Внёс вклад в проекты YOLOv8, YOLOv5, Gradio. 2022-07-20 ⚡ [Face Labeling v0.2.2 выпущена]

  • 2022-06-12 ⚡ [Face Labeling v0.2 выпущена]
  • 2022-04-25 ⚡ [Face Labeling v0.1 выпущена]

💎 Проектный процесс и использование

📌 Общий проектный процесс и расширение применения

📌 Функциональная структура проекта и информационный поток

💡 Структура проекта

.
├── 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                    # Зависимости скриптов

🔥 Инструкция по установке

✅ Шаг 1: Установка Face Labeling

📌 Создание среды conda

conda create -n facelabel python==3.8
conda activate facelabel # Вход в среду

📌 Клонирование

git clone https://gitee.com/CV_Lab/face-labeling.git

✅ Шаг 2: Установка зависимостей Face Labeling

cd ./face-labeling
conda activate facelabel # Войти в среду
pip install -r requirements.txt -U

📌 Поместите файлы модели лица (*.pt) в каталог моделей

❗ Обратите внимание: YOLOv5 по умолчанию использует pip для установки версии PyTorch для GPU, если вы используете установку PyTorch с официального сайта, см. Руководство по установке YOLOv5 PyTorch GPU

✅ Построение модели обнаружения лица на основе YOLOv5

📌 Модель обнаружения лиц 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

💡 Настройка модели лица

# По умолчанию используется 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 # Отображение только достоверности (%) метки
Результаты обнаружения widerface-m (отображается только ID)
Результаты обнаружения widerface-m (отображается только достоверность)

💡 Установка индикатора выполнения метки

python face_labeling.py -lpb bar
Результаты обнаружения widerface-m (отображается индикатор выполнения)

💡 Отключение метки обнаружения

python face_labeling.py -lds # Пример использования для реального времени
Результаты обнаружения widerface-m (без отображения метки)

💡 Пользовательское имя каталога сохранения

# По умолчанию используется FaceFrame
python face_labeling.py -fsd face_dir # Пример использования для реального времени

💡 Пользовательское имя подкаталога сохранения

# По умолчанию используется frame
python face_labeling.py -fdn face_subDir # Пример использования для реального времени

💡 Пользовательское префикс изображения

# По умолчанию используется face_test
python face_labeling.py -in face # Пример использования для реального времени

💬 Техническое общение

  • Если вы обнаружите какие-либо проблемы или предложения в Face Labeling, пожалуйста, отправьте их через Gitee Issues.
  • Добро пожаловать в группу технического общения CV Lab.

Комментарии ( 0 )

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

Введение

Описание недоступно Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/CV_Lab-face-labeling.git
git@api.gitlife.ru:oschina-mirror/CV_Lab-face-labeling.git
oschina-mirror
CV_Lab-face-labeling
CV_Lab-face-labeling
master