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

손 작업 거리에서 스테레오 깊이는 얼마나 정확한가? 25–90cm, 자로 잰 기준과 비교

기술노트 #09 · 작업 거리 25–90cm 스테레오 깊이 스케일 정확도 (ODL-EGO S1 촬영 리그)

인쇄한 ChArUco 타깃 두 종류를 찍은 스테레오 프레임 4,429개를 리그의 공장 캘리브레이션으로 3D 복원하고, 복원된 칸 크기를 쇠자 실측값과 하나하나 비교했습니다. 타깃이 화면 중앙 근처에서 정면을 볼 때 스테레오 거리는 0.5% 짧게 나왔습니다(프레임 2,492개의 중앙값; A4 타깃 -0.50%, 원거리 타깃 -0.54%). 이 값은 0.25m부터 0.85m까지 거의 변하지 않았습니다. 화면 왼쪽 끝에서 약 45° 기울어진 경우에는 +4.0~+4.8%로 커졌고, 오른쪽 끝은 +0.4% 이내였습니다. 줄자로 30–90cm를 잰 결과는 기울기가 일치했지만 2–5cm의 일정한 차이가 있었고, 이는 줄자를 읽은 기준점 문제로 판단했습니다. 모든 결과는 장비 1대·하루 촬영의 자동 측정입니다.

-0.51%스케일 오차, 화면 중앙, 0.25–0.85m
약 2.6mm 짧음0.5m에서의 깊이 오차 환산
+4.0% / +4.8%스케일 오차, 화면 왼쪽 끝 (기울기 약 45°)
기울기 0.980, 잔차 RMS 0.7cm줄자 측정 선형성 (원거리 타깃)

왜 중요한가

로봇 학습 데이터 구매자가 실제로 묻는 질문

에고센트릭 데이터에서 손과 물체의 상호작용은 머리에 단 카메라로부터 대략 25–90cm 거리에서 일어납니다. 이 거리의 스테레오 깊이가 한쪽으로 치우쳐 있으면, 데이터에서 뽑아내는 3D 손 궤적·잡는 거리·물체 크기가 모두 같은 만큼 틀어집니다.

이 노트는 하나의 촬영 구성(R8 OEM 어안 스테레오+IMU 카메라 기반 ODL-EGO S1)에 대해 좁고 검증 가능한 질문에 답합니다. 손 작업 거리에서 스테레오 깊이는 얼마나 틀리는가, 그리고 화면의 어디에서 더 나빠지는가.

  • 한 줄 답: 화면 중앙에서는 25–85cm 전 구간에서 약 0.5% 짧고, 화면 왼쪽 끝에서 면이 크게 기울면 최대 약 5% 길게 나옵니다.

측정 구성

리그, 타깃, 기준값

카메라: R8 스테레오+IMU, 한쪽 눈 1600×1200, 30fps, 어안 렌즈, 공장 기준 좌우 간격 65.08mm(장비와 함께 받은 제조사 캘리브레이션 파일 기준). 깊이는 이 공장 캘리브레이션을 수정 없이 그대로 사용해 계산했습니다.

타깃: A4 무광 용지에 인쇄해 흰 벽에 평평하게 붙인 ChArUco 판 두 장입니다. 하나는 칸 30mm(명목) 9×6 판, 하나는 칸 55mm(명목) 5×3 원거리용 판입니다. 둘 다 명목보다 약 2.8% 작게 인쇄되어, 명목 크기는 쓰지 않았습니다.

기준값: 각 판의 전체 길이를 쇠자로 쟀습니다(A4: 262.5×175.0mm → 칸 29.17mm, 원거리용: 267×160mm → 칸 53.40×53.33mm). 리그는 손에 들고, 벽에 0점을 둔 줄자로 30·40·50·60·70·80·90cm 위치에 맞췄습니다. 이어서 약 50cm와 80cm에서 리그를 돌려 타깃이 화면 왼쪽 끝과 오른쪽 끝에 오게 했습니다.

