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 个面部特征点训练 DLIB 的 shape_predictor,该数据集用于通过face_landmark_detection_ex.cpp
检测面部特征点dlib 库。
现在它给了我一个大约 45 MB 的 sp.dat
二进制文件,与 68 个面部标志的给定文件 (http://sourceforge.net/projects/dclib/files/dlib/v18.10/shape_predictor_68_face_landmarks.dat.bz2) 相比,它要小。训练中
当我使用经过训练的数据来获取面部地标位置时,我得到了结果..
与从 68 个地标得到的结果相差很大
68 地标图片:
为什么?
【问题讨论】:
编辑链接,添加图片。 我认为您的问题是 - 为什么? 你用什么参数训练这个集合?如果我记得有一些设置可以让它训练的时间更长、更难…… @LamarLatrell 我正在使用 300 张用于训练的图像和 20 张用于测试的图像进行训练,我准备了training_with_face_landmarks.xml
和 testing_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(海伦数据集)的主要内容,如果未能解决你的问题,请参考以下文章