Сегментация человека
Определение человека на фото

Нейросеть, которая сегментирует кадры мобильного видео и «ищет»
на них человека

Приложение

Основная информация

Клиент
Разработчик популярного мобильного приложения для художественной обработки фото и видео.
Задача
Создать инструмент, который будет сегментировать кадры видеопотока и выделять силуэт человека.
Сервис должен запускаться на смартфонах.
Применение
Пользователь приложения сможет менять фон, как
в Zoom, или «надевать» маску.
Входит в топ-10 App Store
в категории «Фото и видео»
Решение
Три нейросетевых модели для широкого диапазона мобильных устройств. Они работают с разной скоростью и точностью.

Проблемы, с которыми мы столкнулись

Проблема
В нашей команде не было ни одного мобильного разработчика.
Решение
Мы подобрали специалистов, которые хорошо разбираются и в мобильной разработке, и в машинном обучении.
Проблема
Сервис должен был работать на разных смартфонах, включая «медленные».
Решение
Мы разработали три модели. Первую - для «медленных» смартфонов, вторую - для мощных флагманов и третью, оптимальную, - для основной группы устройств.

Этапы разработки

Изучили материалы
и инструменты
для разработки
Подобрали библиотеку видео
и изображений
Обучили нейросеть «видеть» человека
в кадре и очерчивать
его контур
На фото
На видео
Человек на лошади
Сегментация человека на лошади
Скейтбордист
Сегментация скейтбордиста
Сегментация человека в лодке
Человек в лодке
Группа человек
Сегментация группы людей
Сегментация человека на видео
Адаптировали
сервис к запуску
на мобильных устройствах
Результаты
Исходное
изображение
Идеальная маска
Нейросеть очертила контур согласно вероятности,
что пиксели относятся
к фигуре человека.
Итоговый контур. Нейросеть очертила его, предсказав положение человека в кадре.
Image
GT Mask
Predicted Probs
Predicted Mask
Изображение людей
GT Mask людей
Predicted Probs людей
Predicted Mask людей
Протестировали нейросеть и передали клиенту
Тестирование нейросети
Пример тестирования модели на смартфоне Huawei P20 LTE

Инструменты

Vision Hub

Хостинговая платформа для моделей компьютерного зрения. Модели запускаются на наших серверах и встраиваются
в сторонние сервисы через REST API.
Платформа Vision Hub

Команда проекта

Константин Кубрак
Менеджер проекта
Владислав Виноградов
Технический директор
Александр Гращенков
iOS-разработчик
Вячеслав Шульц
Сomputer vision engineer
Дмитрий Гордин
Android-разработчик

Между прочим

Это был наш первый опыт адаптации нейросетей
для запуска на мобильных устройствах.
Мы передали клиенту разработку и научили его воспроизводить эффект на своей платформе.

Итоги

Этот проект оказался сложнее, чем мы думали. Благодаря ему мы начали проводить аудит
и консалтинг в области машинного обучения.
Полученный опыт очень пригодился в другом проекте - когда мы разрабатывали приложение для снятия показаний счётчиков.

Планы

Сделать модель кросс‑платформенной - чтобы она запускалась на любых устройствах, а также в облаке.
Объединить модель сегментации с моделью воспроизведения глубины кадра. Это повысит точность сегментации.
Напишите нам