1) 이상적(완벽)한 refined homography warping 이후 — residual(광류 기준) ≈ 0 이여야 하는 것
• 도로 표면에 고정된 텍스처/페인트(예: 차선표시, 중앙선, 균열 패턴, 아스팔트 질감)
→ 이들은 도로 평면 위에 있으므로 homography로 정확히 정렬되면 optical-flow residual(특히 flow 벡터)은 0 근처여야 합니다. (즉 ‘보이지 않는다’ — flow 기반으로는 검출되지 않음). 
단, intensity(밝기) 차이(광원 변화, 카메라 노출 등)가 있으면 difference image에는 선이 남을 수 있음. 하지만 residual optical flow 관점에서는 거의 0이 되어야 함. 
• 카메라 캘리브레이션이 올바른 경우(렌즈 왜곡 보정 완료) → 왜곡으로 인한 비선형 이동이 남지 않아 planar points가 잘 맞음. 
2) refined warp 후에도 남아 있어야(=큰 residual) 하는 것들 — ‘관측 가능한 비영(Non-planar / 동적 현상)’
• 차량·사람·자전거 같은 움직이는 물체 (도로에 ‘고정’되지 않은 것) → 큰 residual flow. 
• 위로 솟아오른 구조물(연석, 보도·sidewalk, 방지턱, 과속방지턱, 차량 루프 등) → 양의 residual (특허은 +0.5 px 등 위쪽 기준을 제시). 
• 도로 아래로 내려간 구조물(패인 곳, 맨홀·sunken manhole) → 음의 residual (특허 예: -0.5 px 이하로 명확히 보임). 
• 차량 그림자(특히 그림자가 고정된 지면과 다른 속도로 바뀌면) — 그림자 자체가 비제로 residual을 만들 수 있음(특히 그림자가 차량에 붙어 있으면 차량과 같이 움직이므로 residual이 큼). 
• 높이(또는 깊이) 변화로 인한 국부적인 패치의 상이한 스케일/비선형 변형(예: 가드레일, 표지판 다리 등 도로 평면과 다른 법선 갖는 구조물) → residual 발생. 
3) 안보이는(또는 거의 0으로 나오는) 것들 — 요약
• 도로 위에 고정된 모든 페인트(차선), 아스팔트 텍스처, 작은 표면 패턴 → residual ≈ 0 → optical-flow 기반 검출로는 사라짐. 
4) warp 성공/품질 판별용 실전 체크리스트 (빠르게 돌려볼 것)
1. RANSAC inlier 갯수 & 분포
• 특허: 일반적으로 100개 이상의 inliers + 넓게 퍼져 있는 inlier 분포는 좋은 신호. (inlier 수·spread가 낮으면 planar 모델이 안 맞았을 가능성). 
2. residual flow 히스토그램
• 대부분의 road-region 포인트의 residual magnitude가 **작게(예: |u|,|v| < 0.2 px)**로 몰려 있는가?
• 꼬리(>0.5 px 또는 <-0.5 px)가 소수의 비도로(non-planar) 영역에 집중되어 있는가? 특허는 ±0.5 px를 실용적 기준으로 사용. 
3. quiver(벡터) 플롯 — dense grid
• 도로 영역(허리선~전방 트랙)에 벡터들이 거의 보이지 않거나 작게 모여 있는가?
• 남아있는 큰 벡터는 차량·맨홀·연석 등 비평면 구조물에 국한되는가? (특허 Fig.10a 참조). 
4. row-average residual (Fig.12/14 방식)
• 각 이미지 row별 평균 residual이 planar 예측 curve(특허의 planar flow curve)와 잘 맞는가? 호라이즌(y0) 위치가 일관적인가? (pitch 보상 확인). 
5. 차영상 차이 이미지(= warped2 − ref ) 확인
• 정렬이 잘 되면 lane 마크(같은 plane)은 움직이지 않아 optical-flow residual은 0이지만, 밝기 변화는 남을 수 있음. difference image에서 lane이 거의 사라지는지 확인. 
6. 경계/black regions 체크
• 이전 프레임을 최근 프레임으로 warp할 때 생기는 **보이지 않는(새로 보이는) 패치(black/invalid pixels)**가 많은가? (특히 초기 warp 방향에 따라 생기는 블랭크 영역 문제). 특허는 최신 프레임 좌표계로 warp하는 게 장점이라고 언급. 
5) 실제 숫자/임계값(특허에서 제안된 값들)
• inliers > 100 이면 good fit 기대. 
• residual flow > +0.5 px → elevated (sidewalk 등) 확실 신호. residual flow < −0.5 px → sunken (manhole 등). 
• flow penalty term: variational solver에서 planar에서 멀어지는 것을 억제하는 항(예: penalty for |flow| > 1 px) 권장. 
6) 자주 발생하는 실패 원인(그리고 점검 방법)
• 캘리브레이션 누락 / 왜곡 보정 미흡 → planar 점들이 제대로 정렬되지 않음. (체크: reprojection error, undistorted image 확인). 
• 잘못된 vanishing point/horizon(y0) → 거리 변환과 row→metric mapping이 틀어짐. (체크: Fig.14 스타일로 y0 확인). 
• 초기 warp에 사용한 차량 motion(또는 pitch) 추정 오류 → refined homography 보정으로 대부분 보정되지만 큰 초깃값 오류면 실패. (체크: H_initial·H_correction 곱이 잘 수렴하는지). 
• 조명/노출 변화, 강한 그림자, 비 또는 반사 → difference image나 correlation score에 영향. (대응: bandpass/high-pass 필터링으로 밝기 변화 억제 권장). 
• 텍스처가 너무 적은(모노톤 아스팔트) 구간 → NCC/patch matching 불안정 → 보다 촘촘한 그리드나 대역필터 필요. 
7) 빠른 디버깅 절차 (권장 순서, 바로 적용 가능)
1. RANSAC 결과: inliers 수 + inlier 분포 시각화(이미지 위에 표시). (기대: >100, 넓게 퍼짐). 
2. Dense residual flow 계산 → 히스토그램 + quiver(작은 subsample). 확인: 도로 대부분이 0 근처인지, 이상값은 비도로 영역인지. 
3. Row-average plot (y coord vs planar-flow) — 호라이즌과 pitch가 맞는지 시각적으로 검증. 
4. 차영상(정렬 전/후), difference image, 그리고 residual y-component을 오버레이해서 비평면 구조가 일관되게 보이는지 확인. 
5. 만약 lane이 difference image에 남아 있는데 flow는 0이라면: 밝기/노출 차이 때문에 남는 것이므로 flow 기반 판단은 정상임. 
8) 결론 — 당신이 물어본 ‘도로 위의 lane들도 다 0이 되어 안보이려나’에 대한 직답
• 네. lane marking은 도로 평면에 그려진 것이므로 정확한 refined homography + 올바른 optical-flow 계산을 사용하면 lane들의 residual optical flow는 거의 0이 되어 flow 기반으로는 “안 보이게”(사라지게) 됩니다. 다만 밝기/노출/색 대비 변화는 difference image에 남을 수 있고, intensity-based 방법으로는 보일 수 있습니다. (특허에서도 lane이 planar-flow와 거의 같아 사라진다고 설명). 
⸻
원하시면 지금 바로 (1) 당신이 가진 warped image / residual map의 몇 가지 실측 지표를 계산하는 체크리스트(코드 스니펫 포함), 또는 (2) quiver·히스토그램·row-average를 출력하는 간단한 시각화 파이프라인을 Matlab / Python(NumPy + OpenCV + Matplotlib) 코드로 바로 짜서 드릴게요. 어떤 포맷 원해? (Matlab 코드가 특허 예제에 많이 등장하므로 Matlab 버전 포함 가능).
'개발자 > Visual Odometry' 카테고리의 다른 글
| 초기 Homography 구하는 방식, Homography Refinement 작업까지 상세하게 (0) | 2025.11.26 |
|---|---|
| 제미나이 구현 (0) | 2025.11.26 |
| 세 특허의 기술적 차이점 (0) | 2025.11.19 |
| US 10,984,259 B2 번역 (0) | 2025.11.18 |
| Positive/Negative Optical flow (0) | 2025.11.16 |