热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

计算成像的原理与应用研究

本文探讨了计算成像的原理与应用研究。首先介绍了小孔成像实验和软件方面的相关内容。随后从傅里叶光学的角度简单谈了成像的过程。成像是观测样品分布的一种方法,通过成像系统接收光的强度来呈现图像。视网膜作为接收端接收到的图像实际上是由像元组成的矩阵,每个元素代表相应位置像元接收光的强度。大脑通过对图像的分析,得出一系列信息,如识别物体、判断距离等。计算成像是一种采集记录系统,通过处理数据得到样品分布与像的对应关系,用于后续问题的分析。
e103bbb1369d2bdc61159d3f3ad66331.png

成像,我在讲傅里叶光学的知乎文章中简单谈了一下。

https://zhuanlan.zhihu.com/p/217503316​zhuanlan.zhihu.com

成像本身是在对待测样品的分布进行观测,也就是看它长什么样,以人眼为例,人眼作为成像系统,不论看什么东西,首先视网膜作为接收端接收了一幅图像,尽管我们觉得我们看到的图像是连续的,但是事实上视网膜一定有一个个像元,我们看到的图像是一个矩阵,矩阵中的每个元素代表相应位置像元接收光的强度,它本身是一个强度的响应,或者说一个神经刺激,然后这些神经刺激经过大脑的整理,最终呈现出看到的图像,然后再通过对图像的分析,知道一些列信息,比如看到了谁,看到他在干什么,通过左右眼不同的图像,又能分析出来看到东西有多远等等的结果。

计算成像大体也就是如此,一个采集记录系统,记录的数据通过处理得到其分布能够与样品对应的像,用以进行后续对于具体问题的分析。

128d91210a6dd5d50e2f143a6eccd260.png
图片来自网络,如有侵权请联系作者删除。

我个人比较习惯从另一个角度讨论这个问题。样品有一个分布,它的分布客观存在,它可以用一个图像表示出来,这个是成像的前提,样品分布作为成像过程待求解的结果,我们不妨称之为x,注意这个x不是数字,可以是矩阵(有时候可能还是复数矩阵),或者说图像。我们有一个固定的采集系统,当我们的样品不同,采集的图像就不一样,这是废话,但是非常重要,后面我可能单独解释一下。采集的图像和样品分布x,不见得是相同的,但是一定有关,成立一个映射,不妨称之为f(),所以我直接采集的图像,就叫y吧,那就构成了一个关系,y=f(x),那么在已知y并且已知f()的情况下,求解x,这就是成像过程。

如果y=1,f(x)=2x,那求解x就很简单的,但事实上,通常x比较简单且确定,就是一个矩阵或者向量(列采集)甚至点(点采集),而f()可以任意复杂,它可以包含很多的变换(传播、傅里叶变换),甚至它可以只是一个约束条件,而并不能构成一个确定的等式,那么在这种情况下,或者说实际上就是这样,通常求解不出正确的x,真正求解出来的是x的近似,或者说它的解的集合。

我引用信息的说法来解释这个问题,信息论认为,可以用信息熵的大小来衡量信息的多少,最经典的例子,预测足球赛,假设所有队伍实力均等,比赛开始前,预测的难度最大,因为可能的赛程结果有很多种,它的解的空间最大,且解空间中各个具体的解的概率不相上下,信息量的限制让我只能够排除掉没有参赛的球队夺冠的可能。那么随着比赛的进行,有球队不断淘汰,实际上冠军的可能就会落在越来越少的球队身上,解的空间缩小了,而如果我们知道球队的一些其他信息,比如实力对比,那么虽然解的空间没有缩小,但是解的概率出现了不同,存在一些解有更高的概率成为正确解,同样可以帮助到我们的预测。

现实中的光场,我们不考虑什么量子力学,通常认为现实中的光场都是连续的,相当于一个可以用于表示样品分布的矩阵,像元尺寸无穷小,像元个数无穷多,这样才能把这个光场表示的清楚。但是现实是,采集器只能是离散的,采集器上每一个像元采集的都不是无穷小的范围,而是一个尽可能小的范围上的光场的强度的和或者说积分。我们采集并重建得到的有限像元数的图像,实际上都可以看做一个理想精确的解的解集合,算法上来说可以把它变成一个像元尺寸任意小,像素数任意多的图像,相当于对于精确解的估计值,是存在于当前信息量下的解集中的一个解

