Обнаружение изображений ARKit - много изображений - PullRequest
1 голос
/ 24 мая 2019

Мне нужно создать приложение, которое распознает изображения и их положение и отображает на них контент AR. Эти изображения будут меняться в течение жизни приложения, и их может быть много. Мне интересно, как спроектировать такое приложение. ARKit может обеспечить эту функцию - определять изображение и его ориентацию и отображать на нем AR содержимое. Но проблема в том, что ARKit может обнаруживать только ограниченное количество изображений одновременно. Если у меня есть, например, 300 изображений, то могут быть проблемы. Может быть, я мог бы подготовить некоторый набор данных ML для предварительного обнаружения изображения, а затем назначить его как ARKit, отслеживаемый на лету? Это правильный подход? Что еще я мог сделать, чтобы такое приложение с динамическим и большим набором изображений для обнаружения?

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Что касается подхода ML, вы можете использовать практически любую современную сеть обнаружения объектов, чтобы получить приблизительные координаты желаемой цели и извлечь эту часть кадра, передавая позитивы в ARKit или аналогичные. Недостатком является то, что обучение, вероятно, будет ресурсоемким. Это может сработать, но я не могу говорить о его эффективности по сравнению с другими подходами.

В попытке расширить это объяснение я вижу, что ARKit 2.0 обрабатывает (что кажется) то, что вы пытаетесь сделать; этого недостаточно?

Чтобы ответить на ваш вопрос в комментариях, CoreML предлагает модели для распознавания объектов, но не для локализации, поэтому я подозреваю, что необходимо будет использовать их конвертер после обучения модели, такой как это . Входом в эту сеть будут кадры с камеры, а на выходе будут обнаружены классы с вероятностями из обнаружения и приблизительными координатами; если ваши цели присутствуют, и примерно, где они находятся.

Опять же, однако, если вы ищете 2D-изображения, а не 3D + объекты, и , особенно , если это приложение ARKit в любом случае, похоже, что встроенное отслеживание ARKit будет гораздо более эффективным в существенно ниже стоимость разработки.

0 голосов
/ 12 июня 2019

На WWDC '19 ARKit 3 рекламировался для поддержки до 100 изображений для обнаружения изображений.Изображение отслеживания поддерживает меньшее количество изображений, которое, как мне кажется, все еще меньше 10. Вы должны сами распознавать изображения, если хотите больше, чем сейчас.

В качестве идеи вы можете идентифицировать прямоугольники в канале камеры, а затем применить фильтр CIPerspectiveCorrection для извлечения полностью 2D-изображения на основе обнаруженного прямоугольника.См. Отслеживание и изменение изображений * Пример кода 1006 *, который делает нечто похожее.

Затем вы сравниваете данные изображения прямоугольника с вашим набором из 300 исходных изображений.ARKit остановился на 100, вероятно, из-за проблем с производительностью, но, возможно, вы можете преодолеть эти цифры с помощью показателя производительности, который приемлем по вашим собственным критериям.

...