SOLD2算法之4: line matching,遮挡问题(CVPR2021 源码解析)

当两张图片中都检测到线段之后,就要进行线段的匹配。

回想特征点匹配时,是用描述子descriptor计算距离进行匹配,
直线也是这样。

直线的descriptor是用网络得到的。
在这里插入图片描述
input image:[1, 1, H, W],经过backbone net后为[1, 256, H/4, W/4]
descriptor_decoder由conv3x3 (s=1, p=1) 和conv1x1组成
得到的descriptor output为[1, 128, H/4, W/4]

那检测到的线段和这个descriptor有什么对应关系呢。

一条线段上有无穷多个点,首先还是要在线段上采样,按线段长度不同每条线段采2~5个点(最小间隔8个像素,多了也只采5个,少了最少也是2个)。
采点2个和5个个数不同,都按5个进行padding。
当然还得有个flag注明哪些是采样点,哪些是padding点。

然后就要用这些点的位置来从descriptor中采样了,
先把点的坐标(h, w)归一化,然后grid_sample采样(参考链接)。

grid1 
SOLD2算法详解之2: 特征点检测,点NMS(CVPR 2021) sold2算法中的特征点检测对应了junction_decoder部分 input的image经过Hourglass net的backbone之后,过一个junction_decoder的小网络, 网络结构如下 conv3x3, s=2, p=1 conv1x1 input image size = [1, C, H, W] junction_decoder output size = [1, 65, H/8, W/8] 这个65是什么意思呢,1~64表示的是8x8 patch内有特征点的位置标1,其余是 阅读详情

相关推荐

SOLD2算法之3: 特征点与heatmap结合检测有效线段(CVPR 2021)

input image:[1, 1, H, W],经过backbone net后为[1, 256, H/4, W/4] heatmap_decoder用于检测出线段的heatmap 先看heatmap_decoder,它的结构如下 conv 3x3, s=1, p=1 pixelShuffel(2) 这个block出现2次,然后接一个conv 1x1 PixelShuffel起了重要的上采样及改变channel的作用。 backbone net出来的channel=256被两个pixelShuffel(2.

蓝羽飞鸟的博客 846

SOLD2:用于特征线检测和描述的联合深度网络

SOLD²-自我监督的遮挡感知线描述和检测 该存储库包含以下文件的实现: ,JT。 Lin *,R.Pautrat *,V.Larsson,M.Oswald和M.Pollefeys(在CVPR 2021年发表)。 SOLD²是一种深线段检测器和描述符,无需手工标记的线段即可进行训练,即使在存在遮挡的情况下,也可以稳固地匹配线。 演示版 在存在遮挡的情况下进行匹配: 搭配移动相机: 用法 安装 我们建议在Python环境(例如venv或conda)中使用此代码。 以下脚本通过pip安装必要的要求: pip install -r requirements.txt 通过修改文件config/project_config.py设置数据集和实验路径(您将在其中存储数据集和实验的检查点)。 必须同时设置变量DATASET_ROOT和EXP_PATH 。 您可以在下载我们在培训和测试期间使用的

linematch, 一种快速比较道路网络的算法.zip

linematch, 一种快速比较道路网络的算法 lineMatch 两组多折线的超快速匹配算法及其区别。 主要用于比较不同数据集的道路网络。给定数组 a 和 b,如 linematch(a, b, 0.001),lineMatch将返回一个新的array,其中包含 a 中

# 解决 win11 连接共享打印机,报错 0x00000709 问题

# 解决 win11 连接共享打印机,报错 0x00000709 问题

段子手168的博客 9万+

【鼠标在不点击的情况下,直接移动到QT控件上不显示提示信息】

有时明明已经调用了setToolTips方法,鼠标移动到QT控件上仍然不会有提示信息,这时候就需要具体分析下。重点就是标红的这段话,大概意思就是。.h文件中加入鼠标移动事件的定义。.cpp文件中实现该事件。

ZTH_G的博客 2423

GNSS-RTK/INS紧组合里,那个‘杆臂改正’到底怎么算?一个公式讲清INS与天线位置的关系

本文深入解析GNSS-RTK/INS紧组合导航系统中的杆臂改正(Lever Arm Correction)原理与实现方法。详细介绍了杆臂效应的物理本质、数学建模及误差扰动分析,揭示了IMU与GNSS天线位置关系的核心公式,并提供了工程实现中的常见误区与验证方法。通过Python代码示例和紧组合量测模型处理流程,帮助开发者准确理解并应用这一关键技术。

weixin_33137081的博客 354

[记录一个bug]av_hwdevice_ctx_create出现Cannot allocate memory(附带库运行时路径)[已解决]

新写的程序里调用ffmpeg的av_hwdevice_ctx_create()这个函数,出现Cannot allocate memory。但是另个程序一样的代码,居然是成功的。 反复检查之后无果,就跳出去查了一下,看到一个问答: Have you tried to use ffmpg executables with the same libs that you using when you run the app? Have you tried to use ffmpg executables

熊猫Ben的博客 3585

PCL 提取两片点云的非重叠部分【2025最新版】

PCL 提取两片点云的非重叠部分。博客长期更新,本文最近一次更新时间为:2025年9月1日。

点云侠的博客 36万+

视图库对接系列(GA-T 1400)一、简单介绍

GA/T 1400《公安视频图像信息应用系统》 是我们需要参考看看的相关文档,里面有对应的标准和介绍,没有这个文档的话可以加群找我要。群的话 我放在最下面了。我们先简单想几个问题, 也就是这个协议主要干什么用的,为什么要有, 能做什么。

qq_37716298的博客 4282

SerDes系列之 SSC扩频时钟技术

扩频时钟,又称展频(SSC-Spread Spectrum Clocking),当前PCIE、DDR、USB等几乎所有的高速接口都支持SSC的功能。电子工程师在日常的电气测试中经常与之接触,在电磁传导和辐射发射验证过程中,经常需要使用到芯片的SSC功能,它的物理表现形式,就是信号的比特率会在一个很小的范围内浮动,多见于周期性变化的时钟信号。

一只豌豆象的博客 3439

C#量化交易的市场数据采集与分析:从0到1构建你的‘数据雷达’——对比5大神器,代码实战全解析!

数据是量化交易的‘氧气’,而好的数据采集与分析是你的‘呼吸机’!本文5大神器+代码实战,总有一款适合你!(本文代码均经过测试,但请根据实际需求调整!

java专栏 727

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: leetcode 703. Kth Largest Element in a Stream(第k大的元素)
下一篇: leetcode 682. Baseball Game(篮球游戏)
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值