gpt4 book ai didi

ios - 使用 VNCoreMLRequest 一次检测多个对象?

转载 作者:行者123 更新时间:2023-11-28 12:04:42 26 4
gpt4 key购买 nike

我已经设置了一个工作正常的 VNCoreMLRequest

extension CameraVC : AVCaptureVideoDataOutputSampleBufferDelegate {

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
print("Camera was able to capture a frame: ", Date())

guard let pixelBuffer : CVPixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return }
guard let model = try? VNCoreMLModel(for: Resnet50().model) else { return }

let request = VNCoreMLRequest(model: model) { (finishedReq, err) in
if err != nil { print(err?.localizedDescription) ; return }

guard let results = finishedReq.results as? [VNClassificationObservation] else { return }
guard let firstObservation = results.first else { return }
print(firstObservation.identifier, firstObservation.confidence)

}
try? VNImageRequestHandler(cvPixelBuffer: pixelBuffer, options: [:]).perform([request])
}
}

此请求返回请求认为它正在查看的内容的数组,列表中的第一项是最佳猜测。

我想知道是否有办法使用这项技术同时检测多个独特的物体?如果我要同时在画面中放一个苹果和一根香蕉,有没有一种方法可以检测这两个物体,而不是让相机试图弄清楚画面中可以找到一个突出的物体?

最佳答案

是的,您可以这样做,但不能使用 ResNet50。

ResNet50 是一个分类模型,它只能告诉你图像的“主题”。如果图像中有一个苹果和一个香蕉,它可能在其前 5 个预测中对苹果和香蕉有高分(比如 40% 的苹果和 35% 的香蕉和 25% 的其他东西)但这并不是你真正想要的正在寻找。

更好的解决方案是使用对象检测模型,它不仅可以告诉您图像中的各个对象是什么,还可以告诉您它们所在的位置。

关于ios - 使用 VNCoreMLRequest 一次检测多个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49582237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com