存在一类计算成像方法,它们可以实现所谓光场的成像,比如全息,其本质就是既能对样品或者说目标场的振幅分布进行成像,也可以对目标场的相位进行成像,并且还有一个附加功能,即可以预测目标场传播到任意位置的分布的成像,这一类方法我后面会列举很多种进行比较具体的介绍。但是需要知道,这类方法都面临一个共同的问题,不论图像采集器如何先进,对于一个复数振幅的光场,采集器都只能采集强度,它的相位必须通过一种实验或者计算的方法来得到。

前面的东西都是铺垫,我希望借着这些内容,通过分享一些具体的成像案例,来介绍我所认为的计算成像。

直接成像

我这里说的直接成像,并不是一个严格的概念,我只是想泛指一类成像,就是直接采集的图像就已经是或者是接近最终的成像结果,不需要经历某种变换或者过多的矫正,典型的就是我们平时的拍照。我想很多人现在应该都知道,平时用的数码相机上不是只有图像采集器,它是一定要有透镜或者透镜组的,通常的直接成像实验中,用不带镜头的图像采集器,成像系统也要添加相应的透镜之类的元件。它们想要建立的映射就是f(x)=x,而采集图像实际上并不是样品长什么样,确切的说应该是人眼接收面放在图像接收面上透过透镜组看样品的方向所看到的样子,以我讲过的4f系统为例,后透镜的后焦面是样品的一个清晰成像面,也就意味着,再该平面上采集的分布会接近或者近似等于样品平面上的分布。

8ee951e9d90aa97f62766482555860eb.png
图片来自网络,如有侵权请联系作者删除。

数字全息成像

通常来说,全息都属于相干成像,也就是说光源要使用相干光源,以确保能在接收平面产生有效的光的干涉,干涉其实指的就是所谓的相干叠加。现实的光场是复振幅分布,采样器接收的就是这个复振幅分布的模的平方

,如果是同时记录两束非相干光,不考虑干涉,那么接收到的就是
,如果换成相干光,就变成了
,以一个一维信号举例:
eeeedec8fd94e56acec9f75cb9935029.png

畸变样品信号相同,在载波信号不同的情况下采集的强度和也不相同。对于相干成像,

可以展开成
,这个式子的后两项可以看出,不论拿出这两项的哪个单独来看,都不是强度分布,但是由于其中项的复共轭关系,两者相加的结果一定是强度,而通常全息的做法,就是用一种办法分离出后两项中的一项,然后让它乘以参考光或者参考光的共轭,使之仅剩下与样品复振幅O有关的部分。离轴全息的方法,就相当于让后两项在全息图上拥有高频的载频(干涉条纹),反应在频域上就是这两项在频谱空间分别被移动在了对称的位置,这与通信信号处理中在频谱上一个频段加载信息的做法本质上是一样,这两项在频谱上只要分离了,就可以利用算法的方式将其滤波,取想要的信息用于重建。同轴数字全息,没有干涉条纹,后两项的分离就要依靠一些手段,比如多帧的采集,帧间有已知的变化,通过这些变化所能提供的指导来计算消除其余三项,具体的有如相移法等。

全息的方法可以得到样品的复振幅分布,以透射为例也就是透过率和相位分布,实际上求解出的相位分布取决于到达图像采集器平面时两束光之间的光程差,也就是说全息方法求解的相位,实际上反映了样品的某些会影响光程差的特点,如透射型样品的厚度,折射率,反射样品的摆放位置等。

叠层成像

这种成像方法很新,是近几年才提出的成像方法,和全息一样属于对光场复振幅分布的成像。

叠层方法的实验系统相对来说比较简单,除了照明光源和图像采集,它通常不需要借助透镜,只需要待测样品和用于限制光束尺寸的方式(如小孔、透镜等)。

它的大致思想是这样,光源的光通过小孔后照在样品的某一个位置上,最后成像在记录平面上,得到一个强度分布,不妨称之为

,随后可以移动小孔或样品的位置,照明样品的第二个标定位置,即
...由于没有透镜,实际上拍摄的东西都是衍射图,它相当于
样品分布加上小孔衍射及其位置影响之后传播在记录平面上取强度的结果,这一大串话其实就是说了一个映射,我们称之为
,n表示小孔在第几个位置。样品分布只有一个,而它对每一个小孔位置,都能采集到相应的强度分布,
,不同的小孔位置对应的样品区域必须有重叠,其实这个条件等用于待测样品必须唯一,
实际上叠层求解的结果也只有有重叠区域才能真正有效的恢复光场分布。
ea0f1bb87ff144f16d10341e5d24c5bf.png

即便单纯的从解方程的方向考虑,对于每个区域的光场,都是振幅相位两个相互独立的数值需要求解,那么相应的也都需要至少两个有效的已知关系,因此必须要求带求解的有效区域位于小孔位置的重叠区域。

