C++ DLIB:194个地标的训练形状预测(helen数据集)
我正在使用helen数据集对DLIB的shape\u预测器进行培训,该数据集用于通过DLIB库的C++ DLIB:194个地标的训练形状预测(helen数据集),c++,feature-detection,training-data,dlib,C++,Feature Detection,Training Data,Dlib,我正在使用helen数据集对DLIB的shape\u预测器进行培训,该数据集用于通过DLIB库的face\u landmark\u detection\u ex.cpp检测面部标志 现在它给了我一个sp.dat二进制文件,大约45MB,这比68个面部标志的文件()要少。训练中 平均训练误差:0.0203811 平均测试误差:0.0204511 当我使用经过训练的数据来获取人脸标志点的位置时,我得到了 与68个地标的结果相差甚远 68地标图像: 为什么?好的,看起来你还没有读到评论(?):
face\u landmark\u detection\u ex.cpp
检测面部标志
现在它给了我一个sp.dat
二进制文件,大约45MB,这比68个面部标志的文件()要少。训练中
- 平均训练误差:0.0203811
- 平均测试误差:0.0204511
为什么?好的,看起来你还没有读到评论(?):
查看,ctrl-f字符串“parameter”,并有一个read…编辑的链接,并添加了图像。我想你的问题是-为什么?你用什么参数训练集合?如果我记得有一些设置会让它训练更长更难…@Lamarlatell我正在训练300张图像用于训练,20张图像用于测试,我准备了
training_with_face_landmarks.xml
和testing_with_face_landmarks.xml
文件,其中每个图像的位置都有一张194的脸指定了地标。@纳亚,你能分享你的194点数据库吗?是否有194点数据库的参考?谢谢。我增加了参数值,但现在显示运行时错误“分配错误”,这意味着新运算符无法为新变量分配内存。更大的树深度需要更多的内存。您好!你能确切地说我应该使用什么参数来提高精度吗?因为我已经用不同的参数(nu、tree\u depth、cascade\u depth)训练了几个预测器,我得到了几乎相同的结果(我得到的结果类似于TS结果)。任何额外的帮助都是有用的!
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);