1. A non-transitory computer-readable storage medium including instructions that, when executed by a processor, cause the processor to estimate a head pose of a user, by performing the steps of: acquiring depth data associated with a head of the user; initializing each particle included in a set of particles with a different candidate head pose associated with a three-dimensional reference model; and performing at least one optimization pass that comprises: performing at least one iterative closest point (ICP) iteration for each particle in the set of particles, wherein each ICP iteration comprises: rendering the three-dimensional reference model based on the candidate head pose associated with the particle, comparing the three-dimensional reference model to the depth data to determine at least one error value, and modifying the candidate head pose associated with the particle based on the at least one error value, performing at least one particle swarm optimization (PSO) iteration, comprising: updating a global best head pose associated with the set of particles, and modifying at least one of the candidate head poses associated with the set of particles based on the global best head pose, and modifying the three-dimensional reference model based on the global best head pose.