Les détails techniques sur la manière dont le cadre de vision est inconnu même si, selon la vidéo de la WWDC, ils semblent utiliser l'apprentissage en profondeur.
Voici quelques exemples de code pour localiser un oeil dans votre image:
let request = VNDetectFaceLandmarksRequest()
let handler = VNImageRequestHandler(cvPixelBuffer: buffer, orientation: orientation)
try! handler.perform([request])
guard let face = request.results?.first as? VNFaceObservation,
let leftEye = face.landmarks?.leftEye else { return }
let box = face.boundingBox
let points = (0..<landmark.pointCount).map({ i in
let point = landmark.point(at: i)
let x = box.minX + box.width * CGFloat(point.x)
let y = 1 - (box.minY + box.height * CGFloat(point.y))
return CGPoint(x: x, y: y)
})
Cela vous ramène quelques points que vous pouvez voir reliés entre eux dans la vidéo WWDC comme:
Vous pourriez vouloir regarder le WWDC video jusqu'à ce qu'ils améliorent le doc. Else Xcode autocomplete est votre meilleur ami.
Core ML est une chose différente. Ce n'est pas spécifiquement ciblé sur les visages. Vous pouvez utiliser vos propres modèles et prédire ce que vous voulez. Donc, si vous avez un modèle de reconnaissance faciale, allez-y! Le cadre de vision a un certain soutien pour les modèles CoreML à travers VNCoreMLModel
Donc, les points ici, serait essentiellement dessiner le visage de la personne? - en utilisant les points de repère détectés – rambossa
oui, voir la modification que je viens d'ajouter – Guig