在 Unity 中访问 HoloLens 深度图像?

Access HoloLens depth image in Unity?

有谁知道如何在 Unity 应用程序中访问来自 Hololens 深度相机的原始深度图像?我知道我必须在 Hololens 上启用 "research mode"。我在 https://github.com/Microsoft/HoloLensForCV/tree/master/Samples/SensorStreamViewer 看到了 "SensorStreamViewer" 的示例,但这是一个 DirectX 应用程序。我想使用 Unity,因为它似乎比 DirectX 更容易进行原型设计和开发(尤其是对于像我这样的新开发人员!)。

顺便说一句,我计划将深度图像流式传输到外部台式 PC 以进行对象识别,然后在 Hololens 上接收返回的结果,以便我可以渲染与真实对象对齐的全息图。

不知道我是否理解正确。我建议检查 SpatialMappingExample 和 SpatialProcessing。它是关于可视化和访问空间映射数据的。处理原始空间映射数据,基于空间映射网格查找和创建平面...但是现在他们删除了所有指南,因为新的 MRTK V2 -.- 所以我不能给你参考

甚至 Microsoft 文档(底部)中的 references 都引用了一个不存在的页面

在与包括 Microsoft 技术支持在内的许多人交谈后,我发现只有启用研究模式然后编写 C++ 代码并使用 DirectX 才能访问 Hololens 深度相机图像。无法使用 C# 和 Unity 访问深度相机。

如果其他人想要追求这个,可以编写访问深度相机的 C++ 代码,并将其放入可以从 Unity 使用的插件 dll 中。例如,以下项目展示了如何从 Unity(但不是深度相机)访问网络摄像头流:https://github.com/VulcanTechnologies/HoloLensCameraStream

如果您编写包装器 class 并将 HoloLensForCV 用作 winmd,则可以在 Unity 中使用它,如 https://github.com/doughtmw/HoloLensForCV-Unity. And you can also convert the code in C# code. You need to convert the MediaFrameSourceGroup class。可以通过 Guids 访问流数据。