【问题标题】:Vision Framework (iOS): How are VNDetectFaceLandmarksRequest and VNDetectFaceRectanglesRequest different?视觉框架 (iOS):VNDetectFaceLandmarksRequest 和 VNDetectFaceRectanglesRequest 有何不同?
【发布时间】:2021-05-27 18:43:39
【问题描述】:

有两种不同的请求可用于使用 iOS 视觉框架执行人脸检测任务:VNDetectFaceLandmarksRequestVNDetectFaceRectanglesRequest。它们都返回一个VNFaceObservation 的数组,每个检测到的人脸一个。 VNFaceObservation 有多种可选属性,包括boundingBoxlandmarks。然后,landmarks 对象还包括可选属性,例如 noseinnerLipsleftEye 等。

这两种不同的视觉请求在执行人脸检测方面是否有所不同?

似乎VNDetectFaceRectanglesRequest 只找到了一个边界框(可能还有一些其他属性),但没有找到任何地标。另一方面,VNDetectFaceLandmarksRequest 似乎找到了边界框和地标。 是否存在一种请求类型会找到面孔而另一种不会找到面孔的情况? VNDetectFaceLandmarksRequest 优于 VNDetectFaceRectanglesRequest,还是后者可能在性能可靠性方面有优势?

下面是如何使用这两个 Vision 请求的示例代码:

let faceLandmarkRequest = VNDetectFaceLandmarksRequest()
let faceRectangleRequest = VNDetectFaceRectanglesRequest()
let requestHandler = VNImageRequestHandler(ciImage: image, options: [:])
try requestHandler.perform([faceRectangleRequest, faceLandmarkRequest])
if let rectangleResults = faceRectangleRequest.results as? [VNFaceObservation] {
    let boundingBox1 = rectangleResults.first?.boundingBox   //this is an optional type
}
if let landmarkResults = faceLandmarkRequest.results as? [VNFaceObservation] {
    let boundingBox2 = landmarkResults.first?.boundingBox   //this is an optional type
    let landmarks = landmarkResults.first?.landmarks   //this is an optional type
}

【问题讨论】:

    标签: ios swift machine-learning face-detection vision


    【解决方案1】:
    • VNDetectFaceRectanglesRequest 是一种更轻量级的查找人脸矩形的操作
    • VNDetectFaceLandmarksRequest是比较重的操作,也可以帮助定位人脸的地标

    【讨论】:

      猜你喜欢
      • 2017-12-12
      • 2022-08-18
      • 1970-01-01
      • 2018-06-24
      • 1970-01-01
      • 2019-02-02
      • 2019-01-19
      • 2021-07-13
      • 2015-02-11
      相关资源
      最近更新 更多