Сбои 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
Очевидно, что в библиотеке есть утечка памяти.