Unity3d 基于混合现实捕捉的目标识别(MRC)

Unity3d 基于混合现实捕捉的目标识别(MRC),unity3d,hololens,Unity3d,Hololens,我们正在使用全息镜头的可定位照相机(Unity)执行许多图像识别任务。我们希望利用HoloLens开发者门户中提供的混合现实捕捉功能(MRC),以便演示我们的应用程序,但是MRC崩溃了,因为我们在拍照模式下占用了相机 有人对此有很好的解决方法吗?我们已经有了一些想法,但没有一个没有大的缺点 解决方案:将可定位摄像头置于视频模式,以便与MRC共享摄像头。 缺点:视频模式只允许我们将视频保存到磁盘,但我们需要实时访问内存中的缓冲区(照片模式允许我们访问的方式),以便我们能够实时进行检测 解决方案:

我们正在使用全息镜头的可定位照相机(Unity)执行许多图像识别任务。我们希望利用HoloLens开发者门户中提供的混合现实捕捉功能(MRC),以便演示我们的应用程序,但是MRC崩溃了,因为我们在拍照模式下占用了相机

有人对此有很好的解决方法吗?我们已经有了一些想法,但没有一个没有大的缺点

解决方案:将可定位摄像头置于视频模式,以便与MRC共享摄像头。 缺点:视频模式只允许我们将视频保存到磁盘,但我们需要实时访问内存中的缓冲区(照片模式允许我们访问的方式),以便我们能够实时进行检测

<强>解决方案:在C++插件中捕获视频,并将帧字节传递到Unity。这使MRC能够按预期工作。 缺点:我们失去了“可定位摄像头”的“可定位”部分,因为我们不再能够访问cameraSpaceToWorldSpace转换矩阵,我们正在UI中使用该矩阵来定位世界空间中已识别的对象。 子解决方案:自己重新创建可定位相机视图的变换矩阵。 次缺点:我对微软如何创建这个转换矩阵没有任何见解。我想这涉及到一些硬件的复杂性,比如镜头失真。如果有人能指导我如何创建这个矩阵,这可能是一个解决方案

解决方案:在创建MRC时关闭对象识别,然后在完成录制后重新打开
缺点:我们的识别系统实时运行,每秒n次。我们无法用视频来获取对视频的识别。

< P>我们最终创建了一个统一的插件,使用微软的媒体基础来访问视频帧。我们必须防止其他人遇到这个问题

该插件模仿Unity,因此开发人员将能够轻松理解如何实现它

希望这对一些人有帮助