기술 필드 노트 #18 · 2026년 11월
스테레오 프레임은 카운터로 짝짓지 마라: 세션마다 최대 3,009프레임 어긋나는 카운터, 실제 동기는 15µs
기술노트 #18 · 머리 착용 스테레오+IMU 리그의 프레임 짝짓기와 스트로브 카운터 오프셋 (ODL-EGO S1)
우리 스테레오 리그는 프레임마다 스트로브 카운터를 함께 기록하고, 이 카운터는 좌우 영상을 짝짓는 자연스러운 키처럼 보입니다. 실제 농산물 소분 작업 4일(세션 17개, 눈당 5분 파일 116개, 좌우 프레임 쌍 957,332개)을 분석한 결과, 좌우 카운터는 출발점이 같은 적이 한 번도 없었습니다. 한 세션 안에서는 일정한 상수만큼 차이가 나지만, 그 상수는 세션마다 −1,243에서 +3,009프레임까지 달라졌습니다. 카운터로 짝지었다면 17개 세션 중 16개에서 왼쪽 영상이 0.07~100.3초 뒤에 찍힌 오른쪽 영상과 짝지어졌을 것입니다. 파일 안에서 프레임 순서로 짝지으면(노출 타임스탬프로 검증) 노출 시작 차이는 중앙값 15µs(99분위 29µs, 최대 70µs)입니다. 이제 납품 QA는 순서로 짝짓고, 모든 쌍을 노출 타임스탬프로 확인하며, 짝짓기 표를 함께 제공합니다.
왜 중요한가
가장 그럴듯한 키가 틀린 키다
스테레오 깊이, 스테레오 SLAM, 손 자세 삼각측량은 모두 한 쌍의 좌우 영상이 같은 순간에 노출되었다고 가정합니다. 그래서 어떤 왼쪽 프레임이 어떤 오른쪽 프레임과 짝인지 정하는 확실한 규칙이 필요합니다.
우리 리그는 프레임마다 스트로브 카운터를 영상 스트림(H.264 SEI)에 노출 시작, 노출 시간, 표시 타임스탬프와 함께 기록합니다. 카운터가 각 눈에서 프레임마다 정확히 1씩 늘기 때문에 짝짓기 키로 쓰고 싶어집니다. 이 노트는 실제 녹화에서 그 방법이 왜 실패하는지, 대신 무엇을 써야 하는지 보여 줍니다.
측정 조건
4일, 작업 세션 17개, 프레임 쌍 957,332개
녹화: 2026-11-01~11-04, 식자재 공급업체 작업장에서 학교 급식용 농산물 소분 작업, 같은 작업자가 머리에 착용. 14~74분 작업 세션 17개와 2초 미만의 실수 녹화 3개. 녹화기는 세션을 5분 파일로 나눕니다(눈당 총 118개).
입력(눈·프레임별): 표시 타임스탬프, 노출 시작(µs), 노출 시간(µs), 스트로브 카운터, 플래그. 영상 디코딩 없이 스트림에서 추출했습니다. 좌우 각 957,336프레임, 약 8.9시간입니다.

발견 1
두 카운터는 세션마다 다른 상수만큼 어긋난다
118개 파일 모두에서 좌우 카운터 차이는 모든 프레임에서 같았고, 두 카운터 모두 프레임마다 정확히 1씩 늘었습니다. 하지만 그 차이는 세션마다 달랐습니다. 1일차 48, 53, 61, 68, 32, 35프레임, 2일차 2,998~3,009, 3일차 0, 2, 4, 4일차 −1,243~−1,209입니다.
같은 날 세션 사이에는 조금씩 늘고(48 → 53 → 61 → 68) 날이 바뀌면 크게 뛰는 모습은, 각 센서의 카운터가 녹화 시작 때 초기화되지 않고 계속 돌아간다는 것을 시사합니다. 제조사 확인은 받지 않았으며 작업 가설입니다.

