【论文笔记】用于几何匹配的卷积神经网络结构(CNN for Geometric Matching)

news2025/7/22 15:15:28

用于几何匹配的卷积神经网络结构(CNN for Geometric Matching)

文章目录

  • Abstract
  • CNN
  • Related Work
  • Architecture for Geometric Matching
    • 特征提取:
    • Matching Network
    • correlation-layer
    • 归一化:
    • Regression Network
  • Geometric Transformations
    • Affine Transformation
    • Homography Transformation(单应性变换)
    • Thin-Plate Spline Transformation
    • Hierarchy of Transformations
    • Iterative Refinement(迭代细化)
  • Loss Function(损失函数)

Abstract

本文主要做了两件事:
1.用深度学习方法模拟经典的图像相似度估计问题
2.用深度学习方法估计仿射变换参数,以及更为复杂的thin-plate spline transformation,这样可以提高泛化能力。

CNN

handle large changes of appearance between the matched images

经典的相似度估计方法,比如使用SIFT获取局部特征丢弃不正确的匹配进行模糊匹配,然后将模糊匹配的结果输入到RANSAC或者Hough transform中进行精确匹配,虽然效果不错但是无法应对场景变换较大以及复杂的几何形变的情况。本文使用CNN提取特征以应对这两点不足。

1.用CNN特征替换原有经典特征,即使场景变换很大,也能够很好的提取特征;
2.设计一个匹配和变换估计层,加强模型鲁棒性,提升泛化能力,且不用人工标注数据。

Related Work

其他模型与我们模型的不同:

  1. 他们需要类标签
  2. 没有使用CNN的特征
  3. 他们联合对齐一大堆图片,我们只需要图片对。
  4. 他们呢没有使用CNN对齐方法

Architecture for Geometric Matching

经典的方法分为三步。
我们的结构:
end-to-end
输入:两幅图片
输出:仿射变换的6个参数
在这里插入图片描述
这里的思路如下:先用双路CNN提取两幅图片的特征,然后用correlation-layer进行融合,这个过程可以视为模糊匹配,然后进入回归层得到具体预测出的仿射变换的6个参数。

特征提取:

使用双路CNN,输入两幅图像,权值共享。
CNN采用VGG-16,L2-norm,fine-tuning ImageNet。

Matching Network

在这里插入图片描述
我们通过双路CNN获取两幅图片的feature map:
w,h,d:分别为feature map的长、宽、深度(通道)

在进入matching阶段前,要把两路CNN提取到的特征融合为一个向量,这里使用的方法是correlation-layer。

correlation-layer

计算公式:
在这里插入图片描述

fA与fB进行点乘得到correlation map (Cab)
原来两个w×h的feature map ,每个1×1×d的向量通过点乘得到w×h×(w×h)这样一个立方体。立方体当中的每一个位置(i,j)表示fB中的(i,j)位置的点对应fA中所有点的相似度。这里correlation map的深度(w×h)即fA中所有点被展开成k,表示fA中点的索引。

归一化:

得到correlation map 后对相似度进行归一化,以凸显相似度高的点。我们使用ReLU+L2Norm进行归一化。为什么选用ReLU呢?考虑这两种情况:

假设只有一个匹配点时,会直接将匹配值增大为1。
假设有多个噪声匹配点,使用ReLU会对除了最匹配的点之外的噪声点降权,提高了模型的鲁棒性。
对correlation map归一化后,我们得到了在进入回归层之前所需要的correspondence map。

使用correlation-layer的原因如下:

两幅图像的相似度只需要保留其相似性以及空间位置,图像本身的特征不应该被考虑。
假设有两对图像的仿射变换参数相同,只是图像内容不同,如果考虑feature map的像素信息,那么两幅图像进入模型后输出的参数也将不同;
如果只是简单的对两幅图中每一个通道的feature进行相加或者相减,如果匹配点相差很远,这种方法无法获取正确的相似度。如果使用correlation map+Norm,即使匹配点相差很远,也能够凸显出最为匹配的点。所以前者方法无法应对场景大范围变化的匹配问题;

Regression Network

在这里插入图片描述
这里要注意的是,进入回归层中要使用卷积层而不是全连接层。因为correlation map的参数个数是feature map大小的平方,直接用全连接参数过多将会造成梯度爆炸。

