4

我正在使用 helen 数据集为 194 个面部地标训练DLIBshape_predictor ,该数据集用于通过face_landmark_detection_ex.cppdlib 库检测面部地标。

现在它给了我一个大约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个地标图片:

在此处输入图像描述

为什么?

4

1 回答 1

7

好的,看起来您还没有阅读代码注释(?):

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 论文,按 ctrl-f 字符串 'parameter' 并阅读...

于 2016-04-28T10:18:02.883 回答