줄자 0점을 벽에 둔 상태로 흰 벽에 붙인 ChArUco 타깃 두 장
왼쪽 카메라로 본 벽면 타깃(일부 잘라냄, 관련 없는 물체는 블러 처리). 위: A4 9×6 판, 칸 29.17mm. 아래: 원거리용 5×3 판, 칸 53.4mm.

측정 방법

줄자 거리 대신 자로 잰 칸 크기로 오차를 잰다

모든 스테레오 프레임에서 양쪽 영상의 ChArUco 코너를 검출하고(OpenCV 4.10), 공장 캘리브레이션의 어안(equidistant) 모델로 왜곡을 보정한 뒤, 공장 스테레오 외부 파라미터로 3D 위치를 계산했습니다. 그다음 가로·세로로 이웃한 코너 사이의 3D 거리를 쟀습니다. 프레임별 이웃 거리 중앙값을 쇠자로 잰 칸 크기로 나눈 값이 그 프레임의 스케일 오차입니다. 스테레오에서 깊이와 가로 크기는 같은 배율을 공유하므로, 이 오차가 그대로 깊이 오차가 됩니다.

왜 줄자와 바로 비교하지 않았나? 줄자 값은 0점과 눈금을 읽는 위치가 렌즈 중심과 얼마나 떨어져 있느냐에 따라 달라집니다. 손에 든 리그로는 이 위치를 mm 단위로 고정할 수 없습니다. 인쇄된 칸은 흔들리지 않고 쇠자로 쟀으므로 더 나은 기준입니다. 줄자 결과는 선형성 확인용으로 따로 보고합니다.

프레임은 0.1m 거리 구간으로 묶었습니다. "화면 중앙" 조건은 판 중심이 주점(principal point)에서 300px 이내이고 기울기 15° 미만인 경우입니다. 끝 조건은 판 중심이 주점에서 좌우로 450px 넘게 떨어진 경우입니다. 중앙값, 사분위 범위, 500회 부트스트랩으로 구한 중앙값의 95% 구간을 함께 보고합니다.

Scale error equals median triangulated adjacent-corner distance divided by ruler-measured square size, minus one

결과 1

화면 중앙: 일정한 -0.5% 치우침

0.25–0.85m에서 화면 중앙·정면 조건을 만족한 프레임 2,492개의 스케일 오차 중앙값은 -0.51%였습니다(A4 타깃 -0.50%, 원거리 타깃 -0.54%). 두 타깃은 크기가 1.8배 다른데도 결과가 0.04%포인트 안에서 일치합니다. 한쪽 판의 인쇄나 측정 실수가 원인일 가능성은 낮다는 뜻입니다.

측정한 거리 범위 안에서 치우침은 거리에 따라 커지지 않고, 흩어짐만 커집니다(0.7m 넘어서 칸이 약 20px로 작아지면서 사분위 범위가 넓어짐). mm로 바꾸면 0.27m에서 약 1.4mm, 0.5m에서 약 2.5mm, 0.85m에서 약 4.5mm 짧게 나오는 수준입니다.

두 타깃 모두 약 -0.5% 근처에 머무는 거리별 스테레오 스케일 오차 선 그래프
거리별 스케일 오차(판이 화면 중앙 근처, 기울기 15° 미만). 점: 중앙값, 막대: 중앙값의 95% 부트스트랩 구간, 색띠: 사분위 범위, 회색 띠: 쇠자 판독 허용오차 ±0.19%.
타깃거리 구간(m)중앙 거리(m)프레임스케일 오차 중앙값(%)중앙값 95% 부트스트랩 구간(%)사분위 범위(%)
A40.2-0.30.27684-0.50-0.51 to -0.50-0.57 to -0.44
A40.3-0.40.38259-0.53-0.55 to -0.52-0.62 to -0.46
A40.4-0.50.47316-0.45-0.48 to -0.42-0.64 to -0.22
FAR0.2-0.30.27176-0.46-0.49 to -0.43-0.56 to -0.36
FAR0.3-0.40.36160-0.56-0.59 to -0.51-0.70 to -0.45
FAR0.4-0.50.47414-0.56-0.59 to -0.54-0.74 to -0.40
FAR0.5-0.60.57140-0.71-0.77 to -0.64-0.94 to -0.48
FAR0.6-0.70.65137-0.67-0.77 to -0.61-0.92 to -0.39
FAR0.7-0.80.75169-0.26-0.34 to -0.10-0.68 to +0.23
FAR0.8-0.90.8535-0.58-0.77 to -0.00-0.86 to +0.30

