Разработка AR-распознавания и отслеживания объектов (Object Tracking)

Трек объектов теряется при движении камеры, слабом свете или частичном перекрытии — и сценарий в приложении рассыпается. Мы разрабатываем и внедряем AR-распознавание и отслеживание объектов под ключ: подбираем режим под ваши условия, настраиваем и сопровождаем. Наведение остаётся устойчивым, а доля срывов трека снижается в разы.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Разработка AR-распознавания и отслеживания объектов (Object Tracking)
Сложный
~3-5 дней
Часто задаваемые вопросы

Object tracking: почему трек объектов теряется в приложении

Object tracking срывается не тогда, когда объект уходит из кадра, а раньше — когда опорных признаков становится меньше, чем нужно для устойчивой оценки позы. Быстрый проход камеры даёт смаз и просадку резкости: признаки размываются, и трекер начинает не уточнять положение, а угадывать его. Смена ракурса добавляет второе ограничение — на плоских и однотонных участках не за что зацепиться, поэтому масштаб и наклон объекта расходятся с реальными.

Отдельный класс отказов — перекрытие объекта: рука, прохожий или соседний предмет на секунду-две закрывают опорную область, и набор видимых признаков обнуляется. ARCore и родственные платформы в этот момент уходят в повторную локализацию, а до её завершения привязка либо замирает, либо прыгает на похожую область рядом. Слабый свет усугубляет всё перечисленное: шум сенсора и мягкие тени дают ложные границы, объект находится, но со смещением в несколько сантиметров.

Цена этих сбоев измеряется не в кадрах, а в поведении пользователя. Виртуальная модель соскакивает с экспоната, подсказка ложится мимо узла оборудования, оператор сканирует полку повторно, а часть сессий заканчивается на первом же срыве. В поддержку приходит «приложение не работает» — хотя причина в потере трека, а распознавание и логика отработали штатно.

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

Что даёт стабильный трекинг: точность, скорость, меньше сбоев

Стабильный object tracking проверяется не ощущением «вроде работает», а долей успешных треков: на наборе тестовых сцен объект доводится до конца сессии в большинстве прогонов, а не теряется на середине. Метрика считается по всей выборке — разные ракурсы, освещение, скорость движения, — а не по одной удачной демонстрации.

Время до первого кадра с распознаванием тоже становится предсказуемым: сцена инициализируется за доли секунды, и пользователь видит подсказку раньше, чем успевает решить, что приложение не отвечает. Это следствие прогрева моделей и предзагрузки словаря объектов, а не везения на конкретном устройстве.

Главный эффект — классы отказов, которые уходят целиком. Сцена перестаёт срываться при частичном перекрытии объекта, при резком движении камеры, при слабом свете и блике, а ложные срабатывания на похожих по форме предметах отсекаются на уровне отбора гипотез.

Устойчивость трека — отдельная метрика: после короткого перекрытия объект возвращается с тем же идентификатором, а не заводится заново. Без этого счётчик объектов и привязка подсказок к конкретному предмету разваливаются на первом же перекрытии.

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

Режимы object tracking: сравнение подходов и ограничений

Режим трекинга выбирают по трём осям: устойчивость трека, свобода сценария, стоимость вычислений. Маркерный трекинг даёт предсказуемую геометрию — поза восстанавливается по углам метки известного размера, ошибка не накапливается за сессию.

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

Вариант Когда подходит Ограничения
Маркерный трекинг Нужна повторяемость стенда и точная поза объекта Метка должна быть в кадре; перекрытие или засветка рвут трек
Трекинг по признакам сцены Произвольный фон, площадку готовить нельзя Дрейф копится, просадка на однотонных и глянцевых поверхностях
Гибридная схема Нужны свобода сценария и устойчивость на длинных сессиях Сложнее настройка: два контура, приоритеты переключения, калибровка
Обработка на устройстве Отклик критичен, канал нестабилен, кадры не покидают устройство Меньше запас по сложности модели и числу объектов в кадре
Обработка в облаке Тяжёлые модели, съёмка с разных устройств, несколько потоков Зависимость от канала, задержка, передача и хранение кадров

Гибридная схема делит нагрузку: уточнение позы — на устройстве, тяжёлая перепроверка — в облаке по разреженным кадрам. На разборе задачи смотрим, какой режим выдержит ваш сценарий на длинной сессии.

Как проходит внедрение: этапы инженерной работы

Внедрение трекинга — это не подключение библиотеки, а настройка под конкретную сцену: то, что уверенно работает на тестовом стенде, рассыпается при другом свете или материале поверхности. Поэтому мы идём от условий эксплуатации к параметрам алгоритма, а не наоборот.

  1. Аудит сцены. Разбираем, как объект выглядит в реальных условиях: перепады освещения, блики на глянце, фоновые текстуры, скорость движения камеры, типичные перекрытия. На выходе — перечень условий, в которых распознавание обязано работать.
  2. Схема опорных признаков. Определяем, за что цепляется трекинг: естественные особенности поверхности, геометрия объекта или маркеры. Признаки подбираем так, чтобы они читались под углом и на рабочем расстоянии.
  3. Настройка трекинга. Задаём пороги срабатывания, фильтрацию дрожания привязки, поведение при частичном перекрытии и правила переинициализации после потери объекта.
  4. Проверка на реальных сценариях. Прогоняем решение на площадке с теми устройствами и светом, где оно будет жить. Фиксируем долю успешных захватов, время восстановления после потери и стабильность привязанных элементов.
  5. Доработка по результатам проверок. Расширяем набор признаков, меняем ракурсы обхода, добавляем подсказки при неуверенном захвате — пока метрики не выйдут на согласованный уровень.
  6. Передача решения. Отдаём документацию по конфигурации, схему опорных признаков, набор тестовых сценариев и инструкции для команды, которая будет сопровождать продукт.

Пакет передачи: схемы сцен, наборы объектов, регламенты

После приёмки у команды заказчика остаётся не демонстрационный прототип, а рабочая система с полным комплектом материалов. Всё, что мы настраивали по ходу проекта, передаётся в редактируемом виде — чтобы следующее изменение сцены или пополнение каталога не требовало нас как единственных носителей знания.

  • Конфигурации распознавания — профиль под каждую площадку: пороги срабатывания, допустимые ракурсы и дистанции, поведение при слабом освещении. Профиль правится без пересборки приложения.
  • Схемы сцен — разметка зон съёмки, привязка опорных элементов, требования к фону и свету. Новая сцена разворачивается по схеме, а не методом проб.
  • Карточки объектов — эталонные образцы, признаки сопоставления и границы, за которыми результат считается недостоверным, с пояснением причины каждой границы.
  • Наборы объектов — коллекции под конкретные задачи, разведённые по версиям: демонстрационные, рабочие, архивные, с историей правок и ответственным.
  • Регламент обновления — порядок ввода и вывода объекта: подготовка образцов, проверка на тестовой сцене, срок ввода в работу, условия отката к предыдущей версии набора.
  • Регламент разбора инцидентов — какие события фиксируются, как отличить сбой распознавания от ошибки сцены, кому и в какой срок уходит обращение.
  • Документация решения — архитектурная схема, точки интеграции с вашими системами, форматы обмена, чек-лист приёмки и перечень известных ограничений.

Состав пакета согласуем на старте проекта: вы заранее видите, что останется внутри вашей команды и по каким документам она сможет работать самостоятельно.

Кейс внедрения: трек объектов на складе и в рознице

В распределительном центре сети магазинов учёт держался на ручных обходах: кладовщик с терминалом сбора данных проходил зону и сверял паллеты с адресами хранения по бумажному листу. Один обход занимал 25-30 минут, полная сверка склада растягивалась почти на смену, а расхождения всплывали только на инвентаризации. В торговом зале картина та же — выкладку проверяли глазами, пустую полку замечали через день-два, когда покупатель уже ушёл.

Пилот, получивший рабочее имя Склад-Трек, собрали как приложение с камерой на штатном смартфоне смены. Кладовщик наводит камеру на паллету или полку — распознавание определяет товар и удерживает объект в кадре при движении, счётчик пересчитывает единицы и привязывает их к адресу хранения. Данные уходят в учётную систему сразу, без ручного ввода и второго прохода.

Метрики до и после

Метрика До После
Обход зоны 25-30 минут 6-8 минут
Расхождение остатков 4-5% менее 1%
Поиск товара за смену около 3 часов 40 минут
Ручные операции при сверке весь цикл один контрольный проход

Устойчивость удержания оказалась решающей деталью: если паллету частично заслонили или её везли мимо стеллажа, трек не терялся и сопровождал объект дальше. На участках со слабым светом добавили локальную подсветку и дообучение на снимках самого склада — распознавание вышло на 96-97% верных срабатываний. Смена перестала простаивать на поиске: простои сократились с часов до минут, освободившееся время ушло на приёмку и работу с браком, а не на сверку. Тот же контур перенесли в розницу — обход зала стал занимать один проход вместо двух.

Чем отслеживание отличается от распознавания и нужны ли оба?

