본문 바로가기

개발자/Visual Odometry

초기 Homography 구하는 방식, Homography Refinement 작업까지 상세하게

반응형

1. 초기 Homography 계산(Initial Warp)

특허는 초기 호모그래피를 “도로가 거의 평면”이라는 가정 + 차량의 Ego-motion(전진거리, yaw/pitch/roll) 로 구성하여 계산합니다.

초기 워프 과정은 FIG. 5(501), FIG. 6, 그리고 본문 Detailed Description p. 3~4(특허 PDF p. 19~20)에 상세히 설명되어 있습니다.


1.1 목적

초기 호모그래피 H₀는 두 프레임(15a → 15b) 간의 도로 평면의 거시적 움직임을 제거하여
두 이미지에서 도로가 “거의 정렬된 상태”가 되도록 하는 것입니다.

이렇게 해야, 이후 Patch Tracking이

  • 스케일 변화
  • 이동 물체
  • 비평면 구조물
  • 조도 변화
    이 섞인 원본 이미지보다 훨씬 단순한 **“거의 평면 위의 잔차만 남은 상태”**에서 작동할 수 있습니다.

1.2 초기 호모그래피를 위한 입력 정보

특허는 실제 예시 파라미터를 명시합니다:

  • 카메라 높이 H = 1.25 m
  • 초점거리 f = 950 pixels
  • 차량 프레임 간 전진거리 dZ = 1.58 m

이 값은 FIG. 4, FIG. 5 설명 중에서 직접 제시됩니다.


1.3 초기 호모그래피 구성 요소

초기 호모그래피는 다음 요소들의 조합입니다.

(1) 차량 회전 보정 (yaw, pitch, roll)

  • FIG. 6 step 601:
  • “align the second image frame with the first by adjusting for image shift due to yaw/pitch/roll”

yaw는 수평 shift, pitch는 수직 shift로 근사합니다.
특허는 실제 코드까지 제공합니다:

yaw 기반 horizontal shift

 
dTheta = dt * yawRate dThetaPix = f * dTheta * pi/180 dx = round(dThetaPix) Hdx = eye(3) Hdx(1,3) = dx

pitch 기반 vertical shift

pitch는 “수평선 근처 큰 패치 추적”을 통해 찾습니다.

 
dy = findMotionY(I2, I1, y0) % horizon patch tracking Hdy = eye(3) Hdy(2,3) = dy

(2) 비례 스케일 변화(Forward motion에 따른 확대/축소)

전진한 거리(dZ)에 따라 도로 평면의 이미지 스케일은 변합니다.

특허에서 제시한 공식(초기 warp MATLAB 코드):

 
po = [x0; y0; 1]; p1 = [x1; y1; 1]; S = (H / (H + dZ)); % 도로 평면의 스케일 변화 ...

이 스케일 변화는 도로의 높이가 0인 기준 평면에 대한 호모그래피의 핵심 항목입니다.


(3) 평면 기반 호모그래피(road-plane homography)

특허는 다음을 강조합니다:

“road can be modeled as an almost planar surface…
points on the road move according to a homography.”

즉, (yaw+pitch 보정) × (forward-motion scale) 을 결합해 초기 평면 호모그래피 H₀를 구성합니다.

합성

특허는 다음과 같은 방식으로 합성하라고 명시합니다:

“rotation warp (yaw/pitch) and road model warp can be combined into a single warp
so only one bilinear interpolation is required.”

즉,

H0=Hpitch⋅Hyaw⋅Hroad-motionH_0 = H_\text{pitch} \cdot H_\text{yaw} \cdot H_\text{road-motion}

이것이 초기 정렬용 H₀입니다.


1.4 초기 워핑의 결과

FIG. 7a — 초기 정렬 후 warped image 15w
FIG. 7b — 15w − 15a difference image

차량/도로의 큰 구조는 맞지만, 여전히 미세하게 misalignment가 남습니다.

이 남은 misalignment는 Patch Tracking + RANSAC 정제 단계에서 해결합니다.


2. Homography Refinement (정련 호모그래피)

이 단계는 특허 본문의 “Tracking the image points” 이후의
Robust Fitting → refined warp 과정이며 FIG. 5 (507~513)의 핵심입니다.


2.1 왜 Refinement이 필요한가?

초기 호모그래피 H₀는

  • yaw/pitch를 shift로 근사
  • 카메라 파라미터/센서 오차
  • 차량 진동
  • 도로 평면이 완전한 평면이 아님

때문에 완벽하지 않습니다.

또한 초기 warp 후에도 FIG. 7b처럼
픽셀 단위 misalignment가 남기 때문에,
이를 정교하게 보정해야 합니다.


2.2 Patch Matching + NCC 기반 Tracking

FIG. 8a~8b와 본문 pp. 5~6에서 설명됨.

절차

  1. 도로 영역(trapezoid)에 고정 grid 점 84 생성
    • 가로 20px 간격
    • 세로 10px 간격
  2. 각 점 주변 17×17 patch를 추출
  3. warped image 15w에서 NCC로 최적 shift 탐색
    • X축 ±4px
    • Y축 ±10px
    • sub-pixel refine: 0.1 px resolution
  4. invalid 추적 제거
    • NCC score < 0.7
    • forward-backward check 실패

결과 → tracked points 509
(원 위치 → 추적 위치)


2.3 RANSAC 기반 Homography Robust Fitting

본문 p. 6–7 설명:

절차

  1. 임의 4점 선택
  2. 이들로 임시 H_candidate 계산
  3. 전체 점에 대해 reprojection error 계산
  4. threshold 내에 들어오는 점 개수(inlier count) 측정
  5. 가장 많은 inlier를 내는 모델 H_best 선택
  6. H_best inlier 들만으로 LS(최소자승) 재추정 → H_refined

이 H_refined가 “도로 평면의 진짜 호모그래피”입니다.

특허에서 직접 언급:

“At the end of the process, the four best points are used to again transform the points and all inliers are used to compute a homography using least squares…
This homography is used to correct the initial alignment warp.”


2.4 Final refined Homography = H_final

특허는 다음 수식을 명시:

Hfinal=Hinitial⋅HrefinementH_\text{final} = H_\text{initial} \cdot H_\text{refinement}

본문 p. 11 (PDF 기준 p. 23)

정확히는:

“The result of the RANSAC is the correction homography H2fixed…
H2final = Hall * H2fixed”

여기서

  • Hall = 초기 호모그래피
  • H2fixed = RANSAC 정제 호모그래피

2.5 Refinement 후 결과

FIG. 9a — refined warp 후 정렬된 이미지
FIG. 9b — refined warp 후 difference image

도로나 차선 구조가 거의 완벽하게 align됨.

이제야 optical flow residual을 계산하면
“도로 평면이 제거된 순수 높이잔차(Δv)만 남는 상태”가 됩니다.


3. 전체 요약

초기 Homography (H₀)

  • yaw shift
  • pitch shift
  • forward-motion 스케일 변화
  • 도로 평면 모델 기반
  • 하나의 warp로 합성
    거시적 평면 정렬

Patch Tracking

  • fixed grid
  • NCC + subpixel refine
  • forward/backward check
    수백 개의 대응점 획득

RANSAC + LS Refinement

  • 임의 점 4개로 H 후보 생성
  • inlier 최대 모델 선택
  • inlier들로 LS 최종 H_refined
  • H_final = H_initial × H_refined
    정밀 평면 정합

필요하시면

  • 초기 호모그래피 수식 (yaw/pitch 포함한 완전 수식)
  • RANSAC 단계 그림
  • refined warp → residual map 예시 흐름
    을 직접 다이어그램 형태로 만들어 드릴 수 있습니다.
반응형