C++ 用于对象检测的dlib标签-仅检测60%

C++ 用于对象检测的dlib标签-仅检测60%,c++,dlib,C++,Dlib,我对使用dlib进行目标检测有疑问。我想检测一下脸上的胡子。所以我在下面贴标签 typedef scan_fhog_pyramid<pyramid_down<6> > image_scanner_type; image_scanner_type scanner; scanner.set_detection_window_size(80, 80); structural_object_detection_trainer<image_scanner_type>

我对使用dlib进行目标检测有疑问。我想检测一下脸上的胡子。所以我在下面贴标签

typedef scan_fhog_pyramid<pyramid_down<6> > image_scanner_type; 
image_scanner_type scanner;
scanner.set_detection_window_size(80, 80); 
structural_object_detection_trainer<image_scanner_type> trainer(scanner);

typedef扫描\ fhog \金字塔图像\扫描仪\类型;
图像扫描仪\u型扫描仪;
扫描仪。设置检测窗口大小(80,80);
结构物检测培训师(扫描仪);

我已经训练了400张图片。但检测率是60%。即使没有胡须,它也在检测,我想这是因为我已经标记了no_beard,所以它在检测(可能是)。看来我的标签不对,我只想检测一下胡子脸。那么,在这种情况下,我是否只需要给有胡子的脸贴上标签?或者我应该给胡子和无胡子贴上标签?出什么事了?作为参考,我正在使用

如果您不做任何更改,默认的培训方式与此文件类似。它只将对象训练为矩形框(所有框的宽度和高度比几乎相同)

它不训练任何标签,因此我建议您只训练胡须图像作为对象。如果您有足够的图像,它应该学习beard对象

另一个想法是,通过检测人脸,然后训练胡须图像


确保在训练中保留无注释的非胡须图像,以便其学习。

Yaa,我的方法是使用MMOD人脸检测,然后训练胡须图像。我的问题是是否注释非胡须图像。谢谢你的快速建议。我会留下没有注释的非胡须图像。是的,不要注释非胡须图像。示例中的第三个图像保持为空,但将其保留在训练集中。探测器将了解它们之间的差异。