Подтвердить что ты не робот

Концепция Vision с ARkit и CoreML

В то время как я изучал лучшие практики и экспериментировал с несколькими вариантами для текущего проекта (например, проект Unity3D iOS в Vuforia с собственной интеграцией, извлечение фреймов с помощью AVFoundation, а затем передачу изображения через облачное распознавание образов), я пришел к вывод, что я хотел бы использовать ARkit, Vision Framework и CoreML; позвольте мне объяснить.

Мне интересно, как я смогу захватить ARFrames, использовать Vision Framework для обнаружения и отслеживания данного объекта с использованием модели CoreML.

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

Это, несомненно, возможно, но я не уверен, как передать ARFrames в CoreML через Vision для обработки.

Любые идеи?

4b9b3361

Ответ 1

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


Вы получаете ARFrame путем периодического опроса ARSession для currentFrame или путем нажатия на делегат сессии. (Если вы создаете свой собственный рендерер, ARSessionDelegate, если вы работаете с ARSCNView или ARSKView, их делегат обратные вызовы относятся к представлению, поэтому вы можете вернуться оттуда к сеансу, чтобы получить currentFrame, который привел к обратному вызову.)

ARFrame предоставляет текущий capturedImage в форме CVPixelBuffer.

Вы передаете изображения Vision для обработки с помощью VNImageRequestHandler или VNSequenceRequestHandler, оба из которых имеют методы, которые принимают CVPixelBuffer в качестве входного изображения для обработки.

Вы можете найти общий код для передачи изображений в Vision + Core ML, прикрепленный к сеансу

Vision обеспечивает легкий API для работы с классификаторами - массив результатов запроса заполняется объектами , которые сообщают вам, что такое сцена (или "вероятно, есть", с рейтингом доверия).

Если вы найдете или обучите модель, которая идентифицирует и находит объекты - и для этой части я должен подчеркнуть, что мяч находится на вашем дворе - использование Vision с ним приведет к . Это похоже на произвольные пары "ключ-значение", поэтому именно то, как вы идентифицируете объект, зависит от того, как вы структурируете и маркируете выходы вашей модели.

Если вы имеете дело с тем, что Vision уже знает, как распознать, вместо того, чтобы использовать свою собственную модель - такие вещи, как лица и QR-коды, вы можете найти места в кадре изображения с помощью API Vision.

Если после размещения объекта в 2D-изображении вы хотите отобразить 3D-контент, связанный с ним в AR (или отобразить 2D-контент, но с указанным содержимым, помещенным в 3D с ARKit), вам нужно эти точки 2D-изображения против 3D-мира.

Как только вы доберетесь до этого шага, размещение AR-контента с помощью теста на успех - это то, что уже довольно хорошо описано в других местах, и .