결과 2

화면 끝: 왼쪽은 최대 약 5% 길게, 오른쪽은 거의 0

리그를 돌려 타깃이 화면 왼쪽 끝에 오게 하면(기울기 약 45°) 칸이 +4.0%(A4), +4.8%(원거리) 크게 측정됐고 흩어짐도 컸습니다. 오른쪽 끝(기울기 약 40°)에서는 중앙값이 +0.0%, +0.4%에 머물렀습니다.

아직 원인은 설명하지 못했습니다. 기술노트 #11을 보면 에피폴라 잔차는 화면 왼쪽과 오른쪽 바깥 모두에서 커지므로, 좌우 정렬 오차만으로는 왼쪽 끝만 치우치는 이유가 설명되지 않습니다. 이번 데이터에서는 기울기와 화면 위치도 함께 바뀌었습니다. 둘을 분리하려면 리그를 고정하고 타깃 위치와 기울기를 바꿔 가며 찍어야 합니다.

화면 중앙, 왼쪽 끝, 오른쪽 끝의 스케일 오차를 비교한 막대 그래프
화면 중앙(0.5m 미만)과 왼쪽·오른쪽 끝의 스케일 오차 중앙값과 사분위 범위.
타깃화면 위치프레임기울기 중앙값거리 중앙값(m)스케일 오차 중앙값(%)사분위 범위(%)
A4왼쪽 끝37845°0.28+4.0+3.2 to +6.4
A4오른쪽 끝32638°0.26+0.0-0.6 to +0.9
FAR왼쪽 끝46246°0.35+4.8+3.4 to +8.2
FAR오른쪽 끝40840°0.32+0.4-0.8 to +1.6

결과 3

줄자 측정: 기울기는 맞고, 일정한 차이가 있다

원거리 타깃으로 30–90cm 7개 위치를 잰 결과, 스테레오 대 줄자의 기울기는 0.980였고 일정한 차이를 뺀 잔차 RMS는 0.7cm였습니다. A4 타깃은 30–50cm에서만 인식되어 기울기 1.029(3개 점)였습니다.

스테레오 거리는 줄자보다 2.3–5.6cm 짧았습니다. 줄자 0점은 벽에 두었지만 리그 쪽 눈금을 읽은 위치는 기록하지 않았고, 먼 거리에서는 줄자가 비스듬히 처졌습니다. 두 가지 모두 줄자 값을 길게 만듭니다. 따라서 이 차이는 스테레오가 아니라 줄자 설치의 특성으로 보고, 정확도 수치에는 쓰지 않았습니다.

줄자 값과 스테레오 거리를 비교한 산점도, 피팅 직선이 기준선과 평행
판 평면까지의 스테레오 거리와 줄자 값(0점: 벽). 직선: 세션별 선형 피팅.
줄자(cm)스테레오, 원거리 타깃(cm)줄자−스테레오(cm)스테레오, A4 타깃(cm)줄자−스테레오(cm)
3026.33.727.12.9
4035.44.637.62.4
5045.84.247.72.3
6057.32.7인식 불가—
7065.64.4인식 불가—
8075.44.6인식 불가—
9084.55.5인식 불가—

해석

데이터를 쓰는 쪽이 가져갈 결론

검증됨: 공장 캘리브레이션 그대로 쓸 때, 이 장비의 화면 중앙 미터 스케일은 0.25–0.85m에서 약 0.5% 짧습니다. 추정: 깊이에 약 1.005를 곱하는 전역 보정(좌우 간격 약 65.4mm에 해당)으로 대부분 없앨 수 있지만, 이 보정을 독립 데이터로 아직 검증하지 않았습니다.

