DLIB:为 194 个地标训练 Shape_predictor(海伦数据集)

Posted

技术标签:

【中文标题】DLIB:为 194 个地标训练 Shape_predictor(海伦数据集)【英文标题】:DLIB : Training Shape_predictor for 194 landmarks (helen dataset) 【发布时间】:2016-08-22 20:20:58 【问题描述】:

我正在使用 helen dataset 为 194 个面部特征点训练 DLIBshape_predictor,该数据集用于通过face_landmark_detection_ex.cpp 检测面部特征点dlib 库。

现在它给了我一个大约 45 MBsp.dat 二进制文件,与 68 个面部标志的给定文件 (http://sourceforge.net/projects/dclib/files/dlib/v18.10/shape_predictor_68_face_landmarks.dat.bz2) 相比,它要小。训练中

平均训练误差:0.0203811 平均测试误差:0.0204511

当我使用经过训练的数据来获取面部地标位置时,我得到了结果..

与从 68 个地标得到的结果相差很大

68 地标图片:

为什么?

【问题讨论】:

编辑链接,添加图片。 我认为您的问题是 - 为什么? 你用什么参数训练这个集合?如果我记得有一些设置可以让它训练的时间更长、更难…… @LamarLatrell 我正在使用 300 张用于训练的图像和 20 张用于测试的图像进行训练,我准备了 training_with_face_landmarks.xmltesting_with_face_landmarks.xml 文件,其中指定了每个图像的位置,其中指定了一张具有 194 个地标的脸。 @NAYA,你能分享你的 194 点数据库吗? 194分数据库有参考吗?谢谢。 【参考方案1】:

好的,看来你还没有读过code cmets (?):

shape_predictor_trainer trainer;
// This algorithm has a bunch of parameters you can mess with.  The
// documentation for the shape_predictor_trainer explains all of them.
// You should also read Kazemi's paper which explains all the parameters
// in great detail.  However, here I'm just setting three of them
// differently than their default values.  I'm doing this because we
// have a very small dataset.  In particular, setting the oversampling
// to a high amount (300) effectively boosts the training set size, so
// that helps this example.
trainer.set_oversampling_amount(300);
// I'm also reducing the capacity of the model by explicitly increasing
// the regularization (making nu smaller) and by using trees with
// smaller depths.  
trainer.set_nu(0.05);
trainer.set_tree_depth(2);

看看Kazemi paper,ctrl-f 字符串'parameter'并读一读...

【讨论】:

我增加了参数值,但现在它显示运行时错误 bad allocation ,这意味着新操作员无法为新变量分配内存。更大的树深度是否需要更多的内存。 您好!你能准确地说出我应该使用哪些参数来提高准确性吗?因为我已经用不同的参数(nu、tree_depth、cascade_depth)训练了几个预测器,我得到了几乎相同的结果(我得到了类似 TS 结果的结果)。任何额外的帮助都会很有用!

以上是关于DLIB:为 194 个地标训练 Shape_predictor(海伦数据集)的主要内容,如果未能解决你的问题,请参考以下文章

训练模型以实现 DLib 的面部特征点,例如手的特征点及其地标

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

使用 Dlib 进行面部地标检测

使用 dlib 进行地标预测的准确性

如何在 dlib 中保存结果人脸地标图像?

使用 dlib 检测眼睛地标