Возврат первого результата - PullRequest
0 голосов
/ 10 ноября 2019

Я новичок в стремительности и стараюсь учиться как можно больше и искать на многих форумах. Однако ответа на этот вопрос, похоже, нет нигде. Поэтому я надеюсь, что кто-нибудь сможет помочь мне с этим.

Я хочу вернуть первое значение, которое Модель имеет для изображения. Он возвращает один большую часть времени, но в случае неуверенности предоставляет, может быть, два или три. Несмотря на то, что я указал первую команду в 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)

    }

}

Я получаю результаты, мне просто нужно сузить этодо одного.

...