训练dlib形状预测器与194点海伦数据集

时间:2018-04-20 12:01:52

标签: c++ image-processing machine-learning face-detection dlib

我在使用dlib库(train_shape_predictor_ex.cpp)准备形状训练时遇到问题 对于案例:

我正确安装了Visual Studio并正确配置了dlib 我还有来自helen数据库的194点地标的xml文件(总共映射了大约2300张图片)。

默认情况下,dlib解决方案基于与68个面部标志相关的面部数据集,而我根本不知道如何将限制从68扩展到194.

当我尝试了迄今为止最好的东西时,68个点映射到每个图像的194点数据集......

通过逆向工程,我发现在render_face_detections.h文件中有一些限制,但即使我将它们从68更改为194,我仍然有相同的输出,在分析的图像上只显示68个标志点。

如果有任何提示如何解决这个问题,我将不胜感激 - 我知道这是一个简单的调整,但我无法理解......

提前致谢, 巴特克

1 个答案:

答案 0 :(得分:0)

也许是因为您不知道这194个点的结构以及它们的影响方式。我建议像我一样只使用圈子:

inline std::vector<image_window::overlay_circle> render_helen_face_detections (
        const std::vector<full_object_detection>& dets,
        const rgb_pixel color = rgb_pixel(0,255,0)
    )
    {
        std::vector<image_window::overlay_circle> circles;

        for (unsigned long i = 0; i < dets.size(); i++){
          const full_object_detection& d = dets[i];

          for (unsigned long p = 0; p < d.num_parts(); p++)
              circles.push_back(image_window::overlay_circle(d.part(p), 1, color));
        }

        return circles;
    }