Python库从68个地标点检索面部姿势

Python库从68个地标点检索面部姿势,python,pose-estimation,Python,Pose Estimation,有人能告诉我一个库的方向吗?这个库可以从Python中的68个里程碑点估计面部姿势 更具体地说,存在许多这样的库。然而,它们通常从图像开始。我想跳过地标检测,因为我已经有了它。我只想将68个点的地标输入到一个函数中,并检索人脸的旋转和平移 如果我不是一个完整的Python新手,我可能能够从现有库中提取相关的部分,但我发现这很难做到 谢谢。这个库似乎能帮你完成任务 它似乎分三步工作 人脸检测 地标探测 姿势估计。在获得68个面部标志点后,通过互PnP算法计算出姿态 因此,您应该查看此双向PnP算

有人能告诉我一个库的方向吗?这个库可以从Python中的68个里程碑点估计面部姿势

更具体地说,存在许多这样的库。然而,它们通常从图像开始。我想跳过地标检测,因为我已经有了它。我只想将68个点的地标输入到一个函数中,并检索人脸的旋转和平移

如果我不是一个完整的Python新手,我可能能够从现有库中提取相关的部分,但我发现这很难做到


谢谢。

这个库似乎能帮你完成任务

它似乎分三步工作

  • 人脸检测
  • 地标探测
  • 姿势估计。在获得68个面部标志点后,通过互PnP算法计算出姿态
  • 因此,您应该查看此
    双向PnP算法的代码库,该算法将68个地标作为输入

    为您简要总结整个姿势估计代码文件

    • PoseEstimator
      类包含所有相关函数
    • \uuuu init\uuuu
      功能正在将
      self.model\u点
      建立为鼻尖、下巴、嘴坐标。它还处理相机内部、旋转和平移向量。所有这些都是进行姿势估计的PnP算法的基本输入
    • self.\u get\u full\u model\u points()
      从文件中读取地标点并将其存储在
      self.model\u points\u 68
    • 这个类有一个重要的函数,叫做
      solve\u pose\u by\u 68\u points
      ,它正在做你需要的事情。它需要输入您的地标
    • 使用此
      通过_68_点求解_姿势()
      函数
    • 该函数的输入是一个名为
      marks
    您需要找到一种方法,以
    标记
    变量为指导,将您自己的地标点输入此
    通过68点解决姿势
    函数

    或者,只需从
    pose\u estimator.py
    文件和其中的
    solve\u pose\u by_68_points
    函数中重新创建代码


    旁注-该函数只是调用了
    cv2.solvePnP
    ,我猜是PnP算法的openCVs实现。

    非常感谢您的指点!看起来解决方案确实在此文件中。我会尝试一下,然后汇报。我取得了一些进展,但也有一些瓶颈。当我调用solve_pose_by_68_points()时,我需要提供一个OpenCV Mat对象。我有一个二维数组。目前,我正在使用这段代码将我的points数组转换为Numpy数组,根据我在其他地方读到的内容,该数组应该与Python中的Mat对象相同:Numpy.array(points,np.float32)。我不知道这是否正确。我试着使用旋转数据,但数字太小,以至于我无法注意到实际的姿势变化…请在某个地方共享您的代码,帮助我运行它。给我你的点数组,给我解68点的姿势()函数谢谢你回复我。我把我目前掌握的东西大致放在哪里。我确实在最后得到了数字,但我不认为他们是对的。。。我不知道如何从数组创建cv.Mat。要点如下: