Joh*_*ith 8 c++ opencv euler-angles geometric-arc
我试图根据2D图像找到人脸的三个角度
.
我正在使用OpenCV和HaarCascade来寻找面部,眼睛,鼻子和嘴巴.但我没有找到任何几何方法可以帮助我找到角度X,Y和Z(滚动,俯仰和偏航).
有人可以帮助我在c ++或java中显示一些有效的方法吗?
给定单个图像而没有其他信息,角度没有单一的解决方案.考虑一下Yaw的情况.投射到2d平面上,这可以看作是眼睛之间的投射距离和眼睛相对于鼻子/嘴巴的位置的微小变化.然而,这个距离在人与人之间不是一个常数.
一种典型的方法是要求用户通过直接观察相机的标称"0"角度来"校准"他们的脸部.此时,您现在可以使用参考长度来比较后续图像.
然而,长度仍然不是足够的信息,因为表观投影距离的变化量取决于光学器件和面部与相机的距离.您通常手动配置的光学器件; 您可以通过假设"平均"面部尺寸并假设"标称"图像与这些尺寸完美匹配来估计距离.如果您发现特定面的旋转估计过高或过低,则可以对此进行调整.
一旦你有了所有这些假设,它就是相当简单的几何.您可以估算从眼睛到鼻子到嘴巴的线条.您可以测量眼睛之间的间距来估计偏航.最后,您可以使用眼睛/嘴巴或眼睛/鼻子之间的间距来估计音高.请记住,当面部仍然非常接近名义时,这些假设最有效.
| 归档时间: |
|
| 查看次数: |
3852 次 |
| 最近记录: |