해석: 손 작업 데이터에서 화면 중앙은 수 mm 수준으로 신뢰할 수 있고, 화면 왼쪽 바깥쪽은 그렇지 않습니다. 화면 가장자리에서 정확한 3D가 필요하면 그 영역에 가중치를 낮추거나 제외하고, 가장자리를 촘촘히 덮는 재캘리브레이션을 해야 합니다.

  • 물체 크기·팔 뻗는 거리 같은 미터 단위 값은 화면 중앙 영역의 깊이로 계산합니다.
  • 화면 왼쪽 바깥(중심에서 약 450px 이상)은 수 % 수준의 불확실성이 있는 영역으로 다룹니다.
  • 리그 쪽 줄자 눈금 위치를 정하지 않았다면 줄자 거리와 스테레오 거리를 직접 비교하지 않습니다.

연구의 한계

  • R8 스테레오+IMU 장비 1대, 실내 사무실 1곳, 하루(2026-10-26) 측정 결과이며 다른 장비 전체를 대표하지 않습니다.
  • 모든 측정은 자동 처리(OpenCV 검출·삼각측량·피팅)입니다. 사람이 독립적으로 다시 측정하지 않았으므로 알고리즘 기반 예비 분석(AI-only preliminary analysis)입니다.
  • 공장 캘리브레이션 파일은 제3자 자료이므로 평가에만 사용하고 재배포하지 않습니다. 원본 영상은 사람과 사무실 내부가 찍혀 있어 공개하지 않습니다.
  • A4 용지에 인쇄해 벽에 테이프로 붙인 타깃이며, 평평함을 따로 측정하지 않았습니다(삼각측량 평면 RMS 0.5–5mm는 거리가 멀수록 커지며 주로 삼각측량 잡음입니다).
  • 쇠자 판독 허용오차 약 ±0.5mm/전체 길이는 칸 크기로 ±0.19–0.31%에 해당합니다. 보고한 −0.5% 치우침은 이 허용오차의 약 2배입니다.
  • 리그를 손에 들고 촬영했으며, 화면 끝 세션에서는 기울기와 화면 위치가 함께 바뀝니다.
  • A4 타깃은 약 0.6m 넘어서 인식되지 않아, 0.7m 이상 구간은 코너 8개짜리 원거리 타깃만으로 계산했고 불확실성이 큽니다.
  • 손이 자주 나오는 화면 아래쪽은 끝 세션에서 덮지 못해 이번에 평가하지 않았습니다.

자주 묻는 질문

ODL-EGO S1 리그의 스테레오 깊이는 손 작업 거리에서 얼마나 정확한가요?

화면 중앙에서는 0.25–0.85m 구간 스케일 오차가 -0.51%(프레임 2,492개 중앙값)로, 0.5m에서 약 2.5mm 짧은 수준입니다. 화면 왼쪽 끝에서 면이 크게 기울면 약 +4~5%까지 커집니다.

기준값은 무엇을 썼나요?

인쇄된 ChArUco 칸의 크기를 판 전체 길이 기준으로 쇠자로 잰 값(칸 29.17mm, 53.4mm)입니다. 줄자 거리는 선형성 확인에만 썼습니다.

줄자 거리와 왜 2–5cm 차이가 나나요?

줄자 0점은 벽에 두었지만 손에 든 리그 쪽 눈금 위치를 기록하지 않았고, 줄자가 비스듬히 처졌기 때문입니다. 이 차이는 일정한 값이며, 기울기는 0.98(원거리 타깃, 7개 점)과 1.03(A4 타깃, 3개 점)이었습니다.

측정 전에 캘리브레이션을 바꿨나요?

아니요. 모든 깊이는 장비와 함께 받은 제조사 캘리브레이션으로 계산했습니다. 0.5% 보정 가능성은 추정으로만 보고합니다.

사람이 직접 검증했나요?

쇠자·줄자 판독은 사람이 했고, 검출·삼각측량·통계는 자동 처리입니다. 결과를 사람이 독립적으로 다시 측정하지는 않았습니다.

다른 R8 장비에도 적용되나요?

그대로 적용되지는 않습니다. 장비 1대, 방 1곳, 하루의 결과입니다. 같은 검사를 장비마다 돌릴 수 있도록 방법과 코드를 공개합니다.

RESEARCH RESOURCES

기술자료 살펴보기

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