关于 AR SDK 中图像识别的一个问题。目标图像是否必须是应用程序本身的一部分,或者我们可以在应用程序内存中保存一组图像并用它执行设备上的图像识别(当我们每次单击按钮时,图像可能会更改或下载)该应用程序)?注意:用例仅是图像识别,不是 AR 功能
最佳答案
您可能已经注意到,用于从应用程序包加载图像并将其提供给 ARKit 进行检测的类是 ARReferenceImage
。
向下滚动该类的文档页面,除了用于加载引用图像的方法之外,您还会发现两个用于在运行时创建引用图像的初始值设定项:
- The
CGImage
-based initializer适合从其他地方加载图像内容的情况,例如从用户的照片库获取或从服务器下载。 - The
CVPixelBuffer
-based initializer对于 GPU 内存中已有图像内容的情况很有用 - 例如,如果您想提取 ARKitcapturedImage
的一部分用于图像检测。
不过,这一切都有一个警告。当您在构建时将图像放入 Assets 目录中时,Xcode 会对它们进行预检,以确保每个单独的图像都适合检测,并且整组图像彼此之间足够不同,以便可靠地识别。
如果您动态提供图像,则不会执行预检步骤,这会产生您需要自行解决的设计/交互问题:
- 如果您控制动态图像(例如,它们都是从您的服务器下载的),您可以使用虚拟 Xcode 项目“离线”进行预检。
- 如果您允许用户提供或创建任何可能的图像,您就需要围绕用户选择无法很好检测的图像的可能性来设计您的应用。
关于augmented-reality - 动态图像可以在设备上进行图像识别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50943352/