zoukankan      html  css  js  c++  java
  • 图像融合算法(感应篇)

    按照几个papers图像融合算法,诱导整个过程,与您分享(^_^)。

    基于sift的全景拼接方法的整个过程的大致流程:

    1.  对需拼接的图像进行预处理。主要是几何校正和消噪。对于几何校正。因为我们考虑的是视频的实时处理,那么我们仅仅需考虑摄像机的全部运动形式,当中包括8个自由度。可用投影变换来表示。H=[m0 m1 m2;m3 m4 m5;m6 m7 1],考虑到它的算法复杂度已经有n的3次方。我们能够考虑通过控制摄像机的运动方式来减少复杂度,比方令摄像机仅仅有平移旋转和缩放,即仿射变换,减少了一次复杂度。消噪的话考虑到DOG本身就是一种非常好的带通滤波器。这一步省略。

    2. 提取图像SIFT特征点描写叙述算子。因为高斯函数是唯一可能的尺度空间核函数,所以整个SIFT算法是基于“尺度不变”的特征。

      • 对于二维图像的尺度空间L(X,Y,σ), 水平方向和垂直方向与滤波器(高通。低通)相卷积,从而得到G(X,Y,σ),即尺度可变高斯函数。
      • 而DOG是不同尺度的高斯差分核和图像卷积而成[注]。

        DOG的方式相当于一个人从远和近两个不同的地方看景物,它的边缘是不会非常大有变化的。因为它的边缘效应非常强。所以会加强非常多高频随机噪声。这时候须要去除不符条件的算子。通过拟合三维二次函数的得到一个理论的极值点函数。这时候须要设定一个比例,大于这个比例的点剔除。剔除之后要把特征点生成人眼适应的描写叙述算子。

      • 因为为了要让算子具备旋转不变性,我们在以特征点为中心的领域窗体採样,并用直方图统计邻域像素的梯度方向。10度一柱,直方图的峰值代表特征点处邻域梯度的主方向,即该特征点的主方向。为了增强系统的鲁棒性。当存在还有一个相当于主峰值80%能量的峰值时,则将这个方向觉得是该特征点的辅方向。

        然后将区域内全部点的梯度方向转过一个上述确定的主方向的角度(以确保旋转不变性)。

      • 然后将区域分为4*4=16个正方形子区域,每一个区域中的点按梯度大小和正态分布加权。绘制出8个方向的直方图,所以每一个特征点可得到一个128维的描写叙述子向量。然后继续将特征向量的长度归一化。去除光照变化的影响。
    3. 进行特征匹配,得到特征匹配对。曾经都是採用Kd-Tree算法,我们在这里使用近似近期邻算法,即BBF算法。

      该方法採用一个优先级队列使搜索一次从节点与被查询节点距离由近及远的顺序进行。

      BBF算法更适合维度高的特征向量。而SIFT特征是128维向量,较为有用

    4. 匹配提取,得到鲁棒的特征匹配对。因为仅仅採用RANSAC算法可能会导致鬼影现象。所以须要改进RANSAC算法。以RANSAC确定的配准误差阀值的90%作为配准阀值提取终于的仿射变换矩阵,增强鲁棒性。
    5. 进行图像融合。因为图像融合是为了视频做准备,实时性要求非常高,所以复杂度高的算法在这里不适用。
      • 在关注几篇论文里面都是採用线性融合算法对重合区域使用双线性插值,通常是渐入渐出的加权平均算法。这样尽管能够较快获得图像,可是重合部分较多时会造成耗时变长。重合区域会非常模糊,且图中若出现新物体时会让它的亮度大大减少。考虑到图像清晰度和实时性两点,以及这项技术假设实现得到应用之后的应用性,
      • 中值滤波比較适合。主要思想是利用中值滤波器来解决重合部分像素值的突变。用直观的方式来解释的话就是利用中值滤波去除高于某个阀值的点。消除像素值的突变,保持光强连续性。中值滤波法的长处在于能够增强细节,保持较高频的图像信息,特别是突出变化目标。这非常有用。
      • 假设我们能够改进中值滤波法。减少它在GPU上的执行时间,那它就能够作为一种最适合的方式。

        还有就是关于消除拼接图像的鬼影效果,眼下。考虑到我们採用的图像融合办法出现鬼影的概率不是非常高,所以能够选择最简单的Collage算法。Collage算法好比拼贴画用特定图像覆盖重叠区域来形成图像。长处是简单迅速。但easy出现断层。所以须要用Seam cost function标准来评价,来提高拼接效果。

    [注]2006年Michael Grabner简化了DOG算子,减少了运算量。DOG算子的长处在于它有非常强的移植性和普适性。当K设为1.6时,即为高斯拉普拉斯算子的近似。而在DOG算法中,它是一种模拟视网膜上的神经从影像中提取信息从而提供给大脑,这是K约等于为5.


    关于Image Engineering& Computer Vision很多其它讨论与交流。敬请关注本博客和新浪微博songzi_tea.

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    Linux学习32
    Linux学习31-如何查看 linux 系统是centos还是ubuntu,并查看系统版本号
    python测试开发django-124.bootstrap点删除按钮弹确认删除
    python测试开发django-123.bootstrap模态框(modal)垂直居中显示
    python测试开发django-122.bootstrap模态框(modal)学习
    Linux下查询tomcat进程命令
    linux服务器通过X11实现图形化界面显示 1 背景描述
    linux(centos)配置ipv6网卡
    linux 下给网卡添加ipv6、路由
    2021年最新大厂php+go面试题集(1)
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4887665.html
Copyright © 2011-2022 走看看