【发布时间】:2019-05-12 08:50:50
【问题描述】:
我正在尝试构建一个应用程序,它可以两次或多次检测到相同的图像,并将这些检测到的图像添加到一个数组中,以便稍后对其进行处理。
我将图像和大小添加到 Assets.xassets 中的 AR 资源文件夹中。图像被识别并且工作正常。但是当我想扫描同一张图像两次时,它只能识别一张图像。
我没有在 Internet 上找到任何有关此问题的特定文档。我还怀疑 ARKit 不可能,我可能需要使用机器学习模型。
如果有人遇到这个问题并且有没有 CoreML 和 Vision 的解决方案,我们将不胜感激。否则我会尝试让它与视觉和 CoreML 一起工作。
以下是识别图像并在其上方广告透明平面的代码。
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
guard let imageAnchor = anchor as? ARImageAnchor else { return }
let referenceImage = imageAnchor.referenceImage
let imageName = referenceImage.name ?? "no name"
print("Image Anchor: ", imageAnchor)
let plane = SCNPlane(width: referenceImage.physicalSize.width, height: referenceImage.physicalSize.height)
let planeNode = SCNNode(geometry: plane)
planeNode.opacity = 0.20
planeNode.eulerAngles.x = -.pi / 2
node.addChildNode(planeNode)
detectedImages.append(imageAnchor)
DispatchQueue.main.async {
self.label.text = "Image detected: \"\(imageName)\""
}
}
【问题讨论】: