Когнитивные сервисы и искусственный интеллект: как сделан Microsoft Pix

2016-09-06

Мы попросили представителей департамента стратегических технологий «Microsoft Россия» рассказать о том, как устроено новое приложение Pix и какие сервисы использовались при его создании.

Профессиональные фотографы знакомы с тем чувством, когда делаешь миллион кадров в ожидании идеального, когда необходимо поймать момент, потому что через доли секунд кадр будет уже совсем не тот. Все мы знакомы с чувством, когда хочется ощутить себя профессиональным фотографом и получить уникальный, невероятно красивый снимок с помощью смартфона, который всегда под рукой, но у которого намного меньше возможностей, в сравнении спрофессиональным фотоаппаратом. Научно-исследовательская команда Microsoft предложила решение этой проблемы и разработала Microsoft Pix — приложение для iPhone, предназначенное для настройки параметров съемки фотографий (ISO, экспозиция, фокус) с применением технологий искусственного интеллекта. В этом материале мы посмотрим на него с двух сторон: пользователя и разработчика.

Как это работает с точки зрения пользователя?

С точки зрения пользователя, Microsoft Pix — крайне простое приложение, которое не требует дополнительных действий. Необходимо просто сделать фотографию, вся остальная «магия» будет происходить внутри приложения.

Как возникают идеи создания таких приложений? Они рождаются из решения задач, призванных улучшить нашу жизнь. Джош Вайсберг, ведущий менеджер Computational Photography Group в исследовательском подразделении Microsoft Research, рассказал, что для него стимулом создать это приложение стало недовольство жены качеством фотографий их детей, снятых на телефон.

В приложении вы найдете несколько интересных возможностей, например: автоматическая стабилизация изображения, синхронизация с галереей, функция определения «открыты или закрыты глаза» и так далее. В него также встроены наборы фильтров и инструменты для редактирования фотографии, при этом все изменения запоминаются и всегда можно вернуть снимок к изначальному виду. С помощью Microsoft Pix можно снимать как фото, так и видео.

Принцип работы Microsoft Pix достаточно прост — приложение создает серию из десяти снимков, после чего, с помощью технологий искусственного интеллекта выбирает лучшие фотографии (до трех штук). Перед тем, как все «неудачные» кадры будут удалены, приложение, используя данные всех снимков из серии, устраняет шумы, подбирает оптимальное освещение и тона. Весь процесс занимает не более 1 секунды. Во время изменения внешних параметров снимка с помощью набора алгоритмов определяется, было ли в процессе съемки движение, которое можно преобразовать в анимацию и получить «живое фото».

Как это работает с точки зрения разработчика?

С точки зрения разработчика, Microsoft Pix — приложение, которое реализовано с помощью уже существующих инструментов и их доработки. Ниже предлагаем рассмотреть подробнее алгоритмы, технологии и сервисы использованные в разработке приложения. Краткое описание трех самых интересных:

  1. Алгоритм распознавания черт лица реализован с помощью когнитивных сервисов Microsoft. Microsoft Cognitive Services представляют собой набор интеллектуальных программных API-интерфейсов, работающих в облаке и позволяющих распознавать и интерпретировать запросы, переданные посредством привычных способов коммуникации. Например, в данном приложении был использован Face API, который распознает на изображениях лица по лицевым прямоугольникам и лицевым атрибутам, включая внешние признаки и позу. Также был использован Emotion API, который распознает эмоции человека с помощью алгоритмов искусственного интеллекта, работающих на основе мимических шаблонов. В данном приложении функциональность этих API была сокращена, т.к. для его реализации не необходимо распознавать только частичные эмоции и мимику лица: открыты или закрыта глаза, улыбается ли человек и прочее. Microsoft Cognitive Services можно воспользоваться совершенно бесплатно. Ограничения для Free-версии составляют 30,000 транзакций в месяц.
  2. Алгоритм устранения эффекта «дрожащих рук» реализован еще в 2012 году в виде отдельного приложения Cliplets для бесшовной циклической анимации, которое, к слову, абсолютно бесплатно. С помощью него была решена одна из самых частых проблем GIF-анимаций — слишком заметный переход от конца видеоролика к началу. Программа изолирует все движущиеся в кадре объекты и определяет скорость их движения, после чего оптимизирует движение всех элементов, чтобы движения в начале и в конце видео совпадали. Иначе говоря, одни объекты немного замедляются, другие немного ускоряются. В приложении Microsoft Pix были использованы алгоритмы Clipets, которые призваны стать заменой штативу. Если вам интересно реализовать подобный функционал, подробнее об алгоритмах можно прочитать в научной работе «Automated Video Looping with Progressive Dynamism».
  3. Алгоритм автоматизации зацикливания видео, или создания «живой фотографии», упоминается в научной работе, но в своем изначальном варианте он был крайне медленным. Для того, чтобы его можно было использовать в Microsoft Pix, были разработаны классификаторы, с помощью которых выборочно определяется элемент для зацикливания анимации. Сейчас этот процесс занимает не более 50 миллисекунд, а обработка изображения — не более 2 секунд (во время щелчка затвора).

Используя алгоритмы и облачные технологии, описанные выше, вы можете сами разработать подобное приложение. Кстати, приложение Microsoft Pix, является частью еще одного приложения, разработанного Джошем Вайсбергом с командой Microsoft — Microsoft Hyperlapse для iOS. Но это уже совсем другая история.

Источник