| Company | Technology | Application | Range |
|---|---|---|---|
| Sony | iToF/dToF | Smartphones, AR/VR | 0.2-5m |
| Samsung | iToF | Galaxy Devices | 0.1-8m |
| Infineon | ToF | Automotive, Industrial | 0.1-10m |
| STMicroelectronics | dToF | LiDAR, Robotics | 0.4-8m |
| Apple (PrimeSense) | Structured Light | Face ID, TrueDepth | 0.25-1.2m |
| Intel RealSense | Stereo + Structured | Robotics, Drones | 0.3-10m |
// Point Cloud Processing Steps:
1. Acquisition
- Capture raw depth frames from 3D sensor
- Timestamp synchronization with RGB frames
2. Pre-processing
- Remove invalid points (confidence threshold)
- Multi-path interference correction
- Flying pixel removal
3. Filtering
- Statistical outlier removal
- Voxel grid downsampling
- Pass-through filtering (range limits)
4. Transformation
- Camera to world coordinate transform
- Sensor calibration application
- Multi-sensor registration
5. Feature Extraction
- Normal estimation
- Keypoint detection (SIFT, SHOT, etc.)
- Surface reconstruction
6. Application
- Object detection and tracking
- SLAM (Simultaneous Localization and Mapping)
- 3D reconstruction
- Gesture recognition
import { ThreeDImageSensor, ToFSensor, DepthFrame } from 'wia-3d-sensor-sdk';
// Initialize 3D sensor
const sensor = new ThreeDImageSensor({
type: 'iToF',
resolution: { width: 640, height: 480 },
frameRate: 30,
depthRange: { min: 0.1, max: 10 },
accuracy: 1.0 // mm
});
// Start depth streaming
await sensor.start();
// Capture depth frame
sensor.on('depth-frame', (frame: DepthFrame) => {
console.log(`Frame ${frame.id}`);
console.log(`Timestamp: ${frame.timestamp}`);
console.log(`Depth data points: ${frame.points.length}`);
// Process point cloud
const pointCloud = frame.toPointCloud();
// Apply filters
pointCloud
.removeOutliers({ threshold: 2.0 })
.downsample({ voxelSize: 0.01 })
.transform(cameraToWorldMatrix);
// Export
const pcdData = pointCloud.export('pcd');
});
// Face detection integration
const faceDetector = sensor.createFaceDetector({
minDistance: 0.3,
maxDistance: 1.2,
depthThreshold: 0.05
});
faceDetector.on('face-detected', (face) => {
console.log('Face detected:', face.boundingBox);
console.log('Depth map:', face.depthMap);
});
| Parameter | Bronze | Silver | Gold |
|---|---|---|---|
| Depth Accuracy | ±5mm @ 2m | ±2mm @ 2m | ±1mm @ 2m |
| Depth Resolution | 320x240 | 640x480 | 1280x960 |
| Frame Rate | 15 fps | 30 fps | 60 fps |
| Operating Range | 0.5-5m | 0.2-8m | 0.1-10m |
| Ambient Light Robustness | Indoor | Indoor + Outdoor | Full Sunlight |
| Multi-path Handling | Basic | Advanced | Expert + AI |