VNCoreMLRequest始终返回相同的结果

时间:2019-01-21 09:28:38

标签: ios swift

我正在为iOS开发Swift项目。我想认出笔迹。我正在尝试使用Vision来做到这一点。但是每次发送请求时,我都会得到完全相同的输出。

我已经在Mac上尝试了MLModel,并且可以正常工作。

func imageChanged(image: UIImage) {
    guard let model = self.model else {
        print("Model must not be nil")
        return
    }

    let request = VNCoreMLRequest(model: model, completionHandler: { [weak self] request, error in
        guard let results = request.results as? [VNClassificationObservation],
            let _ = results.first else {
                print("No results found")
                return
        }

        DispatchQueue.main.async { [weak self] in
            if let first = results.first {
                if Int(first.confidence * 100) > 1 {
                    self?.resultLabel.text = "I see \(first.identifier) with \(first.confidence*100)"
                }
            }
        }
    })

    guard let ciImage = CIImage(image: image) else {
        print("Could not convert UIImage to CIImage")
        return
    }
    let handler = VNImageRequestHandler(ciImage: ciImage)
    DispatchQueue.global(qos: .userInteractive).async {
        do {
            try handler.perform([request])
        } catch {
            print(error)
        }
    }
}
当我在应用程序中绘制内容时,会调用

imageChanged。我希望它能放心输出数字。但它总是打印“减0.9999527”

1 个答案:

答案 0 :(得分:0)

我知道了!

此功能有效。我通过的图片格式错误。