首页 > 解决方案 > 在 iOS 上使用带有 Metal 的 ARKit 时如何过滤掉模糊图像?

问题描述

我正在使用计算机视觉和 ARKit 来检测矩形并跟踪它们(如 Apple 在此处的示例:https ://developer.apple.com/documentation/arkit/tracking_and_altering_images )。我发现它有点不可靠,因为有时它开始尝试跟踪对象的失焦版本,当对象进入焦点时,ARReferenceImage 和实际图像不再匹配,因此跟踪变得非常不可靠。有没有一种快速的方法来忽略模糊的图像?我在网上搜索了一下,发现可以使用 OpenCV 来获取拉普拉斯算子的方差,但是,我很好奇我是如何使用 Swift 通过 GPU 加速的金属性能着色器来做到这一点的?

标签: ioscomputer-visiongpuarkitmetal

解决方案


事实证明,MPS 具有称为 MPSImageLaplacian 和 MPSImageStatisticsMeanAndVariance 的内置着色器,当它们结合使用时,可以可靠地用于检测模糊图像并忽略它们。我已经在 Swift on Medium 中记录了我是如何做到这一点的详细信息:https ://medium.com/@salqadri/blur-detection-via-metal-on-ios-16dd02cb1558


推荐阅读