Google Vision API возможна утечка памяти
Я пытаюсь сделать приложение для обработки набора кадров, сохраненных как jpg
в приложение с помощью Google-видения API.
Трубопровод прост.
1) Я создаю детектор с некоторыми опциями:
_options = @{
GMVDetectorFaceLandmarkType : @(GMVDetectorFaceLandmarkAll),
GMVDetectorFaceClassificationType : @(GMVDetectorFaceClassificationAll),
GMVDetectorFaceTrackingEnabled : @(NO)
};
_faceDetector = [GMVDetector detectorOfType:GMVDetectorTypeFace options:_options];
2) Я читаю кадр с помощью этого метода:
UIImage *image = [UIImage imageWithContentsOfFile:imFile];
Путь, содержащийся в imFile, правильный, я вижу представление Image
3) Наконец, я обрабатываю кадр:
NSArray<GMVFaceFeature *> *faces = [_faceDetector featuresInImage:image options:nil];
С помощью этого кода я могу обрабатывать некоторые кадры, но при анализе многих из них использование памяти приложением увеличивается и приложение автоматически уничтожается.
Я пытался отследить утечку памяти, но, насколько я ее отследил, это происходит изнутри последней части, внутри [detector featuresInImage...]
Есть ли что-то, что я делаю неправильно, или есть утечка памяти внутри? Я пытался найти любую проблему от Google, но не смог найти ее.
РЕДАКТИРОВАТЬ:
Вот что я делаю с каждым из результатов детектора:
if ([faces count]>0){
GMVFaceFeature *face = [faces objectAtIndex:0];
NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingAtPath:filename];
[myHandle seekToEndOfFile];
NSString* lineToWrite = [NSString stringWithFormat:@"%u",fNumber];
lineToWrite = [lineToWrite stringByAppendingString:[NSString stringWithFormat:@",%f",face.smilingProbability]];
lineToWrite = [lineToWrite stringByAppendingString:@"\n"];
NSError *errorWrite;
[myHandle writeData:[lineToWrite dataUsingEncoding:NSUTF8StringEncoding]];
if(errorWrite){
NSLog(@"%@",errorWrite);
}
}
Метод заканчивается там. Так что, в основном, я создаю файл и пишу в нем.