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

안정적이라고 맞는 것은 아니다: 녹화마다 저장되는 캘리브레이션 파일은 800×600용, 영상은 1600×1200

기술노트 #20 · 녹화별 캘리브레이션 파일과 영상의 해상도 불일치, 그리고 잡아내는 방법 (ODL-EGO S1)

실제 작업 4일에 대해 스테레오 캘리브레이션 일관성 검사를 돌렸을 때 결과는 좋은 소식처럼 보였습니다. 정렬 후 세로 오차가 매일 중앙값 4.3~5.1px로 변화가 없었습니다. 그런데 틀린 결과였습니다. 분석이 리그가 녹화 폴더마다 저장하는 캘리브레이션 파일을 불러왔는데, 이 파일은 800×600 영상용이고 실제 녹화는 1600×1200입니다. 원본 해상도 프레임에 적용하면 곧은 선이 휘고, 크고 완벽하게 반복되는 오차가 남습니다. 바로 그 반복성 때문에 안정성처럼 보였습니다. 모드가 맞는 1600×1200 캘리브레이션으로는 같은 리그가 한 작업 시간 내내 0.41~0.72px입니다(기술노트 #16). 녹화 모드와 맞지 않는 캘리브레이션 파일이 우리 파이프라인에 들어온 것은 두 번째라(기술노트 #13), 이번에는 구조적으로 고쳤습니다. 모든 기하 계산은 먼저 캘리브레이션의 영상 크기와 디코딩한 프레임 크기가 같은지 확인하고, 다르면 멈춥니다.

게시 2026년 11월⏱ 7 분 분량상태 예비 결과 · 자동 분석공개 데이터 GitHub · Hugging Face · Kaggle
800×600 대 1600×1200캘리브레이션 파일 대 영상모든 녹화 폴더에 저장되는 파일검증됨 (파일 내용)
4.3~5.1px그 파일로 본 일별 오차 중앙값4일 2,834개 표본, 추세 없음검증됨 (자동)
0.41~0.72px모드가 맞는 파일의 오차5분 파일별, 중앙 시야(기술노트 #16)검증됨 (자동)
1줄잡아낼 수 있었던 검사캘리브레이션 영상 크기 = 디코딩 프레임 크기절차 변경

왜 중요한가

반복되는 오차는 안정성처럼 보인다

며칠에 걸친 캘리브레이션 일관성 검사는 보통 하나를 묻습니다. 숫자가 움직였나? 틀린 캘리브레이션도 움직이지 않습니다. 매일 같은 큰 오차를 내고, 그 오차를 그린 그래프는 평평합니다. 평평하면 '안정적'으로 읽기 쉽습니다.

이 노트는 우리 분석에서 그 일이 어떻게 일어났는지, 숫자가 왜 그럴듯했는지, 이제 무엇으로 막는지 기록합니다. 같은 파일이 이 리그의 모든 녹화 폴더에 있으니, 이 녹화를 처리하는 누구나 같은 실수를 할 수 있어 공개합니다.

무슨 일이 있었나

영상 옆에 있는 파일이 그 영상의 파일은 아니다

자동 분석(2026-11-01~11-04, 세션 20개, 클라우드 일괄 처리)은 각 녹화 폴더의 calibration/<시리얼>/calibration.yaml을 불러와 10초마다 좌우 한 쌍을 정렬하고 ORB 특징점 매칭의 세로 차이를 쟀습니다. 결과는 일별 중앙값 4.3~5.1px로 4일 모두 비슷했습니다.

날짜별 정렬 후 세로 오차 상자그림이 4~5픽셀, 0.41~0.72픽셀 구간은 초록색
그림 1. 녹화별 800×600 파일로 본 정렬 후 세로 오차(날짜별). 초록 띠: 모드가 맞는 파일로 한 작업 시간 전체를 본 값(기술노트 #16).
표 1. 영상 옆에 있는 파일이 그 영상의 파일은 아니다
날짜표본중앙값(px)10분위(px)90분위(px)표본당 매칭 수 중앙값
2026-11-017564.322.889.58287
2026-11-025985.062.999.95199
2026-11-037684.322.998.36300
2026-11-047124.982.999.0237

평평한 결과가 처음에 놓친 경고 신호였습니다. 영상에 정말 맞는 캘리브레이션이었다면 기술노트 #16처럼 1px보다 훨씬 작았을 것입니다.

눈으로 보는 증거

곧은 선이 휘어 나온다

올바른 캘리브레이션으로 정렬하면 곧은 모서리는 곧은 선이 되고, 같은 점이 두 눈에서 같은 행에 놓입니다. 800×600 파일을 1600×1200 프레임에 적용하면 곧은 문틀이 크게 휘고 특징점이 행 사이를 오갑니다.

캘리브레이션 주점이 왼쪽 위 사분면에 표시된 원본 어안 프레임과, 가장자리가 크게 휜 정렬 결과
그림 2. A: 파일의 주점(빨강)과 실제 프레임 중심(초록)을 표시한 원본 프레임. B: 같은 프레임을 800×600 파일로 정렬한 결과.
가로 기준선이 그어진 좌우 정렬 영상, 크게 휜 문틀에 빨간 원 표시
그림 3. 녹화별 파일로 정렬한 왼쪽 | 오른쪽. 곧은 문틀(원)이 휘어 나옵니다.

파일 수준 점검

영상 없이 하는 네 가지 확인

불일치는 파일 자체에서 보입니다. 각 확인은 몇 초면 되고 YAML 파일과 디코딩한 프레임 하나만 있으면 됩니다.

표 2. 영상 없이 하는 네 가지 확인
확인 항목캘리브레이션 파일영상해석
파일 안의 영상 크기800×6001600×1200(디코딩한 프레임)불일치: 2배
주점 cx, cy (cam0)403.4, 306.3px이 렌즈라면 약 800, 600px 예상800×600 영상의 중심
초점거리 fx, fy (cam0)241.2, 241.2px—800×600에만 맞는 값
모든 녹화 폴더에 같은 파일예, 4일 모두 동일—녹화 모드와 연결되지 않음

검증하지 않은 작업 가설: 이 파일이 같은 캘리브레이션의 절반 해상도 버전일 수 있고, 그렇다면 fx, fy, cx, cy를 2배 하면 1600×1200 내부값에 가까울 것입니다. 쓰기 전에 모드가 맞는 파일과 비교해 확인할 예정이며, 그때까지는 모드가 맞는 파일만 씁니다.

바뀐 점

크기 확인이 먼저, 기하 계산은 그다음

검증 결과: 녹화별 캘리브레이션 파일은 800×600 영상을 기술하고, 녹화는 1600×1200이며, 그 파일을 쓰면 안정적이지만 틀린 4~5px 오차가 나옵니다.

절차: 파이프라인의 모든 기하 단계(정렬, 에피폴라 검사, 깊이)는 이제 캘리브레이션 영상 크기와 디코딩 프레임 크기가 같은지 확인하고, 다르면 오류로 멈춥니다. 납품에는 모드가 맞는 캘리브레이션 파일, 그 녹화 모드 이름, 납품 프레임으로 한 검증 결과가 들어갑니다(기술노트 #13 이후 도입).

범위와 한계

연구의 한계

이 노트가 보여주지 않는 것을 먼저 밝힙니다.

  • 여기서 오차는 10초마다 한 쌍의 ORB 매칭으로 잰 것으로, 일관성 지표이지 완전한 캘리브레이션 평가가 아닙니다.
  • 절반 해상도 가설은 확인하지 않았습니다.
  • 리그 1대, 펌웨어 1개 버전의 결과입니다. 다른 장치나 펌웨어는 다른 파일을 저장할 수 있습니다.
  • 모든 검사는 자동 처리입니다. 알고리즘 기반 예비 분석(AI-only preliminary analysis)이며 사람이 다시 검증하지 않았습니다.

FAQ

데이터 구매자가 묻는 질문

Q01이 리그의 1600×1200 녹화에는 어떤 캘리브레이션 파일을 써야 하나요?
1600×1200 녹화 모드에서 만든 캘리브레이션입니다. 리그가 녹화 폴더마다 저장하는 800×600 파일이 아닙니다. 모든 납품에 모드가 맞는 파일을 함께 드립니다.
Q02캘리브레이션 파일이 내 영상에 맞는지 어떻게 아나요?
파일에 적힌 영상 크기와 디코딩한 프레임 크기를 비교하고, 주점이 영상 중심 근처인지 확인하세요. 하나라도 어긋나면 그 파일을 쓰지 마세요.
Q03틀린 파일이 왜 안정적으로 보였나요?
틀린 캘리브레이션은 매일 같은 큰 오차를 냅니다. 일별 중앙값 4.3~5.1px는 평평해서 안정적으로 보이지만, 올바른 파일의 0.41~0.72px보다 훨씬 큽니다.
Q04이전 Origin Data Lab 노트에도 영향이 있나요?
없습니다. 기술노트 #13과 #16은 모드가 맞는 캘리브레이션을 썼습니다. 이번 오류는 수치를 발표하기 전 내부 분석에서 잡았습니다.
Q05800×600 파일을 2배 하면 되나요?
그럴 수도 있지만 아직 확인하지 않았습니다. 모드가 맞는 파일과 비교해 확인하기 전에는 권하지 않습니다.

공개 데이터와 코드

근거 자료를 직접 확인하세요

이 노트의 모든 수치는 검증할 수 있습니다. 가공 데이터, 분석 코드, 그림, 실행 가능한 노트북을 공개합니다.

Kaggle에서 노트북 실행

라이선스: CC BY 4.0 (데이터·그림) · MIT (코드)

이 노트 인용하기

Origin Data Lab (2026). 기술노트 #20: 안정적이라고 맞는 것은 아니다. https://origindatalab.io/ko/technical-field-notes/recording-folder-calibration-file-resolution-mismatch.html

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

오리진데이터랩은 피지컬 AI·로봇 팀을 위해 에고센트릭, 스테레오+IMU, 현장 영상 수집을 설계·운영하고 품질 검증을 문서로 제공합니다.