0

我有一个训练有素的“图像分类”模型,使用 XCode 中的 CreateML 开发工具。我希望用它来识别用户的脸。

我在野外评估模型,发现模型真的想看东西,并且对 Label1 表现出强烈的偏好,而它应该看到的大多数东西不是 3 个标签之一(所以它们应该是“其他”)。

我定义了一些标签:

  • Label1 600 张照片
  • Label2 200 张照片
  • Label3 200 张照片
  • “其他” 100 张照片

“图像分类”模型是否设置为始终报告其中一个标签?

** 我需要不同类型的模型 - 对象检测吗?”

我应该从哪里着手减少特定标签的误报?我需要 1k -2k 的“其他”示例吗?

这是我的代码的要点:

let model: VNCoreMLModel

coreMLRequest = VNCoreMLRequest(model: self.model) { [weak self] request, error in
    guard let self = self,
          let results = request.results as? [VNClassificationObservation],
          let topResult = results.first
    else {
        fatalError("Unexpected results")
    }
    
    self.outputRelay.accept(topResult.identifier)
    
}
coreMLRequest.imageCropAndScaleOption = .scaleFit

// Get the camera image cropped to be analyzed

let requestHandler = VNImageRequestHandler(cvPixelBuffer: croppedFaceImageBuffer, options: [:])
try? requestHandler.perform([self.coreMLRequest])
4

0 回答 0