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

밖에서 확인한 스테레오 동기: 모니터 플래시로 잰 좌우 차이 0.15ms 이내

기술노트 #22 · 머리 착용 스테레오+IMU 리그(ODL-EGO S1)의 좌우 동기를 외부 광학 기준으로 확인, 기술노트 #18 후속

기술노트 #18에서 스테레오 리그의 좌우 동기를 15µs로 측정했지만, 그 값은 리그가 스스로 기록한 노출 시작 타임스탬프에서 나온 것이었습니다. 이번에는 밖에서 확인했습니다. PC 모니터의 패널을 70–250ms 무작위 간격으로 흑백 전환시키고 두 눈으로 2분씩 두 번 녹화했습니다(각 362회). 노출 도중에 전환이 일어난 프레임은 중간 밝기를 기록하므로, 노출 중 흰색을 본 비율과 각 눈의 노출 시작·노출 시간으로 전환 시각을 구할 수 있습니다. 같은 전환 357개와 316개를 좌우 눈이 각자 측정했습니다. 상승·하강 전환을 평균하면(좌우 밝기 이득 차이가 상쇄됨) 좌 − 우는 −23µs(95% CI −56 ~ −14)와 −40µs(−110 ~ −12)였고, 시험한 모든 센서 응답 곡선에서 ±0.15ms 안이었습니다. 두 번째 녹화는 자동노출이 움직이고 왼쪽 노출이 오른쪽보다 0.5ms 짧았는데도 결과가 같았습니다. 이 방법으로 14µs를 직접 잴 수는 없지만, 0.15ms보다 큰 숨은 어긋남이 없다는 것은 독립적으로 확인됩니다. 프레임의 0.5% 미만이고, 초당 200° 빠른 머리 회전에서 약 0.25픽셀입니다.

게시 2026년 11월⏱ 11 분 분량상태 예비 결과 · 자동 분석공개 데이터 GitHub · Hugging Face · Kaggle
−23µs, −40µs광학으로 잰 좌 − 우 시간차 (γ = 1)녹화 2개, 양쪽 눈에서 잰 전환 357개·316개검증됨 (자동)
±0.15ms 이내어떤 응답 곡선을 가정해도γ 0.7–2.2: −15 ~ −124µs검증됨 (자동)
실제 불일치 0좌우가 흑/백 판정에서 엇갈린 프레임7,194프레임 중 18개는 양쪽 모두 밝기 47–53%인 전환 중간 프레임검증됨 (자동)
중앙값 −14µs리그 메타데이터 노출 시작 좌 − 우최대 60µs, 광학 결과와 일치검증됨 (자동)

왜 중요한가

리그가 자기 타이밍의 유일한 증인이어서는 안 된다

스테레오 깊이, 스테레오 SLAM, 손 자세 삼각측량은 한 쌍의 두 영상이 같은 순간에 노출되었다고 가정합니다. 기술노트 #18에서 좌우 노출 시작이 중앙값 15µs 차이라는 것을 확인했지만, 그 값은 리그가 자기 영상 스트림에 써 넣은 노출 시작 타임스탬프에서 나왔습니다. 펌웨어가 같은 시계로 두 눈에 도장을 찍고 실제 센서는 다른 시각에 노출했다면, 메타데이터는 여전히 완벽해 보였을 것입니다.

이 노트는 그 빈틈을 외부 광학 기준으로 메웁니다. 두 카메라가 같은 물리적 순간에 바뀌는 것을 보고, 각 눈의 영상으로 따로 시각을 잽니다.

구성

깜빡이는 모니터 패널과 2분짜리 녹화 두 개

리그: R8 스테레오+IMU(ODL-EGO S1), 기술노트 #15–#21과 같은 장비, 눈당 1600×1200, 30fps, 책상 위에서 PC 모니터를 향하게 놓았습니다. 모니터에는 패널을 70–250ms 무작위 간격으로 흑백 전환하는 페이지를 띄웠습니다. 화면 갱신이나 플래시 일정은 기록하지 않았고, 이 방법에는 필요 없습니다.

녹화 1(2026-11-08 13:32, 카메라가 모니터보다 약간 아래): 양쪽 노출 10.04ms로 일정. 녹화 2(13:36, 모니터 중간 높이): 자동노출이 움직였고 왼쪽 6.9–11.3ms, 왼쪽 노출이 오른쪽보다 중앙값 0.51ms 짧았습니다. 각 녹화에 플래시 구간이 약 120초(362회) 있습니다.

프레임·눈마다 스트림 메타데이터의 노출 시작·노출 시간(µs)과 패널 영역의 평균 밝기를 썼습니다. 패널 영역은 가장 자주 바뀐 픽셀로 자동으로 찾았습니다(녹화 1에서 160×120 기준 611, 651픽셀).

책상과 모니터를 찍은 좌우 카메라 화면, 화면 오른쪽의 깜빡이는 패널에 사각형 표시
그림 1. 녹화 1, 양쪽 눈. 사각형 안 패널만 흑백으로 바뀌고 나머지 장면은 정지해 있습니다.

방법

일부만 노출된 프레임으로 전환 시각 구하기

