shape_based_matching icon indicating copy to clipboard operation
shape_based_matching copied to clipboard

设置shapes.angle_step的数值由1->0.1,匹配速度降低了。

Open wly2020-robot opened this issue 5 years ago • 6 comments

你好,meiqua.我用的是你开源的实例shape_based_matching_fusion_by_hand。由于考虑到匹配角度精度问题,我将angle_test(“train”)函数中的一行代码由shapes.angle_step=1改了shapes.angle_step=0.1;训练和测试图片分辨率是:2048*2448; 运行angle_test("test");运行时间由0.087616s提升到0.16139s;请问这是正常的吗?运行速度能优化吗?运行环境:VS2017+OPENCV3.4.9+WIN10. image image

wly2020-robot avatar Nov 11 '20 03:11 wly2020-robot

700万像素,fusion time 70ms是正常的,之前的测试也差不多;
角度0.1度模板量增加10倍,matching时间也增加8倍左右说明正常;不过没必要这么小的步长,要提高精度可以用ICP,可以参考这个issue

meiqua avatar Nov 11 '20 12:11 meiqua

非常感谢!看了相关连接,都是ICP提速的,ICP能提高角度检测精度吗?大概精度可以达到多少呢?谢谢。

wly2020-robot avatar Nov 11 '20 12:11 wly2020-robot

ICP本来就是提高精度的,那个链接的意思是ICP的速度比以前快了;图像边缘清晰的话,精度可以到亚像素,角度估计也有0.1度吧

meiqua avatar Nov 11 '20 12:11 meiqua

谢谢!我用的是shape_based_matching-icp_refined实例;将函数angle_test中的line2Dup::Detector detector(128, {4, 8})改成line2Dup::Detector detector(128, {8, 16});将 int stride = 16;改成 int stride = 32;将lin2Dup.h中的Detector(int num_features, std::vector T, float weak_thresh = 30.0f, float strong_thresh = 60.0f);改成Detector(int num_features, std::vector T, float weak_thresh = 15.0f, float strong_thresh = 30.0f);然后训练运行程序检测结果如下: image 训练图片: image 检测图片: image 现在检测一张图片花费时间400多ms,检测角度跨度比较大,请问这个测试正常吗?可以优化运行速度和角度检测吗?谢谢

wly2020-robot avatar Nov 12 '20 03:11 wly2020-robot

这个是无fusion版本,应该正常

meiqua avatar Nov 12 '20 13:11 meiqua

你好,meiqua.我用的是你开源的实例shape_based_matching_fusion_by_hand。由于考虑到匹配角度精度问题,我将angle_test(“train”)函数中的一行代码由shapes.angle_step=1改了shapes.angle_step=0.1;训练和测试图片分辨率是:2048*2448; 运行angle_test("test");运行时间由0.087616s提升到0.16139s;请问这是正常的吗?运行速度能优化吗?运行环境:VS2017+OPENCV3.4.9+WIN10. image image

你好,想请教一下,我是按照说明配置了opennphe avx2,运行环境是win10 + vs2019 +opencv3.5.3,200w图片配准耗时为70-80ms。500W图片需要160ms,是说明里的2倍。请问,这种情况你遇到过吗?谢谢 image

Phouking avatar Apr 22 '22 06:04 Phouking