2012-08-08 4 views
5

레이저 스캐너에서 3d 높이 맵을 얻은 경우 saddle points은 어떻게 찾습니까?3d 높이 맵에서 안장 위치 찾기

e.e. 이 같은 주어진 일 : 나는 곡률이 다른 한 방향으로 긍정적이고 부정적인 모든 점을 찾고

height profile

.

(이 방향은 X 축과 Y 축에 정렬되어서는 안됩니다.) X 방향의 곡률이 Y 방향의 곡률과 반대 기호인지 확인하는 방법을 알고 있지만 모든 경우를 다루지는 않습니다 . 설상가상으로, X의 해상도는

enter image description here

가 이상적으로 소음의 일부 금액을 견딜 만 "중요한"안장 포인트를 표시 할 수 있습니다 알고리즘을 찾고 있어요) Y의 해상도는 다릅니다.

답변

1

는 각 후보 지점, 예를 들어, 주위에 작은 패치의 표면에 차를 장착 (A 수학에서 추측보다는 실제 경험에서) 최소 제곱으로. 패치가 얼마나 큰지는 소음을 제어하는 ​​한 가지 방법이며 후보 지점과의 거리에 따라 가중치를 적용하여 얻을 수 있습니다. 행렬 표기법에서, A가 대칭이면 x'Ax + b'x + c와 같이 2 차 방정식을 나타낼 수 있습니다.

이차원은 x = (A^-1) b/2에서 제로 그래디언트를 갖습니다. 이 패치가 아닌 경우 폐기하십시오.

A가 + ve 및 -ve 고유 값을 모두 가지면 x에 안장 점이 있습니다. A는 단지 2x2이고 최대 두 개의 고유 값을 가지므로,이 값을 제로 고유 값으로 간주하므로 이전 단계에서 반전 할 수 없습니다.

2

저는 전산 토폴로지 클래스와 비슷한 문제를 탐구 해왔고 아래에 설명 된 방법으로 성공했습니다.

먼저 두 입력 지점의 높이를 평가하고 모든 입력에 대해 < 또는> (같지 않음)을 반환하는 비교 함수가 필요합니다. 이를 수행하는 한 가지 방법은 점의 높이가 동일한 경우 더 큰 점을 찾기 위해 위치 기반 또는 임의의 색인을 사용하는 것입니다. 이것을 높이에 극한의 섭동을 더하는 것으로 생각할 수 있습니다.

이제 각 점에 대해 주변 이웃의 높이를 비교합니다 (2D 사각형 모눈에 8 개의 이웃이 있음). 점에 대한 아래쪽 링크는 높이가 점보다 작은 모든 이웃 집합입니다.

모든 인접 값이 하위 링크에있는 경우 로컬 최대 값입니다. 하단 링크에 포인트가없는 경우 로컬 최소값입니다. 그렇지 않은 경우 하단 링크가 연결된 단일 세트 인 경우 경사면의 규칙적인 지점에 있습니다. 그러나 하단 링크가 두 개의 연결되지 않은 세트 인 경우에는 안장에 있습니다.

2D에서는 검사중인 점을 중심으로 8 개의 인접 점 목록을 순환 순서로 구성 할 수 있습니다. 비교 함수에 따라 각 이웃에 대해 +/- 1 값을 할당합니다. 그런 다음 목록을 단계별로 (두 종점을 비교하는 것을 잊지 마십시오) 아래 링크의 연결된 구성 요소 수를 결정하기 위해 기호가 몇 번 변경되었는지 계산하십시오.

"중요한"중 새들을 결정하는 것이 더 어려운 분석입니다. 몇 가지 지침은 http://www.cs.jhu.edu/~misha/ReadingSeminar/Papers/Gyulassy08.pdf을 참조하십시오.

- 마이클