【问题标题】:How do I run a CoreML model's request without having the view sublayer?如何在没有视图子层的情况下运行 CoreML 模型的请求?
【发布时间】:2020-11-01 10:59:21
【问题描述】:

除非我有这些行,否则我的回调似乎不会运行:

let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
view.layer.addSublayer(previewLayer)
previewLayer.frame = view.frame

即使看起来回调会响应:

let dataOutput = AVCaptureVideoDataOutput()
dataOutput.setSampleBufferDelegate(self, queue: DispatchQueue(label: "videoQueue"))
captureSession.addOutput(dataOutput)

这是回调函数的声明:

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection)

【问题讨论】:

    标签: ios xcode tensorflow keras coreml


    【解决方案1】:

    想通了;您需要两个 DispatchQueue,一个用于配置和启动 CaptureSession,另一个用于运行 CaptureSession

    sessionQueue.async { [unowned self] in
        self.configureSession()
        self.captureSession.startRunning()
    }
    

    let dataOutput = AVCaptureVideoDataOutput()
    dataOutput.setSampleBufferDelegate(self, queue: DispatchQueue(label: "videoQueue"))
    captureSession.addOutput(dataOutput)
    

    请务必查看此Medium Post(并阅读第二条评论,因为部分代码已过时)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多