Capel, David, and Andrew Zisserman. "Computer vision applied to super resolution." Signal Processing Magazine, IEEE 20, no. 3 (2003): 75-86.

简介

超分辨率重建的目的是使用一组低分辨率的图像来估计一副高分辨率图像。重建主要通过两个步骤来完成:配准低分辨率的图片组到一个公共的坐标系,然后使用图像的生成模型(generative image model)和图像的先验知识和匹配的图像组数据来形成高分辨率的图像。

图像配准

ML Registration to Two Views

假设真实的物体点投影到图像面上的坐标是\(\underline{x}\),而检测到的对应的点\(x\)的位置的概率分布可以表示为高斯分布: $ Pr(x|\underline{x}) = \frac{1}{2\pi\sigma^2}exp(-\frac{(x-\underline{x})^2+(y-\underline{y})^2}{2\sigma^2}) $

在两幅低分辨率图像中,给定了相互对应的一组理想特征点\({\underline{x}\leftrightarrow\underline{x}'}\),通过特征点检测算法计算得到的相应特征点对的似然概率就是: \(Pr(x,x')=\prod_i{}Pr(x'\_i|\underline{x}'\_i)Pr(x_i|\underline{x}_i)\)

使用\(log\)函数并去掉不影响函数最小化的\(\sigma\)后,点对的似然函数简化为:

\(L = \sum_i{}((x_i-\hat{x}\_i)^2+(y\_i - \hat{y}\_i)^2 + (x'\_i-\hat{x'}\_i)^2 + (y'\_i-\hat{y'}_i)^2)\)

