Компания Google создала браузерную версию фреймворка MediaPipe, позволяющего создавать и выполнять модульные алгоритмы машинного обучения, сообщается в блоге Google Developers. Разработчики создали сайт, на котором можно опробовать несколько базовых алгоритмов компьютерного зрения.
За последнее десятилетие исследователи в области машинного обучения достигли огромного прогресса в этой области и их алгоритмы стали все чаще применяться на практике. Однако до сих пор распространение алгоритмов машинного обучение во многом сдерживается техническими проблемами, связанными с их применением. Одна из ключевых проблем заключается в том, что многие алгоритмы, в том числе алгоритмы компьютерного зрения, требуют слишком больших ресурсов для работы в реальном времени на смартфонах и обычных компьютерах. Кроме того, как в других областях программирования, перед разработчиками встает вопрос переносимости их программ, повторного использования открытого кода и быстрого развертывания.
В 2019 году разработчики из Google создали фреймворк MediaPipe, который во многом решает эти проблемы. В нем разработчик может брать уже написанные другими программистами базовые алгоритмы компьютерного зрения и простым образом объединять их в нужный ему конвейер. Кроме того, фреймворк изначально создавался с расчетом на то, что программы должны без проблем развертываться на все основные платформы, без необходимости в адаптации под каждую из них в отдельности.
Авторы постарались оптимизировать код для работы на обычных пользовательских устройствах. В качестве примера они ранее показали демо-версию приложения для смартфонов, которое в реальном времени создает модель руки, что может пригодиться для качественного распознавания жестов пальцами с помощью камеры.
Теперь разработчики MediaPipe создали браузерную версию фреймворка, позволяющую запускать почти на любой платформе без необходимости в установке приложения. Эта версия основана на WebAssembly, который позволяет компилировать исходный код на C++ в низкоуровневый код, выполняемый в виртуальной машине в браузере. Это позволяет сделать код платформонезависимым, а также выполнять его намного быстрее, чем JavaScript.
Разработчики также создали веб-визуализатор, который позволяет в реальном времени править код и выполнять его прямо в браузере. В качестве примера в нем содержится несколько готовых алгоритмов, которые достаточно быстро работают на смартфоне и компьютере средней мощности. Например, там содержатся алгоритмы для сегментации волос, отслеживания лиц и другие. Поскольку после загрузки моделей все вычисления происходят локально, данные камеры не покидают устройство.
Помимо подобных «сырых» алгоритмов, существуют и вполне практичные алгоритмы, которые можно использовать на смартфонах в реальной жизни. Например, недавно Samsung представила алгоритм, позволяющий печатать на плоской поверхности перед смартфоном, который с помощью камеры распознает эти касания и превращает в текст. Кроме того, резкий прогресс в качестве фотографий на смартфон во многом связан именно с алгоритмами машинного обучения. Подробнее, о работе камер современных смартфонах можно узнать из нашего материала «Зрячая математика».
Григорий Копиев