icp优化问题
我尝试用较大的anglestep,例如:3度,预期是:在匹配时,先找到一个大致的范围,然后期望icp优化能够获得较优的解,但icp并没办法优化这3度的误差,多次匹配相同图像的结果会有3度左右的一个偏差,是否icp陷入了一个 local minimum导致优化不成功。
可能是因为模板比较大,像素距离差太多;或者边缘太杂乱,最近点容易找错。可以调小max_dist_diff,或者调高这里的两个阈值,改善下边缘
你好,我是用的anglesStep为1度,在得到初始结果后使用ICP进行优化,我测试了14张图像,有的优化效果挺好的,有两张图片反而越来越偏,最后还偏得挺远的,有一张迭代了23次,我想问下是不是变换矩阵计算计算错了。
@feiyangzc 我也碰到过跑飞的情况,一般是阈值给的有点高,找不到对应点。我发现这套subpixel代码好像不是按opencv canny的low high数值来的,最好试一试,然后看看这里有没有边缘。我试的15 30不错
我目前使用还不是亚像素的,在使用整像素时边缘检测还是比较好的,但是还是会出现跑飞的情况。我角度在[0,90]的时候在得到初始位置后使用ICP优化会出现问题,角度为[0,360]时得到初始位置后使用ICP出现跑偏的情况,得到的边缘都是一样的,为什么会出现这种情况呢。
@feiyangzc 这可能要具体debug了,这点信息看不出来
对的,我仔细调试一下,感谢你的答复
大家好,我是在使用开源的实例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.