Hololens2 初入——获取彩色和深度图像数据流,并传递到程序中(不是网页浏览)

   日期:2021-04-03     浏览:152    评论:0    
核心提示:文章目录Hololens2 初入——获取彩色和深度图像数据实时传递到电脑端前言基础环境配置过程下载github上的工程编译 HoloLens2-Unity-ResearchModeStreamer配置Unity项目Hololens2 初入——获取彩色和深度图像数据实时传递到电脑端前言HoloLen2 设备内集成了多种不同类型的传感器。软件上也提供了研究者模式,便于开发者们访问传感器的原始数据,进行科研开发。但是由于设备较新,其官方文档并没有过多的介绍这部分的内容.旧的Hololens1代码又不能直接

文章目录

  • Hololens2 初入——获取彩色和深度图像数据流,并传递到程序中(不是网页浏览)
    • 前言
    • 基础环境
    • 配置过程
      • 下载github上的工程
      • 编译 HoloLens2-Unity-ResearchModeStreamer
      • 配置Unity项目
    • 配置package文件中的兼容性
    • 在VS中编译与部署
    • 修改PC端接收文件
    • 程序运行

Hololens2 初入——获取彩色和深度图像数据流,并传递到程序中(不是网页浏览)

前言

HoloLen2 设备内集成了多种不同类型的传感器。软件上也提供了研究者模式,便于开发者们访问传感器的原始数据,进行科研开发。
但是由于设备较新,其官方文档并没有过多的介绍这部分的内容.旧的Hololens1代码又不能直接用在新的Hololens2 上, 官方的github工程也较少,大都只停留在真机上可以获取数据而已。
本文的配置将实现把设备上的图像数据通过wifi实时地传递到电脑端,方便用深度学习算法对图像进行处理。
PS 这个工程是github上的, 目前仍然达不到实时传输的效果,延迟很高,尚未解决。但是可以在线获得图像数据便是。

基础环境

  1. WIN10 专业版
  2. VS2019社区版
  3. Unity2019.3.4版本
  4. WIN SDK 最新
  5. 参考出处

配置过程

下载github上的工程

地址传送门

编译 HoloLens2-Unity-ResearchModeStreamer

  1. 用VS打开该项目中插件工程
  2. 设置项目属性为release 和arm64
  3. 生成解决方案

配置Unity项目

  1. 新建一个Unity的3D项目
  2. 将项目切换到Universal windows patform
  3. 新建如下路径"Assets/Plugins/"
  4. 将前面编译好的文件拷贝到新建的文件夹下
    文件位置
    拷贝过去后
  5. 新建一个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文件中的兼容性

  1. 用记事本的方式打开编译好的Unity工程文件夹中的“Package.appxmanifest”文件
  2. 将如下代码添加到 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端接收文件

  1. 打开前面下载好的github工程中的hololens2_simpleclient.py文件,路径如下
  2. 修改文件中的HOST参数。 (电脑和HoloLens 2同在一个局域网的时候,查看HL中的IP地址,这个HOST参数就是IP地址)

程序运行

  1. 将电脑和HL连接到同一个局域网中
  2. 在HL中运行部署好的APP应用,然后运行hololens2_simpleclient.py文件
    3.

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服