我对使用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);
我训练了400张图片。但是检测%是60.它甚至检测到没有胡须,我想这是因为我标记了no_beard所以它正在检测(可能是)。看来我的标签是错误的,我只是想检测出只有胡须的脸。那么在那种情况下,我是否只需要标记留胡子的脸?或者我应该标记胡须和no_beard?出了什么问题?供参考我使用enter link description here
答案 0 :(得分:2)
如果您没有更改任何内容,则默认培训方式就像此xml文件一样。它只将物体训练为矩形盒子(所有盒子的宽度和高度比几乎相同)。
它没有训练任何标签,所以我建议你只训练胡须图像作为对象。如果你有足够的图像,它应该学习胡须对象。
另一个想法是,通过dlib's MMOD Face detection检测脸部,然后训练胡须图像。
确保在训练中保留没有注释的非胡须图像,以便学习。