我有一个训练有素的“图像分类”模型,使用 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])