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)
})
1 回答
即使从 WWDC 视频中他们似乎使用深度学习,视觉框架如何未知的技术细节。
以下是一些示例代码,用于查找图像中的眼睛:
这将返回一些您可以在 WWDC 视频中链接在一起的点,如下所示:
您可能希望在改进文档之前观看WWDC 视频。其他 Xcode 自动完成功能是您最好的朋友。
核心 ML 是另一回事。它不是专门针对面孔的。您可以使用自己的模型并预测您想要的任何内容。所以如果你有一个人脸识别模型,那就去吧!愿景框架通过VNCoreMLModel对 CoreML 模型提供一些支持