Как найти препятствия на горизонтальной поверхности, используя ARKIT из iOS 11(Scenekit)?

Я работаю над POC, используя образец, предоставленный Apple https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip.

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

Можно ли обнаружить препятствия при размещении / перемещении 3D-объекта через камеру? Есть ли какой-нибудь API, доступный в ARKit, чтобы найти препятствие на поверхности?

Если нет, то есть ли какое-нибудь решение или расчет, который мы можем сделать, чтобы найти препятствие / стену и позволить пользователю не размещать / перемещать объект выше / за препятствием / стеной?

1 ответ

Короткий ответ на этом этапе, к сожалению, нет.

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

Лучшим вариантом будет подождать 6d.ai, потому что это то, над чем они работают (хотя они в тайне так трудно сказать точно).

Если у вас есть опыт работы с Core ML, вы можете использовать модель обнаружения объектов (найти стороннюю модель) для распознавания объектов в сцене и использовать ее в качестве прокси для геометрии, которая находится за пределами. Есть также Matroid, который предоставляет возможности обнаружения / отслеживания объектов.

Следующие примеры не являются конкретными примерами ARKit / iOS, но могут помочь вам позже.

У Vuforia есть поддержка понимания сцены: https://library.vuforia.com/articles/Training/Getting-Started-with-Smart-Terrain

Hololens вроде также поддерживает это: https://elbruno.com/2017/04/21/hololens-spatial-understanding-vs-spatial-mapping-and-a-step-by-step-on-how-to-use-it/

Другие вопросы по тегам