前端:An iterative image registration technique with an application to stereo vision

本文主要是介绍前端:An iterative image registration technique with an application to stereo vision,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇论文主要记录Lucas 光流法,KLT光流跟踪的基础。图像点定位的方法,即图像的局部匹配,将图像匹配问题,从传统的滑动窗口搜索方法变为一个求解偏移量d的过程

【摘要】 主要讲了图像配准的一种方法–利用图像的空间强度梯度和牛顿迭代法找到好的匹配。此方法更快(仅从较少的匹配中筛选)且适用于旋转、尺度、裁剪等变换。

【简介】 现存的方法代价大且不能处理旋转或者其他变形的情况,提出了一种新的技术–采用空间强度梯度信息找到最佳匹配。这样就可以利用更多图像信息找到两幅图的最佳匹配。这种方法比按固定顺序计算可能的配准位置需要比较的次数更少。此法利用了许多应用中两幅图已经近似配准了,且可以处理任何线性形变。
【配准问题介绍】
给定函数F(x)和G(x),分别表示各自在两幅图中的像素值,x是个向量。要求一个视差矢量h,使F(x+h)和G(x)的某些距离测度最小,其中x属于区域R。
在这里插入图片描述
三种典型的距离度量:
在这里插入图片描述

本文将提出一种更通用的图像差度度量方法,L2 norm和归一化相关都是该方法的特例。L1 norm可以看做是L2 norm的一种合理逼近。
【现存技术】
一种最显而易见的图像配准方法就是穷举搜索h的可能值空间,计算其距离。但非常低效。根据上次的h计算其附近可以使函数值下降的h作为下个h值,这样迭代。但可能会陷入局部最优。序贯想相似性检测算法(SSDA)。SSDA通过人为设定一个固定阈值,及早地终止在不匹配位置上的计算,以此减小计算量,达到提高运算速度的目的。选取一个误差准则,设定一个不变阈值。在子图象中随机选取一点,计算它与模板中相应点的绝对误差值, 将每一随机点对的误差累加起来,若累加到第r次时误差超过设定阈值,则停止累加。停止准则主要由这个固定阈值和累加次数r。
一些配准算法采用了一种由粗到细的策略。先用上面的某种方法在低分辨率下找到最佳配准,然后将其作为高分辨率中的可能匹配位置的约束。一些利用金字塔的图像理解系统采用了这种方法。
上面这些方法有些可以互相结合使用。爬山法和穷举搜索只解决了如何找到最佳匹配,SSDA解决了计算差异函数的方法。因此,可以用SSDA和爬山法或者穷举搜索结合,也可以用由粗到细策略。

本文介绍了搜索h空间的顺序。具体讲,先确定一个初始h,再用每一点的空间强度梯度修正当前h,直到达到最优匹配。迭代过程采用的是牛顿迭代法。该配准方法可以和coarse-fine策略结合。
【配准算法】
本节先介绍一种针对一维配准问题的直接方法,再介绍另外一种可以推广到多维的方法。然后介绍怎么将此技术推广到其他类型配准。最后讨论算法应用和性能。

1. 一维问题
我们希望在F(x)和G(x)=F(x+h)之间找到一个水平视差h。
在这里插入图片描述
根据对x附近的F(x)进行线性逼近。对于很小的h,
在这里插入图片描述

当h足够小,逼近就可以写成等号。后面会介绍通过平滑图像扩大h的范围,这样就可以直接写等号了。
将x一点的情况推广到多点:
在这里插入图片描述

当F(x)接近线性时,(1)线性逼近得很好;反之当|F”(x)|很大时则逼近不好。根据这个关系,可以对上式进行改进,再根据公式(4),可以设计一个计算权重的方法,就是公式(5)。|F”(x)|越小,权重越大。从图2可以看出,当x为两条曲线交叉点时,按(2)算出的h是0,但是因为此时G’(x)和F’(x)的差很大,所以权重很小,这就符合逻辑了。最终的h是公式(6)。
在这里插入图片描述

得到h的估计值,就可以将F(x)移动h的距离,重复这一过程得到一系列的牛顿迭代。理想情况下h会收敛到一个最优值。迭代表示为
在这里插入图片描述

2. 另一种推导
上面的推导不能直接推广到二维情况,因为二维线形逼近形式不同。另一个原因是(2)中分母可能为0。因此,将(1)改为
在这里插入图片描述
求得h
在这里插入图片描述

这个除了权重系数为和公式(6)基本相同。当且仅当对任意x,F’(x)=0时,分母为0,而此时h没有定义。
对应的迭代公式
在这里插入图片描述

  1. 性能
    相比于没有权重的方法,该方法能在更广的范围更快收敛。

这篇关于前端:An iterative image registration technique with an application to stereo vision的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/785976

相关文章

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的