我正在尝试使用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
}
}
任何帮助表示赞赏:)
答案 0 :(得分:0)
实际上是滚动和偏航,但是目前它们非常粗糙。 您总是会得到零,因为滚动和偏航(截至2019年的回报)是由6或7个值组成的离散集合,而不是具有精确的面部方向的连续范围的值。
尝试一张“旋转度更高”的脸。