从样本缓冲区获取UIImage时,Google Vision会崩溃

时间:2017-11-09 14:16:59

标签: swift uiimage google-vision android-vision google-ios-vision

我最终决定使用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 crashing when converting to image and trying to detect face,但没有正确答案。

先谢谢你。

1 个答案:

答案 0 :(得分:0)

最后结束了将AVCaptureSession的sessionPresset设置为AVCaptureSessionPresetMedium。

z

显然库中存在内存泄漏。