Vision framework in Mac OSX

371 Views Asked by At

enter image description here

I am making a live camera app for Mac OSX . I am using swift 5 , target OSX is Mac OS Catalina. I am using Vision framework for face detection but face detection frame(Green colour) is not showing correctly. It detects the face but frame coordinate is not correct.

 private func handleFaceDetectionResults(_ observedFaces: [VNFaceObservation]) {
    
    self.clearDrawings()
    let facesBoundingBoxes: [CAShapeLayer] = observedFaces.flatMap({ (observedFace: VNFaceObservation) -> [CAShapeLayer] in
        let faceBoundingBoxOnScreen = self.previewLayer.layerRectConverted(fromMetadataOutputRect: observedFace.boundingBox)
        
        let faceBoundingBoxPath = CGPath(rect: faceBoundingBoxOnScreen, transform: nil)
        let faceBoundingBoxShape = CAShapeLayer()
        faceBoundingBoxShape.path = faceBoundingBoxPath
        faceBoundingBoxShape.fillColor = NSColor.clear.cgColor
        faceBoundingBoxShape.strokeColor = NSColor.green.cgColor
        var newDrawings = [CAShapeLayer]()
        newDrawings.append(faceBoundingBoxShape)

        return newDrawings
    })
    facesBoundingBoxes.forEach({ faceBoundingBox in self.view.layer?.addSublayer(faceBoundingBox) })
    self.drawings = facesBoundingBoxes
}

Please suggest to set green frame in face.

0

There are 0 best solutions below