dlibs u=10=u : 网络 u=11=u
dlib's scan_fhog_pyramid : set max_pyramid_levels
我正在使用具有以下类型的对象检测器:
dlib::object_detector<dlib::scan_fhog_pyramid<dlib::pyramid_down<2>>>
我的代码是这样的:
dlib::object_detector<dlib::scan_fhog_pyramid<dlib::pyramid_down<2>>> d;
dlib::deserialize(svm_path) >> d;
d.get_scanner().set_max_pyramid_levels(max_levels);
基本上我正在做的是定义一个对象检测器。将已训练的 svm
反序列化到此对象检测器中。在最后一行中,我尝试通过更改猪金字塔的层数来配置检测器。
最后一行没有编译为 get_scanner()
returns const image_scanner_type &
。所以改变 max_pyramid_levels
是行不通的。我想知道是否有办法改变它以扫描更少的图像(即金字塔将有更少的图像)。
我的目标是提高检测器的性能,在我的例子中,我确信金字塔中只需要很少的图像比例。
感谢您的回复。
您可以使用新的图像扫描仪构建新的物体检测器:
typedef dlib::scan_fhog_pyramid<dlib::pyramid_down<2> > image_scanner_type;
typedef dlib::object_detector<image_scanner_type> detector_type;
detector_type d;
dlib::deserialize(svm_path) >> d;
image_scanner_type new_scanner;
new_scanner.copy_configuration(d.get_scanner());
new_scanner.set_max_pyramid_levels(1);
detector_type new_d(new_scanner, d.get_overlap_tester(), d.get_w());
或使用const_cast。
我正在使用具有以下类型的对象检测器:
dlib::object_detector<dlib::scan_fhog_pyramid<dlib::pyramid_down<2>>>
我的代码是这样的:
dlib::object_detector<dlib::scan_fhog_pyramid<dlib::pyramid_down<2>>> d;
dlib::deserialize(svm_path) >> d;
d.get_scanner().set_max_pyramid_levels(max_levels);
基本上我正在做的是定义一个对象检测器。将已训练的 svm
反序列化到此对象检测器中。在最后一行中,我尝试通过更改猪金字塔的层数来配置检测器。
最后一行没有编译为 get_scanner()
returns const image_scanner_type &
。所以改变 max_pyramid_levels
是行不通的。我想知道是否有办法改变它以扫描更少的图像(即金字塔将有更少的图像)。
我的目标是提高检测器的性能,在我的例子中,我确信金字塔中只需要很少的图像比例。
感谢您的回复。
您可以使用新的图像扫描仪构建新的物体检测器:
typedef dlib::scan_fhog_pyramid<dlib::pyramid_down<2> > image_scanner_type;
typedef dlib::object_detector<image_scanner_type> detector_type;
detector_type d;
dlib::deserialize(svm_path) >> d;
image_scanner_type new_scanner;
new_scanner.copy_configuration(d.get_scanner());
new_scanner.set_max_pyramid_levels(1);
detector_type new_d(new_scanner, d.get_overlap_tester(), d.get_w());
或使用const_cast。