노출은 33.3ms 프레임 주기 중 약 10ms입니다. 노출 도중 패널이 바뀌면 그 프레임은 중간 밝기를 기록합니다. 앞뒤의 완전한 검정·흰색 프레임(같은 노출 시간으로 환산) 대비 흰색을 본 비율 f로 전환 시각을 구합니다. 상승은 t = 시작 + 노출 × (1 − f), 하강은 t = 시작 + 노출 × f.

각 눈이 자기 영상과 자기 타임스탬프로 이 계산을 하므로, 양쪽이 본 전환마다 서로 독립인 시각이 두 개 나옵니다. 그 차이가 메타데이터가 숨기고 있을 수 있는 동기 오차입니다. 양쪽에 완전한 프레임이 있고 두 눈 모두 0.05 < f < 0.95인 전환만 썼습니다.

밝기를 빛의 양으로 바꾸려면 센서 응답 곡선이 필요한데, 우리는 그 곡선을 모릅니다. 좌우 이득·응답 차이는 상승과 하강 추정을 반대 방향으로 밀기 때문에, 상승 중앙값과 하강 중앙값의 평균을 보고하고 응답 지수 γ = 0.7, 1.0, 1.3, 1.6, 2.2로 모두 반복했습니다.

패널이 흰색으로 바뀌는 순간에 걸친 좌우 노출 구간 도식
그림 2. 노출 구간 안의 전환: 흰색을 본 비율 f가 구간 안 전환 위치를 알려 줍니다.
양쪽 눈의 패널 밝기 2초, 사각파와 중간값 점
그림 3. 녹화 1의 2초간 양쪽 눈 패널 밝기. 두 곡선이 겹치고, 중간값 점이 일부만 노출된 프레임입니다.

결과 1

좌우가 같은 전환을 수십 µs 안에서 맞춘다

녹화 1: 양쪽에서 잰 전환 357개. 좌 − 우는 상승 −96µs, 하강 +51µs, 평균 −23µs(부트스트랩 95% CI −56 ~ −14µs). 녹화 2: 전환 316개. 상승 +27µs, 하강 −106µs, 평균 −40µs(−110 ~ −12µs). 전환별 흩어짐(중앙절대편차 81, 127µs)은 10ms 창 안의 밝기 잡음에서 오는 이 방법 자체의 잡음입니다.

흑/백 상태는 모든 프레임에서 일치했습니다. 플래시 구간 7,194프레임 중 18개가 임계값 양쪽으로 갈렸지만, 모두 양쪽 눈에서 밝기 47–53%인 전환 중간 프레임이었습니다.

표 1. 좌우가 같은 전환을 수십 µs 안에서 맞춘다
녹화카메라 위치노출 (좌 / 우, 중앙값)플래시사용한 전환 (상승 / 하강)상승 중앙값하강 중앙값광학 좌 − 우 (γ = 1, 95% CI)γ 0.7–2.2 범위메타데이터 노출 시작 좌 − 우 (중앙값 / 최대)
1모니터보다 약간 아래10.04 / 10.05ms362357 (143 / 214)−96µs+51µs−23µs (−56 ~ −14)−15 ~ −106µs−14 / 49µs
2모니터 중간 높이8.99 / 9.42ms362316 (121 / 195)+27µs−106µs−40µs (−110 ~ −12)−40 ~ −124µs−14 / 60µs
두 녹화의 상승·하강 전환별 좌 − 우 시간차 히스토그램
그림 4. 전환별 좌 − 우 시간차(γ = 1). 상승과 하강이 반대 방향으로 치우치고, 그 평균(검정)이 메타데이터 값(빨강) 옆에 있습니다.

결과 2

응답 곡선 가정에도, 좌우 노출이 달라도 결과가 같다

γ 0.7–2.2 전체에서 평균은 녹화 1에서 −15 ~ −106µs, 녹화 2에서 −40 ~ −124µs였습니다. 항상 ±0.15ms 안이고, 부호도 항상 메타데이터와 같았습니다(왼쪽이 아주 조금 먼저).

녹화 2가 더 어려운 경우입니다. 자동노출이 움직였고 두 눈이 같은 노출을 고르지 않았습니다(왼쪽이 중앙값 0.51ms 짧음). 그러자 개별 상승 추정이 노출 차이를 따라갔습니다(상관 0.78). 화면이 순간적으로 바뀌지 않아 짧은 창이 전환을 다르게 적분하기 때문입니다. 평균하면 결과는 녹화 1과 같았습니다.

두 녹화에서 응답 곡선 다섯 개를 가정한 광학 좌 − 우 시간차, 모두 ±150µs 안
그림 5. 응답 곡선별 평균 좌 − 우(95% CI). 회색 띠: ±150µs. 빨강: 리그 메타데이터.

추가 관찰

프레임 짝은 표시 타임스탬프가 아니라 노출 시작으로

