面部识别是如何内置到 Core ML 视觉框架中的
How is facial recognition built into Core ML vision framework
这个框架里面人脸识别具体是怎么做的?文档声明它是框架的一部分
Face Detection and Recognition
但是,尚不清楚哪个 classes/methods 允许我们这样做。我发现的最接近的是 VNFaceObservation
,它缺少重要的细节。
它是否更像是一个手动过程,我们必须以某种方式包含我们自己学习的模型? -- 如果是,怎么做?
尽管从 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)
})
这将 return 你可以看到在 WWDC 视频中链接在一起的一些要点:
您可能想观看 WWDC video,直到他们改进文档。否则 Xcode 自动完成是你最好的朋友。
Core ML 是另一回事。它不是专门针对面部的。您可以使用自己的模型并预测任何您想要的。因此,如果您有人脸识别模型,那就去吧!视觉框架通过 VNCoreMLModel
对 CoreML 模型提供了一些支持
这个框架里面人脸识别具体是怎么做的?文档声明它是框架的一部分
Face Detection and Recognition
但是,尚不清楚哪个 classes/methods 允许我们这样做。我发现的最接近的是 VNFaceObservation
,它缺少重要的细节。
它是否更像是一个手动过程,我们必须以某种方式包含我们自己学习的模型? -- 如果是,怎么做?
尽管从 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)
})
这将 return 你可以看到在 WWDC 视频中链接在一起的一些要点:
您可能想观看 WWDC video,直到他们改进文档。否则 Xcode 自动完成是你最好的朋友。
Core ML 是另一回事。它不是专门针对面部的。您可以使用自己的模型并预测任何您想要的。因此,如果您有人脸识别模型,那就去吧!视觉框架通过 VNCoreMLModel
对 CoreML 模型提供了一些支持