【论文总结】基于深度学习的特征点提取,特征点检测的方法总结

这里写目录标题

  • 相关工作
  • 1. Discriminative Learning of Deep Convolutional Feature Point Descriptors(2015)
    • 网络结构
    • sift算法
    • 损失函数的构建
  • 2.MatchNet(2015)
    • 网络中的组成部分
    • 其他组成部分
    • 损失函数
    • 结果
  • 3.LIFT: Learned Invariant Feature Transform(2016)
    • 网络结构
    • 训练网络结构
    • 损失函数
    • 训练和测试
    • 结果
  • 4. UCN(Universal Correspondence Network)(2016)
    • 网络结构
      • 输入层
      • 全卷积层
      • 卷积空间变换
      • 归一化
    • 损失函数
    • 测试
  • 对于LOSS做实际对比实验测试
  • 5. SuperPoint Self-Supervised Interest Point Detection and Description(2018)
    • 训练网络主体结构
      • (A)base detector 如何训练
      • (B)如何迁移到普通图片
      • (C)joint training
    • 损失函数
    • 总结
    • 结果
  • 6. SuperGlue:Learning Feature Matching with Graph Neural Networks
    • 总体框架
    • 网络主体
      • 输入部分
      • 自注意力和交叉注意力
        • 迭代
      • sinkhorn算法
    • 损失函数
    • 结果
  • 6. Key.Net Keypoint Detection by Handcrafted and Learned CNN Filters(2019)
    • 训练步骤
    • 测试结果
  • 7. IF-Net An Illumination-invariant Feature Network(2020)
    • 训练集
    • 网络结构
    • 损失函数
    • 结果
  • 时间轴
  • 方法总结
  • 数据集总结
  • 与传统算法优劣势对比
  • 应用

相关工作

在这里插入图片描述

1. Discriminative Learning of Deep Convolutional Feature Point Descriptors(2015)

提出一种基于深度学习的特征描述方法能够替代引FT,并且能够很好的应对尺度变化、图像旋转乁透射变换、非刚性变形、光照变化等。使用孪生网络从图块中提取特征信息,并且使用L2距离来描述特征之间的差异。

在这里插入图片描述
这里距离越大相似度越低,距离越小相似度越高
只拿出CNN部分则是特征提取

网络结构

在这里插入图片描述

sift算法

在这里插入图片描述

损失函数的构建

在这里插入图片描述

在两个patch是相等的情况下,用两个patch特征的距离来作为Loss函数,我们希望距离越来越小
在两个patch不相等的情况下,多了,MAX和阈值C,如果两个patch特征的距离>c,LOSS=0,如果两个patch特征的距离<c,则为C-如果两个patch特征的距离
patch不相等希望距离大于C,patch相等希望距离越小越好
这种方法进行训练,可以训练出一个特征提取的CNN网络

2.MatchNet(2015)

网络中的组成部分

在这里插入图片描述

A: Feature network 是双塔结构中的单塔,其中的Bottleneck与Preprocessing层比较重要,是为了防止过拟合加的两个层.

B:Metric network 相当于把特征进行比较,Fully Connected Layer +Softmax层判断两个图像特征之间的距离

在这里插入图片描述
在这里插入图片描述
输出把两个塔的输出放到一块,在输出到Metric network

其他组成部分

在这里插入图片描述

损失函数

在这里插入图片描述

结果

在这里插入图片描述

3.LIFT: Learned Invariant Feature Transform(2016)

网络结构

在这里插入图片描述

用了三种方法,集合了detector,orientation,descriptor
detector:把图像切割成不同的patch
orientation:对patch做一个旋转
descriptor:做一个描述
这三个方法是三个不同的文章
在这里插入图片描述

训练网络结构

在这里插入图片描述
训练的时候要先输入4个patch,4个patch要不一样,P1和P2是来自同一个3D点不同视角的图像,相当于P1与P2是匹配的,P3是在不同的3D点回来的一个图像投影,相当于P3,P2,P1是不匹配的,P4是一个不包含任何特征点的特征,是为了防止过拟合去用的
输入的流程就是先进入detector然后对图像进行一个裁剪,紧接着用orientation对图像进行一个旋转,再用descriptor输出图像最终的描述符

损失函数

