비싼 2D 함수의 아이소 라인 추적


10

이 게시물과 공식화에 비슷한 문제가 있지만 몇 가지 주목할만한 차이점이 있습니다.

2D 함수를 적응 적으로 샘플링하기위한 간단한 방법은 무엇입니까?

그 게시물 에서처럼 :

  • 나는 를 가지고 있으며이 함수의 평가는 계산하는 데 다소 비싸다f(x,y)

그 게시물과 달리 :

  • 나는 어디에서나 함수의 가치에 정확하게 관심이 없지만 함수의 단일 등고선을 찾는 것에 관심이 있습니다.

  • 함수의 자기 상관과 결과적으로 평활도에 대해 중요한 주장을 할 수 있습니다.

이 기능을 단계별로 수행 / 샘플링하고이 윤곽선을 찾는 지능적인 방법이 있습니까?

추가 정보

함수의 계산이다 Haralick 특징 위에 분류 / 회귀의 일종으로 차례로 부드러운 분류 주변 pixles. 이것의 결과는 포인트가 속하는 텍스처 / 재료를 나타내는 부동 소수점 숫자입니다. 이 수의 스케일링은 클래스 확률 (SoftSVM 또는 통계 방법 등) 또는 선형 / 로지스틱 회귀 출력과 같은 간단한 것으로 추정 할 수 있습니다. 분류 / 회귀는 이미지에서 피쳐 추출에 소요되는 시간에 비해 정확하고 저렴합니다.N

둘러싼 통계 는 윈도우가 일반적으로 겹치는 영역을 샘플링하고 있음을 의미하며, 따라서 주변 샘플 간에는 상당한 상관 관계가 있습니다. 따라서, 이는보다 복잡한의 함수로 생각 될 수있다 (문제 I도 상징적 / 숫자 접근 가능) 보다 큰 더 동내 (높은 상관 관계)에 관한 추정치를 제공하고, 이 작을수록 더 가변적이지만 더 많은 지역 추정치를 제공합니다. f ( x , y , N ) N NNf(x,y,N)NN

내가 시도한 것 :

  • 무차별 계산-잘 작동합니다. 상수 95 % 정확한 분할 . 그 후 표준 방법을 사용하여 윤곽을 그릴 때 결과가 환상적으로 보입니다. 이것은 영원히 걸립니다 . 샘플별로 계산 된 기능을 단순화 할 수 있지만 이상적으로는 피처 공간의 다른 부분에 차이가 나타나는 텍스처가있는 이미지에이 코드를 일반적으로 유지하기 위해이 코드를 피하고 싶습니다. N

  • Dumb Stepping-각 방향으로 단일 픽셀 "step"을 취하고 이소라 인 값에 근접한 방향으로 움직일 방향을 선택합니다. 여전히 느리며 아이소 라인의 분기를 무시합니다. 또한 평평한 그라디언트가있는 영역에서는 "방황"하거나 두 배가됩니다.

첫 번째 링크에서 제안 된 하위 분할과 같은 작업을하고 싶지만 관심있는 등가 선을 묶는 상자를 정리했습니다. 도 활용할 수 있어야한다고 생각 하지만 어떻게 접근 해야할지 모르겠습니다. N


윤곽을 그릴 가능성 함수이고 각 지점에서 최소화를 수행해야하기 때문에 비용이 많이 든다는 점을 제외하고는 정확히 동일한 문제가 있습니다. 당신은 어떤 진전을 보였습니까?
adavid

방금 통합 한 솔루션을 확인했습니다. (아래 참조)
meawoppl

답변:


4

컴퓨터 그래픽에는 Provably Good Sampling and Meshing of Surfaces 라는 종이가 있습니다.이 논문 은 주어진 선분과 아이소 라인의 모든 교차점을 결정하는 오라클을 제공합니다. 이를 통해 로컬 피쳐 스케일 (최대 로컬 곡률과 같은 것)과 모든 컨투어와 교차하는 초기 선분 세트를 제공 할 수 있다고 가정하고 모든 컨투어를 샘플링합니다. 들로네 삼각 분할 (Delaunay Triangulation) 계산에 의존하기 때문에 구현하기가 가장 간단한 것은 아니지만 CGAL 에서 3D로 구현됩니다 . Triangle 과 같은 우수한 삼각 측량 소프트웨어 가 존재하기 때문에 2D에서는 훨씬 간단 합니다. 어떤 의미에서, 이것은 당신이 할 수있는 최선에 가깝습니다.


논리적으로 3D로 깔끔하게 확장 되므로이 공식이 정말 좋습니다. 파이썬으로 이것을 공식화해야하므로 qhull의 Delauny 래핑에 이미 액세스 할 수 있으므로 큰 문제는 아닙니다. 이 요약이 제대로되는지 보자.-씨앗을 채취하기 위해 샘플링을한다. -샘플을 삼각 분할합니다. -일정 길이 이상의 아이소 라인에 걸쳐있는 모든 에지 : 에지와 아이소 라인의 교차점 계산-샘플에 대해 계산 된 모든 것, 삼각 측량 단계에서 반복?
meawoppl

@ meawoppl : 개인적 으로이 알고리즘을 구현하거나 사용하지는 않았지만 (아직!) 맞습니다.
Victor Liu

오늘 이것을 닦아서 몇 가지 결과를 게시 할 것입니다!
meawoppl

지연 돼서 죄송합니다. 이 방법은 내 데이터 세트에 실제로 효과적입니다. 기본적으로, 나는 그것을 시작하기 위해 샘플링하기 위해 일반 메쉬를 시딩 한 다음, 등고선을 가로 지르는 가장자리를 반복하여 삼각 측량하고 세분화합니다. "최소 기능"요구 사항을 표현하는 것은 약간 어렵고, 임의의 초기 샘플링 vs. 대각 아이소 메트릭이 샘플링의 임기를 따르는 것보다 조금 더 오래 걸리기 때문에 정규적인 장점이 있습니다. 나는 단지 5 패스를 넘기도록 끝내었고, 그것은 정말로 간단한 정지 기준으로 작동했습니다. Wooo> 1K
meawoppl

1

EGRA (Efficient Global Reliability Analysis) 방법의 핵심 기능을 적용 해 볼 수 있습니다. 이 방법은 실패 확률을 효율적으로 계산하기 위해 만들어졌지만, 그 방법의 장은 당신이 묘사 한 것을 수행하는 데 초점을 맞추고 있습니다-특정 관심 윤곽선 근처에서만 정확한 모델을 만듭니다.

이것은 흥미로운 출발점이 될 수 있지만 문제가 해결되지는 않습니다. 함수의 모양에 따라 크게 다릅니다. 크릭 모델 로 대략적으로 추정 할 수있는 것이면 성능이 좋아야 합니다. 이 모델은 매우 유연하지만 일반적으로 부드러운 기본 기능이 필요합니다. 과거에 이미지 세그먼테이션 애플리케이션에 EGRA를 적용하려고 시도했지만 실제로는 대리 모델을 기능적 관계에 의해 정의되지 않은 것에 적합하지 않기 때문에 거의 성공하지 못했습니다. 그래도 응용 프로그램이 내가 생각한 것과 다른 경우에보고 싶을만한 것으로 언급합니다.

내가 말하지 않은 경우 여기에서 EGRA에 대해 자세히 읽을 수 있습니다 (PDF 링크) 및 here . Sandia의 DAKOTA 프로젝트 에 기존 구현이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.