Я создал модель ML для стопы как VNRecognizedObjectObservation.
Теперь я успешно могу обнаружить ногу в режиме реального времени
проблема в том, что я не могу обернуть или поместить трехмерный объект пешком, так как мне нужно 3 координаты для размещения содержимого AR.
Я использовал приведенный ниже код, чтобы получить ограничивающую рамку после того, как моя нога обнаружена рамками зрения
func drawVisionRequestResults(_ results: [Any]) {
CATransaction.begin()
CATransaction.setValue(kCFBooleanTrue, forKey: kCATransactionDisableActions)
detectionOverlay.sublayers = nil // remove all the old recognized objects
let obs = results.first
let final = obs
for observation in results where observation is VNRecognizedObjectObservation {
guard let objectObservation = observation as? VNRecognizedObjectObservation else {
continue
}
// Select only the label with the highest confidence.
let topLabelObservation = objectObservation.labels[0]
let objectBounds = VNImageRectForNormalizedRect(objectObservation.boundingBox, Int(bufferSize.width), Int(bufferSize.height))
let shapeLayer = self.createRoundedRectLayerWithBounds(objectBounds)
let textLayer = self.createTextSubLayerInBounds(objectBounds,
identifier: topLabelObservation.identifier,
confidence: topLabelObservation.confidence)
shapeLayer.addSublayer(textLayer)
detectionOverlay.addSublayer(shapeLayer)
// addModel(objectBounds)
translateCoordinate(objectBounds)
}
self.updateLayerGeometry()
CATransaction.commit()
}
но я получаю только 2d координаты в переменной objectBounds в терминах x, y высоты и ширины ...
Мне нужно знать 3D-координаты в пространстве ARScene, чтобы разместить мой 3D-объект ...
также проверка нажатия не возвращает координаты, когда я ввожу те же x и y
я думаю, что есть некоторая связь в мировых координатах Arkit и нормальных мировых телефонных координатах
спасибо заранее