Плоскость AR не обнаруживает вертикальную поверхность

Я работаю над проектом AR, где мне нужно выбрать как горизонтальную, так и вертикальную обе поверхности, включая стены, и поместить объект ar на эту поверхность. Я попытался сделать следующее, чтобы добиться этого. Но кое-как, как он не обнаруживает стены или любую вертикальную поверхность. Следующий код я реализовал.

Пользовательский ARFragment, расширяющий ARFragment.

class CustomARFragment : ArFragment() {
override fun getSessionConfiguration(session: Session?): Config {

    val config = super.getSessionConfiguration(session)
    config.updateMode = Config.UpdateMode.LATEST_CAMERA_IMAGE
    config.planeFindingMode = Config.PlaneFindingMode.HORIZONTAL_AND_VERTICAL


    return config
  }
}

Я расширил этот класс для достижения ар в моем проекте. Тем не менее я не мог выбрать вертикальные плоскости.

1 ответ

Вертикальное обнаружение действительно плохое.

Вам нужны плакаты, шкафы или даже телевизор. Что-то, что может различать точки на стене. Иначе ничего не получится. Попробуйте сделать несколько разрозненных стикеров.

AR ужасно плохо справляется с вертикальным одноцветным обнаружением с использованием стандартных камер без дополнительных датчиков глубины. Вы можете использовать различные методы, от горизонтальных плоскостей в обзоре до цветовых различий и лучей на пол, чтобы попытаться преодолеть это, но это непростая задача, и она не обеспечивает наилучшего взаимодействия с пользователем. Итак, как бы сильно мы ни мечтали об обнаружении вертикальных стен и размещении дополненной реальности, не прибегая к хитростям, чтобы идентифицировать это, этого просто еще нет.

Вот хорошая статья от Griddyanmics, которая дает некоторые важные детали. https://blog.griddynamics.com/how-arkit-and-arcore-recognize-vertical-planes/

Вы используете последнюю версию ARCore? Возможно, попробуйте обновить до версии 1.6.0, чтобы получить последние улучшения. Кроме того, какой тип вертикальной поверхности вы пытаетесь обнаружить? Я успешно обнаружил горизонтальные и вертикальные поверхности (пол, стена, потолок), при условии, что поверхность достаточно изменчива, чтобы можно было отслеживать характерные точки.

Другие вопросы по тегам