如何将面部识别内置到Core ML视觉框架中

时间:2017-06-29 13:42:43

标签: ios swift ios11 coreml

在这个框架中完成面部识别到底是怎么回事?文档声明它是框架的一部分

  

人脸检测与识别

但是,目前尚不清楚哪些类/方法允许我们这样做。我发现的最接近的是VNFaceObservation,其缺乏重要的细节。

这更像是一个手动过程,我们必须包含我们自己的学习模型吗? - 如果是的话,怎么样?

1 个答案:

答案 0 :(得分:7)

即使从WWDC视频中他们似乎正在使用深度学习,视觉框架如何未知的技术细节。

以下是一些示例代码,用于在图像中找到眼睛:

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)
})

这将返回一些您可以在WWDC视频中链接在一起的点:

enter image description here

您可能希望在改进文档之前观看WWDC video。其他Xcode自动完成功能是您最好的朋友。

Core ML是另一回事。它没有专门针对面孔。您可以使用自己的模型并预测您想要的任何内容。所以如果你有一个人脸识别模型,那就去吧!愿景框架通过VNCoreMLModel

对CoreML模型提供了一些支持