在这里插入图片描述
descriptor的损失函数和之前的损失函数几乎是一样的
orientation训练了一个角度
detector网络训练一个有特征的中心点

训练和测试

在这里插入图片描述
会先输入多张的多尺度图片,最后可以直接输出特征点的特征向量

结果

#

4. UCN(Universal Correspondence Network)(2016)

在这里插入图片描述

最后会输出一个feature map

网络结构

在这里插入图片描述
最后会输出两个点的特征描述符,去做一个距离的比较,如果距离大于一个阈值说明像素比较低

输入层

在这里插入图片描述
首先输入两张图片,之后输入需要比较图片的坐标点

全卷积层

在这里插入图片描述
使用googleNet网络做全卷积

卷积空间变换

在这里插入图片描述

归一化

在这里插入图片描述
最后会把输入的x,y的点,映射到feature map里面去,输出描述符,然后去做一个比较

损失函数

在这里插入图片描述
不匹配的时候用阈值卡一个loss

测试

在这里插入图片描述

对于LOSS做实际对比实验测试

在这里插入图片描述
在这里插入图片描述
可以看到UCNloss的跳变非常厉害,对图像很敏感

5. SuperPoint Self-Supervised Interest Point Detection and Description(2018)

在这里插入图片描述

重点在于训练方法

训练网络主体结构

在这里插入图片描述

(A)base detector 如何训练

在这里插入图片描述
数据集有标注角点的位置,并且有噪声
heatmap中分数比较高的点就是角点,分数比较低的点就不是角点

(B)如何迁移到普通图片

在这里插入图片描述
原始图片进行随即变形,再放进刚才的base-detect 提取角点,然后把所有的角点拼到一块生成新的角点,然后重新训练,自我标注技术

(C)joint training

用superpoint提取真正的兴趣点,再对这些兴趣点做loss
在这里插入图片描述
decoder之后会生成这样的矩阵,包含Cell的信息,每一个像素的信息,代表这个坐标点是否能作为兴趣点的信息,值比较高就是能作为兴趣点,值比较低就是不能作为兴趣点,把寻找兴趣点的回归问题换为分类问题

上面是找兴趣点,下面是找描述子,对特征进行一个描述

损失函数

在这里插入图片描述

总结

既能提取特征点,又能提取描述子,并且对特征点进行打分

结果

在这里插入图片描述
然后这里的比较还是和传统方法比较的

6. SuperGlue:Learning Feature Matching with Graph Neural Networks

在superpoint的匹配方法做了一个改进,不再使用欧式距离方法,做匹配

在这里插入图片描述

总体框架

在这里插入图片描述
这里的M和N 就是superpoint输出的feature map,P就是对应兴趣点的矩阵,之后会再输出一个矩阵,表示两个点是否是匹配的

网络主体

在这里插入图片描述

输入部分

在这里插入图片描述
输入部分会输入描述子和位置,会将位置信息encoder到描述子中去,我们的输出是x,

自注意力和交叉注意力

在这里插入图片描述
在这里插入图片描述
自注意力:单张图的注意力
交叉注意力:两张图一起看的注意力方法
类似于人类反复比较两张图

迭代

在这里插入图片描述
一开始自注意力是发散的,通过迭代,会发生收敛

sinkhorn算法

在这里插入图片描述
去匹配我们输出的描述符,用的是内积的方法得到一个得分最终放到两个矩阵上

损失函数

在这里插入图片描述

结果

在这里插入图片描述
绿线代表匹配成功,红线代表错误的匹配

6. Key.Net Keypoint Detection by Handcrafted and Learned CNN Filters(2019)

在这里插入图片描述

检测关键点的方法,最后的输出并不是提取出的特征而是关键点
主要贡献是用了一阶导数和二阶导数的融合
在这里插入图片描述

没有任何的网路结构, 相当于一个手工生成的特征,每一层下采样,用金字塔一样的结构,得到三个相同的feature map (蓝色),三个feature map 放到一块做一个normalization,得到score map,相当于key point

得分比较高的是关键点,得分比较低的是非关键点,得到这样的一个feature map

训练步骤

在这里插入图片描述
首先会输入两张图片,然后通过刚才的网络,输出分数。先进行分离,对于每一块要通过NMS得到一个得分最高的点,每一块得分最高的点应该是匹配上的
就是看两张图片某个点是比较匹配点,就定为关键点

