2014-10-28 6 views
2

일반 구형, 즉 구, 선, 평면에 대한 3D 점 구름에서 RANSAC를 성공적으로 구현할 수있었습니다. 그러나, 나는 입체 모양, 특히 3d 상자를 위해 그것을하는 방법 주위에 내 머리를 싸는 힘든 시간을 보내고있다. 포인트를 사용하여 상자를 매개 변수화하는 방법을 잘 모르겠습니다.직교 좌표 용 RANSAC

이상적으로 저는 길이, 너비, 높이 및 중심을 매개 변수 (Theta)로 얻고 싶습니다. 큐브 표면의 3D 점 구름에서 최소 점 수를 사용하여 이러한 매개 변수를 맞추는 방법에 대해 혼란스러워합니다. (나는 또한 점 법선에 접근 할 것이다).

예를 들어, 결국 큐브의 6 개면을 계산하려고합니다. 나는 단지 3 개를 추정하고 모두 평행 거울을 가져 와서 6 개를 얻을 수 있습니다. 각 얼굴은 아마도 평면으로 표현 될 것이며, 정의 할 수있는 점과 법선 (또는 3 점)이 필요합니다. 그러나 각 비행기의 법선은 서로 직각 일 필요가 있기 때문에 각 비행기의 법선에 제약이 있습니다. 나는 모델 추정에 제약 조건을 포함시키는 방법에 대해 확신 할 수 없다.

모든 아이디어는 크게 감사하겠습니다. 나는 현재 Marco Zuliani의 "RANSAC for Dummies"Toolbox 구현을 사용하고 있습니다.

답변

0

내가 두 단계로 나누는 것 (큐브의 점 구름에 큐브를 피팅)이 문제를 해결하는 알고리즘을 고안한다면 : 여섯 개 클러스터를 찾을

  1. 사용하는 일부 클러스터링 알고리즘, 각 얼굴마다 하나씩. 알고리즘을 실행하는 동안 여섯 개의 "후보"영역이 필요하며 각 점은 얼굴 클러스터 중 하나 또는 외곽선에 속하는 것으로 간주됩니다. DBSCAN의 일부 수정 된 양식이 적합한 옵션 인 것 같습니다.
  2. 각 얼굴에 피팅을 적용하십시오. RANSAC은 이미 사용하고 있기 때문에 RANSAC 일 가능성이 큽니다. 큐브의 예상 크기를 알고있는 경우

, 당신은 KDTree에 모든 지점을 삽입 할 수 있으며, (주성분이 마음에 와서) 평탄도 검사, 한면의 크기보다 radious와 구형 주변을 쿼리합니다. 그러면 결국 6 개의 얼굴 중심에 대한 대략적인 후보를 찾을 수 있습니다.

관련 문제