该方法主要是来自github的jdibenes/hl2ss:HoloLens 2 Sensor Streaming。 (来自于github.com)
大佬写的方法已经非常明确了,非常欣赏这种把代码解释的明明白白的大兄弟,我就说几个跑通过程中的一些小点:
需要软件平台:unity(导入微软的MRTK)、visual studio、Python或其他编译器(用pycharm或者vscode都可以)
需要硬件平台:一台有无线网卡的电脑、wifi路由器、HoloLens 2(需要先手动开启开发人员模式、设备门户、研究模式)即可。
小白原理知识储备:这套平台主要是通过TCP协议,借助于WIFI路由器,在局域网内进行传输hololens的传感器数据,而且作者开发的服务端可以集成到UNITY的项目中,实现在操作的同时实时传输流式数据来实现多源数据的采集并传输到电脑,电脑端提供了基于Python编写的接收端,可以实时接收来自hololens的传感器数据,这些传感器数据包括:
支持的接口
- 研究模式可见光相机(640×480 @ 30 FPS,灰度,H264或HEVC编码)
- 左前方
- 左左 左
- 右前方
- 右 右 右
- 研究模式深度
- AHAT(512×512 @ 45 FPS,16 位深度 + 16 位 AB、H264 或 HEVC 编码或无损* Z深度深度)
- 长空转角(320×288 @ 5 FPS,16 位深度 + 16 位 AB,PNG 编码)
- 研究模式 IMU
- 加速度计 (m/s^2)
- 陀螺仪(度/秒)
- 磁力计
- 前置摄像头(1920×1080 @ 30 FPS,RGB,H264 或 HEVC 编码)
- 麦克风(2 通道 @ 48000 Hz,16 位 PCM,AAC 编码)
- 空间输入 (30 Hz)
- 头部追踪
- 眼动追踪
- 手部跟踪
- 空间映射
- 场景理解
- 语音输入
- 扩展眼动追踪(30、60 或 90 FPS)
附加功能
- 下载前置摄像头和研究模式传感器(RM IMU 磁力计除外)的校准数据(例如,相机内在、外在、无失真图)。
- 前置摄像头和研究模式传感器的可选每帧姿势。
- 客户端可以配置 H264、HEVC 和 AAC 编码流的比特率和属性。
- 客户端可以配置前置摄像头的分辨率和帧速率。有关支持的配置列表,请参阅此处。
- 客户端可以配置前置摄像头的对焦、白平衡和曝光。看这里。
- 帧时间戳可以转换为 Windows 文件时间 (UTC) 以进行外部同步。看这里。
- 客户端可以使用插件将消息发送到 Unity 应用程序。
在开始安装之前,推荐一个socket入门视频:https://www.bilibili.com/video/BV1a7411z75u通过该视频我们可以了解数据如何在局域网内的两台电脑中传输。
作者提供了一个APPXBUNDLE包,似乎是用于演示传感器的传输的,可以安装到hololens上,但是我个人实验过后发现该包在最新的hololens系统上无法运行,无法打开,于是作罢。
其次作者提供了将这套系统集成在unity项目中的方法,可以通过一系列操作来实现自己的项目中,传感器数据的流式传输。
具体的使用方法可以参考github的https://github.com/jdibenes/hl2ss#unity-plugin
部分,一定要按照步骤一步一步来。
最后跑通的全流程:
1、安装上面提到的所有软件,unity版本我选的是2020.3.48fc1,visual studio我装的2019版本,并下了一堆环境(主要是之前使用unralengine开发的时候安装的),vscode我提前安装了chinese包和python环境,你使用anaconda搞一个环境也是可以的,python版本是3.9
2、安装好unity之后,下载微软MRTK包FOR unity(练习 – 导入和配置资源 – 培训 |Microsoft学习),新建一个项目,尝试将MRTK包导入新项目中,并且运行成功(在导入包的时候一定要fix,多次点击FIX,否则导入后会有很多警报无法运行)。

3、对MRTK包在unity中的集成进行测试,新建一个cube,通过学习该章节实现在电脑中的交互Exercise – Add hand interaction scripts to an object – Training | Microsoft Learn,
如果成功实现交互,则开始尝试将该APP导入hololens
4、此时对 hololens进行配置,这几点缺一不可,注意最后一项研究模式的启用,需要在电脑端输入IP地址,输入HOLOLENS的用户名密码,进入设备门户后,在设置中启用。
在使用服务器软件之前,请按如下方式配置 HoloLens:
- 启用开发人员模式:设置 -> 更新和安全 -> 面向开发人员 -> 使用开发人员功能。
- 启用设备门户:设置 -> 更新和安全 -> 面向开发人员 ->设备门户。
- 启用研究模式:请参阅 HoloLens 研究模式中的“启用研究模式”部分。
请注意,在 HoloLens 上启用研究模式会增加电池使用量。
5、hololens端配置完成之后,将unity项目进行打包build(https://github.com/jdibenes/hl2ss#unity-plugin),build之后生成了一个文件夹,打开文件夹根目录下的(项目名称XXXX.sln)文件,并通过作者所说的方法,配置传输的IP地址,将项目编译后,通过网络传输到hololens中
6、打开电脑上python运行环境,安装接收端所必须的一些包:
所需软件包
可选包
- 品普特
pip install pynput
- 开放3D
pip install open3d
- 皮音频
pip install PyAudio
- MMDetection
- 网络套接字
pip install websockets
7、在hololens中找到刚刚打包的程序,打开,同时打开电脑端的py文件,hololens提示的权限全都给,如果成功,将会在vscode里面出现实时传输的数据流,如果失败,将提示连接超时。
