Может ли ARKit определять конкретные поверхности как самолеты?

Используя iOS 11, iOS 12 и ARKit, в настоящее время мы можем обнаруживать плоскости на горизонтальных поверхностях, а также можем визуализировать эту плоскость на поверхности.

Мне интересно, можем ли мы объявить через какой-то файл изображения конкретные поверхности, на которых мы хотим обнаруживать самолеты? (возможно, игнорируя все другие плоскости, которые ARKit обнаруживает с других поверхностей)

Если это невозможно, можем ли мы затем, возможно, захватить обнаруженную плоскость (с помощью изображения), чтобы затем обработать ее с помощью CoreML модели, которая идентифицирует эту конкретную поверхность?


person rambossa    schedule 27.06.2017    source источник
comment
Чтобы проанализировать результаты, обнаруженные в сцене, кажется, нам дан список объектов ARHitTestResult. Но я не понимаю, как мы можем вырезать из этого образ. developer.apple.com/documentation/arkit/arhittestresult.   -  person rambossa    schedule 28.06.2017


Ответы (2)


В настоящее время ARKit не поддерживает такие вещи. Вы действительно можете захватить самолет, обнаруженный как изображение, и если вы сможете сопоставить это с помощью основного ML в реальном времени, я уверен, что многим людям будет интересно!

Вам следует:

  • получить трехмерное положение углов плоскости
  • найти их 2D-положение в кадре, используя sceneView.projectPoint
  • извлеките фрейм из currentFrame.capturedImage
  • выполнить аффинное преобразование изображения, чтобы оставить его с вашей плоскостью, перепроецируя его в прямоугольник
  • выполнить некоторую машинную обработку / обработку изображений для обнаружения совпадения

Имейте в виду, что обнаружение прямоугольника ARKit часто плохо выровнено и может иметь только часть полной плоскости.

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

person Guig    schedule 30.06.2017
comment
Я думаю, что у Apple есть демонстрационное приложение с извлечением кода qr, в котором выполняется аффинное преобразование из 2D-углов, но я не мог вспомнить, где я это видел. - person Guig; 30.06.2017
comment
@Guig sceneView.projectPoint для позиций узлов на плоскости дает неправильные формы для координат проекции вида. Любая помощь? - person Roshan Bade; 21.08.2019

Вот небольшой демонстрационный код для поиска горизонтальной поверхности. В # Swift5 Github

person Arjun Patel    schedule 19.07.2019