본문 바로가기

개발자/Visual Odometry

RP 개념 정리

반응형

1) 표기·좌표계와 문제정의

  • 영상 좌표는 소문자 (x,y)(x,y), 세계 좌표는 (X,Y,Z)(X,Y,Z). 차량 기준 우측 손 좌표계XX: 전방(주행방향), YY: 좌측, ZZ: 위.
  • 카메라 모델은 핀홀(필요 시 도로를 2차 곡면으로 근사 가능하나 기본은 평면 도로 모델).
  • 목표는 전방 카메라만으로 도로면의 수직 편차(범프/요철/함몰) 를 cm 단위로 추정해 “거리–높이 프로파일”을 만들고, 여러 프레임의 정보를 안정화된 좌표계(stabilized world/road frame) 에서 일관되게 통합하는 것.

2) 왜곡·롤링셔터 보정 (Method 500, Fig. 5)

  1. 방사왜곡 보정: 인라이어 포인트(추적에 유효한 점) 좌표를 렌즈 파라미터로 보정.
  2. 롤링셔터 보정: 기준 라인 y0y_0를 정하고, 각 픽셀의 yy에 따른 노출 시간 오프셋 δt=(y−y0)⋅tline\delta t=(y-y_0)\cdot t_{\text{line}}를 구해 보정.
  3. 3D 투영–전방 이동 보정–역투영: 기본 도로 모델(통상 n=[0,0,1]n=[0,0,1], 카메라 높이 HH)로 이미지 점을 도로 평면의 3D 점으로 사영 → 차량 속도 vvδt\delta t전방 좌표X←X+vδtX\leftarrow X+v\delta t 만큼 보정 → 다시 영상으로 역사영.
    → 결과: “롤링셔터+왜곡”의 시간·기하 오차가 줄어든 보정 좌표 확보.

3) 단일 프레임 기준의 안정 좌표계 생성 (Method 600, Fig. 6A–6D)

핵심 개념: 매 시점 도로 평면을 새로 잡아 쓰지 않고, 이전 평면 추정치와 현재 추정치, 그리고 최근 KK프레임 평균값을 융합해 안정화된 기준 평면을 만든 뒤, 이 기준에서 잔차를 계산한다.

3.1 연속 프레임 호모그래피 및 분해 (602–612)

  • 두 프레임(연속 또는 거리가 충분히 떨어진 pair)에서 초기 추정 H0H_0로 포인트 대응을 얻고, 왜곡·롤링셔터 보정 좌표로 강인 추정(RANSAC/IRLS) 하여 도로 호모그래피 HH 계산.
  • HH를 분해해 ego-motion: 회전 RR과 병진 TT, 그리고 도로 평면의 법선 NcurrN_{\text{curr}}, 거리 DcurrD_{\text{curr}} 추정.

3.2 이전 평면의 갱신(혼합) (614)

  • 직전 평면 추정 (Nprev,Dprev)(N_{\text{prev}},D_{\text{prev}})를 방금 구한 R,TR,T좌표 변환(update_{R,T}) 하여 (Nupdate,Dupdate)(N_{\text{update}},D_{\text{update}})를 만든 뒤,
    가중 혼합으로 안정 평면 (Nnew,Dnew)(N_{\text{new}},D_{\text{new}}) 생성:

(Nnew,Dnew)=α⋅updateR,T(Nprev,Dprev)+β⋅(Ncurr,Dcurr)+γ⋅history(Ncurr,Dcurr)(N_{\text{new}},D_{\text{new}})= \alpha\cdot \text{update}_{R,T}(N_{\text{prev}},D_{\text{prev}}) +\beta\cdot(N_{\text{curr}},D_{\text{curr}}) +\gamma\cdot \text{history}(N_{\text{curr}},D_{\text{curr}})

  • 논문 예시는 α=0.8,  β=0.1,  γ=0.1\alpha=0.8,\;\beta=0.1,\;\gamma=0.1 (합=1). **history( )**는 최근 KK개 값 평균. → ‘한 프레임짜리 우연/노이즈’보다 연속성을 중시.

3.3 ‘far’ 프레임으로의 체이닝 (616–620)

  • 현재 프레임과 ‘충분히 떨어진’ 과거 프레임(차량이 예: ≥0.7 m 전진) 사이의 누적 모션을 얻기 위해, 연속 프레임들의 [Ri,Ti][R_i,T_i]행렬 체이닝Rfar,TfarR_{\text{far}},T_{\text{far}}를 구함.
  • 안정 평면 (Nupdate,Dupdate)(N_{\text{update}},D_{\text{update}})Rfar,TfarR_{\text{far}},T_{\text{far}}새 호모그래피 HfarH_{\text{far}} 를 구성(내·외부 파라미터 KK 포함).
  • 한편, 왜곡이 남아있는 왜곡 공간에서도 같은 체이닝을 하여 HdfarH_{\text{dfar}} (distorted-space homography) 생성.
    → 목적: 실제 영상(왜곡 포함)과 이론 좌표(왜곡 제거)의 양쪽 공간에서 일관된 워핑을 얻기 위함.

