Skip to content

Instantly share code, notes, and snippets.

@kravik
Last active July 18, 2018 22:19
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kravik/0f2302187512c8a72b1cd5fd1c7127e7 to your computer and use it in GitHub Desktop.
Save kravik/0f2302187512c8a72b1cd5fd1c7127e7 to your computer and use it in GitHub Desktop.
iOS 11 Vision. Face detection
import Vision
//1
let sourceImage = UIImage(named: "jony.jpg")
var resultImage = sourceImage
//2
let detectFaceRequest = VNDetectFaceLandmarksRequest { (request, error) in
//4
if let results = request.results as? [VNFaceObservation] {
//5
for faceObservation in results {
//6
guard let landmarks = faceObservation.landmarks else {
continue
}
let boundingRect = faceObservation.boundingBox
var landmarkRegions: [VNFaceLandmarkRegion2D] = []
//7
if let faceContour = landmarks.faceContour {
landmarkRegions.append(faceContour)
}
//8
resultImage = self.drawOnImage(source: resultImage, boundingRect: boundingRect, faceLandmarkRegions: landmarkRegions)
}
}
}
//3
let vnImage = VNImageRequestHandler(cgImage: sourceImage.cgImage!, options: [:])
try? vnImage.perform([detectFaceRequest])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment