0

我使用 Create ML 创建了一个 ML 模型,它是关于情感识别的。

作为输入文件,我上传了一个 CSV 文件。数据由 48x48 像素的人脸灰度图像组成。面部已自动注册,因此面部或多或少居中并在每张图像中占据大约相同数量的空间。任务是根据面部表情中显示的情绪将每张脸分为七类之一(0 = 愤怒、1 = 厌恶、2 = 恐惧、3 = 快乐、4 = 悲伤、5 = 惊讶、6 = 中性) .

我得到的模型有超过 87% 的准确率,但是当我在我的 Xcode 项目中使用它时,我得到以下错误:

  func setup() {
    do {
      // Gender request
      requests.append(VNCoreMLRequest(
        model: try VNCoreMLModel(for: GenderNet().model),
        completionHandler: handleGenderClassification
      ))
      // Age request
      requests.append(VNCoreMLRequest(
        model: try VNCoreMLModel(for: AgeNet().model),
        completionHandler: handleAgeClassification
      ))
      // Emotions request
      requests.append(VNCoreMLRequest(
        model: try VNCoreMLModel(for: test().model),
        completionHandler: handleEmotionClassification
      ))
    } catch {
      assertionFailure("Can't load Vision ML model: \(error)")
    }
  }
      Fatal error: Can't load Vision ML model: Error Domain=com.apple.vis Code=15 
    "The model does not have a valid input feature of type image"
    UserInfo={NSLocalizedDescription=The model does not have a valid input feature of type image}:
    file /Users/ivandimitrov/Desktop/Faces/Faces/ClassificationService.swift, line 38

你对如何解决这个问题有任何想法吗?

4

1 回答 1

1

您的输入未被识别为图像,您可以通过在 Xcode 中单击您的模型来验证这一点: 在此处输入图像描述 我的输入是图像类型,但您的可能是另一种类型。

例如,在运行转换脚本时coremltools.converters.tensorflow.convert(model, ...),您需要提供与image_input_names输入层名称匹配的参数。

于 2020-06-03T02:12:33.170 回答