Как я могу отфильтровать размытые изображения при использовании ARKit с Metal на iOS? - PullRequest
0 голосов
/ 12 октября 2019

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

1 Ответ

0 голосов
/ 12 октября 2019

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

...