Skip to content

Head pose estimation#

The head pose estimation determines a person's head rotation angles in 3D space, specifically along the pitch, yaw, and roll axes:

  • Pitch (X-axis): This angle measures the vertical tilt of the head. It limits the head rotation along the X-axis.
  • Yaw (Y-axis): This angle measures the horizontal rotation of the head. It limits the head rotation along the Y-axis.
  • Roll (Z-axis): This angle measures the lateral tilt of the head. It limits the head rotation along the Z-axis.

Head pose

Acceptable angle ranges#

For optimal results, the acceptable ranges for these angles are as follows:

  • Pitch: 0 to 45 degrees
  • Yaw: 0 to 45 degrees
  • Roll: 0 to 45 degrees

All pitch, yaw, and roll values must fall within the minimal and maximal valid head position values specified by your system configuration.

Default vales#

By default, all rotation angles (pitch, yaw, and roll) are set to 25 degrees.

We recommend that you specify the following values for the rotation angles:

Angle LUNA ID for Android LUNA ID for iOS
Pitch public const val DEFAULT_HEAD_PITCH: Float = 15F LCLunaConfiguration → bestShotConfiguration → estimationThreshold → headPitch = 15;
Yaw public const val DEFAULT_HEAD_YAW: Float = 15F LCLunaConfiguration → bestShotConfiguration → estimationThreshold → headYaw = 15;
Roll public const val DEFAULT_HEAD_ROLL: Float = 15F LCLunaConfiguration → bestShotConfiguration → estimationThreshold → headRoll = 15;

Implementation#

Angle LUNA ID for Android LUNA ID for iOS
Pitch public val headPitch: Float = DEFAULT_HEAD_PITCH @property (nonatomic) CGFloat headPitch;
Yaw public val headYaw: Float = DEFAULT_HEAD_YAW @property (nonatomic) CGFloat headYaw;
Roll public val headRoll: Float = DEFAULT_HEAD_ROLL @property (nonatomic) CGFloat headRoll;