我已经训练了模型以识别图像中的矩形。我可以很好地工作,但只能处理特定的图像(因为我认为取决于特定的宽高比)。 例如:
在此处输入图片说明 但是,当我开始使用相同的图像但大小不同时,它不起作用。
有人可以告诉我为什么会这样吗?我该如何解决?
我要怎么做:
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)")
}
}
我还想知道,在哪种情况下,模型可以在CreateML GUI中检测到对象,但无法在屏幕上显示相同的图像?
UPD: 我已经找到了解决方案。 根本原因是无效的输出以及当我更改
let requestHandler = VNImageRequestHandler(cgImage: cgImage, orientation: image.cgImageOrientation, options: [:])
收件人
let requestHandler = VNImageRequestHandler(data: image.jpegData(compressionQuality: 1)!, orientation: image.cgImageOrientation, options: [:])
解决问题。
答案 0 :(得分:0)
UPD:我已经为解决方案提供了资金。根本原因是无效的输出以及当我更改时
let requestHandler = VNImageRequestHandler(cgImage: cgImage, orientation: image.cgImageOrientation, options: [:])
收件人
let requestHandler = VNImageRequestHandler(data: image.jpegData(compressionQuality: 1)!, orientation: image.cgImageOrientation, options: [:])
解决问题。