图像配准之HomographyNet

        文章名称:Deep Image Homography Estimation,论文地址:https://arxiv.org/pdf/1606.03798.pdf,代码地址:GitHub - mazenmel/Deep-homography-estimation-Pytorch: Deep homography network with Pytorch

1、背景介绍

        单应性原理被广泛应用于图像配准,全景拼接,机器人定位SLAM,AR增强现实等领域,下图为单应矩阵在图像拼接中的应用示例。

2、核心思想

        HomographyNet是发表在CVPR 2016的一种用深度学习计算单应性变换的网络,即输入两张图,直接输出单应性矩阵H。核心思想为:

        a、用最简单的方式来理解,就是取参考帧图像和待配准图像相同大小的ROI区域。

        b、以参考帧图像ROI矩形的四个顶点为特征点,找到待配准图像ROI区域上对应这个4个点坐标位置。

        c、利用这4对匹配点,直接求解出单应性矩阵H,得到配准数据。

3、模型结构

        整体网络结构如下,输入为两张图,输出单应矩阵估计。

        使用cnn来求解单应性矩阵,通过两种方式,把它看成拟合或者分类问题。

3.1、分类方式预测

        使用cnn来求解单应性矩阵,通过两种方式,把它看成拟合或者分类问题:

3.2、回归方式预测(优)

4、数据生成

        数据生成示意图如下:

        a、参考帧图像非边缘区域随机选择框一个矩形ROI(step1 蓝色框位置),表示为patchA;

        b、蓝色框4个顶点以自身为中心,x,y坐标都在−ρ , ρ 范围内随意移动(也就是step2上那4个黄色框范围);

        c、根据移动后4个顶点(step3上绿色框),和原来的4个顶点(step3上蓝色框),组合成4对匹配的特征点,求解并应用单应性矩阵HAB,生成需要的待配准图像(step4所示图像);

        d、待配准图像上4个特征点,反向应用单应性矩阵Hba, 生成新的4个坐标点(step4上绿色框),得到和参考帧图像对应的patchB;

        e、最终得到的patchA和patchB就表示为网络输入,step3上绿色框和蓝色框稍的4对点坐标相对位置,就可以理解为网络训练的gt。

训练集生成:

        a、所有输入都转换为320x240大小灰度图;

        b、使用上一步提到的gt数据生成方式,得到500000组128x128大小的训练数据块。

测试集生成:

        a、随机选择5000张图像,都转换为640x480大小灰度图;

        b、每张图取256x256 patch块,ρ取64,生成对应测试数据。

5、实验测试

        在存在大量无纹理区域,导致传统算法找不到足够特征点,或者说特征点分布明显不均匀情况下,本文方法有明显优势;但是,纹理丰富场景时,并无明显优势。

        一些简单场景可以考虑简化使用,毕竟网络结构简单,易实现,可通过训练弥补特征点方法的不足。测试误差,略优于传统方法。但实际上,基于深度学习的方法,均存在泛化问题,场景纹理丰富时,还有优先考虑基于特征点的方法。

参考资料:

1、单应性Homography估计:从传统算法到深度学习

单应性Homography估计:从传统算法到深度学习 - 知乎

2、Keras = 2.1.2 代码实现

GitHub - 4nthon/HomographyNet_Keras: Implementation of homographiynet with keras

3、pytorch=1.6 代码实现

GitHub - mazenmel/Deep-homography-estimation-Pytorch: Deep homography network with Pytorch

4、图像配准:从SIFT到深度学习

图像配准:从SIFT到深度学习 | 码农家园

5、西安电子科技大学权老师报告

未来之星 | 基于深度学习的遥感影像配准研究(视频)

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

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

相关文章

小程序 - 下拉刷新

1.启用方法 2.刷新事件监听 3.停止方法

Stable Diffusion WebUI 常用命令行参数

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 大家好,我是水滴~~ 本文主要讲解 Stable Diffusion WebUI 的一些常用命令行参数,内容详细的介绍了每一种参数的使用,并配有截图,非常适合初学者…

vue3+element Plus+ts 自定义主题色,以及生成主题色各种透明度

目录 思路 安装css-color-function【接收一个颜色值,生成不同的透明度】 获取后台配置的主题色或者使用ColorPicker修改主题色 最终结果如下 思路 本篇文章的主体思路是从element Plus官网引申而来。结合了我以前用vue2element-ui配置主题色生成透明度&#x…

6、内网安全-横向移动WmiSmbCrackMapExecProxyChainsImpacket

用途:个人学习笔记,有所借鉴,欢迎指正! 前言: 在内网环境中,主机192.168.3.31有外网网卡能出网,在取得该主机权限后上线,搭建web应用构造后门下载地址,利用该主机执行相…

基于springboot实现的音乐网站

一、系统架构 前端:html | js | css | bootstrap 后端:springboot | mybatis 环境:jdk1.8 | mysql | maven 二、 代码及数据库 三、功能介绍 01. 登录页 02. 用户注册 03. 首页 04. 喜欢 05. 查询

MySQL篇之主从同步原理

一、原理 MySQL主从复制的核心就是二进制日志。 二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但不包括数据查询(SELECT、SHOW)语句。…

微服务篇之注册中心

一、eureka 1.eureka的作用 2.eureka工作流程 1. 服务提供者和服务消费者向注册中心注册服务信息,然后注册中心记录了对应的服务器地址。 2. 服务消费者从注册中心拉取服务提供者的信息。 3. 通过负载均衡找到对应的服务提供者地址。 4. 服务消费者远程调用对应的服…

『运维备忘录』之 Ln 文件链接命令详解

运维人员不仅要熟悉操作系统、服务器、网络等知识,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

OpenCV边缘检测与视频读写

原理 OpenCV中的边缘检测原理主要基于图像梯度的计算,包括一阶梯度和二阶梯度。 一阶梯度:它反映了图像亮度变化的速度。Sobel算法就是一种以一阶梯度为基础的边缘检测算法。它通过计算图像在水平和垂直方向上的梯度来检测边缘。这种方法简单有效&…

Java学习心得感悟

在我踏入Java学习的道路之前,我对编程只是一知半解,对于代码的世界充满了好奇和向往。然而,当我真正开始学习Java时,我才意识到,学习Java不仅仅是学习一门编程语言,更是一种思维方式和解决问题的能力的培养…

MySQL的优化

一:概念 在应用的开发过程中,由于初期数据量小,开发人员写SQL语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多SQL语句开始逐渐暴露出性能问题,对生产的影响…

[word] 如何将word文本转换成表格? #知识分享#学习方法#媒体

如何将word文本转换成表格? 如何将word文本转换成表格?不管是Word入门新手还是老手,相信这个技巧会让你更加熟练Word,操作起来得心应手! 1.文本转换成表格 同样的要怎么把一堆凌乱的数据转换成表格呢?这里…