Как измерить размеры трехмерного объекта с помощью ARKit или Apple Vision? - PullRequest
0 голосов
/ 22 мая 2018

Используя камеру iPhone (и, возможно, некоторую комбинацию ARKit, Apple Vision, CoreML / mlmodels и т. Д.), Как бы вы измерили размеры (ширину, высоту, глубину) объекта?Объект представляет собой что-то маленькое, что сидит на столе

Используя mlmodel, вы можете научить ML выполнять обнаружение конкретных объектов.Это позволит вам только нарисовать рамку вокруг вашего обнаруженного объекта на 2-м экране.

Я хочу иметь возможность использовать камеру телефона для просмотра и, возможно, перемещаться вокруг объекта, чтобы определить размеры / фактический размеробъекта.

Я читал об обнаружении краев или обнаружении формы, но я не думаю, что мне нужно изображение для целостного обнаружения краев.

ARKit превосходен при использовании телефонааппаратное обеспечение для достаточно точного измерения небольших масштабов расстояний.

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

В идеале, я хотел бы навести камеру iPhone на маленький предмет на столе, возможно, осмотреться (немного повернуть объект) и иметь приблизительный набор измерений размера объекта и иметь ARAnchor (s)) для фактического местоположения объекта.

1 Ответ

0 голосов
/ 24 мая 2018

Позвольте пользователю сделать ARHittest, нажав на углы вашего объекта.Там вы получаете положение узлов в ARWorld.Оттуда вы можете вычислить конкретную длину объекта и т. Д. *

let newPoint = CGPoint(*e.g. the point the user taps*)
let hitTestResults = sceneView.hitTest(newPoint, types: .estimatedHorizontalPlane)
guard let hitTestResult = hitTestResults.first else { return }
 print("Your Nodes position: (htr.worldTransform.translation)")

Затем рассчитать расстояние между этими точками.

Также вы можете сделать этот ARHitTest без касания пользователем,Затем определите объект с помощью Vision и в нужный момент сделайте ARHitTest.

...