1

我使用 iOS Vision API 在 iPhone X 上从相机传递的缓冲区上实时执行特征检测ARFrame。它通常工作得很好,但在 iOS 11 和 iOS 12 上,我一直在控制台中看到偶尔出现的错误。无法找到有关的任何信息。此错误连续打印多次,通常与我的应用程序中的严重冻结有关。

有没有人在他们的控制台中看到过这个错误,或者知道是什么原因造成的?任何信息或调试提示将不胜感激。

LandmarkDetector error -20:out of bounds in int vision::mod::LandmarkAttributes::computeBlinkFunction(const vImage_Buffer &, const Geometry2D_rect2D &, const std::vector<Geometry2D_point2D> &, vImage_Buffer &, vImage_Buffer &, std::vector<float> &, std::vector<float> &) @ /BuildRoot/Library/Caches/com.apple.xbs/Sources/Vision/Vision-2.0.62/LandmarkDetector/LandmarkDetector_Attributes.mm:535

更多信息:我认为此错误发生在我的VNDetectFaceLandmarksRequest. 目前我将 ARKit 归一化后找到的人脸边界框传递到 中inputFaceObservations,但我以前VNDetectFaceRectangleRequest在查找人脸边界框时也看到了这些错误。我正在使用 aVNSequenceRequestHandler在每个ARFrame摄像头上实时发出这些请求,在后台线程上运行。

4

1 回答 1

1

今年的 WWDC 与 Vision 讨论的内容是检测请求比跟踪请求更占用资源。我相信建议是,一旦您收到检测,您应该停止检测请求,而只使用跟踪。我在自己的 Vision 代码(我将其用于文本和条形码)中注意到的一件事是,一旦您获得初始检测,您就会开始获得大量观察结果,这可能是 Vision 输出观察结果的速度更快如果系统运行时间足够长,系统就无法真正处理。

于 2018-12-06T21:56:00.060 回答