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

OSCHINA-MIRROR/Linzai-Ultra-Light-Fast-Generic-Face-Detector-1MB

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_CN.md 9.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 08:46 4713d07

Ultra-Light-Fast-Generic-Face-Detector-1MB

Лёгкая и быстрая модель детектора лиц размером 1 МБ

Описание модели

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

  • Размер модели: по умолчанию размер файла модели в формате FP32 составляет примерно 1,04–1,1 МБ, а после квантования до int8 — около 300 КБ.
  • Вычислительная сложность: при входном разрешении 320x240 модель имеет вычислительную сложность примерно от 90 до 109 MFlops.
  • Версии модели: модель доступна в двух версиях: version-slim (основная версия с оптимизированной производительностью) и version-RFB (с улучшенной точностью благодаря модифицированному модулю RFB).
  • Поддержка различных разрешений: модель предоставляет предварительно обученные модели для работы с разрешениями 320x240 и 640x480, что делает её подходящей для различных сценариев применения.
  • Поддержка ONNX: модель поддерживает экспорт в формат ONNX.
  • Код для C++ и MNN: предоставляются примеры кода для выполнения вывода с использованием моделей NCNN C++, MNN C++, MNN Python, FP32/INT8 квантованных моделей.
  • Конвертация в другие форматы: доступны конвертированные модели Caffe и код для преобразования из ONNX в Caffe.
  • Примеры кода: предоставляются примеры кода на Python для вывода с использованием Caffe и OpencvDNN.

Тестирование и среда выполнения

Модель была протестирована на следующих операционных системах и средах выполнения:

  • Ubuntu 16.04, Ubuntu 18.04 и Windows 10 (для вывода).
  • Python 3.6.
  • PyTorch 1.2.
  • CUDA 10.0 + CUDNN 7.6.

Сравнение точности, скорости и размера модели

Для сравнения использовались следующие модели:

Модель Easy Set Medium Set Hard Set
libfacedetection v1 (Caffe) 0,65 0,5 0,233
libfacedetection v2 (Caffe) 0,714 0,585 0,306
Retinaface-Mobilenet-0,25 (Mxnet) 0,745 0,553 0,232
version-slim 0,77 0,671 0,395
version-RFB 0,787 0,698 0,438

В таблице представлены результаты тестирования модели на наборе данных WIDER FACE val. Тестирование проводилось для двух разрешений: 320x240 (по умолчанию) и 640x480. Результаты приведены для трёх наборов данных: Easy, Medium и Hard.

Результаты показывают, что модель version-RFB демонстрирует лучшую точность во всех наборах данных.

Также были проведены тесты на скорость вывода на различных устройствах. В таблице приведены результаты тестов на Raspberry Pi 4B с использованием MNN для вывода.

Модель 1 ядро 2 ядра 3 ядра 4 ядра
libfacedetection v1 28 16 12 9,7
Официальная Retinaface-Mobilenet-0,25 (Mxnet) 46 25 18,5 15
Version-slim 29 16 12 9,5
Version-RFB 35 19,6 14,8 11

Эти результаты показывают, что model version-slim и version-RFB имеют хорошую производительность на одноядерных и многоядерных устройствах. ### Модели: сравнение размеров

Модель Размер модели (МБ)
libfacedetection v1 (caffe) 2,58
libfacedetection v2 (caffe) 3,34
Retinaface-Mobilenet-0.25 (Mxnet) официальная версия 1,68
version-slim 1,04
version-RFB 1,11

Генерация VOC формата тренировочных данных и процесс тренировки

  1. Скачайте данные с сайта widerface или используйте предоставленные тренировочные наборы и распакуйте их в папку ./data:

    • Отфильтрованные данные widerface с сайта:
    • Неотфильтрованные данные widerface с сайта:
  2. Если вы скачали отфильтрованный набор данных, то этот шаг можно пропустить. В наборе данных widerface есть много маленьких лиц, которые не подходят для эффективной тренировки модели. Поэтому необходимо отфильтровать лица размером меньше 10x10 пикселей. Запустите файл ./data/wider_face_2_voc_add_landmark.py. После завершения работы программы в папке ./data будет создана папка wider_face_add_lm_10_10.

  3. Теперь у вас есть готовый тренировочный набор данных в формате VOC. В корне проекта есть два скрипта: train-version-slim.sh и train-version-RFB.sh. Первый скрипт используется для тренировки slim версии модели, а второй — для RFB версии. Параметры по умолчанию уже настроены, но вы можете настроить их самостоятельно, обратившись к файлу ./train.py.

  4. Для запуска тренировки выполните команду sh train-version-slim.sh или sh train-version-RFB.sh.

Результаты обнаружения изображений (разрешение 640x480)

В тексте приведены изображения, которые иллюстрируют работу модели.

Примечание

  • Если ваша задача требует близкого расстояния, больших лиц и небольшого количества лиц, рекомендуется использовать разрешение 320 (320x240) для тренировки и предсказания. Вы можете использовать предобученные модели version-slim-320.pth или version-RFB-320.pth.
  • Если задача требует среднего расстояния, средних лиц и большого количества лиц, то рекомендуется использовать разрешение 640 (640x480). Вы можете использовать модели version-slim-640.pth и version-RFB-640.pth для предсказания. Они обеспечивают более низкий уровень ложных срабатываний.
  • Для каждой задачи необходимо найти баланс между скоростью и точностью. Слишком большое разрешение может улучшить обнаружение маленьких лиц, но также увеличит количество ложных срабатываний на больших и близких лицах, что замедлит предсказание. Слишком маленькое разрешение ускорит предсказание, но ухудшит обнаружение маленьких лиц.
  • Рекомендуется использовать одинаковое разрешение для тренировки и предсказания, чтобы достичь оптимального результата. Ультра-Tensorflow-Model-Converter (https://github.com/jason9075/Ultra-Light-Fast-Generic-Face-Detector_Tensorflow-Model-Converter)

— UltraFace TNN C++ Demo (https://github.com/DefTruth/lite.ai.toolkit/blob/main/lite/tnn/cv/tnn_ultraface.cpp)

Reference

— pytorch-ssd (https://github.com/qfgaohao/pytorch-ssd)

— libfacedetection (https://github.com/ShiqiYu/libfacedetection/)

— RFBNet (https://github.com/ruinmessi/RFBNet)

— RFSong-779 (https://github.com/songwsx/RFSong-779)

— Retinaface (https://github.com/deepinsight/insightface/blob/master/RetinaFace/README.md)

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

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

1
https://api.gitlife.ru/oschina-mirror/Linzai-Ultra-Light-Fast-Generic-Face-Detector-1MB.git
git@api.gitlife.ru:oschina-mirror/Linzai-Ultra-Light-Fast-Generic-Face-Detector-1MB.git
oschina-mirror
Linzai-Ultra-Light-Fast-Generic-Face-Detector-1MB
Linzai-Ultra-Light-Fast-Generic-Face-Detector-1MB
master