Недавно я работал над проектом, в котором мне нужно было обнаружить стены, пол и потолок в 3D-сетке. После некоторых исследований я смог обнаружить пол и некоторые части стен, используя алгоритмы RANSAC. Мне просто интересно, может ли кто-нибудь объяснить разницу между подгонкой плоскости и сегментацией плоскости, поскольку они оба, кажется, приводят к облаку точек, содержащему пол?
разница между сегментацией плоскости и подгонкой плоскости
Ответы (1)
Подгонка плоскости обычно понимается как метод подгонки, основанный на методе наименьших квадратов, при котором расстояние от точки, заданной уравнением плоскости, сводится к минимуму. Такую оптимизацию можно сформулировать разными способами, но наиболее практичным является простой SVD-анализ ковариационной матрицы.
Сегментацию плоскости можно рассматривать скорее как пример проблемы подбора, когда в данных существует много выбросов. На самом деле, плоскость для сегментации может быть лишь крошечной долей набора точек. Более того, может быть несколько плоскостей в разных ориентациях. Наконец, проблема сегментации может не обязательно искать уравнения плоскости, а скорее касаться нахождения точек, которые совместно лежат на плоскости, или нескольких наборов точек, лежащих на нескольких плоскостях. Тем не менее, многие алгоритмы, которые стремятся сделать это, неявно используют метод подбора с некоторой обработкой геометрических или алгебраических выбросов, таких как RANSAC, преобразование Хафа, надежные нормы и т. д.
Также важно понимать, что обнаружение самолета возможно только с определенной точностью. Выяснение того, какие точки лежат на определенной плоскости, — это другая проблема, а иногда и более сложная, чем просто удаление множества точек, которые находятся достаточно близко к плоскости.
В случае идентификации стен, потолков и т. д. потребуются как методы подгонки, так и методы сегментации.