c# - 如何设置图像目标以检测同一图像目标的所有尺寸
问题描述
我想做的是增加一个关于徽标外观的视频。
但我的疑问是,如果这个标志在不同的地方以不同的尺寸出现怎么办?
vuforia 可以检测到这些大小差异并仍然增强视频吗?
我希望能够做到这一点
解决方案
简短的回答:你不能。
Vuforia 需要知道目标的实际真实世界大小,以便将您的虚拟 3D 对象放置到正确的位置,尤其是在深度方面。
如果尺寸不匹配,它会刹车(只是返回不正确的深度位置)。例如,如果您的真实目标比您在 Unity 中配置的要小,那么您的虚拟内容将始终放置“太远”,因为 Vuforia 期望您的真实目标更大。
不同缩放但相等的图像目标之间没有任何区别..我知道的任何跟踪软件都无法做到这一点,因为它通常用于将 3D 内容实际放置到 3D 世界位置..如果您这样做,这将是不可能的没有固定的预期目标大小,因为如果您靠近,目标对于相机来说会变得更大。
如果 Vuforia 可以同时看到多个具有相同图像的目标,则它只会采用它找到的第一个目标。
Vuforia 提供了一种在运行时更改预期目标大小的方法,请参阅Targets以获取更多信息,但是在您的情况下这将无法自动检测正确的大小。
请参阅 [图像目标]
目标尺寸
- 以 3D 场景为单位的图像目标的实际大小。
- 在线创建目标时或在数据库配置 XML 文件中,开发人员必须指定目标大小。数据库配置 XML 文件由目标管理器生成,但一旦创建,开发人员就可以对其进行修改。
- 目标尺寸参数很重要,因为在跟踪过程中返回的位姿信息将是相同的比例。例如,如果目标图像的宽度为 16 个单位,则将相机从目标的左边界移动到目标的右边界会将返回的位置沿 x 轴更改 16 个单位。
- (x, y) - 沿矩形目标的水平和垂直轴测量的场景单位的目标大小。
注意:图像目标的大小可以在运行时更改。这为定义或更新 3D 场景中目标的比例提供了灵活性。
注意:希望将图像目标与 Positional Device Tracker 结合使用的开发人员应指定目标大小(以米为单位)
另一方面,如果您只关心一个纯bool
值“是否完全找到目标”来启用和禁用某些东西而不关心 3D 位置,并且只有在这种情况下,您可以使用它,但您不会得到任何关于找到或没有找到不同尺寸的信息,或者它实际离相机多远或任何有用的 3D 位置的任何信息。
您也许可以使用空间映射在现代 AR 头显上解决这个问题,因为 x/y 位置仍然应该是正确的,而不仅仅是深度 z 位置(相机空间中的轴)
推荐阅读
- android - 如何使 ViewDragHelper 在隐藏导航栏的活动上工作
- python - tablua.read_pdf 的表格顺序问题
- android - 在 Compose 中调整项目符号文本之间的间距,同时允许换行
- javascript - 未安装应用时,Viber 深层链接不会在 ios 上打开应用商店
- css - reactjs:我正在尝试制作一个小的 scollbar
- python - 提高 Yahoo Finance (yf) 查找ticker.info 值的速度
- reactjs - 如何为小容器设置材质ui断点?
- java - java.net.ConnectException / java.nio.channels.UnresolvedAddressException
- angular - 使用 ngSwitchCase 为每个组件提供不同的路由
- symfony - 带有选项的简单管理员自定义批处理操作