이 게시글은 장형기 님의 SLAM 기술 면접 질문 100선에 대한 제 나름대로의 답을 정리한 것입니다.
SLAM을 할 때 바닥을 추출하면 많은 것이 편해집니다.
Coordinate의 한 축이 고정이 되면 자연스럽게 자유도가 줄어 matching이 간편해지기도 하고
바닥과의 관계를 통해 물체를 판별할 수도 있습니다.
카이스트에서 바닥을 추출하는 알고리즘인 Patch work도 있어서 활용할 수 있습니다.
근데 이건 실제로 사용했을 때 벽도 추출되어서 못 썼던 기억이 있네요.. 제가 잘못한 것일 수도 있습니다.
2D 영상 선분 검출에 쓰이는 허프 변환의 개념을 3D에 확장한 방식
공간에서 평면 방정식의 파라미터를 누적하여 가장 많은 포인트가 일치하는 평면을 검출
많은 누적 정보를 필요로 하기 때문에 메모리가 많이 들고, 파라미터 양이 많아 연산량이 큼
이미지 feature 기반
카메라 내부 파라미터와 바닥면에서의 특징점을 알고 있으면 homography 변환을 통해 바닥면의 위치나 기울기를 추정 가능 => 카메라와 바닥면 사이의 기하학적 관계를 모델링하여 추정
영상 내 특징 기반 분류
바닥면이 다른 객체와 색상이나 텍스처가 다르다면, 2D 이미지 상에서 바닥 영역을 분류
PlaneNet, PlaneRCNN 등 네트워크 사용
이미지를 입력으로 받아 장면 내 여러 평면들을 동시에 검출하고, 각 평면의 방정식을 추정하는 모델을 사용
카메라를 사용한다면 network 사용하는게 제일 효율적일 것 같긴 합니다.
point cloud에서는 RANSAC도 효율적이지만 반복적인 sampling을 해야하기 때문에 속도 문제가 조금 있고
Patchwork는 논문을 읽어 봤을 때 매우 효율적이고 직관적인 아이디어를 가지고 있었습니다.
아직 더 많은 기법이 있을텐데 제가 알고 있는 것은 여기까지입니다.