您的问题几乎没有提供任何细节,但这是我的所有想法。
在“深度学习”方面,改变图像尺寸当然会影响模型性能。但是,您描述的图像大小可能足以完成您的任务。为 iOS 前置摄像头以“本机”分辨率训练模型是个坏主意。训练没有更好的结果需要更长的时间(除非你上采样,否则你也很难获得训练数据)。此外,不同的 iOS 设备具有不同的前置分辨率。总而言之,您的“重采样”很好 - 这是一个转换问题。
iOS 有多种重新采样和缩放图像的方法。 你如何设置缩放比例?您是否将imageCropAndScaleOption 应用于实例化请求?
let request = VNCoreMLRequest(model: model, completionHandler: { [weak self] request, error in
self?.processClassifications(for: request, error: error)
})
request.imageCropAndScaleOption = .centerCrop
return request
如何将模型转换为 coreML?类似的东西......
model = coremltools.converters.keras.convert(
'./models/best.h5',
input_names=['image'],
output_names=['output'],
image_input_names='image',
image_scale=1/255.0
)
执行此操作时,请确保正确表示(用于输入的)图像表示。您可以在转换后通过打印模型轻松验证。
按照这些思路,训练模型 (RGB) 中的通道是否与您评估的所有图像相同,或者可能是在反向通道 (BGR) 中训练的模型和来自 @987654326 的输入数据@在RGB中?
如果您提供有关您的模型、它的作用、如何将其转换为 CoreML 以及如何评估它的更具体的详细信息,我可以更新我的答案。但请先解决上述问题。