Распознавание объекта отвечает на вопрос «что это»: модель находит объект в кадре и возвращает класс с рамкой. О следующем кадре она не помнит ничего — при повторном проходе тот же объект получит новый номер, а при кратком перекрытии просто исчезнет и появится снова.

Удержание трека — это идентификация между кадрами: система предсказывает положение объекта, сопоставляет его с предыдущим состоянием и ведёт одну метку, пока объект в поле зрения. Отсюда берётся ровная рамка без дрожания и корректный подсчёт уникальных объектов.

Выбор режима диктует задача. Если нужен ответ «есть ли объект и какой» — хватает распознавания. Если важна непрерывность во времени — подсчёт проходящих, траектория, реакция интерфейса на движение — без удержания трека не обойтись.

На практике мы почти всегда строим сочетание подходов, как это сделано в платформенном инструментарии уровня ARKit: распознавание периодически перезапускает трек при потере, а лёгкий трекер держит объект между запусками. Доля кадров, где работает тяжёлая модель, падает, картинка остаётся стабильной, а стоимость вычислений перестаёт расти вместе с длительностью сессии.

Технические вопросы: слабые устройства, свет, масштабирование

Слабый свет и устройства среднего класса мы проверяем одним сценарием: снимаем один и тот же объект при падении освещённости и смотрим, на каком моменте трек уходит в поиск вместо ложной рамки. Опора только на цвет здесь не работает — признаки дополняются геометрией контура и движением, а порог уверенности настраивается так, чтобы потерянный объект помечался потерянным, а не «залипал» на постороннем предмете.

Рост числа объектов и офлайн-режим решаются архитектурно. На устройстве одновременно ведётся ограниченное число активных треков, остальные ждут в очереди и поднимаются по приоритету зоны; переобучение под новые классы не расширяет нагрузку на кадр. Модель и веса лежат локально, поэтому распознавание идёт без сети, а облако подключается для аналитики и обновления модели.

Что происходит при слабом освещении?

Контраст падает, и цветовые признаки перестают разделять объект и фон. Трек переходит на градиенты и геометрию, реже обновляет позицию и удерживает идентификатор дольше, чем успевает «перескочить» на соседний предмет. Если объект ушёл из кадра, трек закрывается — ложных срабатываний не остаётся.

Потянет ли приложение устройство среднего класса?

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

Работает ли распознавание без сети?

Да, веса и логика трекинга лежат в приложении, поэтому объект отслеживается в офлайне без задержки на запрос. Сеть нужна для сбора статистики и дообучения: накопленные данные уходят при появлении связи, локальные результаты при этом не теряются.

Обсудим задачу: подберём режим и вернёмся с оценкой

Чтобы вернуться с планом работ и оценкой сроков, а не с общими соображениями, нужен минимум входных данных. Чем конкретнее постановка задачи, тем точнее мы подберём режим трекинга — по маркеру, по естественным признакам объекта или гибридный — и тем меньше переделок будет на этапе интеграции с приложением.

Что прислать для разбора:

  • сценарий использования: что попадает в кадр, с какого расстояния и под какими углами, движется объект или стоит;
  • целевые объекты и условия съёмки — освещение, фон, блики, перекрытия другими предметами;
  • требования к устойчивости трека: удержание при частичном перекрытии, при тряске камеры, несколько объектов одновременно;
  • ограничения платформы: парк устройств, версии операционной системы, нужна ли работа без сети;
  • что уже есть — прототип, исходные трёхмерные модели, дизайн, доступы к тестовому стенду;
  • критерии приёмки в измеримом виде: доля верных распознаваний, время выхода на трек, допустимая задержка реакции.

По итогам обсуждения вы получаете план работ с этапами и точками контроля, схему архитектуры с распределением нагрузки между устройством и сервером, оценку сроков по каждому этапу и сценарий пилотного запуска на ограниченном наборе объектов — его обычно хватает, чтобы проверить качество распознавания до полной сборки. Опишите задачу в том виде, в каком она есть, — вернёмся с оценкой и планом.

Наши компетенции:

Последние работы

  • Разработка мобильного приложения для компании FEEDME
    Разработка мобильного приложения для компании FEEDME
    1009
  • Разработка мобильного приложения для компании XOOMER
    Разработка мобильного приложения для компании XOOMER
    902
  • Разработка мобильного приложения для компании RHL
    Разработка мобильного приложения для компании RHL
    1331
  • Разработка мобильного приложения для компании ZIPPY
    Разработка мобильного приложения для компании ZIPPY
    1179
  • Разработка мобильного приложения для компании Affhome
    Разработка мобильного приложения для компании Affhome
    1106
  • Разработка мобильного приложения для компании FLAVORS
    Разработка мобильного приложения для компании FLAVORS
    713