Компания Google представила экспериментальный сервис Move Mirror, позволяющий увидеть свое «отражение» на снимках других людей. Он использует видео с веб-камеры ноутбука для распознавания позы пользователя, ищет людей в такой же позе в базе данных, состоящей из 80 тысяч фотографий, и создает совместную GIF-анимацию из этих данных, рассказывают разработчики в блоге TensorFlow.
Раньше для автоматизированного определения позы человека и положения его конечностей необходимо было использовать большое количество датчиков, предварительно закрепленных в определенных точках тела, либо визуальные маркеры, положение которых отслеживает одна или несколько камер. В последние годы разработчикам систем компьютерного зрения удалось довести точность своих алгоритмов до сравнимого уровня, но при этом они не требуют дополнительных приспособлений и работают с обычными видеозаписями людей. Эти алгоритмы обучают на больших датасетах, состоящих из изображений людей в разных позах и сопоставленных каждому изображению наборов точек, отражающих положение кистей рук, локтей и других частей тела. В результате алгоритм учится определять зависимость между получаемым изображением и позой человека на нем, и в дальнейшем может самостоятельно создать для входного изображения карту точек.
Почти всегда эти алгоритмы применяют для серьезных исследовательских задач, таких как автоматическое определение насильственных действий в толпе, но разработчики из Google создали простой сервис, наглядно показывающий работу такого алгоритма в развлекательной форме. Они описывают сервис как аналог зеркала, позволяющий в реальном времени видеть не только самого себя, но и других людей в такой же позе.
В основе сервиса лежат два алгоритма, один из которых распознает позу человека и составляет упрощенную модель его скелета, а второй ищет максимально похожую позу на множестве других снимков. За распознавание позы отвечает открытый алгоритм PoseNet, разработанный ранее специалистами из Google. Одна из его особенностей заключается в том, что он использует библиотеку TensorFlow.js, благодаря чему пользователю не нужно устанавливать на компьютер дополнительные программы, поскольку все вычисления производятся через браузер на компьютере пользователя. Для нормальной работы сервиса нужна современная видеокарта, иначе сервис будет обрабатывать всего несколько кадров в секунду.
Второй алгоритм принимает созданную модель тела пользователя и ищет максимально похожую модель в наборе фотографий других людей. Разработчики создали из множества видеозаписей 80 тысяч снимков и с помощью того же алгоритма PoseNet разметили на каждом снимке модель тела человека. Для того, чтобы поиск совпадений по такому количеству снимков был быстрым, разработчики использовали VP-дерево. В результате на достаточно мощном компьютере поиск людей в похожих позах происходит за десятки миллисекунд, благодаря чему отображение похожих фотографий в сервисе происходит в реальном времени. Результат работы сервиса можно записать в виде GIF-анимации и загрузить к себе на компьютер.
Разработчики из Google не первый раз используют алгоритмы машинного обучения для создания необычных визуальных экспериментов. Например, в 2016 году они представили сервис Land Lines. В нем пользователь рисует линию, после чего сервис находит объект похожей формы на спутниковых снимках, например, извилистый берег или дорожную развязку.
Григорий Копиев