Руководство основателя:

Как достичь точности более 90% с помощью двойного детектора лица (DSFD) в WSL2

Краткое руководство с инструкциями и скриншотами

Эта статья также написана для Windows и Mac.

Задний план:

Dual Shot Face Detector (DSFD) - это алгоритм обнаружения лиц с открытым исходным кодом, который обеспечивает более высокую точность по сравнению с каскадом Хаара, Dlib, MTCNN и DNN. Он обращается к трем ключевым областям обнаружения лиц, которые включают изучение функций, проектирование прогрессивных потерь и увеличение данных на основе привязки. Он также занял 1-е место в тесте WIDER FACE Face Detection Benchmark.

Сводка производительности:

Контрольная оценка проверяла каждую систему обнаружения на среднюю среднюю точность (MAP). В нем использовались лица, которые чрезвычайно трудно обнаружить из-за больших различий в масштабе, окклюзии, позе и беспорядке на фоне. Он также разделил набор данных на три отдельные категории в зависимости от уровня сложности.

Оценки проверки:

  • 96,6% (mAP) на легком уровне сложности
  • 95,7% (mAP) на среднем уровне сложности
  • 90,4% (карта) на тяжелом уровне сложности

Результаты тестов:

  • 96,0% (карта) на легком уровне сложности
  • 95,3% (mAP) на среднем уровне сложности
  • 90,0% (карта) на тяжелом уровне сложности

Откройте PowerShell:

  1. Нажмите «⊞ Windows».
  2. Введите «PowerShell» в строку поиска.
  3. Щелкните правой кнопкой мыши «Windows PowerShell».
  4. Нажмите «Запуск от имени администратора».

Откройте WSL2:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
wsl

Установите переменную имени пользователя:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
username=$(wslvar USERNAME)

Откройте каталог рабочего стола:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите «Возврат».
cd /mnt/c/users/$username/desktop/

Клонировать репозиторий:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
git clone https://github.com/Tencent/FaceDetection-DSFD

Откройте каталог FaceDetection-DSFD:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
cd FaceDetection-DSFD

Загрузите требование Python:

  1. Прочтите статью ниже этих инструкций
  2. Следуйте инструкциям в предоставленной статье.
  3. Установите Python 3.6 из исходного кода
How to Install Python From Source Code in WSL2

рис

Создайте виртуальную среду:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
python3.6 -m venv venv36

Активируйте виртуальную среду:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
source venv36/bin/activate

Установите требование к горелке:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
pip install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-linux_x86_64.whl

Установите требование TorchVision:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
pip install https://files.pythonhosted.org/packages/ca/0d/f00b2885711e08bd71242ebe7b96561e6f6d01fdb4b9dcf4d37e2e13c5e1/torchvision-0.2.1-py2.py3-none-any.whl

Установите другие требования:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
pip install matplotlib opencv-python scipy

Создайте каталог Eval_Tools:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
mkdir eval_tools

Скачать модель:

  1. Посетите DSFD Google Диск
  2. Нажмите кнопку «Загрузить».
  3. Нажмите кнопку «Все равно загрузить».

Создайте каталог весов:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
mkdir weights

Переместите файл модели:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
mv /mnt/c/users/$username/downloads/WIDERFace_DSFD_RES152.pth /mnt/c/users/$username/desktop/FaceDetection-DSFD/weights/WIDERFace_DSFD_RES152.pth

Скачать аннотации:

  1. Посетите официальный сайт WIDER FACE
  2. Прокрутите до раздела «Скачать».
  3. Нажмите «Аннотации к лицам».

Переместите файл аннотаций:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
mv /mnt/c/users/$username/downloads/wider_face_split.zip /mnt/c/users/$username/desktop/FaceDetection-DSFD/data/wider_face_split.zip

Установите Unzip:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
sudo apt install unzip

Разархивируйте файл аннотаций:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
unzip data/wider_face_split.zip -d data

Исправьте ошибки:

Следующие решения были собраны вместе путем чтения открытых и закрытых проблем в репозитории DSFD на GitHub и дословного поиска сообщений об ошибках в Google. Сообщения на разных языках читались с помощью Google Translate. Номера строк были включены в качестве приблизительных оценок.

Ошибка №1:

UserWarning: volatile был удален и теперь не действует. Используйте вместо torch.no_grad (): `

Ошибка # 2

RuntimeError: CUDA не хватает памяти. Пытался выделить 44,25 МБ (GPU 0; общая емкость 11,00 ГиБ; 9,56 ГБ уже выделено; 10,25 МБ свободно; 49,26 МБ кэшировано)

Ошибка № 3:

FileNotFoundError: [Errno 2] Нет такого файла или каталога: ‘/data2/lijian/widerface/data/wider_face_split\\wider_face_val.mat’

Ошибка №4:

ImportError: невозможно импортировать имя «pa_sfd_match»

Ошибка № 5:

TypeError: mul (): аргумент «другой» (позиция 1) должен быть Tensor, а не numpy.ndarray

Ошибка №6:

demo.py: ошибка: нераспознанные аргументы: - img_root ./data/worlds-largest-selfie.jpg

Ошибка № 7:

UserWarning: Поведение повышающей дискретизации по умолчанию, когда mode = bilinear изменено на align_corners = False, начиная с 0.4.0. Укажите align_corners = True, если желательно прежнее поведение. Подробности см. В документации nn.Upsample.
«Подробности см. В документации nn.Upsample.». Format (mode))

Следующие два шага необходимы только на компьютерах без графического процессора - только на центральном процессоре.

Ошибка № 8:

RuntimeError: попытка десериализации объекта на устройстве CUDA, но torch.cuda.is_available () имеет значение False. Если вы работаете на машине с центральным процессором, используйте torch.load с map_location = ’cpu’ для сопоставления ваших хранилищ с процессором.

Ошибка № 9:

AssertionError: Torch не скомпилирован с включенным CUDA.

Параметры командной строки:

  • save_folder - это место, где хранится выходное изображение.
  • image_root - это место, где хранится входное изображение.
  • visual_threshold - порог, используемый для обнаружения лиц.

Протестируйте демонстрацию:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
python demo.py --img_root ./data/worlds-largest-selfie.jpg --visual_threshold 0.7

Деактивировать виртуальную среду:

  1. Скопируйте команду ниже этих инструкций
  2. Вставьте команду в PowerShell
  3. Нажмите Ввод"
deactivate

Что дальше:

Эта статья является частью мини-серии, которая помогает читателям настроить все необходимое, чтобы начать использовать WSL2 для искусственного интеллекта, машинного обучения, глубокого обучения или анализа данных. Он включает статьи, содержащие инструкции с кодом копирования и вставки, а также снимки экрана, которые помогают читателям получить результат как можно скорее. Он также включает статьи, содержащие инструкции с пояснениями и снимками экрана, которые помогают читателям понять, что происходит.

01. Install Windows Subsystem for Linux 2 (WSL2)
02. Install the NVIDIA CUDA Driver and Toolkit in WSL2
03. Install Software From Source Code in WSL2
04. Install the Jupyter Notebook Home and Public Server in WSL2
05. Install Virtual Environments in Jupyter Notebook in WSL2
06. Install Programs With a Graphical User Interface in WSL2
07. Install Ubuntu Desktop With a Graphical User Interface in WSL2

Надеюсь, эта статья помогла всем получить приз. Если вы хотите помочь, удерживайте «👋» и нажмите «Подписаться», чтобы получить больше информации. Спасибо за внимание!