기술 필드 노트 #11 · 2026년 10월

공장 캘리브레이션을 믿어도 되나? 코너 관측 23만 7천 개로 한 어안 스테레오 카메라 독립 검증

기술노트 #11 · 어안 스테레오 공장 캘리브레이션 독립 검증 (ODL-EGO S1 촬영 리그)

많은 스테레오 장비가 공장 캘리브레이션 파일과 함께 오지만, 데이터를 만드는 쪽은 대개 이를 검사하지 않습니다. 우리 R8 장비와 함께 받은 공장 캘리브레이션을 녹화 11개의 ChArUco 코너 관측 237,393개로 검사했습니다. 관측은 1600×1200 화면에서 가로 107–1512px, 세로 154–990px를 덮습니다. 내부 파라미터를 고정했을 때 재투영 잔차 중앙값은 타깃이 닿은 모든 영역에서 0.28px 수준이었습니다. 스테레오 에피폴라 잔차는 중앙 근처 0.25px에서 반경 550–700px 구간 1.13px로 커졌습니다. 우리 뷰 381개로 따로 한 어안 재캘리브레이션은 초점거리가 공장값과 0.4% 이내로 맞았지만 스테레오 일관성은 더 나빴습니다(0.56px 대 0.34px). 그래서 공장 캘리브레이션을 그대로 쓰고 우리 결과는 검증용으로 씁니다. 쇠자로 잰 타깃 크기로 환산하면 두 방법 모두 공장값보다 약 0.4% 긴 좌우 간격을 가리킵니다.

중앙값 0.28px (90% 0.57)재투영 잔차 (왼쪽, 내부 파라미터 고정)
0.25px에피폴라 잔차, 중앙 (반경 200px 이내)
1.13px에피폴라 잔차, 반경 550–700px
480.6 대 482.4px (−0.36%)초점거리, ODL 재캘리브레이션 대 공장
65.36mm (공장 65.08mm)쇠자 환산 재캘리브레이션의 좌우 간격

왜 중요한가

캘리브레이션 파일은 측정값이 아니라 주장이다

스테레오 영상에서 뽑는 모든 미터 단위 값(깊이, 손의 3D 위치, 물체 크기)은 캘리브레이션을 거칩니다. 공장 파일은 자기 캘리브레이션 영상에 대한 자기 피팅 품질을 보고할 뿐, 우리 녹화와 우리 작업 거리, 화면 전체에서 어떻게 동작하는지는 알려 주지 않습니다.

그래서 공장 캘리브레이션을 하나의 가설로 보고, 그것을 만드는 데 쓰이지 않은 데이터로 검사했습니다.

데이터

무엇으로 검사했나

R8 장비 1대로 2026-10-26에 찍은 녹화 11개의 코너 관측 237,393개입니다. 리그를 고정하고 타깃을 손에 든 세션, 벽 타깃 앞에서 리그를 손에 들고 거리와 화면 끝을 바꾼 세션, 빠른 회전 세션이 포함됩니다. 인쇄한 ChArUco 판 두 종류(칸 29.17mm 9×6, 칸 53.4mm 5×3)를 썼고, 곡면 모니터에 띄운 타깃이 찍힌 프레임은 제외했습니다.

공장 파일(Kalibr 형식, equidistant 어안 모델, 800×600)은 원래 해상도 1600×1200에 맞게 변환했습니다(초점거리와 주점 ×2, 중심 0.5px 이동).

측정 방법

데이터가 실제로 있는 곳에서 두 가지 잔차를 잰다

재투영 잔차(왼쪽 카메라): 프레임마다 공장 내부 파라미터를 고정하고 타깃 자세만 구한 뒤, 판을 다시 투영해 검출된 코너와의 픽셀 거리를 쟀습니다. 렌즈 모델을 검사합니다.

에피폴라 잔차: 좌우에서 짝지어진 모든 코너에 대해, 공장 스테레오 외부 파라미터가 예측하는 에피폴라 선에서 오른쪽 코너가 얼마나 떨어져 있는지를 픽셀로 쟀습니다. 타깃 크기나 자세와 상관없이 스테레오 기하를 검사합니다.

