0

在尝试减少使用检测人脸时的计算时间时,CIDetector我尝试按照 Apple 的建议重用单个检测器实例进行多个人脸检测:

这个类可以维护许多会影响性能的状态变量。因此,为了获得最佳性能,请重用 CIDetector 实例而不是创建新实例。

在我开始处理数千张照片之前,一切都很好。现在,我不时得到一个随机异常EXC_BAD_ACCESS。当我不重用检测器但每次都实例化一个新检测器时,这不会发生。

一些相关的代码片段:

@property (retain, nonatomic) CIDetector* faceDetector;

- (void)initialVals {
    NSDictionary *opts_context = @{kCIContextUseSoftwareRenderer: @NO};
    self.context = [CIContext contextWithOptions:opts_context];
    NSDictionary *opts = @{ CIDetectorAccuracy: CIDetectorAccuracyHigh,
                        CIDetectorTracking: @YES,
                        CIDetectorMinFeatureSize: @0.15
                      };
self.faceDetector = [CIDetector detectorOfType:CIDetectorTypeFace context:self.context options:opts];

}

我不确定,但这个问题可能与CIDetector is not release memory相关。

4

1 回答 1

1

Problem solved, at least partially by removing the flag CIDetectorTracking: @YES when creating the detector.

It eliminates the crash while compromising on functionality. Filed an official bug report.

于 2014-06-09T12:43:43.493 回答