Не удалось перенести inBuffer в croppedBuffer - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь запустить VNCoreMLRequest с моей моделью и cvPixelBuffer из метода AVCapturePhotoCaptureDelegate didFinishProcessingPhoto (photo.pixelBuffer).Затем я передаю этот pixelBuffer в VNImageRequestHandler и выполняю его по следующему запросу:

DispatchQueue.global(qos: .userInitiated).async {
    let handler = VNImageRequestHandler(cvPixelBuffer: pixelBuffer, orientation: .up, options: [:])

    do {
         try handler.perform([self.coreMLRequest()])
    } catch {
         return
    }
}

private func coreMLRequest() -> VNRequest {
    guard let model = model else {
        fatalError()
    }

    let request = VNCoreMLRequest(model: model) { (req, err) in
         if let error = err {
              print("error: \(error)")
         }

         if let observations = req.results as? [VNClassificationObservation] {
              print("observations: \(observations.count)")
         }
    }
    request.imageCropAndScaleOption = .centerCrop
    return request
}

Ошибка внутри VNCoreMLRequest:

Error Domain=com.apple.vis Code=3 "Failed to transfer inBuffer to croppedBuffer. Error -12905"
UserInfo={NSLocalizedDescription=Failed to transfer inBuffer to croppedBuffer. Error -12905}
...