Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不同尺寸图像的核ML目标检测_Ios_Machine Learning_Coreml - Fatal编程技术网

Ios 不同尺寸图像的核ML目标检测

Ios 不同尺寸图像的核ML目标检测,ios,machine-learning,coreml,Ios,Machine Learning,Coreml,我训练了模型从图像中识别矩形。我工作得很好,但只处理特定的图像(我认为这取决于特定的纵横比)。 例如: 在此处输入图像描述 但是,当我开始使用相同的图像,但大小不同,它不工作 有人能告诉我为什么会这样吗?我怎样才能修好它 我如何提出请求: let requestHandler = VNImageRequestHandler(cgImage: cgImage, orientation: image.cgImageOrientation, options: [:]) self.requ

我训练了模型从图像中识别矩形。我工作得很好,但只处理特定的图像(我认为这取决于特定的纵横比)。 例如:

在此处输入图像描述 但是,当我开始使用相同的图像,但大小不同,它不工作

有人能告诉我为什么会这样吗?我怎样才能修好它

我如何提出请求:

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)")
        }
    }
另外,我想知道,在哪些情况下,模型可以在CreateMlGUI中检测到对象,但不能在屏幕上检测相同的图像

UPD: 我已经找到了解决办法。 根本原因是输出无效,当我更改时

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


解决问题。

UPD:我已经为解决方案提供了资金。根本原因是输出无效,当我更改时

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


解决问题。

UPD:我已经为解决方案提供了资金。根本原因是输出无效,当我更改时

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


解决问题。

您可以通过在许多不同大小的图像上训练模型来解决问题。@MatthijsHollemans感谢您的回复。也许您知道,在哪些情况下,模型可以在CreateML GUI中检测到对象,但不能使用VNImageRequest对同一图像进行检测?请确保在Vision请求中使用了正确的
imageCropAndScaleOption
(请参见
VNCoreMLModel
)。您可以通过在许多不同大小的图像上训练模型来解决此问题。@MatthijsHollemans感谢您的回复。也许您知道,在这种情况下,模型可以在CreateML GUI中检测到对象,但不能在同一图像的VNImageRequest中检测到对象?请确保您在Vision请求中使用了正确的
ImageCropandScaleOptions
(请参见
VNCoreMLModel
)。我将在15小时内完成:)我将在15小时内完成:)
let requestHandler = VNImageRequestHandler(data: image.jpegData(compressionQuality: 1)!, orientation: image.cgImageOrientation, options: [:])