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

ram*_*ssa 9 ios swift ios11 coreml

在这个框架中完成的面部识别究竟是如何完成的?文档声明它是框架的一部分

人脸检测与识别

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

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

Gui*_*uig 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)
})
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

您可能希望观看WWDC视频,直到他们改进文档.其他Xcode自动完成功能是您最好的朋友.

核心ML是另一回事.它不是专门针对面孔的.您可以使用自己的模型并预测您想要的任何内容.所以如果你有一个人脸识别模型,那就去吧!视觉框架通过VNCoreMLModel对CoreML模型提供了一些支持