SuperPoint:Self-Supervised Interest Point Detection and Description 论文阅读
SuperPoint:Self-Supervised Interest Point Detection and Description 论文阅读
简介
- 监督学习从图像中提取点的方法被广泛研究
- 物体检测
- 人体关节位置检测
- 等等
特征点的语义信息不明确,难以进行人工标注,如何进行网络训练?
文中的思路为
- 自动标注得到伪真实值
- 生成特征点位置无歧义的虚拟数据集
- 训练得到特征提取网络MagicPoint
- 对图片进行旋转、缩放等变换并利用MagicPoint进行提取,集合所有提取得到的特征点位置作为伪真实值(添加了旋转不变性和尺度不变性)
- 转换为成熟的监督学习,设计网络进行学习
总结如下图:
因此,总结创新点如下:
- 提出了一种自监督训练提取特征点和描述子的方法
- 提出了一种生成伪真实特征点标签方法
- 针对全图进行而非基于patch
这篇文章最突出的点在于不再是用网络逼近拟合现有的传统特征点了,而更接近数据驱动自己找到的特征点。但并没有完全实现直接从数据中学到而是利用了虚拟数据集中的训练结果。
方法
网络结构
整体网络架构如下图:
包括三个部分
- 共享特征提取编码网络
- VGG风格网络,结构为
- H × W × 64 → H × W × 64 → H / 2 × W / 2 × 64 → H / 2 × W / 2 × 64 → H / 4 × W / 4 × 128 → H / 4 × W / 4 × 128 → H / 8 × W / 8 × 128 → H / 8 × W / 8 × 128 H\times W \times 64 \to H\times W \times 64 \to H/2\times W/2 \times 64 \to H/2\times W/2 \times 64 \to H/4\times W/4 \times 128 \to H/4 \times W/4 \times 128 \to H/8\times W/8 \times 128 \to H/8\times W/8 \times 128 H×W×64→H×W×64→H/2×W/2×64→H/2×W/2×64→H/4×W/4×128→H/4×W/4×128→H/8×W/8×128→H/8×W/8×128
- 特征点提取解码网络
- 网络结构
- 输入 H / 8 × W / 8 × 128 H/8\times W/8 \times 128 H/8×W/8×128 特征
- 卷积得到 H / 8 × W / 8 × 65 H/8\times W/8 \times 65 H/8×W/8×65
- channel-wise softmax 变换,并去掉第 65层得到 H / 8 × W / 8 × 64 H/8\times W/8 \times 64 H/8×W/8×64
- reshape 操作将 H / 8 × W / 8 × 64 H/8\times W/8 \times 64 H/8×W/8×64 大小矩阵转换为 H × W × 1 H\times W \times 1 H×W×1 代表最终得分
- 为什么要构建65层,需要额外的一行特征?
- 如果只有64层,那么经过softmax之后,所有的得分之和就会等于1,这意味着这个小区域即使是完全空白也将获得平均得分 1/64
- 因此65行存在的意义在于当这个小区域没有特征时,这一行数据非常大,使得整体经过softmax之后前64行的得分很小,从而使得该区域被标记为没有特征点的区域。
- 网络结构
- 描述子解码网络
- 网络结构
- 输入 H / 8 × W / 8 × 128 H/8\times W/8 \times 128 H/8×W/8×128 特征
- 卷积得到 H / 8 × W / 8 × D H/8\times W/8 \times D H/8×W/8×D描述子
- 双线性插值 H × W × D H\times W \times D H×W×D
- L2-normalizes 归一化
- 网络结构
误差函数
L ( X , X ′ , D , D ′ ; Y , Y ′ , S ) = L p ( X , Y ) + L p ( X ′ , Y ′ ) + λ L d ( D , D ′ , S ) L(X,X^{'},D,D^{'};Y,Y^{'},S)=L_p(X,Y)+L_p(X^{'},Y^{'}) + \lambda L_d(D,D^{'},S) L(X,X′,D,D′;Y,Y′,S)=Lp(X,Y)+Lp(X′,Y′)+λLd(D,D′,S)
- 两张图片中特征点提取误差
- 特征点匹配误差
特征点检测误差
L p ( X , Y ) = 1 H c W c ∑ h = 1 , w = 1 H c , W c l p ( x h w , y h w ) L_p(X,Y) = \frac{1}{H_c W_c}\sum_{h=1,w=1}^{H_c,W_c}l_p(x_{hw},y_{hw}) Lp(X,Y)=HcWc1h=1,w=1∑Hc,Wclp(xhw,yhw)
其中,
l p ( x h w ; y ) = − log ( exp ( x h w y ) ∑ k = 1 65 exp ( x h w k ) ) l_p(x_{hw};y)=-\log \left(\frac{\exp (x_{hwy})}{\sum_{k=1}^{65} \exp (x_{hwk})}\right) lp(xhw;y)=−log(∑k=165exp(xhwk)exp(xhwy))
描述符匹配误差
L d ( D , D ′ , S ) = 1 ( H c W c ) 2 ∑ h = 1 , w = 1 H c , W c ∑ h ′ = 1 , w ′ = 1 H c , W c l d ( d h w , d h ′ w ′ ′ ; s h w h ′ w ′ ) L_d(D,D^{'},S)=\frac{1}{(H_c W_c)^2} \sum_{h=1,w=1}^{H_c,W_c} \sum_{h^{'}=1,w^{'}=1}^{H_c,W_c}l_d(d_{hw},d^{'}_{h^{'}w^{'}};s_{hwh^{'}w^{'}}) Ld(D,D′,S)=(HcWc)21h=1,w=1∑Hc,Wch′=1,w′=1∑Hc,Wcld(dhw,dh′w′′;shwh′w′)
其中,
l d ( d , d ′ ; s ) = λ s ∗ s ∗ max ( 0 , m p − d T d ′ ) + ( 1 − s ) ∗ max ( 0 , d T d ′ − m n ) l_d(d,d^{'};s) = \lambda_s *s* \max (0, m_p - d^T d^{'}) + (1 - s)*\max(0,d^T d^{'} - m_n) ld(d,d′;s)=λs∗s∗max(0,mp−dTd′)+(1−s)∗max(0,dTd′−mn)
- 由于 d , d ′ d,d^{'} d,d′是归一化之后的,所以 d T d ′ d^Td^{'} dTd′仅当二者重合时取最大值。
- 当s取 1时,只有第一项,两者的误差越小, d T d ′ d^Td^{'} dTd′越大越好,因此此时代表的是匹配点,正样本
- 当s取 0时,只有第二项,两者的误差越大, d T d ′ d^Td^{'} dTd′越小越好,此时代表的是非匹配点,负样本
- λ s \lambda_s λs为匹配过程中,正负样本的平衡系数,需要提高正样本的权重
MagicPoint 训练过程
单应变换
其中随机单应变换步骤如下:
实验
运行时间
- 13ms / 70Hz (GPU)
HPatches 数据集验证
重复率
特征点提取的重复率比传统的要好很多
单应变换估计
在误差范围限制比较宽松时准确率更高
这里匹配效果比起传统的并没有好很多,个人认为是描述子学习的效果不足
总结
意义:将特征点检测任务从拟合现有传统特征点提取,往更加纯粹的数据驱动靠近了一步
效果:特征点检测重复率较高,但是描述子匹配效果一般
SuperPoint:Self-Supervised Interest Point Detection and Description 论文阅读相关推荐
- 论文解读:SuperPoint: Self-Supervised Interest Point Detection and Description
发表时间: 2018年 项目地址:https://arxiv.org/abs/1712.07629 论文地址:https://github.com/magicleap/SuperPointPretra ...
- SuperPoint Self-supervised Interest Point Detection and Description
论文地址:https://arxiv.org/abs/1712.07629 代码地址:https://github.com/magicleap/SuperPointPretrainedNetwork ...
- 【论文精读】SuperPoint: Self-Supervised Interest Point Detection and Description
图像拼接系列相关论文精读 Seam Carving for Content-Aware Image Resizing As-Rigid-As-Possible Shape Manipulation A ...
- 论文阅读笔记——Vulnerability Dataset Construction Methods Applied To Vulnerability Detection A Survey
本论文相关内容 论文下载地址--Web Of Science 论文中文翻译--Vulnerability Dataset Construction Methods Applied To Vulnera ...
- [CVPR 2020] D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features
零.概要 论文: D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features tag: CVPR 20 ...
- Deeply supervised salient object detection with short connections 论文复现
DSS Model论文复现 <Deeply supervised salient object detection with short connections>这篇文章是南开大学程明明教 ...
- 论文阅读 (86):Normality Guided Multiple Instance Learning for Weakly Supervised Video Anomaly Detection
文章目录 1 引入 1.1 题目 1.2 摘要 1.3 引用 2 方法 2.1 背景和动机 2.2 正态导向微调模块 2.2.1 正态更新 2.2.2 异常预测微调 2.3 学习目标 2.3.1 正态 ...
- 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...
- 异常检测论文阅读笔记《MIST: Multiple Instance Self-Training Framework for Video Anomaly Detection》
MIST: Multiple Instance Self-Training Framework for Video Anomaly Detection 论文来源:CVPR 2021 原论文地址链接 相 ...
最新文章
- Linux终端运行fasterrcnn,对yolo与fasterrcnn anchors的理解
- 手机安全卫士——软件管理-用户程序和系统程序
- 如何像青少年一样玩转 Snapchat
- linux视频教程之进程管理
- orcal 忘记用户名和密码
- 简述configure、pkg-config、pkg_config_path三者的关系
- 将客户端图片保存到数据库中的方法
- php detect unicode,php-functions/unicode.php at master · xiilei/php-functions · GitHub
- 【必懂】C语言水仙花数题解
- 英语期末复习unit 1-2课后习题第一题及背诵段落
- Objective-C 2.0 with Cocoa Foundation--- 9,内存管理
- 4. Spring Boot 过滤器、监听器
- STM8单片机 PWM无波形输出解决方法
- springboot接口返回封装与异常控制
- [译]记一次Kotlin官方文档翻译的PR(内联类)
- itellyou操作系统,office等软件的很全的下载站
- 使用android studio 连接海马玩模拟器
- 短信验证码收不到了怎么办?
- 720全景制作 - 微信、PC、移动web
- 云出阿里见月明(上)
热门文章
- Python的pickle使用
- 基于51单片机智能热水器控制系统设计
- 北航程序设计决赛(虽然。。。。但是)补题。
- ios设备使用socks代理_iOS使用socks5代理服务器
- 【linux】【jenkins】自动化运维三 整合gitlab、docker发布vue项目
- win7安装Winpcap4.12显示An error occurred while installing the NPF diver(0x00000430).
- [Unity]Mac调用SVN更新
- SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6] SLF4J: See htt
- linux define路径,linux架设BT Tracker服务器小记
- Schrodinger 功能模块简介