Я использую компьютерное зрение и ARKit для обнаружения прямоугольников и их отслеживания (как в примере Apple здесь: https : //developer.apple.com/documentation/arkit/tracking_and_altering_images). Однако я обнаружил, что это немного ненадежно, так как иногда он начинает пытаться отслеживать версию объекта вне фокуса, и когда объект попадает в фокус, ARReferenceImage и фактическое изображение больше не совпадают, и поэтому отслеживание становится очень ненадежным. Есть ли быстрый способ игнорировать размытые изображения? Я погуглил в Интернете и обнаружил, что можно использовать OpenCV для получения дисперсии лапласиана, однако мне любопытно, как я это делаю с помощью GPU-ускоренных шейдеров Metal Performance с использованием Swift?

1
Gadzair 12 Окт 2019 в 19:40

1 ответ

Лучший ответ

Оказывается, MPS имеет встроенные шейдеры, называемые MPSImageLaplacian и MPSImageStatisticsMeanAndVariance, которые в сочетании могут надежно использоваться для обнаружения размытых изображений и их игнорирования. Я подробно описал, как я это сделал в Swift на Medium: https://medium.com/@salqadri/blur-detection-via-metal-on-ios-16dd02cb1558

0
Gadzair 12 Окт 2019 в 16:40