首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dlib的scan_fhog_pyramid : set max_pyramid_levels

dlib的scan_fhog_pyramid : set max_pyramid_levels
EN

Stack Overflow用户
提问于 2016-05-30 15:28:44
回答 1查看 1.2K关注 0票数 1

我使用的对象检测器具有以下类型:

dlib::object_detector<dlib::scan_fhog_pyramid<dlib::pyramid_down<2>>>

我的代码是这样的:

代码语言:javascript
复制
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反序列化到此对象检测器中。在最后一行中,我试图通过改变hog金字塔的级别来配置检测器。

最后一行不编译,因为get_scanner()返回const image_scanner_type &。所以改变max_pyramid_levels是行不通的。我想知道是否有办法改变这一点,以减少扫描图像(即。金字塔将有较少的图像)。

我的目标是提高探测器的性能,在我的例子中,我确信金字塔中只需要很少的图像尺度。

感谢您的回复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-31 09:12:13

您可以使用新的图像扫描仪构造新的对象检测器:

代码语言:javascript
复制
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。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37529251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档