Coreml,失败验证输入。图片无效

Posted

技术标签:

【中文标题】Coreml,失败验证输入。图片无效【英文标题】:Coreml, Failure verifying inputs. Image is not valid 【发布时间】:2018-09-27 21:04:39 【问题描述】:

尝试关注https://www.appcoda.com/core-ml-model-with-python/ 为了构建图片识别,我使用 Core ML(Turi Create) + Python + Swift(ios)。

尝试上传我用来训练“.mlmodel”文件的相同图像。 没有帮助。尝试加载 100x100 大小的图片。同样的错误。我还能尝试什么?

输出:

2018-04-17 20:54:19.076605+0200 [2516:1111075] [MC] 系统组 systemgroup.com.apple.configurationprofiles 路径的容器是 /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles

2018-04-17 20:54:19.077580+0200 [2516:1111075] [MC] 阅读自 公开有效的用户设置。

2018-04-17 20:54:54.795691+0200 [2516:1111075] [coreml] 错误 Domain=com.apple.CoreML Code=1 "输入图像特征图像不 匹配模型描述" UserInfo=NSLocalizedDescription=输入图像 特征图像与模型描述不匹配, NSUnderlyingError=0x1c024cf90 错误域=com.apple.CoreML 代码=1 “图像的宽度不是 227,而是 224” UserInfo=NSLocalizedDescription=图像不是有效宽度 227,而是 是 224

2018-04-17 20:54:54.795728+0200 [2516:1111075] [coreml] 失败 验证输入。

应cmets的要求:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) 
    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage 
        previewImg.image = image

        if let buffer = image.buffer(with: CGSize(width: 224, height: 224)) 

            guard let prediction = try? mlModel.prediction(image: buffer) else 
                fatalError("Unexpected runtime error")
            

            descriptionLbl.text = prediction.foodType
            print(prediction.foodTypeProbability)
         else 
            print("failed buffer")
        
    

    dismiss(animated: true, completion: nil)

【问题讨论】:

发布您的代码,尤其是func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 尝试从教程加载标准训练模型......它有效。 95mb 的重量。我的 - 5mb。但我发现更多图像+更好的分辨率。没有帮助:(同样的问题...... 【参考方案1】:

错误信息从字面上说明了错误的原因是什么:

2018-04-17 20:54:54.795691+0200 [2516:1111075] [coreml] 错误 Domain=com.apple.CoreML Code=1 "输入图像特征图像不 匹配模型描述" UserInfo=NSLocalizedDescription=输入图像 特征图像与模型描述不匹配, NSUnderlyingError=0x1c024cf90 错误域=com.apple.CoreML 代码=1 “图像的宽度不是 227,而是 224” UserInfo=NSLocalizedDescription=图像不是有效宽度 227,而是 是 224

您正在使用的模型(我怀疑它是 SqueezeNet)需要大小为 227x227 的输入图像,而不是 224x224 或任何其他大小。

【讨论】:

谢谢 :) 奇怪...没想到这么简单的错误,因为它是从 Appcoda.com 完成的并且应该自动调整大小...但是刚刚更改为:if let buffer = image.buffer(with: CGSize(width:224, height:224)) 到 if let buffer = image.buffer(with: CGSize(width:227, height:227)) 现在可以了。

以上是关于Coreml,失败验证输入。图片无效的主要内容,如果未能解决你的问题,请参考以下文章

Symfony:身份验证请求失败:无效的 CSRF 令牌

PayPal PHP SDK:由于身份验证凭据无效或缺少授权标头,身份验证失败

Authorize.net CIM Active Merchant -- 由于验证值无效,用户验证失败

Microsoft Graph API 身份验证错误:“访问令牌验证失败。无效的受众”

ASP.NET MVC 页面验证失败(值无效。)

Rails 中的 Authorize.net - 由于身份验证值无效,用户身份验证失败