두 잔차를 200px 격자와 주점으로부터의 반경별로 정리했습니다. 비교를 위해 우리 뷰 381개로 OpenCV 어안 재캘리브레이션을 따로 하고, 같은 방법으로 평가했습니다. 데이터를 반씩 나눠 반복도 했습니다.

결과 1

타깃이 닿은 곳에서는 렌즈 모델이 맞는다

재투영 잔차 중앙값은 전체 0.28px였고, 데이터가 있는 모든 반경 구간에서 0.25–0.31px 사이였습니다. 가장 바깥 구간의 90% 값이 큰 것은 공장 모델이 제대로 덮지 못하는 왼쪽 아래 구석 칸의 코너들 때문입니다.

결과 2

어안 화면 바깥쪽으로 갈수록 스테레오 일관성이 떨어진다

에피폴라 잔차는 중심 200px 이내 0.25px에서 다음 구간들로 가며 0.35, 0.53, 1.13px로 커졌고, 왼쪽 아래 구석 칸에서는 10px을 넘었습니다. 녹화별 중앙 잔차는 0.20–0.75px였습니다.

스테레오 깊이는 가로 시차에서 나오므로, 바깥쪽의 약 1px 세로 어긋남이 그대로 깊이 오차가 되지는 않습니다. 다만 그 영역에서 스테레오 모델이 외삽하고 있다는 신호입니다. 기술노트 #09에서도 미터 스케일이 중앙에서는 믿을 만하고 왼쪽 끝에서는 수 % 틀렸습니다.

공장 캘리브레이션과 ODL 캘리브레이션의 화면 영역별 에피폴라 잔차 히트맵
200px 칸별 에피폴라 잔차 중앙값. 왼쪽: 공장 캘리브레이션, 오른쪽: 우리 재캘리브레이션. 빈칸은 점이 30개 미만인 곳.
두 캘리브레이션의 반경별 에피폴라·재투영 잔차 선 그래프
주점으로부터 반경별 에피폴라(실선)·재투영(점선) 잔차 중앙값.
주점으로부터 반경점 수공장 에피폴라 중앙값(px)공장 에피폴라 90%(px)ODL 재캘리브레이션 에피폴라 중앙값(px)공장 재투영 중앙값(px)
0-200 px119,7840.250.690.420.28
200-400 px69,2720.350.920.520.31
400-550 px25,2360.531.221.000.29
550-700 px19,7161.132.092.290.25
700-1000 px3,3852.4032.824.280.26

결과 3

우리 재캘리브레이션은 렌즈는 맞추고, 스테레오 기하는 못 맞췄다

따로 한 재캘리브레이션은 재투영 품질이 같았고(0.28px) 초점거리도 공장값과 0.36% 이내였습니다(반씩 나눈 결과끼리 0.14px 이내). 그러나 스테레오 에피폴라 잔차는 모든 반경에서 더 나빴습니다(전체 0.56px 대 0.34px). 손에 들고 찍은 우리 뷰는 전용 공장 장비보다 두 카메라 사이 회전을 구하는 데 불리합니다.

스케일은 두 방법이 일치합니다. 명목 칸 크기로 피팅한 뒤 쇠자로 잰 인쇄 배율(97.2%)로 환산하면, 재캘리브레이션의 좌우 간격은 65.36mm(반씩: 65.14, 65.58mm)로 공장 65.08mm보다 0.43% 깁니다. 기술노트 #09에서는 같은 자 기준으로 공장 캘리브레이션 깊이가 0.5% 짧았습니다. 독립된 두 방법이 같은 방향을 가리키지만, 반씩 나눈 결과의 차이(±0.34%)도 비슷한 크기라 보정값은 추정으로 보고합니다.

모델뷰 수왼쪽 fx(px)왼쪽 cx, cy(px)오른쪽 fx(px)좌우 간격(mm, 쇠자 환산)좌우 회전(°, x/y/z)
공장—482.35807.4, 613.1481.9265.08+0.20 / -0.26 / +0.005
ODL 재캘리브레이션 all381480.62807.9, 609.8480.6365.36+0.48 / -0.14 / +0.012
ODL 재캘리브레이션 half1191480.54808.1, 609.6480.3765.14+0.47 / -0.09 / +0.008
ODL 재캘리브레이션 half2190480.68807.7, 610.0480.8865.58+0.49 / -0.20 / +0.016

