[论文解读] HoloLens 2 Sensor Streaming
本论文提出了一种基于TCP的实时流媒体系统,用于传输HoloLens 2的传感器数据,实现了将RGB、灰度、深度、IMU、音频、眼动、头部和手势追踪数据以低延迟、全帧率传输至外部系统。通过利用HoloLens 2原生的视频编码功能,并结合C++ UWP服务器与跨平台Python客户端,系统在1080p视频下实现了约270 ms的延迟,同时支持与Open3D和MMDetection等第三方库集成,实现实时三维重建与分割。
We present a HoloLens 2 server application for streaming device data via TCP in real time. The server can stream data from the four grayscale cameras, depth sensor, IMU, front RGB camera, microphone, head tracking, eye tracking, and hand tracking. Each sent data frame has a timestamp and, optionally, the instantaneous pose of the device in 3D space. The server allows downloading device calibration data, such as camera intrinsics, and can be integrated into Unity projects as a plugin, with support for basic upstream capabilities. To achieve real time video streaming at full frame rate, we leverage the video encoding capabilities of the HoloLens 2. Finally, we present a Python library for receiving and decoding the data, which includes utilities that facilitate passing the data to other libraries. The source code, Python demos, and precompiled binaries are available at https://github.com/jdibenes/hl2ss.
研究动机与目标
- 在计算能力更强、库支持更丰富的外部系统上,实现对HoloLens 2传感器数据的实时在线实验。
- 克服现有工具(如Windows设备门户和Research Mode API)在实时流传输或完整传感器访问方面的局限性。
- 提供所有HoloLens 2传感器(包括灰度相机、深度、IMU及高级追踪数据(眼动、头部、手势))的低延迟、全帧率流传输。
- 通过支持Windows、Linux和macOS的Python库,实现跨平台数据接收与处理,提供解码、去畸变、对齐和存储等实用功能。
- 促进与Open3D和MMDetection等第三方库的集成,实现实时三维重建与全景分割。
提出的方法
- 在HoloLens 2上实现一个C++通用Windows平台(UWP)服务器应用程序,通过为每种数据类型分配专用端口,在TCP上暴露传感器流。
- 利用HoloLens 2的原生视频编码(H.264/HEVC)和Microsoft Media Foundation SDK,对视频和音频流进行压缩,在保持实时性能的同时降低带宽消耗。
- 将深度数据以16位深度图与活动亮度图交错编码为无损PNG格式传输,排除sigma通道以提高压缩效率。
- 使用Windows套接字实现可靠、低延迟的TCP传输,并在所有流中保持纳秒级精度的统一时间戳,以实现同步。
- 开发一个支持Windows、Linux和macOS的Python客户端库,用于解码流数据,通过信号量管理数据同步,并提供去畸变、对齐和文件I/O等实用功能。
- 与OpenCV集成实现图像去畸变,与PyAV集成实现MP4编码,从而支持使用Open3D和MMDetection等工具构建实时处理流水线。
实验结果
研究问题
- RQ1能否构建一个实时、低延迟的TCP流媒体系统,将HoloLens 2的所有传感器数据(包括以往无法访问的流,如灰度相机和深度数据)暴露给外部系统?
- RQ2使用HoloLens 2的原生编码和TCP传输,全帧率视频流(如1080p 30 FPS)的端到端延迟可达到多少?
- RQ3如何利用跨平台客户端实现实时同步与处理来自多种异构源(视频、深度、IMU、追踪)的传感器数据?
- RQ4该系统在多大程度上能够实现实时集成第三方库(如Open3D和MMDetection)用于三维重建与语义分割?
- RQ5同时以全帧率流传输所有HoloLens 2传感器数据所需的网络带宽是多少?
主要发现
- 系统实现了对HoloLens 2所有传感器数据(包括四个灰度相机、深度、IMU、RGB视频、麦克风及追踪数据)的实时流传输,帧率全为全帧率,且延迟极低。
- 在测试环境中,1080p 30 FPS视频流的端到端延迟测量值约为270 ms,证明了其具备实用的低延迟性能。
- 所有流的总网络带宽平均为19 Mbit/s,各流带宽范围从12 Kbit/s(磁力计)到6.5 Mbit/s(深度)。
- Python客户端库成功解码并同步了多路流数据,实现了基于对齐的RGBD数据实时三维重建(使用Open3D)。
- 系统支持使用MMDetection对RM VLC图像进行实时全景分割,该结果随后用于分割深度数据,验证了端到端处理流水线的可行性。
- 该框架通过NumPy数组及去畸变、对齐和文件I/O等实用函数,实现了与外部工具的无缝集成,促进了可复现且可扩展的研究工作流。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。