Geometric Transformations

我们使用了三种几何变换参数:affine, homography and thin-plate spline.

Affine Transformation

affine transformation 是使用六自由度线性变换的,参数如下:
在这里插入图片描述
B点和A点的对应关系如下:
PB=[xB,yB]T

Homography Transformation(单应性变换)

此变换是将一个四边形改变为其他任意一个四边形,并且还保持着共线性。他有八个自由度,更加复杂。
在这里插入图片描述
这些参数可以转换为H矩阵,然后使用下面公式进行改变。
在这里插入图片描述

Thin-Plate Spline Transformation

此方法是一个参数化的平滑的2D插值方法。通过分别给定两个图像的K个控制点。本文我们使用K=9,并且将其变为3x3。因为控制点B是所有图片固定的,因此此模型只被控制点A进行参数化。
在这里插入图片描述
如下图所解释:
在这里插入图片描述
然后A和B的对应关系如下:
在这里插入图片描述
下面给出来U的公式,并且参数a b c w 都是计算出来的,
在这里插入图片描述
L−1只需要计算一次即可。

Hierarchy of Transformations

为了实现复杂的变形,我们从最简单的一步一步开始。
首先我们进行粗糙的affine变形,之后对图像A到图像B使用了STN。之后进入第二个网络进行TPS细化形变。最终将这两个变形进行融合就得到了我们想要的结果。
在这里插入图片描述

Iterative Refinement(迭代细化)

在这里插入图片描述
当形变比较大时,迭代次数少了得到的结果不佳,因此可以迭代多次,事实证明迭代多次效果较好。

Loss Function(损失函数)

使用每个栅格点经过使用预测参数和真实参数进行仿射变换后得到的值之间的距离作为Loss。
在这里插入图片描述

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

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

相关文章

正大杯市场调查与分析大赛|赛前准备 持续更新ing

