Core ML视觉框架中如何集成面部识别?

10

这个框架中的人脸识别是如何完成的?文档指出它是框架的一部分。

人脸检测和识别

然而,目前并不清楚有哪些类/方法可以让我们实现人脸识别。我找到的最相关的东西是VNFaceObservation,但它缺乏重要细节。

这更像是一个手动过程,我们必须以某种方式包含我们自己学习到的模型吗?如果是这样,怎么做?

1个回答

8

虽然从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视频,否则Xcode自动完成将是您最好的朋友。

Core ML是一个不同的东西。它并不专门针对面部。您可以使用自己的模型并预测任何您想要的内容。因此,如果您有一个人脸识别模型,请使用它!Vision框架通过VNCoreMLModel支持CoreML模型。


那么这里的点,基本上会描绘出人脸吗?--使用检测到的标志物。 - Michael Ramos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接