2017-06-29 1 views
7

Comment la reconnaissance faciale est-elle réalisée dans ce cadre? Les documents indiquent que cela fait partie du cadreComment la reconnaissance faciale est-elle intégrée au cadre de vision Core ML

de détection des visages et la reconnaissance

Cependant, on ne sait pas quelles classes/méthodes nous permettent de le faire. La chose la plus proche que j'ai trouvée est VNFaceObservation qui manque de détails significatifs. Est-ce plus un processus manuel et nous devons inclure nos propres modèles appris quelque part? -- si c'est le cas, comment?

Répondre

5

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:

enter image description here

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

+0

Donc, les points ici, serait essentiellement dessiner le visage de la personne? - en utilisant les points de repère détectés – rambossa

+0

oui, voir la modification que je viens d'ajouter – Guig