栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

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

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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

基础环境
  1. WIN10 专业版
  2. VS2019社区版
  3. Unity2019.3.4版本
  4. WIN SDK 最新
  5. HoloLens2处于研究者模式(见我另外一篇博客)
  6. 参考出处
  7. 关掉两边的防火墙
配置过程 下载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(); 这是旧的函数入口点。更新为下面 2021-11-1
    [DllImport("HL2RmStreamUnityPlugin", EntryPoint = "Initialize", CallingConvention = CallingConvention.StdCall)]
	public static extern void InitializeDll(); // 更新的函数入口点  2021-11-1

    void Start()
    {

        //StartDll();
        InitializeDll();

    }

    // 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添加如下代码



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.

实时性问题的解决和深度图数据问题的解决

见另外一个博文Hololens2初入——解决HL真机到PC图像传输的实时性问题

发布到Hololens2 后 找不到.dll文件

把拷贝到unity中的dll设置一下参数

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号