【发布时间】:2021-07-27 06:53:04
【问题描述】:
谁能告诉我一个库的方向,该库可以从 Python 中的 68 个地标点估计面部姿势?
更具体地说,存在许多这样的库。但是,它们通常从图像开始。我想跳过地标检测,因为我已经有了它。我只想将 68 点的地标提供给函数并检索面部的旋转和平移。
如果我不是一个完整的 Python 新手,我也许可以从现有库中提取相关的点点滴滴,但我发现这很难做到。
谢谢。
【问题讨论】:
谁能告诉我一个库的方向,该库可以从 Python 中的 68 个地标点估计面部姿势?
更具体地说,存在许多这样的库。但是,它们通常从图像开始。我想跳过地标检测,因为我已经有了它。我只想将 68 点的地标提供给函数并检索面部的旋转和平移。
如果我不是一个完整的 Python 新手,我也许可以从现有库中提取相关的点点滴滴,但我发现这很难做到。
谢谢。
【问题讨论】:
这个库似乎可以完成你的工作 https://github.com/yinguobing/head-pose-estimation
它似乎分三步工作,
因此,您应该查看将 68 个地标作为输入的 mutual PnP algorithm 的代码库。
Looks like all the code regarding pose estimation that you will need is inside this file!
为大家简单总结一下姿态估计代码的整个文件
PoseEstimator 类包含所有相关函数__init__函数正在建立self.model_points作为鼻尖、下巴、嘴的坐标。它还处理相机内部、旋转和平移向量。所有这些都是进行姿态估计的 PnP 算法的基本输入self._get_full_model_points() 正在从文件中读取地标点并将其存储在 self.model_points_68
solve_pose_by_68_points的重要函数,它可以满足你的需要。它需要输入您的地标。solve_pose_by_68_points()函数被使用inside this file
marks 的变量
您需要想办法将自己的地标点输入到这个solve_pose_by_68_points 函数中,使用marks 变量作为指导。
或者,只需从 pose_estimator.py 文件和其中的 solve_pose_by_68_points 函数重新创建代码。
附注 - 该函数只是调用 cv2.solvePnP,我猜是 PnP 算法的 openCVs 实现。
【讨论】: