Утечка памяти Coreml в iOS 14,5IOS

Программируем под IOS
Ответить
Anonymous
 Утечка памяти Coreml в iOS 14,5

Сообщение Anonymous »

В своем приложении я использовал vnimagerequesthandler с пользовательской MlModel для обнаружения объектов. < /p>
Приложение работает нормально с версиями iOS до 14.5. < /p>
Когда iOs 14.5. выбрасывает ошибку (ошибка domain = com.apple.vis code = 11 "встречаемого неизвестного исключения" userInfo = {nslocalizedDescription = встречи с неизвестным исключением}), память pixelbuffer и никогда не выпущена, он сделал буферы avcapturetput, а затем не появился. Pixelbuffer. В другой VAR я решил проблему, что новый кадр не появится, но проблема утечки памяти все еще происходит. src = "https://i.sstatic.net/j350u.png"/>

из -за памяти, а после панели. /> Обратите внимание, что до версии iOS 14.5 обнаружение работает отлично, попробуйте handler.perform ([visionrequest]) < /code> никогда не бросает никакой ошибки. < /p>
Вот мой код: < /p>
private func predictWithPixelBuffer(sampleBuffer: CMSampleBuffer) {
guard let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else {
return
}

// Get additional info from the camera.
var options: [VNImageOption : Any] = [:]
if let cameraIntrinsicMatrix = CMGetAttachment(sampleBuffer, kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix, nil) {
options[.cameraIntrinsics] = cameraIntrinsicMatrix
}

autoreleasepool {
// Because of iOS 14.5, there is a bug that when perform vision request failed, pixel buffer memory leaked so the AVCaptureOutput buffers is full, it will not output new frame any more, this is a temporary work around to copy pixel buffer to a new buffer, this currently make the memory increased a lot also. Need to find a better way
var clonePixelBuffer: CVPixelBuffer? = pixelBuffer.copy()
let handler = VNImageRequestHandler(cvPixelBuffer: clonePixelBuffer!, orientation: orientation, options: options)
print("[DEBUG] detecting...")

do {
try handler.perform([visionRequest])
} catch {
delegate?.detector(didOutputBoundingBox: [])
failedCount += 1
print("[DEBUG] detect failed \(failedCount)")
print("Failed to perform Vision request: \(error)")
}
clonePixelBuffer = nil
}
}
< /code>
кто -нибудь испытал ту же проблему? Если да, то как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/673 ... n-ios-14-5
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»