从VNClassificationObservation获取问题.
我的目标是识别对象并使用对象名称显示弹出窗口,我能够获得名称,但我无法获得对象坐标或框架.
这是代码:
let handler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer,options: requestOptions) do { try handler.perform([classificationRequest,detectFaceRequest]) } catch { print(error) }
然后我处理
func handleClassification(request: VNRequest,error: Error?) { guard let observations = request.results as? [VNClassificationObservation] else { fatalError("unexpected result type from VNCoreMLRequest") } // Filter observation let filteredOservations = observations[0...10].filter({ $0.confidence > 0.1 }) // Update UI dispatchQueue.main.async { [weak self] in for observation in filteredOservations { print("observation: ",observation.identifier) //HERE: I need to display popup with observation name } } }
更新:
lazy var classificationRequest: VNCoreMLRequest = { // Load the ML model through its generated class and create a Vision request for it. do { let model = try VNCoreMLModel(for: Inceptionv3().model) let request = VNCoreMLRequest(model: model,completionHandler: self.handleClassification) request.imageCropAndScaleOption = VNImageCropAndScaleOptionCenterCrop return request } catch { fatalError("can't load Vision ML model: \(error)") } }()
解决方法
原文地址:https://www.jb51.cc/iOS/327872.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。