HartisanBUAA / Camereon-Model-Tracker

GNU General Public License v3.0
27 stars 4 forks source link

HoloLens2, MRTK2.8.3, 运行时报错信息:无法找到DLL #2

Open Hanning-Liu opened 2 months ago

Hanning-Liu commented 2 months ago

image

Hanning-Liu commented 2 months ago

目前我使用HolographicRemotingAPP进行测试,请问是一定需要将应用部署至HoloLens2吗?

Hanning-Liu commented 2 months ago

我下午尝试将应用部署到HoloLens中,显示为窗口应用(如设置窗口、浏览器窗口这类应用),而不是沉浸式应用,无法确认有无报错信息,也未能显示模型线框。由于我对MRTK2不太熟悉,所以我不太清楚是不是我设置哪里出了问题。 请问该package是否适用于MRTK3?以及,您是否可以上传一个完整的Unity案例文件?

HartisanBUAA commented 2 months ago
  1. “DllNotFound”原因已经找到,是因为没有放入windows平台下的DLL导致editor找不到,目前已加入package中,请重新下载0.2.0版本。但editor中应该还是无法运行,因为模拟不了摄像头输入;
  2. HolographicRemotingAPP我没试过,为了减少干扰因素,请还是先在真机上测试;
  3. 关于“窗口应用”,你是否正确设置了项目?比如Build时是否忘了添加场景?Build Type是否为“D3D Project”?
  4. MRTK版本不会显示模型线框,而是显示红色的模型实体,这与ARFoundation版本有所不同;
  5. 该插件开发时MRTK3的参考资料还比较少,绝大部分开发者使用的还是MRTK2,所以就基于MRTK2开发了。大概率不能直接迁移到MRTK3,需要做一些适配。
  6. 完整的Unity案例文件太大了,我可以把Scene打包发给你试试看,请留下你的Email。

1 2

Hanning-Liu commented 2 months ago

您好,感谢您的回复。 我的Email是779504694@qq.com. 您可以在打包Unity文件时,将Unity项目文件夹中的Library文件夹去除,这样的话文件会小很多。

Hanning-Liu commented 2 months ago

我已经收到您的Unity项目文件并且将其部署至HoloLens 2之中进行了测试。该项目能够成功部署至HoloLens 2,我在程序启动后能够看到一个红色的小汽车模型。 我使用FDM打印机3D打印机打印了一个相同尺寸的实体模型,但是该程序不能正确识别并使数字模型吸附到该实体模型。

Hanning-Liu commented 2 months ago

我尝试使用HoloLens自带的录制功能记录程序的运行过程,但是似乎程序会占用HoloLens的摄像头,导致我不能成功录制。

HartisanBUAA commented 2 months ago

程序会占用摄像头。现在参数是如何设置的?另外用手机拍一张小车和背景的图片我看看 ---- 回复的原邮件 ---- 发件人Hanning @.>发送日期2024年04月30日 12:25 @.> @.>, @.>主题Re: [HartisanBUAA/Camereon-Model-Tracker] HoloLens2, MRTK2.8.3, 运行时报错信息:无法找到DLL (Issue #2) 我尝试使用HoloLens自带的录制功能记录程序的运行过程,但是似乎程序会占用HoloLens的摄像头,导致我不能成功录制。 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

Hanning-Liu commented 2 months ago

您好,我将Initialization Only 取消勾选后重新部署至HoloLens,程序能够正常运行了。 但是,我发现小车实体模型和数字模型位姿差别稍大一些就会无法匹配。 并且,程序在运行一段时间(大约1分钟后)我头部移动程度稍微大一些,就会导致数字小车瞬移至稍远处,并且会迭代着距离实体小车越来越远,且数字小车呈现绿色、红色间隔显示的状态。

测试场景照片: c10182580a843ccdfbeb9e2df25cb65

HartisanBUAA commented 2 months ago

取消勾选Initialization Only代表程序会对每一帧图像进行跟踪,但正如文档中所说的,Hololens获取图像的帧率十分低(每秒两三帧的样子),所以你必须移动的非常缓慢,稍微快一点图像之间就会差异非常大,导致跟踪失败或者跟错(越来越远是症状之一)。手机上的ARFoundation版本没有这个问题,因为图像可以正常以30或60帧获取。所以在HoloLens上推荐勾选Initialization Only,如果发生漂移则用Calibrate方法进行校正(注意使用该方法时应使物体出现在视野内)。 同时,是否勾选Initialization Only并不会影响初始化的成功率,请调整其它参数。比如Edge Magnitude Thresh为15或20,Init Quality Thresh 为0.6,Max Control Points Num 为2000。