제8장

WIA-SEMI-013 표준 규격

개요

WIA-SEMI-013 표준은 ToF, 구조광, 스테레오 비전 시스템을 아우르는 3D 이미지 센서 기술에 대한 포괄적인 규격을 제공한다. 이 표준은 공통 데이터 형식, API 인터페이스, 통신 프로토콜, 인증 기준을 확립함으로써 상호 운용성을 가능하게 하고 산업 전반에 걸쳐 3D 센싱의 도입을 가속화한다.

4단계 아키텍처

WIA-SEMI-013은 WIA 4단계 표준화 프레임워크를 따르며, 데이터 표현, 프로그래밍 인터페이스, 통신 프로토콜, 시스템 통합을 단계적으로 다룬다. 네 단계 명세는 모두 버전 1.0(2025-01-15)이다.

1단계: 데이터 형식

3D 센서 데이터와 사양에 대한 표준화된 표현을 정의한다.

다음은 Phase 1에 수록된 센서 사양 예시이다.

{
  "standard": "WIA-SEMI-013",
  "version": "1.0",
  "sensor": {
    "technology": "iToF",
    "manufacturer": "Sony",
    "model": "IMX556PLR",
    "resolution": {"width": 640, "height": 480},
    "frameRate": 30,
    "depthRange": {"min": 0.2, "max": 5.0, "units": "meters"},
    "accuracy": {"value": 5, "units": "mm", "at_distance": 2.0},
    "fieldOfView": {"horizontal": 87, "vertical": 58, "units": "degrees"},
    "wavelength": 940,
    "illumination": "active"
  }
}

깊이 맵 바이너리 헤더

오프셋 크기(바이트) 필드 설명
04magic0x57494133("WIA3")
42version형식 버전(major.minor)
62encoding0=uint16, 1=uint32, 2=float32
84width영상 폭(픽셀)
124height영상 높이(픽셀)
164timestamp_secUnix 타임스탬프(초)
204timestamp_usec마이크로초
244depth_scale배율(depth_mm = 값 × 배율)
284min_depth유효 최소 깊이(mm)
324max_depth유효 최대 깊이(mm)
364confidence_offset신뢰도 맵 오프셋(없으면 0)
4024reserved향후 사용을 위한 예약 영역

파일 확장자는 깊이 맵 .wia-depth(바이너리)와 .wia-depth.csv(텍스트), 포인트 클라우드 .pcd, 보정 데이터 .wia-calib.json, 센서 사양 .wia-sensor.json이다. 깊이는 광학 중심에서의 유클리드 거리가 아니라 Z축(센서 평면에 수직) 방향 거리로 측정한다. 버전 1.x 형식은 하위 호환되며, 파서는 알 수 없는 필드를 무시해야 한다. 이 밖에 Phase 1은 타임스탬프에 ISO 8601:2019, 부동소수점에 IEEE 754-2019, 네트워크 시간 동기화에 IEEE 1588-2019(PTPv2)와 RFC 5905(NTPv4)를 참조한다.

2단계: API 인터페이스

센서 제어, 데이터 취득, 처리를 위한 RESTful API와 SDK를 제공한다.

SDK는 TypeScript/JavaScript(@wia/semi-013-sdk), Python(wia-semi-013), C++(CMake 패키지 WIA_SEMI_013)와 ROS 2 패키지로 제공되며, ROS 2 노드는 /wia/depth/image, /wia/depth/camera_info, /wia/points, /wia/rgb/image 토픽을 발행한다. 적합성 측면에서 Phase 2는 OpenAPI 3.1.0 기술 문서, RFC 9457 문제 상세(Problem Details) 오류 응답, 최소 bearerAuth 인증, 제한 대상 엔드포인트의 속도 제한 헤더를 요구한다. 전송은 TLS 1.3을 권장하고 TLS 1.2를 최소로 허용한다.

3단계: 프로토콜

네트워크로 연결된 3D 센싱 시스템을 위한 통신 프로토콜을 정의한다.

프로토콜 적합성은 세 수준으로 나뉜다. Level 1(Basic)은 단일 센서 스트리밍과 소프트웨어 동기화, Level 2(Standard)는 다중 센서 동기화, TLS 암호화, QoS 지원, Level 3(Advanced)는 하드웨어 동기화, 종단 간 암호화, 실시간 FEC를 요구한다. 이 적합성 수준은 아래의 Bronze·Silver·Gold 성능 인증과 별개의 체계이다.

4단계: 통합

시스템 통합을 위한 지침과 참조 구현을 제공한다.

인증 등급

WIA-SEMI-013 Phase 4는 성능 기준에 따라 세 가지 인증 등급을 정의한다.

파라미터 Bronze Silver Gold
깊이 정확도 ±5mm @ 2m ±2mm @ 2m ±1mm @ 2m
최소 해상도 320x240 640x480 1280x960
최소 프레임 속도 15 fps 30 fps 60 fps
동작 환경 실내 실내 + 실외 직사광선 전체(100,000 lux)
다중 경로 처리 기본 처리 고급 보정 AI 기반 처리
온도 범위 -20°C ~ +60°C -40°C ~ +85°C -40°C ~ +85°C

적합성 시험

인증을 받으려면 다음의 표준화된 시험을 통과해야 한다.

  1. 정확도 시험: 센서를 안정된 삼각대에 고정하고 보정판을 0.5m, 1m, 2m, 3m, 5m에 둔다. 거리마다 100프레임을 캡처하여 평균 오차와 표준편차를 구하고, 모든 거리에서 규정 정확도 이내인지 확인한다.
  2. 반복성 시험: 정적 장면에서 1000프레임을 수집하여 픽셀별 표준편차를 계산하고, 픽셀의 95%가 정밀도 사양 이내인지 확인한다.
  3. 다중 경로 시험: 코너 재귀반사 구성에서 모서리 영역의 깊이를 측정해 실측값과 비교하고, 오차가 정상 정확도 사양의 2배 이내인지 확인한다.
  4. 환경 시험: 온도(위 표), 습도 10-90% RH(비응결), 주변광 100,000 lux(Gold), 진동 10-2000 Hz·2g, 전자파 내성 IEC 61000-4-3(10 V/m) 조건에서 동작을 확인한다.
  5. API 적합성 시험: 공개된 OpenAPI 기술 문서에 대해 각 엔드포인트가 선언된 스키마를 따르는지 검증한다.

인증 신청에는 승인된 시험소의 시험 보고서, 보정 인증서, 정확도 사양을 명시한 사용자 매뉴얼, WIA-SEMI-013을 준수하는 소프트웨어 SDK, 적합성 선언서가 필요하다.

참조 구현

Phase 2의 TypeScript SDK 예시는 다음과 같다.

import { WIA3DImageSensor, DepthFrame } from '@wia/semi-013-sdk';

// 센서 초기화
const sensor = new WIA3DImageSensor({
  deviceId: 'sensor-001',
  resolution: { width: 640, height: 480 },
  frameRate: 30
});

await sensor.start();

// 깊이 프레임 스트리밍
sensor.on('depth-frame', (frame: DepthFrame) => {
  // 중앙 픽셀의 깊이
  const depth = frame.getDepth(320, 240);

  // 포인트 클라우드로 변환
  const pointCloud = frame.toPointCloud({
    removeInvalid: true,
    voxelSize: 0.01  // 1cm 다운샘플링
  });

  // PCD로 내보내기
  const pcdData = pointCloud.exportPCD();
});

// 깊이 품질과 시간 필터 구성
await sensor.configure({
  depthQuality: 'high',
  filters: {
    temporal: { enabled: true, frames: 3 }  // 3프레임 시간 필터
  }
});

await sensor.stop();

도입 및 구현 전략

센서 제조업체를 위한 전략

WIA-SEMI-013 준수를 단계별로 구현하면 각 단계마다 얻는 이점이 분명하다.

