我正在使用视觉框架,并使用以下代码获取所有地标点:
if let allFaceLandmarks = landmarks.allPoints {
print(allFaceLandmarks)
}
但是找不到这些点的映射。例如,右眼的索引号。
寻找与此相同的东西,但用于Vision框架。
if let allFaceLandmarks = landmarks.allPoints {
print(allFaceLandmarks)
}
但是找不到这些点的映射。例如,右眼的索引号。
寻找与此相同的东西,但用于Vision框架。
这篇文章对我非常有帮助,所以我打算为iOS 13更新它(原问题的范围是iOS 11)。从iOS 13开始,除非手动指定VNDetectFaceLandmarksRequestRevision2修订版,否则您将获得不同的点集合(VNDetectFaceLandmarksRequestRevision3)。修订参数仅适用于iOS 12,因此您需要类似以下的内容:
let faceLandmarksRequest = VNDetectFaceLandmarksRequest(completionHandler: self.myFaceFunction)
if #available(iOS 12.0, *) {
// Force the revision to 2 (68-points) even on iOS 13 or greater
// when VNDetectFaceLandmarksRequestRevision3 is available.
faceLandmarksRequest.revision = 2
}
希望你已经在使用Vision API的VNDetectFaceLandmarksRequest
类来检测面部特征。
我们发现的每个地标都是VNFaceLandmarks2D
类型的。
var landmarks: VNFaceLandmarks2D? { get }
如果您查看VNFaceLandmarks2D
类实例属性的文档,我们可以找到有关检测到的面部的所有详细信息。以下是我们可以从每个地标中获得的值。
它们全部都是[VNFaceLandmarkRegion2D][2]
类型。