我想知道两个图像有多相似。为此,我使用VNGenerateImageFeaturePrintRequest并从图像生成VNFeaturePrintObservation 。然后,对于两个不同的图像,我使用它们的VNFeaturePrintObservation计算特征距离。不幸的是,iOS 16.0 和 iOS 17.0 的计算距离不同,因此未达到我的阈值。
我尝试获取如下图像的 featurePrintObservation,
let requestHandler = VNImageRequestHandler(cgImage: cgImage, options: [:])
let request = VNGenerateImageFeaturePrintRequest()
do {
try requestHandler.perform([request])
self.feature = request.results?.first
} catch {
print("Vision error: \(error)")
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试计算两个特征之间的距离,如下所示,
try! feature1.computeDistance(&visionDistance, to: feature2)
Run Code Online (Sandbox Code Playgroud)
对于相同的两个图像,iOS 16.0 和 iOS 17.0 的输出结果“visionDistance”是不同的(例如,iOS 16.3.1 中为“ 22.66224 ”,iOS 17.0.1 中为“ 1.2178229 ”)。我想知道VNFeaturePrintObservation在 iOS 17.0 中是否发生了变化,如果发生变化,有什么方法可以通用两个 iPhone 操作系统的计算吗?