제8장
WIA-SEMI-013 표준은 ToF, 구조광, 스테레오 비전 시스템을 아우르는 3D 이미지 센서 기술에 대한 포괄적인 규격을 제공한다. 이 표준은 공통 데이터 형식, API 인터페이스, 통신 프로토콜, 인증 기준을 확립함으로써 상호 운용성을 가능하게 하고 산업 전반에 걸쳐 3D 센싱의 도입을 가속화한다.
WIA-SEMI-013은 WIA 4단계 표준화 프레임워크를 따르며, 데이터 표현, 프로그래밍 인터페이스, 통신 프로토콜, 시스템 통합을 단계적으로 다룬다. 네 단계 명세는 모두 버전 1.0(2025-01-15)이다.
3D 센서 데이터와 사양에 대한 표준화된 표현을 정의한다.
standard, version, sensor가
필수이다. sensor 안에서는 technology(iToF, dToF, structured_light,
stereo, hybrid), resolution, frameRate(1-240), depthRange가 필수이고,
정확도(value, units, at_distance), 시야각, 조명 파장(400-1550nm), 조명 방식은 선택이다.다음은 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"
}
}
| 오프셋 | 크기(바이트) | 필드 | 설명 |
|---|---|---|---|
| 0 | 4 | magic | 0x57494133("WIA3") |
| 4 | 2 | version | 형식 버전(major.minor) |
| 6 | 2 | encoding | 0=uint16, 1=uint32, 2=float32 |
| 8 | 4 | width | 영상 폭(픽셀) |
| 12 | 4 | height | 영상 높이(픽셀) |
| 16 | 4 | timestamp_sec | Unix 타임스탬프(초) |
| 20 | 4 | timestamp_usec | 마이크로초 |
| 24 | 4 | depth_scale | 배율(depth_mm = 값 × 배율) |
| 28 | 4 | min_depth | 유효 최소 깊이(mm) |
| 32 | 4 | max_depth | 유효 최대 깊이(mm) |
| 36 | 4 | confidence_offset | 신뢰도 맵 오프셋(없으면 0) |
| 40 | 24 | reserved | 향후 사용을 위한 예약 영역 |
파일 확장자는 깊이 맵 .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)를 참조한다.
센서 제어, 데이터 취득, 처리를 위한 RESTful API와 SDK를 제공한다.
GET /api/v1/devices로 장치를 탐색하고, GET /api/v1/devices/{device_id}로
사양·기능·현재 구성을 조회한다.PUT .../config로 해상도, 프레임 속도, 깊이 품질, 시간·공간 필터, 전원 모드를 설정하고,
PUT .../preset으로 face_authentication, gesture_recognition, navigation,
inspection, long_range 프리셋을 적용한다.POST .../stream/start로 depth, rgb, confidence 스트림을 요청하면 WebSocket URL이
반환된다. 각 바이너리 메시지는 프레임 유형, 시퀀스 번호, 마이크로초 타임스탬프, 폭, 높이, 인코딩을 담은 32바이트 헤더로 시작한다.GET .../calibration으로 내부·외부 파라미터와 온도 보상을 조회하고,
PUT .../calibration/user로 사용자 보정값을 적용한다.
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를
최소로 허용한다.
네트워크로 연결된 3D 센싱 시스템을 위한 통신 프로토콜을 정의한다.
ultra_low(10ms 미만),
low(50ms 미만), balanced(100ms 미만), reliable(500ms 미만)의 네 가지이다.프로토콜 적합성은 세 수준으로 나뉜다. Level 1(Basic)은 단일 센서 스트리밍과 소프트웨어 동기화, Level 2(Standard)는 다중 센서 동기화, TLS 암호화, QoS 지원, Level 3(Advanced)는 하드웨어 동기화, 종단 간 암호화, 실시간 FEC를 요구한다. 이 적합성 수준은 아래의 Bronze·Silver·Gold 성능 인증과 별개의 체계이다.
시스템 통합을 위한 지침과 참조 구현을 제공한다.
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 |
인증을 받으려면 다음의 표준화된 시험을 통과해야 한다.
인증 신청에는 승인된 시험소의 시험 보고서, 보정 인증서, 정확도 사양을 명시한 사용자 매뉴얼, 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은 생태계 전체가 그 위에 구축할 수 있는 안정된 기반을 제공함으로써 혁신을 가속화한다.
弘益人間 (홍익인간)
널리 인간을 이롭게 하라