Прежде чем я сделаю гигантский сброс слова, мой эффективный вопрос таков:
Могу ли я предоставить ARCore дополнительную информацию / эвристику, чтобы уточнить ее представление о том, какова позиция обнаруженного увеличенного изображения? Или я могу использовать позу других отслеживаемых объектов, чтобы уточнить позу обнаруженного увеличенного изображения?
Для получения дополнительной информации вот некоторая справочная информация о моем рабочем процессе:
Мое приложение AR вращается вокруг наложения различных 3D-моделей САПР поверх их реальных машинных эквивалентов. Взаимодействие с пользователем происходит так:
- Пользователь прикрепит QR-код (размером .2 метра на .2 метра) к заранее определенному местоположению на связанной машине (местоположение зависит от типа машины).
- Затем пользователь загрузит приложение, наведет камеру на QR-код, и приложение передаст изображение с камеры в библиотеку чтения QR-кода и использует полезную нагрузку (идентификатор для конкретной машины), чтобы извлечь связанный CAD Модель и метаданные.
- Как только QR-код обнаружен, я могу использовать библиотеку чтения QR-кодов, чтобы создать нетронутое изображение QR-кода и передать это изображение в ARCore, чтобы оно могло обнаружить его в 3D-пространстве с камеры.
- Как только QR-код обнаружен в трехмерном пространстве, я прикрепляю привязку и использую знания о том, где должен быть размещен QR-код в данной модели (также извлеченной из моей базы данных с использованием информации о полезной нагрузке), чтобы определить основу для моя модель CAD.
- Информация может быть наложена с использованием модели CAD для отображения различных операций / взаимодействий.
Теперь у меня все это работает довольно хорошо, но я столкнулся с некоторыми проблемами, когда модель никогда не позиционируется точно в реальном эквиваленте и требует некоторой ручной настройки положения после факта, чтобы все было правильно. У меня есть несколько идей, как решить эту проблему, но я не знаю, насколько осуществима любая из этих идей:
- ArTrackable_acquireNewAnchor позволяет указать несколько якорей для отслеживаемых в разных позах. Я предполагаю, что это улучшит отслеживание объекта, но я не ясно, как использовать этот API. В настоящее время я просто передаю позу, сгенерированную из ArAugmentedImage_getCenterPose, поэтому я не знаю, какие другие позы я бы передал.
- Если я продвигаю свою привязку QR-кода к привязке облака после обнаружения, это поможет в обнаружении / уточнении обнаружения позы qr в будущем?
- Если я попытаюсь сопоставить другие функции, обнаруженные ARCore (например, плоскости), с известной топологией в реальной среде (например, полы / стены), то это может лучше приблизить положение изображения QR-кода или предоставить некоторую эвристику для ARCore, чтобы он мог
- Вместо использования одного изображения с QR-кодом, что делать, если я использую набор изображений (один QR-код и два других статических изображения), которые слегка смещены относительно друг друга. Если мы знаем, насколько далеки друг от друга эти изображения в реальном мире, мы можем использовать эту информацию, чтобы исправить ошибку в оценке ARCore того, где они находятся.
Извините за гигантский дамп слова, но я подумал, что чем больше информации, тем лучше. Любые другие идеи вне рамок моего вопроса также приветствуются.