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

Posted

技术标签:

【中文标题】使用 194 点海伦数据集训练 dlib 形状预测器【英文标题】:train dlib shape predictor with 194 points helen dataset 【发布时间】:2018-10-01 03:29:49 【问题描述】:

我在使用 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】:

可能是因为您不知道 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;
    

【讨论】:

以上是关于使用 194 点海伦数据集训练 dlib 形状预测器的主要内容,如果未能解决你的问题,请参考以下文章

Dlib 形状预测器

具有默认数据集和训练的形状预测器精度低

DLIB:带有 halen 数据集的 194 个地标的 train_shape_predictor_ex.exe 给出运行时错误:分配错误

R语言plotly可视化:使用plotly可视化数据划分后的训练集和测试集使用不同的形状标签表征训练集测试集以及数据集的分类标签整个数据空间的分类边界轮廓线(等高线)多分类模型的预测置信度

在训练中使用 One-Hot-Encoding 后,使用回归模型获得正确的数据点形状以进行预测

如何使用 dlib 的 LDA