文章目录
- Hololens2 初入——获取彩色和深度图像数据流,并传递到程序中(不是网页浏览)
-
- 前言
- 基础环境
- 配置过程
-
- 下载github上的工程
- 编译 HoloLens2-Unity-ResearchModeStreamer
- 配置Unity项目
- 配置package文件中的兼容性
- 在VS中编译与部署
- 修改PC端接收文件
- 程序运行
Hololens2 初入——获取彩色和深度图像数据流,并传递到程序中(不是网页浏览)
前言
HoloLen2 设备内集成了多种不同类型的传感器。软件上也提供了研究者模式,便于开发者们访问传感器的原始数据,进行科研开发。
但是由于设备较新,其官方文档并没有过多的介绍这部分的内容.旧的Hololens1代码又不能直接用在新的Hololens2 上, 官方的github工程也较少,大都只停留在真机上可以获取数据而已。
本文的配置将实现把设备上的图像数据通过wifi实时地传递到电脑端,方便用深度学习算法对图像进行处理。
PS 这个工程是github上的, 目前仍然达不到实时传输的效果,延迟很高,尚未解决。但是可以在线获得图像数据便是。
基础环境
- WIN10 专业版
- VS2019社区版
- Unity2019.3.4版本
- WIN SDK 最新
- 参考出处
配置过程
下载github上的工程
地址传送门
编译 HoloLens2-Unity-ResearchModeStreamer
- 用VS打开该项目中插件工程
- 设置项目属性为release 和arm64
- 生成解决方案
配置Unity项目
- 新建一个Unity的3D项目
- 将项目切换到Universal windows patform
- 新建如下路径"Assets/Plugins/"
- 将前面编译好的文件拷贝到新建的文件夹下
文件位置
拷贝过去后 - 新建一个StreamerHL2.cs(名称注意一致,或者自己在代码中对应修改类名称),复制下面代码到脚本里面(清空原本的代码)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Runtime.InteropServices;
public class StreamerHL2 : MonoBehaviour
{
// Start is called before the first frame update
// [DllImport("HL2RmStreamUnityPlugin", EntryPoint = "StartStreaming", CallingConvention = CallingConvention.StdCall)];
[DllImport("HL2RmStreamUnityPlugin", EntryPoint = "StartStreaming", CallingConvention = CallingConvention.StdCall)]
private static extern void StartDll();
void Start()
{
StartDll();
}
// Update is called once per frame
void Update()
{
}
}
6.将脚本随便挂在在一个对象上,我挂载的是主相机
7.设置Unity 项目的兼容性,根据下图指引,勾选
InternetClient, InternetClientServer, PrivateNetworkClientServer, WebCam, SpatialPerception. 5个位置
8. 编译unity工程,注意架构选择的是ARM64.
ps. 不需要在unity中运行工程,因为我们添加的是ARM64的动态链接库,在PC端运行的话会报加载不了的错误。
配置package文件中的兼容性
- 用记事本的方式打开编译好的Unity工程文件夹中的“Package.appxmanifest”文件
- 将如下代码添加到 Package 中。注意前后各有一个空格
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
3.仍然在Package这一行中,找到"IgnorableNamespaces"的属性,添加“rescap”字段,如下图
4. 在 Capabilityes添加如下代码
<rescap:Capability Name="perceptionSensorsExperimental" />
5.保存文件退出
在VS中编译与部署
见我博客中的另外文章Unity项目部署到HL2上
修改PC端接收文件
- 打开前面下载好的github工程中的hololens2_simpleclient.py文件,路径如下
- 修改文件中的HOST参数。 (电脑和HoloLens 2同在一个局域网的时候,查看HL中的IP地址,这个HOST参数就是IP地址)
程序运行
- 将电脑和HL连接到同一个局域网中
- 在HL中运行部署好的APP应用,然后运行hololens2_simpleclient.py文件
3.