Плоскость 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, чтобы получить последние улучшения. Кроме того, какой тип вертикальной поверхности вы пытаетесь обнаружить? Я успешно обнаружил горизонтальные и вертикальные поверхности (пол, стена, потолок), при условии, что поверхность достаточно изменчива, чтобы можно было отслеживать характерные точки.