目录 1.随机化实验 1.1背景 1.2操作 1.3作用 平衡协变量 克服选择偏差 1.4分类 完全随机化实验 分层随机化实验 配对随机化实验 1.5分层随机化 1.6缺陷 2.均值、中位数、分割点、游程数 ​3. 什么是系统抽样 4.F大于临界值说明什么 5.德宾—沃森(DW)统计量[Dur…

webpack5 CssMinimizerPlugin css压缩

CssMinimizerWebpackPlugin | webpack 中文文档webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用,但它也能够胜任转换(transform)、打包(bundle)或包…

动态修改el-input样式;动态修改elmentUI元素样式;css变量

场景:正常我们动态修改div元素的样式,使用:style和:class即可;但是我们想要动态修改element的组件样式时候,例如el-input字体颜色,由于el-input的样式嵌套很深,我们需要修改的实际是.el-input__inner这个样…

强强合作,替代钉盘/微盘,企业实现低成本扩容

后疫情时代,远程办公不断推动协同办公软件快速发展,协同办公软件活跃度保持增长,无疑不反应出企业对对此类办公产品的喜欢,并保持深度使用。 客户的需求和选择也不是一成不变的,完美日记曾经是企业微信的重点客户&…

【附源码】计算机毕业设计JAVA互联网保险网站

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

9类人事管理场景应用,泛微协助HR释放更多工作量

人事管理数字化是大势所趋: 组织处在不断发展变化的大环境之中,竞争格外激烈,人力资源日益成为组织竞争优势的关键所在。改变传统人事管理模式,推进人事管理数字化变革,把传统的人事管理事务统一到一个平台&#xff0…

从零到一掌握 Docker 的基本原理与实践操作

富 Web 时代,应用变得越来越强大,与此同时也越来越复杂。集群部署、隔离环境、灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁。本文我们就来探索Docker的神秘世界,从零到一掌握 Docker 的基本原理与实践操作,是时候该开疆扩土啦。 讲个故事 为了更好的理解 …

【BSC】使用Python实现PancakeSwap自动交易(入门篇)

需求 最近我们需要在BSC上实现代币的自动化交易,比如自动把BNB兑换成USDT,自动把USDT兑换成CAKE等其它代币,同时也要监视价格,在价格合适的时候再兑换代币。而PancakeSwap正是BSC上最大的去中心化交易平台,我们已经学…

2022行情变了,请各位做好一年内随时失业的准备

前两天跟一个HR朋友聊天,她表示刚在boss上发布了一个普通测试岗位,不到一小时竟然收到了几百份简历。而且简历质量极高,这是往年不敢想象的。岗位少,竞争激烈,这是今年软件测试就业的真实写照,也是所有岗位…

【附源码】计算机毕业设计JAVA畜牧场信息管理系统

【附源码】计算机毕业设计JAVA畜牧场信息管理系统 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA …

个人如何调用股票程序交易接口?

关于股票程序交易接口的调用一般只有量化交易投资者才能涉及的到,那么做常见也最实用的方法就是使用外接端口,意思就是可以买一个接口就可以接入交易软件了,不过要具有编程基础才能实现,因为现有的策略和设置的函数都是无法满足投…

OSI七层模型

介绍 七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。 分层 应用层 提供高级api …

HDFS 基本 shell 操作

HDFS 基本 shell 操作1.1 创建目录1.2 上传指令1.3 创建空文件1.4 向分布式文件系统中的文件里追加内容1.5 查看指令1.6 下载指令1.7 合并下载1.8 移动hdfs中的文件1.9 复制hdfs中的文件到hdfs的另一个目录1.10 删除命令1.11 查看磁盘利用率和文件大小1.12 修改权限1.13 修改文…

子进程信号继承;kill+raise+alarm+pause+信号发生接收和处理+信号屏蔽

子进程对父进程信号继承情况 fork创建子进程,但子进程没有exec 在fork子进程之前: 如果父进程调用signal设置了某个信号的处理方式的话,那么fork出的子进程会继承父进程对该信号设置的处理 强调:只有在fork之前,父进程所设置的信号处理方式&…

餐厅扫码点餐怎么弄_分享扫码点餐小程序开发制作方法

目前市场上有很多扫码点餐的小程序系统,制作方法有三种: 1、使用微信商家推出的扫码点餐小程序,上传营业执照和食品经营许可证就可以开通使用,然后上传自己的菜品信息就可以了,功能相对比较简单。 2、购买餐饮系统公司…

Redis数据持久化(持久化过程中写操作如何处理)

上一节简单分析了Redis数据持久化方式,点击这里查看。但是要考虑的一个问题就是,在Redis持久化的时候,有新的写入指令时,Redis是如何操作的。 1.RDB方式 1.1.同步方式 即save操作,在Redis执行save操作时,…

systemVerilog的变量类型转换

1 Type Casting 1.1 Verilog使用赋值语句进行变量类型转换 阻塞赋值&#xff1a; 非阻塞赋值&#xff1a; < 1.2 systemVerilog增加了变量类型转换符 变量类型转换符可以在任何时刻对表达式进行类型转换而不像Verilog一样只能发生在赋值语句中 logicint a&#xff0c;y&…

开放式运动耳机怎么样,几款合适的骨传导耳机推荐

骨传导作为新时代的产物&#xff0c; 近些年在耳机市场也是兴起了一波热潮&#xff0c;无论是在日常出勤时佩戴&#xff0c;还是在运动的时候佩戴&#xff0c;骨传导耳机相对于传统耳机来说无疑是越来越符合。其骨传导最大的特点无非就是特殊的传声方式以及无需入耳的佩戴&…

每日一个设计模式之【外观模式】

文章目录每日一个设计模式之【外观模式】☁️前言&#x1f389;&#x1f389;&#x1f389;&#x1f33b;外观模式概述&#x1f331;外观模式的实现&#x1f332;总结每日一个设计模式之【外观模式】 ☁️前言&#x1f389;&#x1f389;&#x1f389; 大家好✋&#xff0c;我…

【c++】四种类型转换的用法

这里写目录标题static_cast 无条件转换&#xff0c;静态类型转换const_cast 去掉类型的const或volatile属性dynamic_cast 有条件转换&#xff0c;动态类型转换&#xff0c;运行时检查类型安全&#xff08;转换失败返回NULL&#xff09;reinterpret_cast 仅重新解释类型&#xf…