fbpx
  • VSCO использует машинное обучение для рекомендации фильтров

    VSCO — одно из наиболее популярных мобильных приложений для обработки фото. Приложение помогает выбирать подходящие фильтры к фотографии с помощью сверточных нейросетей.

    Разработчики используют машинное обучения для рекомендации пресетов. Пресеты представляют собой настроенные наборы с фильтрами. Всего пресетов в приложении 160. Это наглядный кейс коммерческого масштабируемого использования глубокого обучения.

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

    Видеодемонстрация работы функционала доступна ниже.

    Пользователю рекомендация показывается в поле “For This Photo”. Как только пользователь загружает фотографию и начинает ее редактировать в приложении, изображение идет на вход модели. В свою очередь, модель выдает рекомендуемый пресет. Разработчики говорят, что функционал с рекомендацией второй по популярности после функции “All”, которая показывает все пресеты.

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

    Машинное обучение в смартфоне

    Изначально команда не рассматривала возможность держать модель на сервере для рекомендации. На это были три причины, которые необходимо было учитывать: 

    • Офлайн обработка изображений, чтобы не ограничивать пользователей без доступа в интернет;
    • Cкорость: при хорошей скорости интернета вариант с облачным машинным обучением работал бы долго, учитывая все этапы обучения, а при низкой скорости — работал бы еще дольше, что нежелательно;
    •  Приватность данных, чтобы не хранить фотографии пользователей в облаке на время обучения

    Что внутри модели

    Разработчики использовали ML Kit от TensorFlow и TensorFlow Lite. Архитектура CNN, которая использовалась, основывалась на SqueezeNet. Эта архитектура была выбрана из-за своей компактности, которая несильно влияет на точность предсказаний.