为MASt3r添加mask匹配支持
[toc]
##
结论: 效果似乎并不好, 即便是添加了对patch的过滤也无法完全处理大幅度变化。是否是因为没有使用对齐导致的?测试visloc的内容
目标
尝试为mast3r添加mask支持, 仅mask中标记的前景区域参与匹配,生成对应关系。
xy与notyet
$x1$, $y1$分别是初始点在图像中的2D坐标, $xy1$是$x1,y1$在flatten后的对应下标。而$notyet$是从xy1生成的, 用于标记一个点是否已经还未收敛。
match
pts1生成n个采样点,根据策略不同,生成的采样点也不同,这一点可以根据函数的参数来控制。这n个采样点的2D坐标保存在x1,y1中。
输入pts1和pts2,分别生成matcher1和matcher2,首先使用matcher2在pts2中查询pts1中n个采样点的最近邻点。
保存这些最近邻点为xy2, 这些都是pts1的n个采样点在pts2中对应的点的下标。
1
_, xy2[notyet]=...
然后使用刚才保存的点的下标去pts1中找最近邻点
还记得一开始的old_xy1和old_xy2, 他们就是负责在循环中检查,检查两次while循环迭代过程中,这一次的最近邻和上一次迭代的最近邻是否是相同的,如果是相同的,认为这个点已经收敛了,将其notyet从True改为False,下次寻找最近邻时不再查询和更新这个点的最近邻。
本文由作者按照 CC BY 4.0 进行授权