式中理想点对间映射\(\hat{x'} = H\hat{x}\)可以带入其中,最终的方程中H和N个理想点的坐标(x,y共2N个参数)是未知数,使用非线性最优化进行估计,类似相机标定,得到最终的Homography矩阵H

Algorithm: Automatic Two-View Registration

  1. Feature : 计算亚像素特征点,Key Poins
  2. 特征点匹配
  3. RANSAC 配准:得到Homography矩阵 H
  4. 最优估计 H:通过最大化似然估计,得到优化的H
  5. 使用优化的H重新计算特征点匹配 通过迭代,使得匹配点对稳定,得到最后的H

多幅配准

如果是多幅图像,可以选择一副图像,然后估计所有其他图像到这幅图像的映射Homography矩阵系列\(H_i\)。

光度配准

由于相机的自动曝光、白平衡或是由于相机方位的改变,图像组的亮度和颜色并不统一,通常在图像位置匹配完成后,还需要进行灰度色彩值的配准,在两组图像或特征点区域中,我们可以设计一个线性的辐射度变化,然后通过匹配后的像素对应关系,计算这一线性变化的参数。

超分辨率重建

实际采集到的低分辨率图像可以看成是高分比率图像通过一系列的劣化过程得到的,这些过程包括:几何变换 、光学模糊、空间采样和噪声等,超分辨重建的过程其实就是这个劣化过程的逆过程,利用劣化后的图像来估计清晰的图像。接下来会讨论两种方法ML似然估计和MAP贝叶斯后验估计,但在之前会给出图像的生成模型。

生成模型 Generative Models

低分辨率图像的生成可以用一个公式来表示: $ g_n = \alpha_nM_n\bar{f}+\beta_n+\eta_n $

其中各个参数的解释如下:

  • \(\bar{f}\):理想的高分辨率图像按照像素位置展开的矢量;
  • \(g_n\):第n张低分辨率图像;
  • \(\alpha_n,\beta_n\):灰度或颜色配准的参数;
  • \(M_n\):劣化矩阵 \(M = s\downarrow(h(u,v) * \bar{f}(T(x, y))\),由以下几个部分组成:
    • \(T\):几何变换或变形
    • \(h(u, v)\) :综合的点扩展函数
    • \(s\downarrow\):下采样
  • \(\eta_n\):噪声

如果有N幅图像,就可以构成一个超定的线性系统:

最大似然估计

假设图像的噪声是高斯噪声,观测到的图样的概率为: $ Pr(g_n|\bar{f})=\prod_{\forall{}x,y}\frac{1}{\sigma_n\sqrt{2\pi}}exp(-\frac{(\bar{g_n}(x,y)-g_n(x,y))^2}{2\sigma_n^2}) $

式中的\(\bar{g_n}\)是有生成模型计算得到的,使用Log函数,去掉与最小化无关的\(\sigma\)得到的似然函数为: $ \sum_{\forall{}n}\mathcal{L}(g_n)=-\sum_{\forall{}n}\lVert{}M_n\bar{f}-g_n\rVert^2=-\lVert{}Mf-g\rVert^2 $

由于M非常大,这个类似最小二乘的线性系统,很难用伪逆\(M^+\)来计算,而需要使用迭代法进行计算,相关方法在常规的数值线性代数教科书上有详细描述。

贝叶斯最大后验估计

该方法普遍比最大似然估计有更好的效果,并且加入了图像的先验知识。由贝叶斯概率公式\(Pr(\bar{f}|g)=Pr(g|\bar{f})Pr(\bar{f})/Pr(g)\),使用Log函数,MAP方法的最优化问题可以表示为: \(f_{map}=\mathop{argmax}\_f lg Pr(\bar{f}) + lg Pr(g|\bar{f}) = \mathop{argmax}\_f lg Pr(\bar{f}) - \frac{1}{2\sigma_n^2}\lVert{}Mf-g\rVert^2\)

Gaussian MRFs

其中\(Pr(f)\)就是图像的先验知识。ML方法的最大问题在于分辨率持续增大时,噪声的影响也持续增大,最终图像信号淹没在了噪声中。而在MAP方法中,为了防止像素值无顾忌的被噪声占据,可以约束一个像素和其周边的像素具有一定的连续性,从而约束像素值在一个范围内。在数学表达式上,可以使用该像素点的导数来表示它和周边的连续性,如\(d_x, d_y, d_{xy}, d_{yx}\)。如前所述,\(f\)是按像素展开的矢量,而梯度算子在二维上是一个滤波器算子,也需要展开为一个更大的稀疏矩阵\(L\),并且像素值变化连续,导数就需要小,那么在MAP最大化式中,需要加上负号。综上,可以定义图像的先验概率为: $ Pr(f)=\frac{1}{Z}exp(-f^TQf), Q=L^TL $ 则Log的最大后验概率则会变为: $ f_{map}=\mathop{argmax}_f-\gamma^2\lVert{}Lf\rVert^2-\frac{1}{2\sigma^2}\lVert{}Mf-g\rVert^2 $

Huber MRFs

Gaussian MRFs方法使用高斯函数保证图像的平滑特性,但导致应该保持非连续的边界区域被过度平滑。为了保证边缘处的非连续性,采用更加鲁棒的估计方法Huber函数来估计像素点的梯度值,在计算出梯度后,带入huber函数,则可以保证对于分界线处梯度值的保证,相关信息可见Robust估计相关资料。

效果图

下面两张图给出了ML和MAP两种方法效果图,点开看大图。

最新文章

  1. CAS FOR WINDOW ACTIVE DIRECTORY SSO单点登录
  2. Markdown中插入数学公式的方法
  3. Android studio使用增量更新进行版本升级
  4. 大批量DML操作应该注意什么?
  5. 树莓派(Rospberry Pi B+)到货亲測
  6. MessagerService总结
  7. C/C++中的far和near两个指针
  8. React Native for android 项目驱动教程
  9. 转:STL使用入门( Using STL)
  10. JS function立即调用的几种写法
  11. IP头、TCP头、UDP头详解以及定义
  12. bash中(),{},(()),[],[[]]的区别
  13. JavaScript 数值Number类型详解
  14. PLSQL 报错弹框乱码
  15. logstash笔记(二)——grok之match
  16. java中级——二叉树比较冒泡和选择排序
  17. Groovy 设计模式 -- 抽象工厂 模式
  18. spring框架等web程序在tomcat下的启动顺序
  19. 如何使用Windows防火墙禁止软件联网
  20. 关于esp32的系统初始化启动过程及设计学习方法

热门文章

  1. 微信公众号支付(一):获取用户openId
  2. Nuget 自动上传
  3. VS2012 直接浏览网页时报错
  4. Lucene.net常用功能说明
  5. Come and join us at English corner
  6. (一)问候Hibernate4
  7. Mac OS X 在Finder新建文本文件
  8. javascript在html中使用 第10节
  9. redis基本数据类型【2】-Hash类型
  10. 基于SSM框架的简易的分页功能——包含maven项目的搭建