녹화 1에서는 모든 쌍의 표시 타임스탬프(PTS)가 좌우 동일했습니다. 녹화 2에서는 0.4%만 같았고 최대 1.0ms 달랐지만, 같은 쌍의 노출 시작은 여전히 60µs 안이었습니다. 여기서는 PTS로 짝지어도 맞는 프레임을 찾았겠지만, PTS는 하드웨어 타임스탬프가 아닙니다. 우리는 가장 가까운 노출 시작(2ms 이내)으로 짝짓고, 이는 기술노트 #18의 순서 기반 규칙과 같은 결과를 냅니다.

직접 확인하는 법

모니터 하나, 15분, 추가 장비 없음

프레임별 노출 시간을 기록하는 스테레오 리그라면 누구나 반복할 수 있습니다.

  • 패널을 70–250ms 무작위 간격으로 흑백 전환하는 화면을 띄우고(무작위라야 전환이 프레임 주기에 고정되지 않음), 두 눈으로 2분 녹화합니다.
  • 가장 자주 바뀌는 픽셀로 패널을 자동으로 찾고, 프레임마다 평균 밝기를 구합니다.
  • 노출 시작으로 프레임을 짝짓고, 일부만 노출된 전환마다 각 눈의 노출 시작·노출 시간으로 시각을 구합니다.
  • 상승·하강 중앙값을 평균하고 여러 응답 곡선으로 반복합니다. 진짜 어긋남이 있다면 모든 곡선에서 드러납니다.

의미

동기를 서로 독립인 두 경로로 확인했다

검증됨: 이 리그에서 외부 광학 기준이 내부 메타데이터와 일치합니다. 0.15ms보다 큰 숨은 좌우 어긋남은 없습니다. 프레임의 0.5% 미만이고, 초당 200° 빠른 머리 회전에서 0.03°, 이 카메라의 초점거리 482픽셀 기준 약 0.25픽셀입니다.

프로세스: 플래시 녹화를 새 리그 현장 투입 전 표준 인수 시험으로 삼고, 기술노트 #18의 프레임별 메타데이터 검사와 함께 씁니다. 스크립트와 전환별 표를 이 노트와 함께 공개합니다.

  • 리그마다 투입 전 광학 검사: 모든 γ에서 ±0.5ms 안이면 통과.
  • 납품마다 메타데이터 검사: 모든 쌍이 노출 시작 기준 1ms 안.
  • 좌우 노출 차이를 보고: 자동노출은 두 눈에서 달라질 수 있음.

범위와 한계

연구의 한계

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

  • 리그 1대, 하루 한 사무실에서 2분짜리 녹화 2개, 카메라 정지 상태의 결과입니다. 일반화된 추정치가 아닙니다.
  • 화면이 패널 전체를 두 눈에 같은 순간 바꾼다고 가정합니다. 화면 스캔과 픽셀 응답은 두 카메라에 공통이지만 전환당 정밀도를 약 0.1ms로 제한합니다.
  • 센서 응답 곡선을 모르므로, 보정된 곡선 대신 γ 0.7–2.2 범위로 결과를 냈습니다.
  • 플래시 일정을 기록하지 않아 전환 시각은 영상에서만 압니다. 따라서 각 눈의 절대 타이밍은 검증하지 않았고 좌우 차이만 확인했습니다.
  • 예비 분석: AI 보조 자동 분석으로 수행했고, 사람 재검증이나 제3자 검토는 받지 않았습니다.

FAQ

데이터 구매자가 묻는 질문

Q01특별한 장비 없이 스테레오 카메라 동기를 확인할 수 있나요?
70–250ms 무작위 간격으로 깜빡이는 모니터 패널을 두 카메라로 찍으면 됩니다. 노출 도중 전환된 프레임은 중간 밝기를 기록하고, 각 카메라의 노출 시작·노출 시간과 합치면 전환 시각을 눈마다 따로 구할 수 있습니다. 두 시각을 비교합니다.
Q02ODL-EGO S1 스테레오 리그의 동기는 얼마나 맞나요?
리그 메타데이터상 좌우 노출 시작 차이는 중앙값 14–15µs입니다. 이번 광학 검사는 −23µs와 −40µs였고, 어떤 응답 곡선 가정에서도 ±0.15ms 안이었습니다.
Q03왜 상승과 하강 전환을 평균하나요?
좌우 밝기 이득·응답 차이는 상승과 하강 추정을 반대 방향으로 치우치게 하므로, 평균하면 상쇄됩니다.
Q04이 방법으로 15µs를 잴 수 있나요?
직접은 안 됩니다. 전환당 잡음이 약 0.1ms, 계통 불확실성이 0.15ms 미만입니다. 그보다 큰 숨은 어긋남을 배제할 수 있고, 깊이·자세 추정에는 그것이 중요합니다.
Q05좌우 카메라는 같은 노출을 쓰나요?
이 리그에서는 대개 그렇지만 항상은 아닙니다. 자동노출이 움직인 녹화 하나에서 왼쪽 노출이 중앙값 0.51ms 짧았고, 노출 시작은 60µs 안으로 맞았습니다.

공개 데이터와 코드

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

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

Kaggle에서 노트북 실행

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

이 노트 인용하기

Origin Data Lab (2026). 기술노트 #22: 밖에서 확인한 스테레오 동기. https://origindatalab.io/ko/technical-field-notes/stereo-sync-external-flash-verification.html

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

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