opencv - 如何检测面部角度?

标签 opencv numpy machine-learning

我在 numpy 中有超过 2000 个像素尺寸为 96x96 的灰度图像。我有 (x,y) 面部关键点坐标,例如 left_eye_center、right_eye_center、nose_center、mouth_left、mouth_right 等。

数据集中的许多面部都向左、向右、向上或向下倾斜。所以我想找出朝向相机的面部方向角度。

有没有库可以检测到这一点?我研究了 opencv,但它似乎只进行面部检测而不进行定向。

最佳答案

来吧,这只是简单的数学:

    double eyeXdis = eye_r.x - eye_l.x;
    double eyeYdis = eye_r.y - eye_l.y;
    double angle   = atan(eyeYdis/eyeXdis);
    double degree  = angle*180/CV_PI;

[编辑:]

看来,您正在寻找的实际上是“头部姿势估计”(或“位置”)

您需要一个(原始)3d 头部模型,一次获取地标的相应 3d 点,然后为每个图像找到图像中的 2d 地标,并从 solvPnP() 获取旋转/平移向量.

关于opencv - 如何检测面部角度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530102/

相关文章:

python - 从图像中去除虚假文本区域

java - 在Java中将位图转换为mat以进行图像处理

java - OpenCV CascadeClassifier 错误

python - 由数据点定义的 "plane"下的卷 - python

python - 有效地累积稀疏 scipy 矩阵的集合

python - LightGBM运行时如何更改参数?

python - 在 Tensorflow 对象检测 API 中裁剪图像并显示

c++ - OpenCV InputArray 和 getMat 方法

machine-learning - 如何故意过度拟合Weka树分类器?

python Pandas 数据帧: Duration of DrawDown