해석

결정, 그리고 데이터 사용자에게 주는 의미

결정: ODL-EGO S1 납품에는 제조사 캘리브레이션을 수정 없이 쓰고, 이 검증 결과를 함께 제공합니다. 검증됨: 우리 녹화에서 재투영 약 0.3px, 중앙 에피폴라 약 0.25–0.35px. 추정: 약 0.4–0.5% 스케일 보정.

해석: 이 어안 스테레오의 미터 단위로 쓸 만한 영역은 화면 중앙부(주점에서 대략 550px 이내)입니다. 구석으로 갈수록, 구석까지 촘촘히 덮는 캘리브레이션이 나오기 전까지는 스테레오를 근사값으로 다뤄야 합니다.

  • 녹화별 중앙 에피폴라 잔차를 QC 항목으로 보고합니다.
  • 반경 약 550px 밖은 스테레오 3D 신뢰도가 낮은 영역으로 표시합니다.
  • 이 검증을 장비마다, 그리고 충격을 받은 뒤마다 다시 돌립니다.

연구의 한계

  • R8 스테레오+IMU 장비 1대, 실내 사무실 1곳, 하루(2026-10-26) 측정 결과이며 다른 장비 전체를 대표하지 않습니다.
  • 모든 측정은 자동 처리(OpenCV 검출·삼각측량·피팅)입니다. 사람이 독립적으로 다시 측정하지 않았으므로 알고리즘 기반 예비 분석(AI-only preliminary analysis)입니다.
  • 공장 캘리브레이션 파일은 제3자 자료이므로 평가에만 사용하고 재배포하지 않습니다. 원본 영상은 사람과 사무실 내부가 찍혀 있어 공개하지 않습니다.
  • 관측 범위는 가로 약 107–1512px, 세로 154–990px이며, 화면 구석과 아래쪽 끝은 거의 덮지 못했습니다.
  • 대부분 손에 들고 찍어 흔들림이 있을 수 있습니다. 정지 여부로는 걸렀지만 흐림으로는 거르지 않았습니다.
  • 재캘리브레이션은 두 판 모두 명목 칸 크기로 했습니다(둘 다 약 97.2%로 인쇄). 내부 파라미터에는 영향이 없고, 좌우 간격은 나중에 환산했습니다.
  • 공장 파일은 평가에만 쓰고 재배포하지 않으며, 파생 수치 인용은 공급사 승인 대기 중입니다.

자주 묻는 질문

R8 공장 스테레오 캘리브레이션은 정확한가요?

독립 코너 관측 237,393개에서 재투영 잔차 중앙값 0.28px, 에피폴라 잔차 중앙값 0.34px였습니다. 에피폴라 잔차는 화면 중심에서 550–700px 떨어진 곳에서 약 1.1px로 커집니다.

오리진데이터랩이 카메라를 다시 캘리브레이션했나요?

검증용으로 독립 재캘리브레이션을 했습니다. 렌즈 모델은 맞았지만 스테레오 일관성이 더 나빠서, 납품에는 공장 캘리브레이션을 그대로 씁니다.

화면의 어느 부분이 스테레오 3D에 믿을 만한가요?

1600×1200 화면에서 주점으로부터 대략 550px 이내의 중앙부입니다. 구석, 특히 왼쪽 아래는 외삽 영역입니다.

에피폴라 잔차가 무엇인가요?

왼쪽 영상의 점 위치로부터 캘리브레이션이 예측한 선(오른쪽 점이 있어야 할 선)과 실제 오른쪽 점 사이의 픽셀 거리입니다. 타깃 크기 없이도 스테레오 기하를 검사할 수 있습니다.

공장 좌우 간격 값은 맞나요?

쇠자 기준 측정으로는 공장값 65.08mm보다 약 0.4–0.5% 긴 값이 나옵니다. 불확실성도 비슷한 크기라 추정으로 봅니다.

RESEARCH RESOURCES

기술자료 살펴보기

분석 코드, 데이터셋 및 평가 자료를 확인하세요.

우리 데이터로도 이렇게 측정해 볼까요?

스테레오+IMU·휴대폰 촬영 샘플을 요청하거나, 같은 검사를 귀사 장비 데이터로 의뢰하세요.

샘플 데이터 요청문의하기