我正在尝试打印出来自coreML的数组的第一个元素?但它似乎只是给出了完整的数组。
guard let pixelBuffer: CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return }
guard let model = try? VNCoreMLModel(for: Inceptionv3().model) else { return }
let request = VNCoreMLRequest(model: model) { (finishedReq, err) in
guard let results = finishedReq.results as? [VNClassificationObservation] else { return }
guard let firstObservation = results.first else { return }
print(firstObservation.identifier, firstObservation.confidence)
DispatchQueue.main.async {
self.identifierLabel.text = "\(firstObservation.identifier) \(firstObservation.confidence * 100)"
}
答案 0 :(得分:0)
如果你提供输出它会更容易理解,因为代码看起来很好 - 它应该打印第一个元素。
检查一件事 - 也许您正在多次运行实际的代码段,并且控制台输出看起来像您打印了一个数组。更具体一点 - 您实际上可以一遍又一遍地启动和执行NSUrl.FromFilename(filepath)
,以及模型和其中的所有内容。然后输出看起来像:
request
与打印和数组形成鲜明对比:
request number 1 output first element
request number 2 output first element
request number 3 output first element
request number 4 output first element
但这只是猜测,请发布您的控制台输出。