От ResNet до фильтра Snapchat…
В этом уроке мы обучим модель машинного обучения и сделаем ее совместимой с Lens Studio.
Чтобы попробовать фильтр:
Шаг 1: Получите набор данных
Мы будем использовать знаменитый набор данных FER под лицензией Open Database(ODbL) и состоящий из 28 709 изображений лиц в оттенках серого размером 48x48 пикселей, помеченных по семи категориям. (0=Злость, 1=Отвращение, 2=Страх, 3=Радость, 4=Грусть, 5=Удивление, 6=Нейтрально)
Вы можете скачать набор данных здесь, построить архитектуру обучающих данных с помощью:
Шаг 2: Обучите модель
Мы используем здесь ResNet-подобную архитектуру:
Результаты тренировочного процесса:
Модель достигает 60% точности с 30 эпохами. Хотя может показаться, что эта оценка не очень высока, модель неплохо справляется с видеоизображениями, снятыми камерой телефона.
Шаг 3: Преобразуйте модель в ONNX
Чтобы сделать модель совместимой с Lens Studio, мы должны преобразовать ее в формат ONNX. Открытый обмен нейронными сетями — это модель машинного обучения, обеспечивающая взаимодействие между несколькими различными платформами.
Вот код для преобразования модели pytorch в ONNX:
Мы изменили первый слой сети, чтобы сделать его совместимым с форматом ввода Snapchat (каждый пиксель имеет значение от 0 до 1).
Шаг 4. Импортируйте модель в Lens Studio.
1. Создайте проект Lens Studio
Файл -> Новый проект
Вот структура проекта, который мы настроим со следующими шагами:
Обязательно создайте его сейчас.
2. Настройте компонент машинного обучения
- Модель: вам необходимо импортировать ранее созданный файл onnx.
- Текстура:«Текстура кадрирования лица», потому что входными данными модели является лицо пользователя.
3. Настройте текстовое поле
- Привязка заголовка: выберите точку, к которой нужно прикрепить текстовое поле.
- Вариант текста: пользовательский стиль текста.
4. Создайте сценарии для обновления текстового поля с прогнозом.
Нам нужно создать два скрипта на панели ресурсов перед ее использованием:
мл-скрипт:
Затем в объекте логики классификации добавьте скрипт:
изменение текстового скрипта:
Затем свяжите его с объектом поведения:
Это оно ! Теперь вы готовы протестировать свой фильтр!