3

I am trying to track face using VNFaceObservation in ARSCNView

let response = observations.map({ (face) -> (observation: VNFaceObservation, image: CIImage, frame: ARFrame) in

            self.lastObservation = VNDetectedObjectObservation(boundingBox: face.boundingBox)

Than I do

func session(_ session: ARSession, didUpdate frame: ARFrame) {


    guard

        let lastObservation = self.lastObservation
        else { return }

    let request = VNTrackObjectRequest(detectedObjectObservation: lastObservation, completionHandler: self.handleVisionRequestUpdate)
    request.trackingLevel = .accurate

    do {

        try self.visionSequenceHandler.perform([request], on: frame.capturedImage)

    } catch {

        print("Throws: \(error)")
    }
}

But the request result doesn't track the face and returns wrong rect

    guard let newObservation = request.results?.first as? VNDetectedObjectObservation else { return }
Andy Fedoroff
  • 26,838
  • 8
  • 85
  • 144
Ros
  • 116
  • 8

0 Answers0