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
pitch 기반 vertical shift
pitch는 “수평선 근처 큰 패치 추적”을 통해 찾습니다.
(2) 비례 스케일 변화(Forward motion에 따른 확대/축소)
전진한 거리(dZ)에 따라 도로 평면의 이미지 스케일은 변합니다.
특허에서 제시한 공식(초기 warp MATLAB 코드):
이 스케일 변화는 도로의 높이가 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에서 설명됨.
절차
- 도로 영역(trapezoid)에 고정 grid 점 84 생성
- 가로 20px 간격
- 세로 10px 간격
- 각 점 주변 17×17 patch를 추출
- warped image 15w에서 NCC로 최적 shift 탐색
- X축 ±4px
- Y축 ±10px
- sub-pixel refine: 0.1 px resolution
- invalid 추적 제거
- NCC score < 0.7
- forward-backward check 실패
결과 → tracked points 509
(원 위치 → 추적 위치)
2.3 RANSAC 기반 Homography Robust Fitting
본문 p. 6–7 설명:
절차
- 임의 4점 선택
- 이들로 임시 H_candidate 계산
- 전체 점에 대해 reprojection error 계산
- threshold 내에 들어오는 점 개수(inlier count) 측정
- 가장 많은 inlier를 내는 모델 H_best 선택
- 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 예시 흐름
을 직접 다이어그램 형태로 만들어 드릴 수 있습니다.
'개발자 > Visual Odometry' 카테고리의 다른 글
| ROAD VERTICAL CONTOUR DETECTIONUSING A STABILIZED COORDINATEFRAME #1 (1) | 2026.01.02 |
|---|---|
| Vertical Contour 코어 알고리즘 스켈레톤 코드 (0) | 2025.12.07 |
| 제미나이 구현 (0) | 2025.11.26 |
| Homography refinement 잘 됐는지 확인하기 (0) | 2025.11.24 |
| 세 특허의 기술적 차이점 (0) | 2025.11.19 |