shape_based_matching icon indicating copy to clipboard operation
shape_based_matching copied to clipboard

icp优化问题

Open laidongd opened this issue 6 years ago • 7 comments

我尝试用较大的anglestep,例如:3度,预期是:在匹配时,先找到一个大致的范围,然后期望icp优化能够获得较优的解,但icp并没办法优化这3度的误差,多次匹配相同图像的结果会有3度左右的一个偏差,是否icp陷入了一个 local minimum导致优化不成功。

laidongd avatar Sep 12 '19 08:09 laidongd

可能是因为模板比较大,像素距离差太多;或者边缘太杂乱,最近点容易找错。可以调小max_dist_diff,或者调高这里的两个阈值,改善下边缘

meiqua avatar Sep 12 '19 11:09 meiqua

你好,我是用的anglesStep为1度,在得到初始结果后使用ICP进行优化,我测试了14张图像,有的优化效果挺好的,有两张图片反而越来越偏,最后还偏得挺远的,有一张迭代了23次,我想问下是不是变换矩阵计算计算错了。

feiyangzc avatar Dec 17 '19 06:12 feiyangzc

@feiyangzc 我也碰到过跑飞的情况,一般是阈值给的有点高,找不到对应点。我发现这套subpixel代码好像不是按opencv canny的low high数值来的,最好试一试,然后看看这里有没有边缘。我试的15 30不错

meiqua avatar Dec 17 '19 09:12 meiqua

我目前使用还不是亚像素的,在使用整像素时边缘检测还是比较好的,但是还是会出现跑飞的情况。我角度在[0,90]的时候在得到初始位置后使用ICP优化会出现问题,角度为[0,360]时得到初始位置后使用ICP出现跑偏的情况,得到的边缘都是一样的,为什么会出现这种情况呢。

feiyangzc avatar Dec 18 '19 01:12 feiyangzc

@feiyangzc 这可能要具体debug了,这点信息看不出来

meiqua avatar Dec 20 '19 06:12 meiqua

对的,我仔细调试一下,感谢你的答复

feiyangzc avatar Dec 21 '19 13:12 feiyangzc

大家好,我是在使用开源的实例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.

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