繁体   English   中英

Core ML Object 针对不同尺寸图片的检测

[英]Core ML Object detection for different sized images

我已经训练 model 从图像中识别矩形。 我工作得很好,但只适用于特定图像(我认为取决于特定的纵横比)。 例如:

有效的例子

enter image description here 但是当我开始使用相同的图像但尺寸不同时,它不起作用。

无效示例

有人能告诉我为什么它会这样工作吗? 我该如何解决?

我做什么来提出请求:

let requestHandler = VNImageRequestHandler(cgImage: cgImage, orientation: image.cgImageOrientation, options: [:])

    self.request = VNCoreMLRequest(model: model) { (request, error) in
        guard let observations = request.results as? [VNRecognizedObjectObservation] else {
            return
        }

        self.visualizeObservations(observations: observations)
        print(observations)
    }

    request.imageCropAndScaleOption = .scaleFill

    DispatchQueue.global(qos: .background).async {
        do {
            try requestHandler.perform([self.request])
        } catch let error as NSError {
            print("Error in performing Image request: \(error)")
        }
    }

另外,我想知道,在哪些情况下 model 可以在 CreateML GUI 中检测到 object 但不能在屏幕上显示相同的图像?

UPD:我已经找到了解决方案。 根本原因是无效的 output,当我更改时

let requestHandler = VNImageRequestHandler(cgImage: cgImage, orientation: image.cgImageOrientation, options: [:])

let requestHandler = VNImageRequestHandler(data: image.jpegData(compressionQuality: 1)!, orientation: image.cgImageOrientation, options: [:])

解决问题。

UPD:我已经资助了解决方案。 根本原因是无效的 output,当我更改时

let requestHandler = VNImageRequestHandler(cgImage: cgImage, orientation: image.cgImageOrientation, options: [:])

let requestHandler = VNImageRequestHandler(data: image.jpegData(compressionQuality: 1)!, orientation: image.cgImageOrientation, options: [:])

解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM