Сбои Google Vision при получении UIImage из примера буфера

Я наконец решил использовать Google Mobile Vision SDK для обнаружения лиц и улыбки в камере, и их SDK и образец выглядят очень хорошо и многообещающе.

Но после того, как я вставил их пример кода в мой проект, он всегда вылетает captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) Перезвоните. Вот фрагмент кода, который всегда вызывает исключение BAD_ACCESS.

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
    if (faceDetector == nil) {
        self.faceDetector = GMVDetector(ofType: GMVDetectorTypeFace, options: [GMVDetectorFaceLandmarkType: GMVDetectorFaceLandmark.all.rawValue,
                                                                               GMVDetectorFaceClassificationType: GMVDetectorFaceClassification.all.rawValue,
                                                                               GMVDetectorFaceMinSize: 0.3,
                                                                               GMVDetectorFaceTrackingEnabled: true])
    }
    guard let image = GMVUtility.sampleBufferTo32RGBA(sampleBuffer) else { // <-- this is where throws exception
        print("Invalid sample buffer")
        return
    }
}

Возможно дублирование Google Face Detection, приводящее к сбою при преобразовании в изображение и попытке определить лицо, но нет правильного ответа на него.

Спасибо в любом заранее.

1 ответ

Наконец закончилась установка sessionPresset AVCaptureSession в AVCaptureSessionPresetMedium.

    self.session.sessionPreset = .medium

Очевидно, что в библиотеке есть утечка памяти.

Другие вопросы по тегам