我最终决定使用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,但没有正确答案。
先谢谢你。
答案 0 :(得分:0)
最后结束了将AVCaptureSession的sessionPresset设置为AVCaptureSessionPresetMedium。
z
显然库中存在内存泄漏。