Я пытаюсь начать с малого и обучил мою модель 2 предметам. Он отлично распознает оба, но когда я показываю ему что-то отличное от двух известных ему предметов, он постоянно говорит мне, что это всегда один и тот же предмет. Например, у меня есть яблоко и банан. Если я показываю ему яблоко, оно правильно дает мне яблоко, если я показываю ему банан, оно правильно возвращает банан. Но если я покажу ему собаку, она скажет, что это яблоко. Если я покажу ему вертолет, он скажет, что это яблоко. Я даже пытался сказать, что если это не яблоко или банан, просто верните, что его нельзя распознать, но это никогда не произойдет, потому что все, кроме банана, всегда является яблоком?!
EDIT
Мой вопрос был отклонен, возможно, из-за недопонимания. Я не спрашиваю, почему он не распознает собаку, когда я только дрессировал яблоко и банан, я спрашиваю, почему она не говорит мне, что изображение не распознается, когда я показываю ему собаку вместо того, чтобы сказать, что это яблоко , Очевидно, что если я обучил его только 2 предметам, он узнает только 2 предмета.
Вот код, который возвращает классификации
func processClassifications(for request: VNRequest, error: Error?) {
DispatchQueue.main.async {
guard let results = request.results else {
self.classificationLabel.text = "Unable to classify image"
return
}
let classifications = results as! [VNClassificationObservation]
if classifications.isEmpty {
self.classificationLabel.text = "Nothing recognized"
} else {
//Display top classifications ranked by confidence in the UI
let topClassifications = classifications.prefix(1)
let descriptions = topClassifications.map { classification in
return String(format: " (%.2f) %@", classification.confidence, classification.identifier)
}
self.classificationLabel.text = descriptions.joined(separator: "\n")
}
}
}