Бесмаркерный компьютерный трекинг от SketchAR — самое мощное CV-решение для отслеживания поверхностей.
Компьютерное зрение — сложная сфера, основанная на непрерывном процессе исследований и разработок. Вот несколько причин и способов, как мы решили одну из ключевых проблем компьютерного зрения — страх плоской поверхности.
SketchAR занимается плоскими поверхностями, которые видны через камеру смартфона, когда смотришь на белый лист бумаги или на стену. Чтобы понять эту среду, нам пришлось изобрести методы и алгоритмы, позволяющие работать с любыми поверхностями. Мы уже упоминали в одной из статей, как работает бесмаркерный трекинг. Сегодня мы хотим рассказать обо всех сценариях использования и возможностях этой технологии, а также о том, в каких сферах её можно применять.

Метод трекинга без маркеров от SketchAR способен обнаруживать плоские поверхности. Более того, он остаётся стабильным даже в экстремальных условиях — когда камера плохо видит окружение или когда изображение приближено и в кадре только белая поверхность.
SketchAR против ARKit/ARCore
Здесь мы сравниваем трекинг SketchAR с самыми популярными решениями от Apple и Google — ARKit и ARCore. Мы использовали одинаковые условия на одном и том же устройстве: сильное приближение и перемещение листа бумаги.
Белое на белом
Ещё одна особенность SketchAR, которую стоит отметить, — способность распознавать одинаковые или похожие по цвету поверхности, например, белый лист бумаги на белом столе.
Вот несколько особенностей, на которые мы хотим обратить внимание:
- Насколько легко камера способна распознать такую сложную поверхность, как белый лист бумаги на белом столе.
- Насколько стабильным остаётся виртуальное изображение, когда камера плохо видит окружение, когда изображение приближено и в кадре только белая поверхность.
- Насколько далеко лист бумаги может выходить за пределы поля зрения камеры. Здесь видно, что камера захватывает лишь 25% листа, но виртуальное изображение остаётся очень стабильным даже в таких условиях.
- Как виртуальное изображение «приклеивается» к поверхности при её перемещении рукой под разными углами.
На улице
Ещё один хороший пример того, как бесмаркерный трекинг успешно работает в разных условиях, — тест SketchAR на улице, на стене. Мы нашли участок стены, похожий на холст. Затем выбрали скетч из библиотеки приложения, разместили его на стене и подошли к ней максимально близко — на расстояние 10 см от поверхности. Виртуальное изображение оставалось достаточно стабильным даже при перемещении смартфона влево или вправо.
Иногда белая стена может быть на 100% белой, и камере не за что зацепиться, чтобы навести фокус и работать корректно. У нас уже есть решение этой проблемы, и в скором времени мы обновим ядро.
Как это работает.
Мы уже упоминали, как мы используем машинное обучение и нейронные сети для анализа огромного объёма данных от наших пользователей, чтобы приложение работало корректно. Вот что мы анализируем:

SketchAR анализирует всё, что происходит на экране смартфона.
- Поверхность (типы, структура и т.д.).
- Бумага (форма, размеры).
- Дополнительные объекты — чтобы отделить их от поверхности, поскольку они являются «шумом» для камеры.
- Руки распознаются с помощью свёрточной нейронной сети.
- Тени, потому что они всегда сбивают CV-трекинг.
- Рисунки пользователя — чтобы сопоставлять несоответствия с оригинальным изображением.
- Распознавание структуры поверхности (бумаги) на основе матрицы преобразования (ML+NN). Камера смартфона способна различать множество оттенков одного и того же белого (или любого другого однотонного) цвета.
- Точки сетки связаны между собой в реальном времени. Происходит повторная инициализация, и точки сетки возвращаются в исходное положение. Когда рука покидает кадр или перемещается в другой квадрат, нужный пиксель на её месте распознаётся заново.
Такой подход позволяет нам собирать все данные от реальных пользователей SketchAR (100 000 пользователей, ~80% из которых дают нам на это согласие). Наше ядро анализирует эти данные как связи и отношения между опорными точками, а затем корректирует положение виртуального объекта относительно реальной поверхности без задержек, в реальном времени, с частотой 30 кадров в секунду с использованием GPU.
Наш мир состоит из поверхностей. Наша цель — научить машины гораздо лучше понимать окружающую среду и точнее взаимодействовать с миром.
Узнать больше о продукте можно здесь.
С уважением,
Команда SketchAR



