【问题标题】:3D face reconstruction from single image单张图像的 3D 人脸重建
【发布时间】:2017-10-12 20:24:05
【问题描述】:

我想从单个图像进行 3D 面部重建。我搜索了一下发现

https://github.com/mkorunoski/3D-Face-Reconstruction/ .此链接使用以下值进行 3D 重建:

const cv::Point3f modelPointsArr[] =
{
    cv::Point3f(-1.030300, -0.41930, -0.38129),
    cv::Point3f(-0.493680, -0.38700, -0.55059),
    cv::Point3f(+1.030300, -0.41930, -0.38129),
    cv::Point3f(+0.493680, -0.38700, -0.55059),
    cv::Point3f(-0.363830, +0.52565, -0.79787),
    cv::Point3f(+0.363830, +0.52565, -0.79787),
    cv::Point3f(-0.599530, +1.10768, -0.71667),
    cv::Point3f(+0.599530, +1.10768, -0.71667),
    cv::Point3f(-0.000002, +1.99444, -0.94946)
};

编辑: 这些点是使用 MeshLab 的“获取信息”选择器计算的,图像位于项目的工作区中,如 http://www.morethantechnical.com/2012/10/17/head-pose-estimation-with-opencv-opengl-revisited-w-code/ 中所述。

但我想获得不同图像的 3d 人脸重建。 有没有办法从给定的图像中自动获取这样的 3d 点,而不是为特定图像手动写入?

【问题讨论】:

    标签: c++ opencv image-processing dlib 3d-reconstruction


    【解决方案1】:

    如果您的算法完全按照您在代码中所写的那样需要这些点,那么它们应该找到适合您程序的方法。我看到两个选项:

    1. 像您一样手动编写它们。
    2. 从一些配置文件中读取它们

    在第二个选项中,您只是将手动写入移动到其他地方...

    你必须问自己这些数字是从哪里来的,并实现计算它们的算法,并在你的代码中实现它——这将绕过在你的代码中手动编写它们的需要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 2014-02-18
      • 2012-02-20
      • 2013-01-03
      • 2011-09-14
      • 1970-01-01
      • 2021-09-03
      相关资源
      最近更新 更多