Я новичок в стремительности и стараюсь учиться как можно больше и искать на многих форумах. Однако ответа на этот вопрос, похоже, нет нигде. Поэтому я надеюсь, что кто-нибудь сможет помочь мне с этим.
Я хочу вернуть первое значение, которое Модель имеет для изображения. Он возвращает один большую часть времени, но в случае неуверенности предоставляет, может быть, два или три. Несмотря на то, что я указал первую команду в request.results? .First части метода.
Я использую текст обратно для отображения результатов self.Output.text = "Item: (классификация! .identifier.capitalized) "
Я попытался поиграть с синтаксисом, чтобы включить сначала, но безуспешно. Я пытался думать об этом как о массиве, но я не верю, что он будет, поскольку данные возвращаются только после того, как изображение снято.
func detect(image: CIImage) {
// Load the ML model through its generated class
guard let model = try? VNCoreMLModel(for: Inceptionv3().model) else {
fatalError("can't load ML model")
}
let request = VNCoreMLRequest(model: model) { (request, error) in
let classification = request.results?.first as? VNClassificationObservation
self.Output.text = "Item: \(classification!.identifier.capitalized)"
}
let handler = VNImageRequestHandler(ciImage: image)
do {
try handler.perform([request])
}
catch {
print(error)
}
}
Я получаю результаты, мне просто нужно сузить этодо одного.