首页 文章

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

提问于
浏览
9

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

人脸检测与识别

但是,目前尚不清楚 classes/methods 允许我们这样做。我发现最接近的是VNFaceObservation,这是缺乏重要细节。

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

1 回答

  • 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 视频中链接在一起的点,如下所示:

    在此输入图像描述

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

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

相关问题