
我的目标是识别对象并使用对象名称显示d出窗口,我能够获得名称,但我无法获得对象坐标或框架.
这是代码:
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({ 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)") }}().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 } }} 更新:
解决方法 那是因为分类器不返回对象坐标或帧.分类器仅在类别列表上给出概率分布.你在这里使用什么型号?
总结以上是内存溢出为你收集整理的ios – 如何从VNClassificationObservation获取对象rect / coordinates全部内容,希望文章能够帮你解决ios – 如何从VNClassificationObservation获取对象rect / coordinates所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)