Parallax-tolerant Image Stitching - 解决大视差图片拼接的方法

2023-05-16

Paper name

Parallax-tolerant Image Stitching

Paper Reading Note

URL: http://web.cecs.pdx.edu/~fliu/papers/cvpr2014-stitching.pdf

TL;DR

  • 该篇文章作为13年EG的seam-driven stitching的改进版,作者提出新的发现是基于seam-driven的方式在一定程度上不需要两张待拼接图片被完全对齐,某些关键part被对齐后基于seam-driven的方式也可以获取视觉观感很好的拼接图片。于是作者提出了新的对齐效果评估方式、similarity transformation与content-preserving warping进一步提升对大视差场景的拼接效果

Introduction

  • 现有的seam cuting和blending方法难以解决由于视差较大、场景景深差异大影响的拼接图像严重不对齐问题
  • spatially-varying warping算法相比于使用单个homography可以更好解决视差问题,但是在极大视差下依然不work,如下图所示的hard case,第一张待拼接图中的水平几何关系是卡车->烟筒->树,但是第二张待拼接图中的水平几何关系是卡车->树->烟筒,在这种情况下待拼接图像需要被折叠后才能与另一张图像进行对齐,这对于warping方式来说是很难的
    在这里插入图片描述
  • 作者认为在图像拼接任务中并不需要完全使overlap区域的像素点完全对齐,而只需要在待拼接图像的overlap区域中找到一个局部区域使得两张图片能够较好拼接起来,作者成这种方式为local stitching

Dataset/Algorithm/Model/Experiment Detail

实现方式

  • 作者认为实现较好的拼接效果需要同时考虑到Homography与content-preserving warping,Homography可以保持图像全局几何信息但是难以解决视差问题;content-preserving warping可以更好解决视差问题,但无法较好保持图像几何关系
  • 但是在大视差场景下,使用一个较好对齐的Homography与局部区域的对齐质量是两个有冲突的目标,作者提出了一种粗对齐然后基于content-preserving warping方式来改善对齐效果
1. 对齐模型选择
  • 两种流行的对齐方案
    • 全局的2D变换,通常称为Homography
    • spatially-varying warping,比如content-preserving warping
  • 作者结合这两个方法来进行图像对齐,首先选择一个种子特征点,逐渐增加种子特征点周围的特征点来拟合一个2D的变换,作者使用一个较大的拟合阈值来尽量包含周围更多的特征点,这虽然会使得两图的特征点无法完全对齐,但是后续的content-preserving warping方法会一定程度修复这个问题
2. 对齐质量评估
  • 一种直接的拼接质量评估方法是首先使用homography对待拼接图像进行warp操作,然后实施content-preserving warping,通过对比warp后的图片与参考图片来评估图片是否良好拼接,但是该方法速度较慢,因为每次评估都需要进行content-preserving warping这样的耗时操作
  • 作者提出了一种评估对齐质量的方式:
    • 对输入的待拼接图片进行边缘信息提取(Canny边缘检测方法),低通滤波用于容忍较小的不对齐现象
    • 计算warp图片与ref图片的边缘差异能量图,基于Graphcut算法搜索出一条最优拼缝,graphcut实施的具体方式是将overlap区域的边缘差异能量图的每个像素都作为一个图节点,然后基于以下边缘损失搜索最优的拼缝:
    • 在这里插入图片描述
  • 最优Homography搜索
    • 一些homography会达到seamless的拼接,但是会引起图片中部分part严重变形的情况,通过检测perspective distortion来确定选出来的由部分特征点拟合的H与全局最优的H的差别,找到与全局最优的H最拟合的单应变换矩阵
      在这里插入图片描述
3. 对齐算法细节

在这里插入图片描述

  • 作者所提出的整套拼接算法细节:
  1. 检测并匹配SIFT特征,生成edge maps;
  2. 随机选取一个特征点,然后组合近邻的特征点搜索出一个最佳的homography,对于已经被选取过的特征点会增加惩罚项使得之后的选取过程中不容易被重复选取;
  3. 评估基于步骤2得到的最佳的homography的拼接效果,如果符合预先设定质量评估阈值,则进行步骤4,否者返回步骤二重新选择最佳的homography,实在搜索不到符合阈值的情况就选择一个上述重复进行第二步所得到的最佳homography;
  4. 基于上述得到的最佳homography进行初步对齐,然后使用基于特征点指导的content-preserving warping来进行精对齐
  • content-preserving warping的细节
    • 仅使用content-preserving warping一般无法很好对齐所有的overlap区域,所以content-preserving warping一般用于在初对齐步骤后进行精对齐
    • content-preserving warping的主要是将整图warping问题转换为mesh warping问题,mesh warping被定义为一个优化问题,目标是将初对齐的结果进一步对齐到ref图片上,用于避免可察觉的抖动,作者定义了Local alignment term,Global alignment term,Smoothness term作为优化目标:
      在这里插入图片描述

实验结果

  • 与经典的Photoshop, AutoStitch, as-projective-as-possible stitching(APAP)等方法比起来对大视差场景有更好的效果
    在这里插入图片描述
    在这里插入图片描述

Thoughts

  • 作者提出了一种新的对齐方式来解决大视差问题,除非视差很大并且overlap区域中都是salient目标时,一般都能较好完成拼接
  • 该方法提出的最优homography搜索以及content-preserving warping两个步骤就需要消耗cpu20-40s的处理时间,在实时拼接上的应用价值还有待探索
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Parallax-tolerant Image Stitching - 解决大视差图片拼接的方法 的相关文章

  • 使用 Laravel Intervention 库缓存动态图像不起作用

    我目前正在使用 Laravel 5 并利用干预图像集成 http image intervention io http image intervention io 我动态地使用它 因此图像具有如下 URL http example org
  • Mousemove视差效果移动div的位置

    我正在尝试创建轻微的视差效果 我不确定它是否真的构成视差 但这是一个类似的想法 其中有四层 当鼠标移动时 它们以略有不同的速率移动 我找到了一个很好的例子 它提供了与我想要的类似的东西 http jsfiddle net X7UwG 2 h
  • 如何使用 IO Codenameone 发布图片/图像

    因为 codenameone 不能使用外部库 HttpConnection 所以我必须使用 Codenameone 提供的内部库 API 只是我已经设法使用 ConnectionRequest 将数据发布到格式化文本 字符串 我想知道是否有
  • 尝试使用 FileProvider(Android) 获取 URI 时出现 NullPointerException [重复]

    这个问题在这里已经有答案了 我想在单击按钮后拍照 但我越来越NullPointerException当试图得到URI with FileProvider 这是我的错误代码 Caused by java lang NullPointerExc
  • 在本地 UIWebView 中使用 Retina 图像

    由于某种原因 我无法让 UIWebView 与我的新 Retina 图像 很好地配合 问题 一步一步 我正在从捆绑包中加载一系列 HTML 帮助文件 如果是 iPhone 4 我的代码会加载不同的 HTML 文件 LWERetinaUtil
  • 如何缩小 BufferedImage 的大小和质量?

    我正在开发一个项目 一个名为 远程桌面控制 的客户端服务器应用程序 我需要做的是获取客户端计算机的屏幕截图并将该屏幕截图发送到服务器计算机 我可能需要每秒发送 3 到 5 张图像 但考虑到发送BufferedImage直接的过程成本太高 我
  • 使用 CSS3 在屏幕上移动图像

    我浏览网页已经有一段时间了 试图找到一种方法 让图标在加载页面时移动到屏幕上 从左侧移动到 body div 的中心 如何才能做到这一点 这是我到目前为止所拥有的 CSS3 a rotator text decoration none pa
  • 在表单中突出显示选定的图像 - 使用 Jquery?

    我在谷歌上搜索了答案 但发现什么也没有 所以即使是一个显示如何执行以下操作的页面的链接也将不胜感激 基本上我有一个只有图像的表格
  • C# 计算图像差异

    我怎样才能生成一个System Drawing Image包含其他两个图像的像素之间的差异 类似的东西确实如此 但是用 C 编写 The 算法 https github com Phrogz context blender blob mas
  • Image.FromStream() 方法返回 Invalid Argument 异常

    我正在从智能相机成像器捕获图像 并通过套接字编程从相机接收字节数组 NET 应用程序是客户端 相机是服务器 问题是我在运行时收到 System InvalidArgument 异常 private Image byteArrayToImag
  • BIRT 不显示 base64 编码的图像

    我想将图像包含到 BIRT 报告中 图像应由 XML 数据源 base64 编码 给出 但XML数据源不支持Blob数据类型 我找到了一个很好的答案这个 BIRT 问题 https stackoverflow com questions 2
  • 减少非常大图像的文件大小,而不改变图像尺寸

    考虑一个处理可能非常大的 PNG 文件上传的应用程序 所有上传的文件必须存储到磁盘以供以后检索 但是 PNG 文件的大小最大可达 30 MB 但磁盘存储限制规定每个文件的最大大小为 1 MB 问题是获取文件大小高达 30 MB 的输入 PN
  • Java:ImageIcon 与 Image 的区别

    谁能以菜鸟的方式向我解释一下两者之间有什么区别图像图标 and ImageJava 中的类 对象 谢谢 它们的性质和应用是不同的 Image http docs oracle com javase 6 docs api java awt I
  • 调整图像的亮度、对比度和伽玛值

    在 NET 中调整图像的亮度 对比度和伽玛值的简单方法是什么 c and gdi have a simple way to control the colors that are drawn It s basically a ColorMa
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 在 Android 中调整可绘制对象的大小

    我正在为进度对话框设置一个可绘制对象 pbarDialog 但我的问题是我想每次调整可绘制的大小 但不知道如何调整 这是一些代码 Handler progressHandler new Handler public void handleM
  • flutter应用程序中有图像编辑器的api吗?我需要在图像中添加文本

    是否可以编辑图像 例如旋转以及在图像上添加文本 有没有什么插件可以做到这一点 我需要一个图像编辑器来添加具有各种字体和颜色的文本 谢谢 你应该使用重画边界 https docs flutter io flutter widgets Repa
  • 在 Excel 中使用 VBA 设置图像透明度

    有没有办法使用 VBA 脚本对图像应用一些透明度 我录制了一个 宏 但似乎没有录制艺术效果 我已经找到了如何制作形状 但没有找到图像 这需要几个步骤 将自选图形 如矩形 放置在工作表上 使用以下方法将您的实际图片嵌入矩形中 ShapeRan
  • 将 SVG 文件转换为多个不同大小的 PNG 文件

    我有一个 SVG 格式的徽标图像 我想知道是否有办法生成多个不同大小的 png 文件 例如 我设置了 20 个不同的宽度和高度 它会生成 20 个 PNG 文件 如果我必须一次处理 5 张图像也没关系 我已经安装了 illustrator

随机推荐

  • 使用android 视频解码mediaCodec碰到的几个问题

    问题1 mediaCodec dequeueInputBuffer一直返回 1 xff0c APP现象 xff1a 视屏卡屏 原因 xff1a 这是因为inputbuffer的内容有误 xff0c 导致无法解码 可通过设延时时间解决 xff
  • 云计算思维导图

    根据近期的云计算学习心得 xff0c 将云计算部分内容制作成思维导图 xff0c 方便于广大云计算学习者作为辅导讲义 xff01 思维导图内容主要包含 xff1a 1 云计算概述 2 云体系结构 3 网络资源 4 存储资源 5 硬件介绍 6
  • 路由器重温——串行链路链路层协议积累

    对于广域网接口来说 xff0c 主要的不同或者说主要的复杂性在于理解不同接口的物理特性以及链路层协议 xff0c 再上层基本都是 IP 协议 xff0c 基本上都是相同的 WAN口中的serial接口主要使用点对点的链路层协议有 xff0c
  • 路由器重温——PPPoE配置管理-2

    四 配置设备作为PPPoE服务器 路由器的PPPoE服务器功能可以配置在物理以太网接口或 PON 接口上 xff0c 也可配置在由 ADSL 接口生成的虚拟以太网接口上 1 配置虚拟模板接口 虚拟模板接口VT和以太网接口或PON接口绑定后
  • Python入门自学进阶——1--装饰器

    理解装饰器 xff0c 先要理解函数和高阶函数 首先要明白 xff0c 函数名就是一个变量 xff0c 如下图 xff0c 定义一个变量名和定义一个函数 xff0c 函数名与变量名是等价的 既然函数名就是一个变量名 xff0c 那么在定义函
  • Python入门自学进阶-Web框架——21、DjangoAdmin项目应用

    客户关系管理 以admin项目为基础 xff0c 扩展自己的项目 一 创建项目 二 配置数据库 xff0c 使用mysql数据库 xff1a 需要安全mysqlclient模块 xff1a pip install mysqlclient D
  • Python入门自学进阶-Web框架——33、瀑布流布局与组合查询

    一 瀑布流 xff0c 是指页面布局中 xff0c 在显示很多图片时 xff0c 图片及文字大小不相同 xff0c 导致页面排版不美观 如上图 xff0c 右边的布局 xff0c 因为第一行第一张图片过长 xff0c 第二行的第一张被挤到第
  • Python入门自学进阶-Web框架——34、富文本编辑器KindEditor、爬虫初步

    KindEditor 是一个轻量级的富文本编辑器 xff0c 应用于浏览器客户端 一 首先是下载 xff1a http kindeditor net down php xff0c 如下图 下载后是 解压缩后 xff1a 红框选中的都可以删除
  • Python入门自学进阶-Web框架——35、网络爬虫使用

    自动从网上抓取信息 xff0c 就是获取相应的网页 xff0c 对网页内容进行抽取整理 xff0c 获取有用的信息 xff0c 保存下来 要实现网上爬取信息 xff0c 关键是模拟浏览器动作 xff0c 实现自动向网址发送请求 xff0c
  • 6、spring的五种类型通知

    spring共提供了五种类型的通知 xff1a 通知类型接口描述Around 环绕通知org aopalliance intercept MethodInterceptor拦截对目标方法调用Before 前置通知org springfram
  • 路由器接口配置与管理——1

    路由器的接口相对于交换机来说最大的特点就是接口类型和配置更为复杂 xff0c 一般吧路由器上的接口分为三大类 xff1a 一类用于局域网的LAN接口 xff0c 一类用于广域网接入 互联的WAN接口 xff0c 最后一类可以应用于LAN组网
  • 路由配置与管理——静态路由配置与管理

    静态路由是一种最简单的路由 xff0c 需手工配置 xff0c 用一条指令指定静态路由的目的IP地址 子网掩码 下一跳IP地址 xff0c 或者出接口 优先级等主要参数值就可以了 还可根据实际需要配置静态路由与BFD或者NQA的联动 一 路
  • TCP实现局域网通信

    TCP实现局域网通信 TCP客户端通信步骤 xff1a 1 xff1a 创建套接字 sockfd 61 socket AF INET SOCK STREAM 0 2 xff1a 填写服务器结构体信息 span class token key
  • 路由策略和策略路由配置与管理-1

    路由策略和策略路由配置与管理 路由策略 与 策略路由 之间的区别就在于它们的主体 xff08 或者说 作用对象 xff09 不同 xff0c 前者的主体是 路由 xff0c 是对符合条件的路由 xff08 主要 xff09 通过修改路由属性
  • IP组播基础及工作原理——1

    IP组播在一些多用户定向发送的网络应用中使用非常普遍 xff0c 如远程多媒体会议 远程教学 视频点播 定向电子商务 xff0c 以及ISP的IPTV xff08 网络电视 xff09 等 学好IP组播基础知识及配置与管理方法 xff0c
  • IP组播配置与管理实战——1

    IGMP 配置与管理 IGMP xff08 InternetGroup Management Protocol xff0c 因特网组管理协议 xff09 是TCP IP 协议族 中负责IPv4组播成员管理 的协议 xff0c 需要在组播组成
  • Linux:利用返回值传出参数,地址传递,值传递,使用回调函数赋值几个例程。

    利用返回值传出参数 xff0c 地址传递 xff0c 值传递 使用回调函数赋值几个例程 代码 xff1a include lt stdlib h gt include lt stdio h gt include lt unistd h gt
  • 一步一步实现多尺度多角度的形状匹配算法(C++版本)

    前言 用过halcon形状匹配的都知道 xff0c 这个算子贼好用 xff0c 随便截一个ROI做模板就可以在搜索图像中匹配到相似的区域 xff0c 并且能输出搜索图像的位置 xff0c 匹配尺度 xff0c 匹配角度 现在我们就要利用op
  • 查看麒麟操作系统版本

    root 64 tbase01 nkvers Kylin Linux Version Release Kylin Linux Advanced Server release V10 Tercel Kernel 4 19 90 23 8 v2
  • Parallax-tolerant Image Stitching - 解决大视差图片拼接的方法

    Paper name Parallax tolerant Image Stitching Paper Reading Note URL http web cecs pdx edu fliu papers cvpr2014 stitching