Ошибка и зависание в iOS Vision API computeBlinkFunction во время обнаружения функции

Я использую iOS Vision API для обнаружения функций в реальном времени в ARFrame буферах, переданных с камеры на iPhone X. Обычно это работает достаточно хорошо, но как на 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 с камеры, выполняясь в фоновом потоке.


person Michael    schedule 06.12.2018    source источник


Ответы (1)


В этом году на WWDC с Vision было рассмотрено то, что запросы на обнаружение гораздо более ресурсоемки, чем запросы на отслеживание. Я считаю, что рекомендация заключалась в том, что как только вы получите обнаружение, вам следует остановить запросы на обнаружение и вместо этого просто использовать отслеживание. Одна вещь, которую я заметил в моем собственном коде Vision (я использую его для текста и штрих-кодов), заключается в том, что как только вы получаете начальное обнаружение, вы начинаете получать поток наблюдений, и может быть, Vision выводит наблюдения быстрее. чем система действительно может справиться, если она работает достаточно долго.

person miles_b    schedule 06.12.2018
comment
Запрос отслеживания кажется, что он может работать для последующих ограничивающих рамок лица, но знаете ли вы, можно ли его использовать для отслеживания отдельных ориентиров лица? - person Michael; 07.12.2018
comment
Думаю, это может быть то, что вы ищете: developer.apple.com/documentation/vision/ - person miles_b; 07.12.2018