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

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

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

RetinaFace-mnet optimal 1600 single-scale val set составил 0,887 (Easy) / 0,87 (Medium) / 0,791 (Hard).

Скорость логического вывода на терминальном устройстве

  • Raspberry Pi 4B MNN: задержка логического вывода (единица измерения: мс) (ARM/A72x4/1.5GHz/разрешение ввода: 320x240 / квантование int8):
Модель 1 ядро 2 ядра 3 ядра 4 ядра
libfacedetection v1 28 16 12 9,7
Official Retinaface-Mobilenet-0.25 (Mxnet) версия-slim 29 16 12 9,5
версия-RFB 35 19,6 14,8 11
Модель Задержка логического вывода (мс)
slim-320 6,33
RFB-320 7,8
Модель Задержка логического вывода (мс)
slim-320 65,6
RFB-320 164,8

Сравнение размеров моделей

Сравнение нескольких открытых исходных облегчённых моделей обнаружения лиц:

Модель Размер файла модели (МБ)
libfacedetection v1 (caffe) 2,58
libfacedetection v2 (caffe) 3,34
Official Retinaface-Mobilenet-0,25 (Mxnet) 1,68
Версия-slim 1,04
Версия-RFB 1,11

Генерация обучающего набора данных формата VOC и процесс обучения

  1. Загрузите официальный веб-сайт набора данных wideface или загрузите предоставленный мной обучающий набор и распакуйте его в папку ./data: (1) Чистый пакет данных wideface после фильтрации небольших лиц размером 10px * 10px: Baidu cloud disk (код извлечения: cbiu), Google Drive; (2) Полный пакет данных сжатия wideface без фильтрации маленьких лиц: Baidu cloud disk (код извлечения: ievk), Google Drive.

  2. (PS: если вы загрузили отфильтрованные пакеты в (1), вам не нужно выполнять этот шаг) Поскольку в wideface много маленьких и неясных лиц, что не способствует сходимости эффективных моделей, необходимо выполнить фильтрацию для обучения. По умолчанию будут отфильтрованы лица размером менее 10 пикселей на 10 пикселей. Запустите ./data/wider_face_2_voc_add_landmark.py:

python3 ./data/wider_face_2_voc_add_landmark.py

После запуска программы и её завершения в каталоге ./data будет создана папка wider_face_add_lm_10_10. Папка данных и пакет данных (1) после распаковки совпадают. Полная структура каталогов выглядит следующим образом:

data/
retinaface_labels/
test/
train/
val/
wider_face/
WIDER_test/
WIDER_train/
WIDER_val/
wider_face_add_lm_10_10/
Annotations/
ImageSets/
JPEGImages/
wider_face_2_voc_add_landmark.py
  1. На данный момент обучающий набор VOC готов. В корневом каталоге проекта есть два скрипта: train-version-slim.sh и train-version-RFB.sh. Первый используется для обучения модели slim версии, а второй — для обучения модели RFB версии. Параметры по умолчанию уже установлены, если параметры необходимо изменить, обратитесь к описанию каждого параметра обучения в ./train.py.

  2. Запустите train-version-slim.sh или train-version-RFB.sh:

sh train-version-slim.sh или sh train-version-RFB.sh
``` **Обнаружение эффектов изображения (разрешение ввода: 640x480)**

*Изображения не переведены.*

**PS**

- Если фактическая производственная сцена представляет собой среднее расстояние, большое лицо и небольшое количество лиц, рекомендуется использовать разрешение входного размера input_size: 320 (320x240) для обучения и использовать входной размер изображения 320x240, 160x120 или 128x96 для логического вывода, например, используя предоставленную модель предварительного обучения version-slim-320.pth или version-RFB-320.pth.

- Если фактическая производственная сцена является средней или дальней, а также средним или маленьким лицом и большим количеством лиц, рекомендуется принять:
    (1) Оптимальное решение: разрешение входного размера input_size: 640 (640x480) для обучения, и использовать тот же или больший входной размер для логического вывода, например, с использованием предоставленной модели предварительного обучения version-slim-640.pth или version-RFB-640.pth для логического вывода, что снижает ложные срабатывания.
    (2) Субоптимальное решение: разрешение входного размера input_size: 320 (320x240) для обучения, и использование размера входного изображения 480x360 или 640x480 для логического вывода, более чувствительное к маленьким лицам, при этом увеличится количество ложных срабатываний.

- Для каждой сцены наилучшие результаты требуют настройки разрешения ввода для достижения баланса между скоростью и точностью.
- Чрезмерное разрешение ввода улучшит коэффициент отзыва маленьких лиц, но также увеличит коэффициент ложных срабатываний больших и близких лиц, а скорость логического вывода будет увеличиваться экспоненциально.
- Слишком маленькое разрешение ввода значительно ускорит логический вывод, но значительно снизит коэффициент отзыва маленьких лиц.
- Разрешение ввода производственной сцены должно быть как можно более согласованным с разрешением ввода модели обучения, а колебания вверх и вниз не должны быть слишком большими.

**TODO LIST**

- Добавить некоторые тестовые данные.

**Завершённый список**

- Тестовый код Widerface (https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/tree/master/widerface_evaluate).
- Код вывода NCNN C++ (https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/tree/master/ncnn) ([vealocia](https://github.com/vealocia)).
- Код вывода MNN C++ (https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/tree/master/MNN), код вывода MNN Python (https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/tree/master/MNN/python).
- Модель Caffe (https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/tree/master/caffe/model) и код преобразования onnx2caffe (https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/tree/master/caffe).
- Код логического вывода Caffe Python (https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/blob/master/caffe/ultra_face_caffe_inference.py) и код логического вывода OpencvDNN (https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB/blob/master/caffe/ultra_face_opencvdnn_inference.py).

**Проекты, связанные с третьими сторонами**

- Код вывода NNCase C++ (https://github.com/kendryte/nncase/tree/master/examples/fast_facedetect).
- UltraFaceDotNet (C#) (https://github.com/takuya-takeuchi/UltraFaceDotNet).
- faceDetect-ios (https://github.com/Ian778/faceDetect-ios).
- Android-FaceDetection-UltraNet-MNN (https://github.com/jackweiwang/Android-FaceDetection-UltraNet-MNN).
- Ultra-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).

**Ссылка**

- 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 )

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

Введение

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

Обновления

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

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
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