在功能检测期间iOS Vision API“computeBlinkFunction”中出现错误并冻结

问题描述 投票:1回答: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找到面部边界框时,我也看到了这些错误。我正在使用VNSequenceRequestHandler在相机上的每个ARFrame上实时发出这些请求,在后台线程上运行。

swift ios11 ios12 coreml ios-vision
1个回答
1
投票

今年的WWDC与Vision一起讨论的事情是,检测请求比跟踪请求更加耗费资源。我相信建议是,一旦收到检测,您应该停止检测请求,而只是使用跟踪。我在自己的Vision代码中注意到的一件事(我将它用于文本和条形码)是一旦你得到初步检测,你开始得到大量的观察,可能是Vision正在更快地输出观察结果如果它足够长,系统可以真正处理。

© www.soinside.com 2019 - 2024. All rights reserved.