有方程组了,接下来就是具体的求解,或者说重建过程。通常的重建算法,先假设待测的分布是一个常数图像或者随机图像,也就是和待测样品暂时还毫无关系的猜测结果,这样一个

,我可以计算模拟它穿过第一个小孔位置成像在探测器平面的振幅(强度开根号)是什么样,一模拟,发现跟我实验拍
对应的振幅不一样,哪个准呢?当然以实验拍摄为准,因此用我用我拍摄的强度开根号来替换它,再传播回待测的样品平面,得到一个更新的
,再去按照
的方式去传播,所有小孔对应的传播完也就算作一疗程,这个过程通常要重复上几个疗程。

整个重建过程,可以看成是一个在众多约束条件下的求解(或解空间),而基于这个想法,可以预测一个结论,也就是越多个小孔重叠对应的区域复振幅求解结果可能也会越准确,因为用于求解它的参数(信息)会更多一些。

除了叠层成像之外,还有一种有些类似的技术,叫做傅里叶叠层,类比的来说,傅里叶叠层就是对目标光场的频谱分布进行叠层成像。样品本身存在唯一解,那它所对应的频谱分布也就是唯一解。它的实验设置就通过一个照明光的阵列(LED阵列,非相干),每个光源分别照明样品采集图像,相当于从不同的方向进行照明,照明光的方向不同,也就是说光的幅角有所不同,也就相当于不同照明光所对应的光场分布之间具有固定的相移,学过傅里叶光学的话,可能会知道一个结论,两个函数或者分布之间的空域有位移/相移,那么它们对应的频谱之间应当有相应的相移/位移,也就是说,在不同照明光下采集的数据,实际上它们的频谱对应的是目标频谱上的不同区域,相当于在频谱上放一个叠层的小孔进行采集,而这个孔径就对应系统的截止频率。傅里叶叠层的重建方法也就是对目标频谱进行叠层重建的过程,它直接得到的是待测样品的频谱复振幅分布,进行逆傅里叶变换即可得到相应的光场复振幅分布。

f06ab495218b952ed9c881c196f01f46.png
傅里叶叠层实验设置。图片来自网络,如有侵权请联系作者删除。

像素超分辨

一般认为光学系统(不考虑采样)都有一个成像分辨率的极限,一般沿用瑞利极限,超分辨一般指用某种手段来进行能够超过瑞利极限分辨率的成像,不过这里我要介绍的像素超分辨像素超分辨所要打破的是采集器的像素数和像元尺寸的限制。对于一个图像而言,它可以仅用一个像素来表示,那也就是图像各像素点值的平均,那么在这个单像素的图像上,也就很难看到图像分布,也无法判断图像对应的样品到底是什么,当我像素数增多(视场大小不变),相应的图像有效信息也就增多了,像素数越多,越具备展现细节的能力,但是要求每个像素的点值都是准确的,而不能是估测值。

假设系统用一个像素个数确定的图像采集器对样品直接成像,假设就是3*3的图像,那么必然存在一种9*9的分布可以用于表示这个样品,问题是,当我采集了3*3的图像,如何估计9*9的图像?假设3*3图像上一个像素的值为x,那么它所对应的区域在9*9图像上则表示为九个像素值,

,那么唯一的已知条件就是
,已知所有
,可以轻松求解
,但是已知
则很难求解
的组合。
d6233a2b9185cc68f7ad75bafca81e3e.png
左右图表示相同大小的视场,左图的一个值在更大的分辨率尺度上表示多个值,通过有已知微小位移的多幅低分辨率图像,即可建立更多用于求解高分辨率各像素值的等式关系,将结果约束在更小的解空间内。

因此通常的像素超分辨方法,会先上采样待处理的图像,先达到目标的尺度,但是此时的图像的分布还并不准确,需要更多的已知条件,或者说约束条件来进行填充。典型的方法如亚像素位移,对样品多次采集,每次采集位置之间相差很小的距离,这个距离已知,其在亚像素级别,拍m张低分辨率的图像,x的数量增多了,且各自具有已知的差异,就可以联立方程组,在这种情况下,符合约束条件的y的分布数量也就减小,也就可以得到更为精确的高分辨率结果。具体的实施方法通常在此就不再过多介绍,感兴趣的同学可以了解例如POCS,MAP等等算法。

OCT

OCT(optical coherent tomography,光学相干层析),跟前面的成像方式有一种本质性的不同,在OCT系统中,实际上探测器直接采集的是样品的变换域的强度分布,它虽然叫相干层析,实际上使用的是低相干的光源,并且要利用这种低相干的特征。OCT系统通常对反射样品进行成像。