구현 단계 필요한 조치 이점
1단계: 데이터 형식 센서 사양 JSON, WIA 깊이 맵, 보정 형식 지원 WIA 도구와의 상호 운용성
2단계: API REST API 및 SDK 인터페이스 구현 개발자 생태계 호환성
3단계: 프로토콜 WIA-PC-Stream·WIA-Depth-Stream, 동기화, 보안 지원 다중 공급업체 시스템 통합
4단계: 통합·인증 통합 지침 반영, 성능 인증 시험 신청 객관적 성능 근거, 조달 요건 대응

애플리케이션 개발자를 위한 전략

WIA-SEMI-013을 기준으로 개발하면 통합 작업이 줄어들고 애플리케이션의 이식성이 향상된다.

시스템 통합업체를 위한 전략

WIA 준수 구성 요소로 시스템을 구축하면 통합과 지속적인 지원이 간소화된다. 다중 공급업체 조달은 공급망 위험을 줄인다. 표준화된 인터페이스 덕분에 시스템을 재설계하지 않고도 구성 요소를 업그레이드할 수 있다. 다만 Phase 4 적합성을 주장하려면 하위 시스템이 Phase 1~3을 준수하고, 적용되는 기능 안전 표준을 선언하며, 응용 분야에 맞는 위험 분석을 수행·기록해야 한다.

향후 로드맵

Phase 4 명세(v1.0, 2025-01-15)는 다음 개정 계획을 제시한다. 아래 일정은 v1.0 명세 기준이므로 최신 일정은 WIA의 현행 발표를 확인해야 한다.

Phase 1은 데이터 형식 버전 2.0에서 도입될 수 있는 후보로 NeRF 표현, 압축 신경 포인트 클라우드, 다중 스펙트럼 깊이 데이터, 이벤트 기반 깊이 스트림을 든다.

결론

WIA-SEMI-013 표준은 저수준 데이터 형식에서 고수준 애플리케이션 통합에 이르기까지 3D 이미지 센서 기술을 위한 포괄적인 프레임워크를 제공한다. 이 표준을 따름으로써 제조업체는 상호 운용성을 보장하고, 개발자는 여러 센서에 걸쳐 일관된 API를 얻으며, 최종 사용자는 인증된 성능 수준의 혜택을 누린다.

3D 센싱이 스마트폰, 자동차, 로봇, AR/VR 시스템에 보편화됨에 따라 표준화는 점점 더 중요해진다. WIA-SEMI-013은 생태계 전체가 그 위에 구축할 수 있는 안정된 기반을 제공함으로써 혁신을 가속화한다.

요약

핵심 내용:

복습 질문

  1. WIA-SEMI-013의 4단계 아키텍처를 설명하라. 이러한 점진적 접근 방식이 단일(monolithic) 표준에 비해 유리한 이유는 무엇인가?
  2. 세 가지 인증 등급(Bronze, Silver, Gold)은 무엇이며 각각 어떤 성능 수준을 나타내는가? 등급별 인증이 유용한 이유는 무엇인가?
  3. WIA 깊이 맵 바이너리 형식의 헤더 구조를 설명하라. 어떤 정보를 인코딩하며 각 필드가 필요한 이유는 무엇인가?
  4. 3D 센서에 접근하기 위한 TypeScript SDK 방식과 REST API 방식을 비교하라. 각각을 어떤 경우에 선택하겠는가?
  5. 한 제조업체가 자사의 독자 ToF 센서를 WIA-SEMI-013에 준수하도록 만들고자 한다. 그 절차와 각 단계에서 구현해야 할 사항을 개략적으로 제시하라.
  6. 보정 형식에서 온도 보상 테이블의 목적은 무엇인가? 센서가 고정된 보정값만 사용할 수 없는 이유는 무엇인가?
  7. WIA-SEMI-013이 다중 센서 융합을 어떻게 지원하는지 설명하라. 서로 다른 센서의 데이터를 결합할 수 있게 하는 구체적인 형식과 API는 무엇인가?
  8. 이 표준이 동일한 데이터에 대해 바이너리 형식과 JSON/CSV 형식을 모두 포함하는 이유는 무엇인가? 각각의 사용 사례는 무엇인가?

弘益人間 (홍익인간)
널리 인간을 이롭게 하라