测试结果

在这里插入图片描述

7. IF-Net An Illumination-invariant Feature Network(2020)

在这里插入图片描述
针对光照不变性提出的网络

训练集

在这里插入图片描述
特有的顺序:从简单到难

网络结构

在这里插入图片描述

共享权值,双网络训练,上面用ps数据集,下面AMOS数据集,交替训练,取最好的权值进行共享

网络结构用到Lnet
在这里插入图片描述

损失函数

在这里插入图片描述
最应该被惩罚的值进行一个惩罚

结果

在这里插入图片描述

时间轴

在这里插入图片描述

方法总结

在这里插入图片描述

数据集总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

与传统算法优劣势对比

在这里插入图片描述

应用

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/634319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟线程探索与实践

优质博文&#xff1a;IT-BLOG-CN 一、简介 虚拟线程是轻量级线程&#xff0c;极大地减少了编写、维护和观察高吞吐量并发应用的工作量。虚拟线程是由JEP 425提出的预览功能&#xff0c;并在JDK 19中发布&#xff0c;JDK 21中最终确定虚拟线程&#xff0c;以下是根据开发者反馈…

【LeetCode每日一题】2171. 拿出最少数目的魔法豆

2024-1-18 文章目录 [2171. 拿出最少数目的魔法豆](https://leetcode.cn/problems/removing-minimum-number-of-magic-beans/)思路&#xff1a; 2171. 拿出最少数目的魔法豆 思路&#xff1a; 对输入的数组进行排序&#xff0c;使得数组中的元素按照升序排列。初始化一个变量s…

SQL注入实战操作

一&#xff1a;SQl注入分类 按照注入的网页功能类型分类&#xff1a; 1、登入注入&#xff1a;表单&#xff0c;如登入表单&#xff0c;注册表单 2、cms注入&#xff1a;CMS逻辑:index.php首页展示内容&#xff0c;具有文章列表(链接具有文章id)、articles.php文 章详细页&a…

阿里云腾讯七牛内容安全配置

一&#xff0c;阿里云 1&#xff0c;配置RAM角色权限 向RAM用户授权系统策略权限&#xff1a;AliyunYundunGreenWebFullAccess 2&#xff0c;内容安全控制台——授权访问OSS 不授权——会报错——no permission(not authorized about role AliyunCIPScanOSSRole)

Linux 【C编程】 引入线程,线程相关函数

1.线程的引入 1.1使用线程同时读取键盘和鼠标 代码演示&#xff1a; #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <termios.h> #include <fcntl.h> #include <string.h> // 读取…

前端面试题(持续更新~~)

文章目录 一、基础1、数组常用的方法2、数组有哪几种循环方式&#xff1f;分别有什么作用&#xff1f;3、字符串常用的方法4、原型链5、闭包6、常见的继承7、cookie 、localstorage 、 sessionstrorage区别8、数组去重方法9、http 的请求方式10、数据类型的判断方法11、cookie …

性能压力测试:企业成功的关键要素

性能压力测试在现代企业软件开发中扮演着至关重要的角色&#xff0c;它不仅仅是一项技术手段&#xff0c;更是保障企业成功的关键要素。本文将探讨性能压力测试在企业中的重要性&#xff0c;并阐述其对业务稳定性、用户体验和品牌声誉的影响。 一、保障业务稳定性 1、应对高负载…

使用zabbix-proxy进行分布式监控

目录 一、准备4台服务器 二、配置主从复制 1.准备环境 2.主机名解析 3.安装数据库 4.配置主库db1 5.配置从库db2 6.主从状态显示 三、db1&#xff0c;db2配置zabbix-agent 三、zabbix-server的配置 四、zabbix-proxy的配置 1.为您的平台安装和配置Zabbix-proxy a. …

操作教程|JumpServer堡垒机结合Ansible进行批量系统初始化

运维人员常常需要对资产进行系统初始化的操作&#xff0c;而初始化服务器又是一项繁琐的工作&#xff0c;需要花费运维人员大量的时间和精力。为了提高效率&#xff0c;许多组织会使用自动化工具和脚本来简化这些任务。自动化工具的运用可以大幅降低运维人员的工作量&#xff0…

Redis实战之-分布式锁

一、基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程进行&#xff0c;让程序串行…

档案数字化如何选择合适的扫描仪

选择合适的扫描仪是进行档案数字化的关键步骤。以下是一些选择合适扫描仪的要点&#xff1a; 1. 扫描速度&#xff1a;选择具有合适的扫描速度的扫描仪&#xff0c;以便能够快速处理大量的文件。 2. 扫描分辨率&#xff1a;扫描分辨率决定了扫描后图像的清晰度。对于大多数文档…

RIP基础实验配置

要使用RIP完成以上命令需求 1&#xff0c;首先划分ip地址 有图可见有四个网段需要划分 192.168.1.0/26 192.168.3.0/26 192.168.7.0/26 192.168.5.0/26 给两个骨干网段&#xff0c;给两个环回接口&#xff0c;由下图所示&#xff1a; 其次&#xff0c;规划好ip后在各个接口…

v-if和v-for哪个优先级更高?

v-if和v-for哪个优先级更高&#xff1f; 结论&#xff1a; vue2输出的渲染函数是先执行循环&#xff0c;在看条件判断&#xff0c;如果将v-if和v-for写在一个标签内&#xff0c;哪怕只渲染列表中的一小部分&#xff0c;也要重新遍历整个列表&#xff0c;无形造成资源浪费。vu…

DolphinDB 与盈米基金达成战略合作,打造领先的资管机构投顾解决方案

1月16日上午&#xff0c;DolphinDB 与盈米基金在上海签署战略合作协议&#xff0c;共同开启专业资管投顾投研合作新篇章。 DolphinDB 联合创始人、COO 初阳春与盈米基金副总裁、研究院院长杨媛春出席仪式&#xff0c;并代表双方完成签约。 打造市场领先的资管机构投顾服务 盈…

浅析Redis①:命令处理核心源码分析(上)

写在前面 Redis作为我们日常工作中最常使用的缓存数据库&#xff0c;其重要性不言而喻&#xff0c;作为普调开发者&#xff0c;我们在日常开发中使用Redis&#xff0c;主要聚焦于Redis的基层数据结构的命令使用&#xff0c;很少会有人对Redis的内部实现机制进行了解&#xff0c…

vscode设置terminal的最大行数

今天跑代码出现一个问题&#xff0c;就是整个程序跑完&#xff0c;整个程序的输出信息过多&#xff0c;最开始输出的信息已经被vscode的缓存冲掉了&#xff0c;只能看到最后的一部分&#xff0c;具体的原因是vscode的terminal默认只能保存1000行的信息&#xff0c;所以如果想保…

《WebKit 技术内幕》之四(1): 资源加载和网络栈

第四章 资源加载和网络栈 使用网络栈来下载网页和网页资源是渲染引擎工作的第一步 1.WebKit 资源加载机制 1.1 资源 网页本身就是一种资源、网页还需要依赖很多其他的资源(图片、视频) &#xff08;1&#xff09;HTML 支持的资源主要包括以下几种类型&#xff1a; HTML 页…

Elasticsearch 数据类型相关总结:快速参考指南【记录】

在Elasticsearch中&#xff0c;有多种数据类型可用于定义字段。 在开始了解数据类型之前&#xff0c;首先要知道&#xff0c;在Elasticsearch中&#xff0c;分词处理主要针对文本字段&#xff0c;而对于其他类型字段&#xff08;如数值、日期、布尔等&#xff09;&#xff0c;通…

周五的胡思乱想

众所周知 csdn 在程序员的心目中是比较逊色的, 因为博客水平的参差不齐, 大部分人也都是用来作为自己的笔记方便未来复制。这样就导致这里的文章都是点到为止&#xff0c;没有去深究问题的根本原因&#xff0c;大家也都是复制一下解决方案就关闭的页面。或许这就是 csdn 的价值…

视频直播新时代,低延时直播交互,Web,Android,WebRtc推流拉流测试

直播现在已经深入了生活&#xff0c;学习&#xff0c;工作和娱乐方方面面&#xff0c;由于前些年的技术所限&#xff0c;传统rtmp,flv,m3u8 技术让直播快速启动项目产品&#xff0c;但也有很多不足&#xff0c;特别的交互式直播&#xff0c;一直是其中的痛点&#xff0c;延时较…