f456dadc717d08fd35c28294cc518874.png
图像来自网络,如有侵权请联系作者删除

与全息类似的,OCT的系统需要两路光,分别为照明样品的物光与用于干涉的参考光,光源低相干,也就是说照明光中的波长并不单一,表现在光谱上有展宽,同样由于低相干,物光和参考光只在它们之间光程小到一定范围的情况下发生干涉,在发生干涉的范围内,光程差越接近于0,干涉的条纹频率越低。参考光的光程确定,假设样品为部分反射平面镜(可能没这么个东西,为了方便理解),与参考光的光程差确定且已知,那么此时这个平面上反射的光越多,相应的频率的干涉就越明显,也就是说形成的干涉条纹对应的正弦分布的振幅就越大,有了这两个条件,也就能够确定如何用OCT系统采集到的干涉图进行成像,不同位置反射光与参考光干涉形成了不同频率,不同振幅的干涉条纹,频率与光程差相关,也就是与拍摄点的轴向位置相关,而振幅与相应的反射率相关,这些干涉条纹加在一起,如何分离?同样在讲傅里叶光学的时候,说到了傅里叶变换的一个重要功能,加在一起的各频率成分,其傅里叶变换域上会相互分离,也就是说,对采集的OCT干涉图进行傅里叶变换,那么它的各空间频率实际上对应了各分布所在的轴向位置,而各频率分布的振幅高低,表示了这个位置上的反射势的大小,因此也就计算出来样品的反射势分布。

OCT按照具体做法分为很多种,但是其基本原理都是如此,实际上有很多成熟的医学造影技术,其基本原理都是一样,如MRI(核磁共振),CT,B超等等,只是使用的信号载体有所不同以及相应使用的设备有所不同,应用场景有所不同,其成像原理并没有差异。

总结一下,说了很多种成像方法,都没有介绍的太详细,我只是想通过这些谈一谈我个人对于计算成像的看法,也就是把成像过程看成是在解方程,在我看来这是成像方法的一个基础框架,而套用这个框架,在分析成像系统时,首先可以判断是否可解(像素超分辨如果只有单帧,即一个方程多个未知数,应当无法得到很精确的解),其次可以根据这套逻辑,搞清楚已知的和待求解的是什么(既可以通过已知图像和系统推测样品,也可以通过已知样品和成像推测系统,甚至可以已知样品和系统预测成像),总之,仅借此文,传达个人的一点想法。

最后,标志性的例行重申,我希望我的科普文章面向的人群是一些非专业感兴趣的人,或者本科生即将接触这些内容,或者学完没学懂,甚至刚读研相关专业但是甚至对这些核心课程都缺乏入门级认识的人,可以定性的先了解一下,再在此基础上填充血肉去深度了解或者进入科研工作,当然也欢迎专业的大佬来批评指正,因此这次写的内容包括很多个人的主观认识,所以其实非常需要有大佬来批评指正。同样如果反响好或者说如果有反响的话,我还会以这个标准再写更多光学方面各个课程科普入门级别的文章。今后应该还会更新一些其他的成像方法,如果内容中有哪些部分我理解的不准确,还请各位大佬批评指正。



推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 大连微软技术社区举办《.net core始于足下》活动,获得微软赛百味和易迪斯的赞助
    九月十五日,大连微软技术社区举办了《.net core始于足下》活动,共有51人报名参加,实际到场人数为43人,还有一位专程从北京赶来的同学。活动得到了微软赛百味和易迪斯的赞助,场地也由易迪斯提供。活动中大家积极交流,取得了非常成功的效果。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 家装日记六:家具采购和瓷砖选择
    本文记录了作者进行家装的过程,包括家具采购和瓷砖选择。作者介绍了自己家的装修风格以及选择烤漆家具和红白系列的原因。作者还提到了装修风格以简约为主,不可以太花哨的要求。最后,作者提到了价格较贵的问题。 ... [详细]
  • 无损压缩算法专题——LZSS算法实现
    本文介绍了基于无损压缩算法专题的LZSS算法实现。通过Python和C两种语言的代码实现了对任意文件的压缩和解压功能。详细介绍了LZSS算法的原理和实现过程,以及代码中的注释。 ... [详细]
  • 本文介绍了数模国赛的报名参加方法,包括学校报名和自己报名的途径。同时给出了建模竞赛的建议,重在历练的同时掌握方法以及弥补自己的短板。此外,还分享了论文的结构和模型求解部分的注意事项,包括数学命题的表述规范和计算方法的原理等。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
author-avatar
JIE9118_755
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有