3.4 차량 궤적 투영과 스트립 워핑 (622–628)

  • 차량 속도·요/가속도 등 차량 신호로 세계 좌표의 바퀴 경로(path) 를 계산 → 안정 평면으로 영상에 투영(필요 시 먼저 undistort한 가상 영상으로 투영 후 다시 distort 적용).
  • 과거 프레임 IfarI_{\text{far}}의 경로 스트립(예: 폭 31px)HdfarH_{\text{dfar}}현재 I2I_2 쪽으로 워핑 → 잔차(residual) dyd_y서브픽셀 정렬로 산출.
    • 정렬은 strip 안 행(row)별로 수행, 정·역 방향 검증과 상관 점수로 강건화.

3.5 진잔차 계산과 높이/거리 환산 (630–634)

  • 매칭 점들을 undistort 좌표계로 가져와 HfarH_{\text{far}}로 다시 워핑한 뒤, 원 점들과의 차이로 “왜곡 영향 제거된 진짜 잔차” 계산.
  • dyd_y와 undistort 좌표 (x,y)(x,y)로부터, 카메라 높이 HH, 초점거리 ff, 소실선 위치 등을 이용해 거리 ZZ높이 hh 를 산출 → 단일 프레임 프로파일 완성.
  • 시각적으로는, 평면 정합 후에도 남는 작은 곡률/잔차가 곧 범프/함몰의 신호가 됨.

4) 멀티프레임 정합·통합 (Method 800, Fig. 8, Fig. 9–11)

단일 프레임 프로파일 Pcurr(Z)P_{\text{curr}}(Z)과, 같은 구간을 보는 최근 KK 개 단일 프레임 프로파일 {Pk}\{P_k\}기울기(스케일) aa오프셋 bb 로 조정해 서로 맞춘 뒤, 중앙값(robust median) 으로 통합하여 멀티프레임 프로파일을 만든다.

4.1 비용함수와 SGD 정렬 (804)

  • 비용함수 E(a,b)=λ1D+λ2S+λ3RE(a,b)=\lambda_1 D+\lambda_2 S+\lambda_3 R:
    • 데이터항 DD: PcurrP_{\text{curr}}{Pk}\{P_k\} 차이에 대한 L1 또는 포화(norm) 합.
    • 평활항 SS: PcurrP_{\text{curr}} (혹은 Pcurr−(aZ+b)P_{\text{curr}}-(aZ+b))의 연속성/매끄러움 유지(차분의 L1/L2, 또는 포화 노름).
    • 정규화 RR: ∣a∣|a|, ∣b∣|b|가 과도하게 커지지 않도록 패널티(예: a2+b2a^2+b^2).
  • 확률적 경사하강(SGD)a,ba,b를 최적화. 계산 시 전 거리 구간을 다 쓰지 않고 무작위(또는 고정 시퀀스) 표본 지점만으로 빠르게 갱신.

4.2 중앙값 통합 (806)

  • 최적 a,ba,b로 보정된 PcurrP_{\text{curr}}과 보정된 {Pk}\{P_k\}를 각 ZZ 위치에서 중앙값으로 통합 → 멀티프레임 프로파일.
    → 결과: 평탄 구간 분산이 크게 축소(실례: ±0.05 m대), 범프 높이는 보존.

4.3 범프 ‘눌림’ 보정(스피드범프 보존)

  • 단순 정렬은 프로파일 전체를 0으로 ‘끌어내려’ 범프 높이를 낮게 만들 수 있다.
  • 이를 막기 위해 특정 높이(예: 3.5 cm) 초과 구간에서는 데이터항 DD를 무시(또는 가중 축소)하여 범프 봉우리 보존.

5) 신뢰도(Confidence) 산출과 이상신호 제거

5.1 단일 프레임 신뢰도

  • 정·역방향 일치: 전/후행 프레임으로부터의 잔차가 크기 같고 부호 반대인지(≤1px 오차) 확인, 아니면 신뢰도 0.
  • 상관 곡률: strip 정렬의 정규화 상관 행렬 곡률이 클수록(텍스처/피크 날카로움↑) 신뢰도↑.
  • 경계/ROI 밖: 스트립 끝단·프리 스페이스 밖은 신뢰도↓ 또는 제외.

5.2 멀티프레임 신뢰도

  • 중앙값 계산에 쓰인 표본 개수 NN분산으로 산출.
    • N<2N<2면 0 처리, N≥2N\ge2면 분산 작을수록 ↑, 차량 속도와 함께 스케일링.
  • 최종적으로 0~5 같은 정규화 점수로 출력해 다운스트림(차량제어)에서 활용 용이.

5.3 그림자/이동체 억제

  • 차량·보행자 그림자: 다른 센서/디텍터(차량·보행자·레이더) 정보와 상대속도로 예상 잔차를 추정, 측정 잔차가 이 패턴에 가까우면 해당 점들의 신뢰도↓(혹은 프레임 무효화).
  • 나뭇가지 그림자(천천히 흔들리는 soft edge):
    • 시간에 따라 부호가 바뀌는 등 변동성이 큰 지점,
    • FOE(팽창점) 방향과 불일치하는 횡이동 성분,
    • 소프트 에지(그라디언트 완만) 특징 등을 조건으로 가중 축소.
  • 필요 시 DNN으로 그림자 패치 vs 비그림자를 학습해 추가 필터링.

5.4 프리 스페이스(Free Space) 활용

  • 세그멘테이션/차량·장애물 검출로 도로 ‘빈 공간’ 마스크를 얻어, 인라이어 샘플을 프리 스페이스에 집중시키고 그 밖은 가중 축소 또는 제외 → 호모그래피·잔차 추정의 강건성 상승.

6) 1D 샘플링과 차량 네트워크 전송 (Method 1200, Fig. 12–14)

현실 운용 포인트: CAN/LIN/이더넷 대역은 한정. 모든 구간의 세밀 샘플을 매 프레임 전송하기 어려움.

  • 핵심 지점만 버스트 전송: 예) “바퀴 앞 7 m”에서 10개 포인트를 100 ms마다 한꺼번에 전송(=내부적으로는 10 ms 간격 샘플처럼 사용).
  • 프레임 간 스무딩/오버샘플: 20개를 뽑아 앞 10개와 뒤 10개를 가중 평균해 프레임 경계 불연속 최소화.
  • 지연(latency) 보정: 파이프라인·통신 지연 TLT_L와 차량 속도 vv를 반영해 샘플 위치를 vTLvT_L 만큼 앞당기거나, 타임스탬프 기반 수신 측 보정(필요 시 2 ms 간격 오버샘플 제공).
  • 응용: 적응형 서스펜션 제어, 제동/자세제어 선제 대응. 좌/우 바퀴 경로 각각의 프로파일과 신뢰도를 함께 제공.

7) 성능·시각적 결과 해석 포인트 (Fig. 7, 9–11, 13–14)

  • 안정좌표계 도입 전: 평탄 구간 분산이 커서(±0.1 m대) 범프 탐지가 흔들림.
  • 도입 후: 분산이 약 절반 수준으로 감소(±0.05 m대), 범프는 8 cm 전후로 선명.
  • 미세 튜닝(기울기·오프셋) + 범프 보존: 분산을 더 줄이되 봉우리(범프 높이)는 유지.
  • 1D 시퀀스(7 m 고정점): 시간축으로 보면 범프가 ‘오른쪽에서 왼쪽’으로 이동해 0에 도달(차륜 접촉)하는 전형적 패턴이 그려짐(운용상 매우 유용).

8) 구현·실무 주의점

  • 캘리브레이션(내·외부, 왜곡, RS 파라미터) 정확도는 성능에 직결.
  • 평면 가정의 유효 범위: 급커브·횡경사·크라운·비정형 방지턱 등은 잔차 증가. 필요 시 이차 곡면 모델 보강.
  • 포토메트릭 요인: 비·젖은 노면·헤드라이트/태양 고대비는 상관점수와 곡률 신뢰도에 영향 → 하이패스/밴드패스 전처리, 노출 제어, 역광 가중 조정.
  • 속도·프레임율·베이스라인(프레임 간 이동): 충분한 전진량이 있어야 체이닝 및 잔차가 안정.

9) 한 줄 정리

“도로 평면을 기준으로 프레임을 정합해 영상 운동을 거의 0으로 만들고, 그 ‘잔차’만을 안정 좌표계에서 거리–높이로 환산한 뒤, 시간 축으로 강건하게 누적해, 단안 카메라만으로도 센티미터급 도로 요철을 뽑아내는 방식.”

필요하시면, 위 흐름을 의사코드/모듈 다이어그램으로 풀거나, 파라미터 튜닝 가이드(예: 스트립 폭, K값, 임곗값, λ1,2,3\lambda_{1,2,3})와 함께 “실제 주행 데이터에 붙일 체크리스트”로도 정리해 드릴게요.

반응형

'개발자 > Visual Odometry' 카테고리의 다른 글

Positive/Negative Optical flow  (0) 2025.11.16
RP 특허 history  (0) 2025.11.13
면접 형식의 로드프로파일 기술 정리  (0) 2025.11.13
도로 로드파일 관련 논문  (0) 2025.10.27
Road Vertical devication Estimation  (0) 2025.10.25