| 날짜 | 시작 | 분 | 눈당 프레임 | 좌−우 카운터 | 카운터 짝짓기 오차(초, 중앙값) | 노출 시작 차이 중앙값(µs) | 최대(µs) |
|---|---|---|---|---|---|---|---|
| 11-01 | 09:48 | 27.5 | 49,473 | 48 | 1.6 | 15 | 57 |
| 11-01 | 10:20 | 17.9 | 32,225 | 53 | 1.77 | 15 | 52 |
| 11-01 | 10:42 | 21.7 | 38,998 | 61 | 2.03 | 15 | 55 |
| 11-01 | 11:11 | 14.1 | 25,334 | 68 | 2.27 | 15 | 70 |
| 11-01 | 11:28 | 32.2 | 58,015 | 32 | 1.07 | 15 | 67 |
| 11-01 | 12:05 | 31.9 | 57,345 | 35 | 1.17 | 15 | 56 |
| 11-02 | 09:06 | 27.8 | 50,105 | 2998 | 99.93 | 15 | 64 |
| 11-02 | 09:36 | 22.2 | 39,957 | 3000 | 100.0 | 15 | 51 |
| 11-02 | 10:04 | 17.6 | 31,605 | 3007 | 100.23 | 15 | 59 |
| 11-02 | 10:42 | 48.8 | 87,788 | 3009 | 100.3 | 15 | 57 |
| 11-03 | 10:37 | 35.8 | 64,380 | 0 | 0.0 | 15 | 59 |
| 11-03 | 11:16 | 30.1 | 54,130 | 2 | 0.07 | 15 | 59 |
| 11-03 | 11:52 | 73.6 | 132,425 | 4 | 0.13 | 15 | 65 |
| 11-04 | 09:38 | 40.0 | 72,024 | -1243 | 41.43 | 15 | 57 |
| 11-04 | 10:22 | 23.0 | 41,431 | -1241 | 41.37 | 15 | 57 |
| 11-04 | 10:49 | 40.4 | 72,802 | -1238 | 41.27 | 15 | 61 |
| 11-04 | 11:55 | 27.4 | 49,258 | -1209 | 40.3 | 15 | 56 |
발견 2
순서로 짝지으면 정확하고, 카운터로 짝지으면 수 초가 틀린다
같은 프레임에 두 규칙을 적용해 비교했습니다. 카운터로 짝지으면 좌우 노출이 중앙값 1.8초, 최대 100.3초 떨어졌습니다. 오프셋이 우연히 0이었던 세션 하나만 맞았고, 오프셋 2와 4프레임도 이미 67ms, 133ms 오차로 움직이는 머리에서는 스테레오 매칭을 망가뜨리기에 충분합니다.
파일 안에서 순서로 짝지으면 노출 시작 차이는 중앙값 15µs(99분위 29µs, 최대 70µs, 33.3ms 프레임 주기의 0.25% 미만)였습니다. 118개 중 110개 파일은 두 눈의 프레임 수가 같았고, 나머지 8개는 모두 세션 끝에서 한쪽 눈이 마지막 프레임 1개를 더 기록했으며, 그 프레임은 짝 없이 남겨 두면 됩니다.


내 데이터 점검법
파일당 몇 초면 끝나는 세 가지 검사
이 검사는 영상이 아니라 프레임별 메타데이터만 쓰므로 하루치 녹화도 몇 초 만에 끝납니다.
- 파일마다 좌−우 카운터가 일정한지 확인하고, 0이라고 가정하지 말고 세션별 상수를 기록한다.
- 순서(또는 가장 가까운 노출 시작)로 짝짓고, 모든 쌍의 노출 시작 차이가 1ms 이내인지 확인한다. 실패한 파일은 표시한다.
- 세션 끝의 1프레임 차이는 허용하고, 그 외의 불일치는 프레임 누락으로 보고 조사한다.
바뀐 점
이제 짝짓기는 가정이 아니라 검증한다
검증 결과: 실제 작업 4일 동안 순서 기반 짝짓기는 모든 프레임 쌍에서 정확했고, 실제 좌우 동기는 중앙값 15µs, 최악 70µs였습니다.
절차: 납품 QA(이 노트와 함께 공개)는 프레임을 순서로 짝짓고, 각 쌍을 노출 타임스탬프로 확인하며, 세션별 카운터 오프셋을 보고하고, 모든 납품에 짝짓기 표를 포함합니다. 고객이 카운터로 짝을 추측할 필요가 없습니다.
범위와 한계
연구의 한계
이 노트가 보여주지 않는 것을 먼저 밝힙니다.
- 리그 1대, 작업자 1명, 작업장 1곳, 오전 4회(2026-11-01~04)의 결과이며 전체를 대표하지 않습니다.
- 동기는 리그 자체의 노출 시작 타임스탬프로 측정했으며 외부 광학·전기 기준은 쓰지 않았습니다.
- 카운터 오프셋의 원인은 가설이며 펌웨어 동작은 제조사에 확인하지 않았습니다.
- 모든 검사는 자동 처리입니다. 알고리즘 기반 예비 분석(AI-only preliminary analysis)이며 사람이 다시 검증하지 않았습니다.
FAQ
데이터 구매자가 묻는 질문
Q01좌우 프레임을 스트로브 카운터로 짝지어도 되나요?
Q02두 카메라의 실제 동기는 어느 정도인가요?
Q03두 눈이 항상 같은 수의 프레임을 기록하나요?
Q04카운터가 왜 어긋나나요?
Q05구매자는 무엇을 받나요?
공개 데이터와 코드
근거 자료를 직접 확인하세요
이 노트의 모든 수치는 검증할 수 있습니다. 가공 데이터, 분석 코드, 그림, 실행 가능한 노트북을 공개합니다.
origin-data-lab/stereo-frame-pairing-strobe-counter-offset저장소 보기 origin-data-lab/stereo-frame-pairing-strobe-counter-offset데이터셋 열기 origindatalab/odl-stereo-frame-pairing-counter-offsetKaggle에서 보기 라이선스: CC BY 4.0 (데이터·그림) · MIT (코드)
Origin Data Lab (2026). 기술노트 #18: 스테레오 프레임은 카운터로 짝짓지 마라. https://origindatalab.io/ko/technical-field-notes/stereo-frame-pairing-strobe-counter-offset.html