Vision yawAngle sensitivity

I'm using Vision to detect yaw angle of the face.

Code is similar to below:



try? self.faceDetectionRequest.perform([self.faceDetection], on: image)

guard let results = self.faceDetection.results as? [VNFaceObservation], results.count == 1 else {

completion(nil)

return

}

let yaw = results[0].yaw

if let yaw = yaw {

print("yaw = \(yaw)")

}



The problem is I can only get new value for each 45 degree changes. (I can't get the correct yawAngle value when the user rotated his head 30 degrees. YawAngle was only updated once its changed for 0,45 and 90 degrees)

Is it intended behaviour or bug which will be fixed in the future ?

I also want to know is there any other option to have more sensitive values.



Thanks.

Replies

+1 to this question. We're also finding coarse returned values for both roll (30 degree increments) and yaw (45 degree increments).


Since that doesn't seem very useful, I assumed I hadn't configured the request properly.
Any additional insight?

The yaw and roll properties of a VNFaceObservation return a limited, discrete set of values, not a continuous range.


If you would like a higher degree of precision in these values, you should file an enhancement request!