五千年(敝帚自珍)

主题:【原创】如何提高多帧图像的分辨率(上) -- 驿路梨花

共:💬77 🌺150
分页树展主题 · 全看首页 上页
/ 6
下页 末页
  • 家园 【原创】如何提高多帧图像的分辨率(上)

    【声明】

    1、前天在新兵营里,梨花多了一句嘴,结果捅了马蜂窝,在四方城和数值分析的砸砖下,下定决心,写个帖子。。。

    2、写之前,偶先说明啊,这个帖子没什么意思的,大家直接送花就可以了,要是往下看。。。就手下留情吧,里面的BUG很多很多。

    3、里面的一些基本概念实在不好解释,看不懂的还是请出百度大神吧,这实在没办法科普。第一次往科技探索里发主题帖,诚惶诚恐之中。。。

    如何提高相片分辨率(上)

    买数码相机的时候是有不同的像素的,比如700万,500万。。。像素越高,说明照出来的相片越清晰。这个对应的就是图像分辨率的概念:分辨率越高的图像越清晰。所以偶们在看帅哥或者美女的时候,总希望分辨率越高越好,手机拍出来的图片总是差强人意吧。。。

    拍照的时候,相机距离景物的举例是很近很近的,所以这种分辨率的提高仅仅依赖于光学仪器的精密度提高就可以完全达到视觉感官上的效果。但在很多领域,照相设备离被拍照物体的距离相当的远,比如卫星遥感照片,那仅仅依靠对仪器精密度的提高是远远不够的。虽然说木PP木真相,但有时候,有PP也木真相。。。那么,偶们需要真相,那么就得想办法把低分辨率的相片提高为较高分辨率的相片。

    老崔家的小关在新兵营里有个帖子说:从理论上来说,对同一物体以不高的分辨率拍足够多的照片,通过某种算法的设计可使分辨率提高到一定水平。这就是一种提高相片分辨率的方法,下面就大略的描述一下这个方法(但偶可能会讲的不太清楚,不清楚的举手吧,不过偶自己也可能不清楚)。

    首先,偶们要知道相片是个怎么回事的东西。。。相片之所以有图像,很简单,有的地方黑,有的地方白。偶们把黑黑白白分成了256个等级,每个等级代表不同的黑白程度,偶们把这个等级称之为图像的灰度值。每一点不同的灰度值就代表了每一点处不同的黑白程度,组成到一起就成了一幅图像。

    而这个点又是怎么分的呢?这就是本文最开始提到的像素的概念了。偶们把一张相片划成N*N的格子,每个格子就代表一个像素点,像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以像素高的图片越清晰 —— 当然这格子划分的极小,划分大了就成了筛子。。。那是绿坝。所以,偶们现在的任务,就是想办法把N*N的图片转化为M*M的图片(显然,M>N)。

    再次,偶们要知道这个转换的基本数学工具 —— 傅里叶变换。偶们把灰度图像通过傅里叶变换,转化为频率域中的频率高低,接下来偶们所有的工作都是在这个频率域里面进行计算完成;等在频率域里的工作完成后,再通过反傅里叶变换,就能得到新的高分辨率的灰度图像,偶们的任务就完成了。而图像的细节描述是依赖于高频率,也就是说,如果频率越高,那么图像将越清楚,分辨率就越高。

    如果不知道傅里叶变换,就想象:大家把一张模糊不清的照片交代梨花照相馆,过了一段时间,大家取回的照片是很清晰很清晰的,而这个通过傅里叶变换在频率域里的折腾就相当于梨花照相馆。。。下面主要叙述的就是梨花照相馆的工作流程。。。

    这出现了一个问题:采样定理说(这个都熟悉吧,不熟悉的。。。&&¥¥%%),当你采样后的频率高于一定频率后会导致混叠现象。也就是说,频率不能太高了,如果太高了,就会和低频的搞到一块去,你就认不出来了。打个比方,县长低,省长高,大家都认识,但如果太高成了皇帝,就会自动的微服私访,混在平民百姓中,大家反而就不认识了。但为了使图像更清楚,需要把这个皇帝找出来,而这个找皇帝的过程,称之为解混叠,现在梨花照相馆的主要任务就是想办法找出这个皇帝(当然,不止一个,五代十国,N个皇帝)。

    找皇帝虽然不是件容易的事情,但上访的人多了,大家就想了很多很多的解混叠的算法,这里讲的只是一种 —— 现在终于回到老崔家的小关引出的那个正题上来了:如何利用多帧图像融合来提高分辨率。。。

    关键词(Tags): #图像#分辨率元宝推荐:爱莲,

    本帖一共被 1 帖 引用 (帖内工具实现)
    • 家园 相应的技术应该可以用来提高对隐形飞机的分辨率吧

      即多架飞机一起用雷达照,然后......

    • 家园 送花送通宝

      谢谢:作者意外获得【通宝】一枚

      鲜花已经成功送出,可通过工具取消

      提示:此次送花为此次送花为【有效送花赞扬,涨乐善、声望】

      • -- 系统屏蔽 --。
    • 家园 过来喵一下

      梨花JJ,我晓得是我惹的事,我不是存心的。。。。

    • 家园 送花。猜一下,是不是在硅谷做事?

      有一次,硅谷来了个销售小组到俺这里表演宣传了一下他们的产品。他们自己说是给CIA到外面照相用的。

      大家比较欣赏的是CIA的人在印度乘火车夜晚经过一个小站时,拍了一张糊成一长条的霓虹灯广告,经他们的系统处理,变成了高解析度的霓虹字体广告。

      当时就想,他们大概是用的某种级数处理或者滤波算法。

    • 家园 花梨花的探索精神。

      一点小建议。

      这一段你是明白意思的,在最后一篇开头表述得很清楚。 但在这里表述有些不清楚。强调一下信号频率和采样频率的区别可能更好些。

      “ 这出现了一个问题:采样定理说,当你采样后的频率高于一定频率后会导致混叠现象。也就是说,频率不能太高了,如果太高了,就会和低频的搞到一起”

      图像要清晰,就要准确还原信号(也就是风景)里的全频率信息。 采样的频率越高,采到的数据还原信号的能力就越强。 信号中,比采样频率的一半还高的高频成分,在采样过程中会被当成低频信息被采集进数据去。 这个是混叠现象。 也就是说,信号的频率太高了,就会超出器材(相机)的采集能力,和信号的低频成分搞到一起”

      严格的说,运用数学方法处理同一信号的多个采样可以提高对器材能力范围内(采样频率的一半)频率信号的采集准确度。 但并不能从中解析出超出器材能力的高频信号。

      也就是说一个小学生考试,多检查几遍,可以找到错误,得到更高的分数。 可是检查再多遍,他也不可能解出他根本就不会的的题。

      如果能精确定位连续图像的位置,理论上可以获得超出ccd采样能力的信号,不过这个定位能力的需求可能会远超相机的价格。 目前的图像配准和运动模型估计算法主要是用来重新对准多幅图像。然后提高器材极限分辨率内的测量精度,从而提高最后测量结果的有效分辨率。

      • 家园 恩,你的例子举的非常好

        你说的比我清楚多了,我那个例子举得不好。

        还有,器材极限分辨率会受到很多条件限制,很多时候很难提高。比如大气的电离层、光仪的漂移等因素,这些情况下,我们要提高器材的分辨率就比较困难。

        这些时候,定位能力的精确性就不是显得那么重要了(比如静止卫星姿态的少许变换较之他的分辨率,就现在的技术水平来说,卫星扫描的定位精度已经足够超出了算法所需要的精确定位),所以这个时候,通过算法构建运动模型来提高分辨率就显得十分重要了。

    • 家园 【原创】如何提高多帧图像的分辨率(下)

      【声明】

      1、昨天实在太忙。。。木有填坑,不是存心不填的。后面不用数学公式,实在很不好写。

      2、昨晚被蚊子咬死了,今早发现灭蚊灯上,共计死蚊子15只。偶讨厌蚊子!!!

      偶讨厌蚊子!!!

      【原创】如何提高多帧图像的分辨率(下)

      首先回答一下kernelh的问题。kernelh提及的方法实际上是单帧图像处理中的一个常用方法,也就是上文说的帧插值法。比如当我们模糊的看清那是个鼻子的时候,就可以用一个更高清晰度的鼻子来代替,这就是所谓的插值近似,这里面多少有点蒙的意味。当然,这并不是瞎蒙,对于各种各样情况都有着不同的插值算法。

      严格的说,这并不能单纯的界定为学术上的造假,如果出现问题,只是采用的算法不适当。。。就像在90年代初的时候,曾有大批的国有企业的领导,不断地失误交学费,穷了工厂富了家,法律并不能指认他们是有意为之,只能算是失误。。。所以,只要不把人脸估计成猩猩脸,那么一般也只是个算法问题。。。虽然对于论文和国有企业,我们大体都知道是怎么回事。

      之所以前面花了大段的笔墨来写单帧图像的处理 —— 似乎与文章的标题毫无关系,这只是想说明一个问题,通过一张图片来达到提高分辨率的途径是不行的,因为用一张图片扩展成N张样本的时候,本已丢失的高频信息并未找回来。也就是,原来那个皇帝没有找到,另外我们通过插值的手段,找到了或者说创造出了新的皇帝 —— 自然,傀儡天子是不够真实的。

      在一次又一次的离题万里之外,终于回到了题目上,多帧图像与单帧图像最大也是最根本的不同就是在于,如果偶手上有N张图片,那么这是可以实实在在提高分辨率的。

      偶们再一次回到(上)中所描述的基本概念:像素。我们可以这样想象:把一张图片像围棋盘一样划分格子,这是这样图片就有了N*N个像素点;同时,我们把同样的一张围棋盘重叠在原来的上面,然后进行平移,将新的围棋盘的像素点移动到原围棋盘的每个格子的正中央,这样,两个围棋盘重叠之后,构成的新的一张围棋盘的像素点就有2N*2N个;很显然,新围棋盘的像素提高了,也就是说,新围棋盘的分辨率提高了。当如果有无穷多张图片进行极其微小位移的移动时,那么从理论上,我们完全可以知道这张低分辨率的图片的全貌。这就是多帧图像提高分辨率的原理。

      这里需要介绍两个概念:

      一方面,因为以上的平移会使得不同时刻获得的图像问存在较大的变形, 因此必须首先对其进行配准。也就是说,在进行以上的平移之前,我们必须保证这两个围棋盘是一样的,至少对于图片来说,它们是相似的。我们所需要的是大量具有相似而又不同的特征的图像,它们的信息相互冗余,同时也相互补充。寻找这若干个相似的围棋盘的工作,我们称之为图像配准。

      另一方面,我们需要知道这两个围棋盘是怎样的相对运动的。在上面的例子中,我们假设两个围棋盘是相对运动到对方的格子正中央,但实际处理图像的时候,对于卫星传来的N张扫描图像,我们并不知道拍照设备和真实物体之间是一个怎样的相对运动,这就需要一个运动矢量场,我们把建立这种运动矢量场的过程,称之为运动模型估计。

      可以对运动模型估计这个过程举一个简单的例子:桌子上有个苹果,我们从一个方向拿着相机对着这张苹果照相。每照一张之后,我们把相机向响应的方向平移或者旋转极其微小的单位,我们称之为微位移和微旋转。这样相机的运动模型就产生了:这可以构建一个F函数,包括两个参数:F{运动方式;运动数值},如果我们用矢量场描述,就是一个F矢量。这样我们就可以人为造成一个运动矢量场,只是,在有的时候,我们不可能这样做,只能依靠各种各样的算法去估计,经过图像配准的各个照片之间是怎样的一个运动矢量场。

      但平移或者旋转的过程必须注意这样一个问题,就是这一过程必须极其微小。这里改动啦:这个微小位移的界定大致可以是这样:当我们把一副图像划分成足够小的子图的时候,那么当物体做微小运动时,则这个子图可以视为近似不变。具体的参见这个帖子:驿路梨花:是偶的问题。。。

      图像配准和运动模型估计,这是在多帧图像提高分辨率中,最重要的两个步骤。在这一过程完成之后,才是偶们通过频域法或者空间域法解混叠,进行图像重建,实现图像数据的最终融合,进而提高分辨率。应该指出,这种解混叠不是简单的重合,而是如(上)举得例子,我们要在大量的平民百姓(低频)中把隐藏其中的皇帝(高频)找出来。

      好了,现在所有的准备工作(多帧低分辨率图像->预处理->亚像素级的图像配准->运动模型估计)都做完了,剩下就是最后一个工作,怎样通过运动模型的估计解混叠来重建图像?这是一个很不好写的东西,这里面涉及到许多数学公式上的推导。。。人们对于不同的运动模型研究了不同的算法,后文偶试着写一下,但可能会写的极其的不清楚。。。

      【预告】:下文上图像处理前后的PP。。。

      关键词(Tags): #图像融合#超分辨率
      • 家园 先花再回复.

        被点了名, 受宠若惊, 赶快上花回复一下. 俺说的那个方法,不能简单的当成插值近似. 从思路上说, 其实是有点道理的. 就好比你给画家看一个线框的草稿, 他是能在这个基础上给你画出像模像样的图来的, 要多少细节, 就有多少细节. 这里用来补充细节的不是原图里面的信息, 而是画家脑袋里的知识.

        我所提的方法跟这个思路类似, 就是让机器干画家干的事情, 比如要画人, 先去外面学习人长的啥样子, 该怎么画. 等学会了, 给他一个速写的轮廓, 他就能给你把里面的细节给补齐.

        说这个方法是胡弄, 主要还是因为机器学习的模型还很弱, 远远没到画家的地步, 属于小孩乱涂乱画的阶段. 但不是说这样完全没有道理

        • 家园 那也不是糊弄

          每一样东西,都有有限个特定的特征值,而我们把这些特定特征值找到了,那么可以根据和数据库的匹配找出相应的元素。

          但是这个特征值怎样找,这里可能就涉及到插值了,要从更为有限的点值中找出足够的特征值。

      • 家园 灭蚊灯为什么只能灭掉咬过你的蚊子?

        那样灭蚊灯就没有实用价值啊。

      • 家园 【原创】如何提高多帧图像的分辨率(完)

        【原创】如何提高多帧图像的分辨率(完)

        我们现在需要来处理高低频率的混叠现象,我们的目的是得出因采样频率过低而丢失的高频信号,因为前文已经说了,高频信号决定了图像的细节。

        ===========================================================

        这一段偶可能说的不清楚。。。如果没看懂就算了。。。

        我们先引入一个概念:我们知道,对于一个发光点来说(我们把这个发光点看成是一个输入),他的输出的像是有一个光场分布的,如果不理解的话,可以想象往平静的水面上扔一块石头产生的一圈圈的涟漪,那就是一个场分布。我们称这种输出像的光场分布为点扩散函数。因为点光源实际可看为脉冲函数,所以点扩散函数就是光学系统的脉冲响应函数。

        考虑到系统点扩散函数的影响,那么实际上首帧低分辨率的图像,可以分解成两部分的组合:一部分是要我们需要得到的高分辨率图像,另一部分是由光学设备决定的点扩散函数。那么经过运动模型的估计后,可以得出:第K帧的低分辨率图像 = 待求的高分辨率图像 * 有光学设备决定的点扩散函数 + 第K帧的运动矢量。(具体怎么推导就不推了。。。偶也不怎么看的明白中间的过程)

        这样,我们手上的有N张低分辨率图片,有任意帧的运动矢量,那么用一个简单的线性变换,即将他们加权相加(这就是所谓的卷积,卷积运算在这里的实际意义,就是加权相加),这样,就可以把原低分辨率图像某一像素值对应为相应高分辨率图像像素值的加权和。再通过对N帧照片所构成的N个方程和加权相加后的方程联立,求最小期望函数,就可以解出在某一点处的被混叠的高频值。

        难写和难看懂的地方过去了。。。长舒一口气。。。=====================================================

        这种解混频的算法叫做共轭梯度法(为什么?共轭,因为会出现共轭矩阵;梯度,求n维最优不用梯度概念么?),现在,我们把混杂其中的高频(也可以说是因为采样丢失的高频)找到了,这样,梨花照相馆的全部工作就接近完成了 —— 最后,还剩最后也是简单的一步,再把频率值通过反傅里叶变换变为图像的灰度值。。。至此,我们把N张低分辨率的图片,经过一系列的处理,变成了较高分辨率的图片。。。啊,终于写完了!当然这之后还有很多细细碎碎的东西,比如边界的锐化等等,但这里就不写了。

        下面请看梨花照相馆的产品:(这是偶从别人文章里直接摘来的图片):

        [提示:原图站已失效]

        让我们来看一下:

        (a)是偶们的N张低分辨率图片 —— 这个N少了点。。。

        (b)是通过(中)所说的帧插值法提高分辨率得到的图片。

        (c)是用多帧图像的解混叠得到的方法 —— 不过,它这里是用了另一种解混叠的方法,就不详述了。

        (d)是用高分辨率照相设备照的一张图片。

        大家自己比较着看吧。

        最后,再稍微说一下共轭梯度法。这是用于频域解混叠的一种较为传统的方法,它的好处是比较直观,容易理解,但不好的地方是这个算法在运算时需要庞大的内存空间(想一想就知道了,多少万的像素要做矩阵的卷积),运算速度极其慢.很难在微机上实现。所以,人们在此基础上还研究了各种各样的子集共轭梯度优化算法。后来人们又利用物体解的空间截断和非负的数字截断的机理,研究出了在空间域的解混叠的方法(这里就不多说了,因为偶不会)。

        del!!!! 参见回复中潜了又潜的讨论

        好了,下班回家。。。

        (全文完)

        关键词(Tags): #图像融合#超分辨率
分页树展主题 · 全看首页 上页
/ 6
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河