VNDetectFaceRectanglesRequest始终为偏航/俯仰/滚动返回0

时间:2019-03-07 12:01:14

标签: swift swift4

我正在尝试使用Vision框架获取图像中人脸的俯仰/偏航/滚动,但对于所有值始终为0。图片应该非常易于处理(大多是前瞻性的肖像)。

我已经通过对它们使用Amazon Rekognition成功获得了这些值,因此图像本身不是问题。 (我需要做大约70,000的批处理,因此对它们全部使用rekogniton会变得昂贵而缓慢。)

这是请求代码:

let faceLandmarksRequest = VNDetectFaceRectanglesRequest(completionHandler: handleRectangles)

let requestHandler = VNImageRequestHandler(cgImage: cgImage!, orientation: CGImagePropertyOrientation.right ,options: [:])

do {
    try requestHandler.perform([faceLandmarksRequest])
} catch {
    print(error)
}

这是处理程序代码:

func handleRectangles(request: VNRequest, errror: Error?) {

    guard let observations = request.results as? [VNFaceObservation] else {
        fatalError("unexpected result type!")
    }

    for face in observations {

        print("\(face.yaw))") // always zero

    }
}

任何帮助表示赞赏:)

1 个答案:

答案 0 :(得分:0)

实际上是滚动和偏航,但是目前它们非常粗糙。 您总是会得到零,因为滚动和偏航(截至2019年的回报)是由6或7个值组成的离散集合,而不是具有精确的面部方向的连续范围的值。

尝试一张“旋转度更高”的脸。