Как точно сопоставить ограничивающие рамки 2D Vision (CoreML) с мировыми координатами 3D с помощью ARKit Raycast во времIOS

Программируем под IOS
Ответить
Anonymous
 Как точно сопоставить ограничивающие рамки 2D Vision (CoreML) с мировыми координатами 3D с помощью ARKit Raycast во врем

Сообщение Anonymous »

Я создаю приложение для iOS 17, которое интегрирует RoomPlan от Apple (

Код: Выделить всё

RoomCaptureSession
) с помощью специальной модели Edge AI (YOLOv8 через платформу CoreML и Vision) для обнаружения структурных дефектов (например, трещин) на стенах в режиме реального времени.
Архитектура:
  • Код: Выделить всё

    RoomPlan
    работает в фоновом режиме для создания трехмерной сетки комнаты.
  • Я перехватываю кадры камеры (

    Код: Выделить всё

    CVPixelBuffer
    ) и передать их в VNCoreMLRequest.
  • Модель успешно возвращает 2D-ограничивающую рамку VNRecouncedObjectObservation (ограничивающую рамку) с нормализованными координатами.
Задача:
Мне нужно привязать эту 2D-ограничивающую рамку к точной 3D-абсолютной координате (

Код: Выделить всё

simd_float3
) в реальном мире, чтобы маркер дефекта идеально совпадал с экспортированной моделью .usdz и двухмерным планом этажа .dxf.
В настоящее время я конвертирую нормализованные координаты Vision в координаты экрана и выполняю raycast ARKit с использованием .estimatedPlane:

Код: Выделить всё

// Pseudo-code of current approach
let screenPoint = CGPoint(x: boundingBox.midX * screenSize.width,
y: (1 - boundingBox.midY) * screenSize.height)

let query = arSession.raycastQuery(from: screenPoint,
allowing: .estimatedPlane,
alignment: .vertical)

if let result = arSession.raycast(query).first {
let worldTransform = result.worldTransform
// Save coordinate...
}
Мои вопросы:
Поскольку RoomPlan создает свои собственные оптимизированные стены (CapturedRoom.Surface), лучше ли использовать лучевую рассылку по .estimatedPlane ARKit или есть способ математически пересечь луч напрямую с геометрическими выходными данными RoomPlan для большей точности?
Существуют ли какие-либо известные несоответствия координатного пространства между миром ARSession origin и окончательный источник экспорта CapturedRoom, который мне следует учитывать, чтобы предотвратить смещение 3D-маркеров в окончательной USDZ?
Будем очень признательны за любые идеи по обработке этого межпространственного сопоставления координат.

Подробнее здесь: https://stackoverflow.com/questions/799 ... oordinates
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»