RANSAC 추정 된 동종 학 필터링


10

나는 카메라 사이에서 아무런 변환이없는 카메라로 촬영 한 이미지 쌍 사이의 호모 그래피 추정을 위해 RANSAC 알고리즘을 사용 하고 있습니다 (순수 회전 및 스케일 / 줌 변경). 절반의 경우에 잘 작동합니다. 올바른 출력은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

빨간색 선은 대응 관계를 필터링하고 사변형은 호모 그래피가 원근을 왜곡하는 방법을 보여줍니다.

그러나 때때로 다음과 같은 많은 나쁜 경우가 발생합니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

RANSAC 루프에서 간단한 테스트를 이미 받았습니다. 간단한 사변형 (단위 사각형)을 만들고 샘플 변환으로 변환합니다. 그런 다음 변환이 볼록성을 유지했는지 확인합니다.

그러나 여전히 많은 사변형이 나옵니다.

호모 그래피가 "정상적으로"동작하고 잘못된 솔루션을 필터링하는 경우 호모 그래피를 올바르게 테스트하는 방법을 알고 있습니까?

변환 된 세 점 중 어느 것도 동일 선상에 있지 않다는 것을 테스트하는 코드를 발견했습니다. 그러나 이것은 삼각근과 다른 "유효하지 않은"사변형을 필터링하지 않기 때문에 충분하지 않은 것 같습니다 ...

답변:



4

호모 그래피가 정상인지 확인하는 데 문제가 있습니다.

올바른 호모 그래피를 확인하는 알고리즘은 누군가에게 관심이있을 수 있으므로 여기에 적어 두겠습니다.

1) 꼭짓점 좌표를 가진 사변형 를 생성합니다 (균일 한 좌표로).ABDC

A:(w/2,h/2,1.0)B:(w/2,h/2,1.0)C:(w/2,h/2,1.0)D:(w/2,h/2,1.0)

여기서 는 각각 이미지의 너비와 높이입니다. 전체 이미지 프레임 (직사각형)이 볼록 사변형으로 변환되면 그 안에있는 볼록 사변형도 "정확하게"변환됩니다.w,h

2) 모든 정점이 계산 된 호모 그래피 (예 : )를 사용하여 변환되는 변환 된 사변형 를 만듭니다 . 이제부터는 모든 점이 비균질 좌표로 변환됩니다.ABDCC=HC

3) 대각선의 파라 메트릭 표현을위한 계산 벡터 , :uv

d1:A+(DA)s=A+usd2:B+(CB)t=B+vt

대각선의 교차점은 에서 나옵니다 .d1=d2

t=1d[(ByAy)ux(BxAx)uy]

s=1d[(AxBx)vy(AyBy)vx]

그러면 볼록 사변형은 충족시킵니다 .s,t(0,1)

실제로, 비 볼록 및 변성 사변형을 피할뿐만 아니라 3 개의 점이 동일 선상에있을 때와 같이 거의 변성되는 것을 피하기 위해 퍼지 인자 를 도입 할 수 있다. 따라서 테스트는 와 같이 수정 될 수 있습니다 . 여기서 lambda는 작은 수입니다 (예 : ).λ = 0.01s,t(λ,1.0λ)λ=0.01

위의 알고리즘에서 수정 된 오래된 문제 :

나는 여기에서 문제를 발견했습니다-특정 호모 그래피가 있으면 테스트가 더 작은 사변형에 대해서는 통과 할 수 있지만 더 큰 것은 아닙니다. 이것이 일부 "불량한"상동이 통과 한 이유입니다.

녹색 사각형은 소스 이미지를 나타내고 주황색은 변환 된 이미지입니다. 보시다시피 왼손은 볼록하지만 소스가 클수록 변형이 시작됩니다.

여기에 이미지 설명을 입력하십시오

마지막으로 더 큰 소스는 비 수렴 사변형을 생성합니다.

여기에 이미지 설명을 입력하십시오

스케일링에 실수를했습니다. 균질 좌표 은 및 방향으로 스케일 되었지만 으로 스케일되었습니다 . 이것이 동일한 변환이 다른 사변형을 생성 한 이유입니다.x y w(x,y,w)xyw

그에 따라 알고리즘을 수정했습니다.


1

호모 그래피를 로 추정하고 모델 오류를예상 평면이 거의 직각 일 때 문제가 발생할 수 있습니다. 와 같은 다른 호모 그래피 를 추정 하고 모델 오차를 로 계산 하여 견고성을 높일 수 있습니다. .\ sum_ {j = 1 \ dots n} \ | x_j-Hx_j ^'\ | H ^ ' x ^'= H ^ 'x \ sum_ {j = 1 \ dots n} \ | x_j-Hx_j ^'\ | + \ | x_j ^ '-H ^'x \ |x_i \sim Hx_i^'\sum_{j=1\dots n}\|x_j - Hx_j^'\|H^'x^' = H^'x\sum_{j=1\dots n}\|x_j - Hx_j^'\| + \|x_j^' - H^'x\|

Hartley and Zisserman-Computer Vision의 다중 뷰 형상 4.2 장, 특히 4.2.3 및 방정식 (4.8)을 참조하십시오.


표시된 사변형이 여기에 삽입됩니다. 착용감이 매우 좋기 때문에 서신에 대해 확신합니다. Hartley & Zisserman이 제안한 표준화 된 DLT 알고리즘을 사용한 다음 반복적 개선 및 안내 일치를 사용했습니다.
Libor

그러나 호모 그래피의 적합이 될 수 없습니다 아마에 있지 않은 (나무에 사람 아파트 건물에서 (동일 평면 상에 아마)와 사람 : 두 지점의 그룹이 첫 번째 그림과 같이 좋은 그룹 내에서 같은 비행기). 기본 행렬을 사용하지 않으셨습니까?
buq2

선이 해당 지점을 연결하고 모두 확인했습니다. 이미지가 정렬되면 모두 충족됩니다. 일치하지 않는 이미지 쌍을 제외하면 멋진 파노라마가 만들어집니다.
Libor

이미지는 회전하는 카메라를 사용하여 만들어 지므로 평면이 바뀌는 것처럼 보일 수 있지만 카메라가 광학 중심을 중심으로 회전하므로 호모 그래피가 추정됩니다. 초점 거리와 회전 행렬을 계산할 수도 있습니다. 그러나 문제는 다른 어딘가에 있습니다. 내 소프트웨어의 단점은 찾아야합니다 ...
Libor

아, 당신은 카메라 사이에 번역이 없다는 정보를 포함하지 않았습니다. 그렇다면 당신은 옳고 호모 그래피는 이미지 사이의 변형을 설명합니다.
buq2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.