Google Vision API可能发生内存泄漏

时间:2018-07-13 08:07:56

标签: ios memory-leaks google-vision google-ios-vision

我正在尝试使一个应用程序处理一组框架,并使用Google视觉API以jpg的形式存储到应用程序中。

管道很简单。

1)我创建了带有一些选项的检测器:

     _options = @{
                  GMVDetectorFaceLandmarkType : @(GMVDetectorFaceLandmarkAll),
                  GMVDetectorFaceClassificationType : @(GMVDetectorFaceClassificationAll),
                  GMVDetectorFaceTrackingEnabled : @(NO)
                  };
    _faceDetector = [GMVDetector detectorOfType:GMVDetectorTypeFace options:_options];

2)我用这种方法读了一帧:

    UIImage *image = [UIImage imageWithContentsOfFile:imFile];
  

imFile中包含的路径正确,我可以看到图像表示形式

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);
        }
    }

方法到此结束。所以基本上我要做的是创建文件并写入文件。

0 个答案:

没有答案