精华内容
下载资源
问答
  • 一行CSS: body{ font-variant-east-asian: traditional; } 网页中的文字就会使用繁体。

    一行CSS:

    body{
    	 font-variant-east-asian: traditional;
    }
    

    网页中的文字就会使用繁体。

    展开全文
  • 原文所在链接:Data pre-processing for variant discovery针对变异发现的数据预处理1.目的 为进行变异发现而进行的数据预处理,是强制性的第一阶段,必须先于所有变异发现。需要对以FASTQ或uBAM格式提供的原始序列...

    原文所在链接:Data pre-processing for variant discovery

    针对变异发现的数据预处理
    1.目的

         为进行变异发现而进行的数据预处理,是强制性的第一阶段,必须先于所有变异发现。需要对以FASTQ或uBAM格式提供的原始序列化数据进行预处理,以生成可用于分析的BAM文件。涉及到对照参考基因组操作、一些数据清洗操作,来纠正技术偏差、使得数据更适于分析。

                                                       

    2.期望输入

          这个工作流是被设计用于对单个样本进行操作的,因此,数据最初以被称为readgroups的不同子集组织起来。这些readgroups对应于由多重化(是混合多个文库、在多条泳道上序列化这些文库的过程,以减少风险和人为因素的影响)产生的文库交集(从生物样本中提取、用于测序的DNA产物,包含用可识别条形码进行片段化、标记的产物)和泳道(在DNA测序芯片上的物理分离单位)。

            我们所参照实现的,期望读取的数据是以未映射的BAM(uBAM)格式输入的。转换使用程序可以实现从FASTQ格式到uBAM格式的转换。

    3.主要步骤

            通过将序列读取映射到参考基因组,我们开始进行数据预处理,这种方式可以产生按坐标排序的SAM/BAM格式的文件。而后,我们标记重复数据,来减轻数据生成步骤(如PCR扩增)引入的偏差。最后,考虑到变体调用算法很大程度上依赖于每个序列读取分配给各个碱基调用的质量分数,我们重新对基准质量评分进行。 

    3.1映射到参考基因组

    需要的工具:BWA,MergeBamAlignments

            作为第一个处理步骤,这个步骤是按每个读取组进行的,由将每个独立的读取对映射到参考基因组(一种对常见基因组序列--用于所有基因组分析的共同协调框架,的合成单链表示)操作组成。由于映射算法独立地处理每个读取对,因此,这一步骤可以采取大规模并行化的形式进行处理,以提高吞吐量,满足需求。

    3.2标记重复

    需要的工具:MarkDuplicates,SortSam

            作为第二个处理步骤,这个步骤是按每个样本进行的,识别可能通过一些人为过程从相同原始DNA片段的重复中产生的读取对。识别过程中所需要的操作被认为是非独立地观察,因此,程序在每一组重复内标记除读取对之外的所有对,使得它们在变体发现过程中被默认忽略。这一步骤构成了一个主要的瓶颈,因为它涉及在所有readgroups范围内对所有属于样本的读取对进行大量比较。而后,进行排序操作(没有明确地显示在工作流中),排序操作也导致了性能瓶颈,因为它也是对所有属于样本的读取对进行操作。两种算法持续地成为优化工作的目标,来减少对延迟的影响。

    3.3基准(质量评分)重新校准

    需要的工具:BaseRecalibrator,Apply Recalibration,AnalyzeCovariates(可选)

            作为第三个处理步骤,这个步骤是按每个样本进行的,应用机器学习来检测和校正基准质量评分(由定序器对每个基准指定的置信度值)中的系统误差模式。在变异发现过程中,基因质量评分对衡量支持/反对可能的变异等位基因的证据的权重发挥着重要作用,因此,纠正在数据中所观察到的任何系统性偏差都是很重要的。偏差可能源于文库制备、测序过程中的生物化学过程,也可能源于芯片的制造缺陷或测序仪中的仪器缺陷。重新校准过程包含从数据集的所有碱基调用中收集协变量统计数据,根据这些统计数据构建模型,而后基于构建的模型,将基准调整应用与数据集中。初试数据收集可通过散射基因组坐标并行化,通常通过对染色体或染色体批次进行散射,如果需要也可以进一步细分以提高吞吐量。

           而后,必须将按区域统计的数据收集到单个全基因组共变模型中,这一步是不可能并行化的,单它在计算上是微不足道的,因而不会成为一个瓶颈。最后,应用从模型导出的重新校准规则到原始数据集中,来生成重新校准数据集。与初始统计信息收集的并行化处理方式相同,在基因组区域间进行并行化处理,而后,通过一个最终的文件合并操作,为每个样本生成一个可用于分析的文件。


    展开全文
  • 目录写在前面基于核聚类的空变模糊核估计以及图像去模糊摘要关键字1. 介绍2.相关工作3.模糊核估计和去模糊框架3.1 图像块模糊核...文章:Space-variant blur kernel estimation and image deblurring through kerne...

    写在前面

    文章:Space-variant blur kernel estimation and image deblurring through kernel clustering
    链接: https://www.sciencedirect.com/science/article/abs/pii/S0923596518309925

    第一次做翻译,求大佬轻喷。

    基于核聚类的空变模糊核估计以及图像去模糊

    摘要

    本文提出了一种空变模糊核估计以及图像去模糊的框架。对于空变模糊核估计,本文将输入图像分成多个小块,对于每个小块,模糊核是可以估计的。接着将估计出的核进行分类以确定图像中不同的内核簇。在聚类过程中,不可靠的模糊核将被淘汰。每个内核簇的模糊核最后将使用对应的图像区域进行优化,该图像区域为与集群中内核相关的图像块的并集。对于空变图像去模糊,将整个图像与每个模糊核进行反卷积以生成一组去模糊图像。然后将这些图像融合成无模糊图像,融合过程会从去模糊图像集中选取最佳区域。

    关键字

    空变图像去模糊;空变点扩散函数(PSF)估计;图像融合

    1. 介绍

    在很多成像应用中,所记录的图像是能够理想化表示场景的真实图像的模糊版本。导致模糊的常见原因有大气畸变、光学像差、传感器上像素点的平均以及相机和目标物体间的运动。图像恢复的目的是从一张或一组图像中恢复出真实图像。恢复问题往往是不适定的,需要通过正则化来为恢复后图像增加一些所需的属性。
    大多解决图像去模糊问题的算法都假设退化过程涉及线性(平移)不变模糊核,即点扩散函数(PSF)。当点扩散函数未知时,该问题被称为盲图像反卷积。今年,可以处理大移动造成的模糊的非常成功的盲图像反卷积技术已经开发出来。然而,一般来说整个图像被单个点扩散函数模糊的假设是无效的。例如,当相机抖动(即空间变化的运动模糊)或景深相对狭窄(即空间变化的离焦模糊)时,场景中会产生不可忽视的深度变化导致空变模糊。由于相机或场景的旋转导致的模糊是另一种空变模糊。对于深度变化导致的空变模糊,模糊核会因不同的区域深度而缩放。对于旋转导致的模糊,可对模糊核进行参数化建模。通常,场景会是动态的,除了大气畸变、深度变化和光学像差外,还有对象的独立运动。因此,处理任意类型的空变模糊核是有必要的。这是一个具有挑战性的任务,需要对图像的模糊区域进行显式或隐式的分割。
    本文提出了一种不受参数核限制的盲空变去模糊框架。我们的策略有以下主要步骤:粗略估计小图像块的模糊核;通过核聚类以确定场景中的重要模糊;使用图像区域及其对应内核簇优化内核;最后通过核估计和图像融合进行反卷积以进行时变去模糊。在此框架内,特定的方法(例如模糊核估计、聚类以及图像融合)可以改变。
    在第2章中,我们介绍了文献中的相关工作。在第3章,我们详细介绍该框架以及每步中的特殊方法。我们在第4章中提供了实验结果,第5章讨论了参数的选择以及其计算复杂度,最后在第6章总结全文。

    2.相关工作

    在本此工作中,我们在解决单幅图像的盲去模糊问题,其中的卷积核是时变的且没有任何的特殊参数来源。因为我们的方法在局部区域使用了空间不变的盲去模糊方法,所以我们先简要回顾一下此类技术,主要是模糊核不受限于参数的技术。
    一种常见的空间不变模糊类型是由于曝光期间相机的抖动而引起的运动模糊。文献[7]中的方法需要用户选取一个并未饱和的矩形块并初步猜测模糊卷积核的方向(水平或垂直)。优化过程基于贝叶斯框架,其中清晰图像的先验是梯度图像的高斯混合,模糊核的先验是指数分布的混合,该框架可以提高核系数的稀疏性。在文献[8]中,模糊核的模型也是指数分布的,但清晰图像的模型是全局先验和局部先验的乘积。全局先验是通过连接两个(线性(一次)或二次)的函数,在对数空间内对图像梯度分布进行建模来定义的。局部先验是通过高斯分布中模糊图像和非模糊图像间的梯度差异来定义的。该方法需要对模糊核进行初步估算,其可以是由用户给出。
    上述方法需要用户输入模糊核的估计初始值。也可以使用真实(未模糊)图像来进行初值估计。在文献[9]中,通过使用边缘检测器找到边缘的位置与方向,再沿着边缘轮廓传播局部最大和最小像素值来形成图像的锐利边缘,从而可以预测一张模糊图像的“锐利”版本。预测出锐化图像后,便可在贝叶斯框架下使用高斯先验,通过核梯度和噪声项进行核估计。在文献[10]中,通过应用双边滤波,冲击滤波和梯度幅度阈值估计来消除估计中的小梯度,从而预测出初始的非模糊图像。通过L2正则化约束的最小二乘法可以迭代更新内核和清晰图像。在迭代过程中,梯度幅度阈值会被降低以期在估计中包含更多的梯度值。文献[11]中的方法的第一步也是使用带有冲击滤波器的尖锐边缘构造,选择有效边缘,并使用最小二乘法进行粗略的核估计。第二步是使用选定的区域和L1正则化来细化粗核估计。最后,使用全变分(TV)——L1方法对图像进行反卷积。除了使用稀疏性促进全变分和L1范数正则化外,文献[12]中还探讨了使用框架(framelets,用于图像)和曲线(curvelets,用于模糊核)等的使用。文献[13-15]中还有一些在不同模糊条件下的多张图片的空间不变盲图像去模糊的方法。
    除了将相机抖动建模为二维平面运动外,还可以使用三维相机运动模型。文献[16]中考虑了相机围绕其光学中心的三维旋转(旋转、俯仰和偏航(左右))引起的空间变化模糊问题。参数化模糊模型被视为从三维旋转中单应性变换得到的线性组合,其用近似边缘化和最大后验方法来处理模糊图像。除了三维旋转外,文献[17]中还使用滚动(Z轴旋转)和面内(XY)平移的方式。在文献[2]中,不再是将单应性用于锐利图像,而是对单像素网格点进行单应性变换以得到基础模糊核。在此基础上可以对内核进行线性组合以生成由于相机抖动产生的空间变化模糊,从而产生有效的算法。还有基于硬件的方法,文献[18]中使用了智能手机中内置的惯性传感器(陀螺仪传感器)用于精确的模糊核估计。
    文献[19]中考虑了旋转模糊。首先预测旋转物体或相机所产生的透明度贴图;然后使用透明度贴图估算其旋转运动的参数。文献[20]中提出了另一种基于透明度的方法,其使用文献[7]中的方法获得模糊区域的模糊核,然后使用Richardson–Lucy算法对其进行反卷积。
    一些空变去模糊方法局限于离焦模糊,即其内核形状是固定的,但其尺度随深度而变化。文献[21]中匹配了具有相似内容但离焦模糊程度不同的图像块;对于具有相似内容的图像块,同伙使用离焦模糊较少的图像块对具有较多离焦模糊的图像块进行去模糊。该方法要求柑橘离焦量对输入图像进行分割,离焦量是通过优化确定高斯核的比例来决定的。在文献[22]中,首先通过局部对比度测量以完成分割,然后使用马尔可夫随机场传播和图分割技术对深度图进行细化。文献[23]使用局部对比度测量引导滤波生成模糊图[模糊映射?](即高斯核尺度图[高斯核尺度映射?]);然后使用L1-L2优化,用不同的高斯核对输入图像进行去模糊,以获得多个去卷积图像,最后使用模糊图将他们合并成单个图像。文献[24]中给出了另一种方法,该方法使用局部方差进行尺度估计,并使用截断约束的最小二乘法来完成恢复。结果表明,模糊核尺度识别是空变离焦去模糊的关键部分。文献[25]中的研究还表明,使用编码孔径代替传统的全开放孔径,可以提高尺度识别的性能。
    有一些方法是根据模糊线索对图像进行第一次分割。文献[26]中依据局部功率谱、梯度直方图、最大饱和度和局部自相关等特征,使用贝叶斯分类器分割出图像的清晰、线性运动模糊和离焦模糊区域。文献[27]中使用了子带分解获得的特征进行分割,这些特征揭示了小邻域被候选模糊核模糊的可能性,这仅限于特定长度的水平和垂直盒式滤波器。文献[28]假设在非模糊背景中存在单个模糊物体,且其沿某一方向匀速运动。首先基于图像的导数对图像进行分割,确定模糊区域中核的大小与方向,最后使用Richardson-Lucy算法对模糊区域进行反卷积。文献[3]提到了在期望最大化框架中显示提取深度图、参数模糊核估计以及每个深度的反卷积。在文献[29]中,清晰图像和运动方向同时通过TV-L1模型进行估计。运动流估计的正则化结合了边缘图,因此可以保持清晰的运动边界。局部模糊核定义为线性核,其方向和长度由运动流确定。
    基于块的核估计和去模糊也是一种可行的办法。文献[30]中首先估计了局部区域的内核。其假定相邻的内核间具有相似的模糊结构。EMD距离(Earth mover’s distance)用于测量内核块之间的相似性。最后,正确的内核不变,错误的内核被替换为相邻的内核。文献[31]中使用了双边滤波和冲击滤波来估计清晰图像;估计局部模糊核的同时提高相邻内核间的平滑度;识别出不良的内核估计值并用相邻内核替换。文献[32]中利用对应图像区域的信息及其与相邻内核的关联性,对初始局部模糊内核估计值进行了修正。
    近来,一些方法中将卷积神经网络(CNNs)用于动态场景的去模糊中,如文献[5,33]。文献[33]将模糊的输入图像划分为一组重叠的块,然后使用CNN在块级预测运动模糊核。为了学习预测运动分布的有效特征,该方法通过离散化运动空间,即运动矢量的长度和方向的范围,产生一组候选的运动核。最后,使用马尔科夫随机场模型,将块级运动核融合到图像的密集运动核场中。该模型可确保为每个像素通过CNN估计得到具有较高置信度的运动核,并且可以提高附近运动核的平滑度。在文献[5]中,为了避免阐释与核估计相关的人工痕迹,模糊数据集的生成和清晰图像的估计均采用了无模糊核的方法。为了模拟模糊过程,该方法使用高速摄像机连续拍摄清晰帧,然后随时间进行合并。为了直接从模糊输入中恢复清晰图像,其提出了一种多尺度损失的CNN模型。在多尺度损失方法中,每个中间输出都是所对应尺度的清晰图像,因此大大提高了收敛性。这些基于学习的方法可以处理多种类型的模糊,但其有效性在很大程度上取决于训练数据的多样性和模型拟合的成功与否。
    在本文中,我们提出了一种但图像盲反卷积框架,其中的模糊是空变的、非参数的。其对图像中的模糊核没有类型和数量的限制。该算法能有效的识别模糊核,并使用均值漂移聚类将图像划分为均匀的模糊区域,最终通过图像去模糊和融合产生清晰的图像。该框架的初步版本已作为会议论文发布,见文献[34]。本文对该方法做了实质性的改进,包括改进的核估计方法和更好的聚类方法(使用均值漂移聚类代替K均值聚类,因为后者需要用户输入聚类个数)。我们将提出的方法与文献[34]中的方法进行了比较,并提供了与文献中其他知名方法的视觉和定量比较。

    3.模糊核估计和去模糊框架

    我们提出的框架有三个主要步骤:(1) 图像块模糊核估计;(2) 使用核聚类以优化模糊核;以及(3) 通过图像融合进行空变去模糊。图1给出了这些步骤的说明。
    图 1 对提出的空变去模糊框架的说明。对于每个图像块,可以估计其模糊核。然后将内核聚类以确定主簇。便可获得核簇的对应图像区域。对于每个图像区域的内核进行精确估计。使用每个内核对整个输入图像进行去模糊以获得一组去模糊图像。然后对去模糊图像进行融合以生成清晰图像。

    3.1 图像块模糊核估计

    第一步是为了估计输入图像中的局部模糊核。为了估计像素所在处的局部模糊核,这里选择了像素周围的一个小区域,采用空间不变的模糊核估计方法。在我们的方法中,我们采用了文献[10]中提出的粗模糊核估计方法,该方法可以合理快速的以可接受的精度计算模糊核。该方法被用于每个图像块BpB_p(来自模糊输入图像BB)以获得清晰图像IpI_p和模糊核kpk_p。每个图片块不必是重叠的;我们使用滑动窗口的方法,步长为图像块大小的四分之一。

    3.2 使用核聚类以优化模糊核

    从图像块估计的局部模糊核并不一定都是准确可靠的。一些图像块可能来自于存在多种内核的过渡区域;一些图像块可能来自于纹理强度不足以产生精确核估计的区域。我们提出对估计的模糊核进行聚类,以确定图像中的主要模糊,并舍弃掉不可靠的核。核聚类后,对应的图像块与特定的内核簇相组合以形成该聚类的较大区域。使用较大的区域可以获得更准确的内核估计。
    在没有图像模糊核数量的先验知识的情况下,我们使用文献[35]中提出的均值漂移聚类方法。聚类过程从内核空间中随机选择的点开始。平方和之差小于固定带框的内核估计值将加入到簇中。随着新的点的加入,簇的质心(centroid)得以更新。随着质心的更新,新的点被加入到簇中,然后重复该过程直到收敛。最后,如果两个簇的质心之间的距离小于带宽的一半,则检查这些簇能否合并。具有均匀模糊核和足够的内部纹理有望产生良好的核估计;因此它们也更有可能形成可靠的集群。具有不均匀模糊或纹理不足的图像块的核估计一般较差,且不会与主簇聚合。
    一旦获得了簇,便可通过组合聚类中与其核对应的图像块,将图像分割成具有均匀模糊的区域。为了产生更准确的结果,我们重新估计了新的图像区域组合B^i\hat{B}_{i}的核k^i\hat{k}_{i}。为了完善内核,我们测试了文献[10]和[11]中介绍的方法。文献[11]中的方法比文献[10]中的方法需要更高的计算成本,但产生了更好的结果。(有关内核估计器的实现细节,请参阅文献[10]、[11]。)
    图 2 模糊核估计和聚类。从左往右依次为原始图像、图像块估计的内核、内核聚类后的图像区域及其对应的优化后的内核。图像块大小和内核窗口大小在所有实验中都是固定的,因此,可以根据图像大小获得不同数量的内核。输入图像核内核簇均被缩放以适合对应图像。
    在图2中,我们提供了一组实验中使用的输入图像。该图包括内核簇的对应区域和精确的内核估计值k^i\hat{k}_{i}。图像块大小和内核窗口大小在所有实验中都是固定的,因此,根据输入图像的大小可以获得不同数量的内核。(这些参数的值在第4章中给出)

    3.3 通过图像融合进行空变去模糊

    聚类过程使得一些核及其对应的区域未被分配。这些未分配的块是已知的优化后内核区域的扩展,最后应当加以注意。我们的方法是对每个优化后的内核k^i\hat{k}_{i}的整个输入图像BB进行去模糊处理,以获得一组去模糊图像I^i\hat{I}_{i},并使用图像融合过程,在来自去模糊图像I^i\hat{I}_{i}选择在像素位置的最佳像素值,从而产生清晰的图像。
    对于图像反卷积,我们使用的是文献[36]中基于TV-L1的方法,该方法可以最小化以下成本函数Bk^iI^i1+λI^i2\left\|B-\hat{k}_{i} \otimes \hat{I}_{i}\right\|_{1}+\lambda\left\|\nabla \hat{I}_{i}\right\|_{2},其中λ\lambda为正则化常数。
    对于融合过程,在每个像素位置都从其中一个去模糊图像中选择一个像素值。该选择基于以下观察:在恢复的图像I^i\hat{I}_{i}中,对于所应用的内核正确的区域,可以实现平滑恢复;而图像的其他部分会产生严重的振铃效应(ringing artifacts),因为这些区域无法由该内核解释。与自然图像的梯度相比,这些振铃及其强烈,一般具有很大的梯度。这一信息 在文献[25]中曾用于确定模糊核离焦深度的比例。除了自然图像中梯度的稀疏分布外,我们还在融合过程中使用了该信息。在我们的实现中,从去模糊图像中选择一个像素,该去模糊图像在该像素周围的局部窗口中产生最小能量。能量最小化函数定义为:

    (x,y)WB(x,y)k^iI^i(x,y)2+αI^i(x,y)\sum_{(x, y) \in W}\left|B(x, y)-\hat{k}_{i} \otimes \hat{I}_{i}(x, y)\right|^{2}+\alpha\left|\nabla \hat{I}_{i}(x, y)\right|
    其中(x,y)(x, y)表示像素位置,WW表示该像素所在的局部窗口,α\alpha是正则化常数。

    4. 实验结果

    我们在各种不同类型的空变模糊导致退化的图像上测试了所提出的框架。并与这些可以处理空变模糊的方法进行了比较:

    • Joshi 等 (2010) [4]
    • Hirsch 等 (2011) [2]
    • Shen 等 (2012) [23]
    • Hu 等 (2014) [3]
    • Qian 等 (2014) [34]
    • Sun 等 (2015) [33]
    • Nah 等 (2017) [5]
    • Shen 等 (2018) [30]

    我们在图3-10中提供了视觉比较。在表1中,我们使用了文献[6]中提供的数据集进行了定量比较。

    Image name Sun et al. [33] Nah et al. [5] Proposed
    PSNR SSIM PSNR SSIM PSNR SSIM
    Manmade 01 17.51 0.75 16.54 0.71 18.41 0.79
    Manmade 02 14.16 0.61 14.15 0.59 15.62 0.67
    Manmade 03 16.82 0.72 18.12 0.77 21.25 0.87
    Manmade 04 16.72 0.71 19.33 0.80 20.16 0.84
    Natural 01 20.42 0.87 20.62 0.87 20.26 0.86
    Natural 02 17.77 0.79 18.35 0.81 19.61 0.84
    Natural 03 18.82 0.83 19.41 0.85 23.09 0.93
    Natural 04 19.20 0.83 19.98 0.86 20.14 0.86
    People 01 31.48 0.96 32.29 0.95 31.09 0.96
    People 02 27.36 0.91 28.01 0.91 27.44 0.92
    People 03 31.02 0.95 31.11 0.94 34.10 0.98
    People 04 31.10 0.95 31.99 0.95 32.37 0.96
    Average 21.86 0.82 22.49 0.83 23.62 0.87

    我们所提出的方法有几个参数需要进行设置。其中之一是图像块的大小。图像块大小应当仔细选择;且应当大于模糊核的大小。一方面,当图像块选择过大时,该区域中可能包含多种类型的模糊,这将降低核估计的准确性。另一方面,过小的图像块可能因为纹理不足而无法准确估计。在我们的所有实验中,图像块的大小被设置为312x208,这是我们最初使用进行实验的六分之一。在第5章,我们提供了有关图像块大小对实验结果的影响。
    弄一个参数是滑动窗口中用于获取局部图像块的步长。如果使用步长为一个像素的滑动窗口,则由于要估计图像中每个可能的图像块,计算成本将达到最大。如果使用不重叠的图像块,则可能丢失均匀模糊的区域。在我们的实验中,水平和垂直方向的步长均被设置为图像块大小的四分之一。我们将在下一章进一步讨论步长。
    内核聚类步骤采用的是均值漂移聚类算法,其中距离测度为两内核间的平方差纸盒,带宽设置为4.5,这些是由经验决定的。带宽值对实验结果的影响将在第5章中给出。核估计的参数是按照文献[11]中的推荐参数设定的;图像反卷积的参数使用的是文献[36]中的推荐参数。对于图像融合,局部窗口大小设置为模糊核的大小,正则化常数α\alpha设置为10。一旦参数确定,所有实验中的参数值都保持不变。
    在图3中,输入图像中有至少两个不同方向上的离焦模糊核运动模糊,如图2中的模糊内核块所示。可见例如文献[11]中的这种为空间不变模糊所设计的方法,无法处理这种类型的图像。专为离焦模糊设计的方法,如文献[23]中所提到的,也无法解决运动模糊。在这些情况想,本文所提出的方法效果最好。因当注意的是,本文提出的方法的内核改进是基于文献[11]的,当模糊是空间不变时,它确实能产生非常好的结果,但是在本例中所看到的其他情况都不甚理想。
    图 3 空变图像去模糊的比较
    图4中的输入是由于相机抖动而产生的模糊;其场景也是非平面的。输入图像来自于文献[2]。结果表明,该方法笔文献[2]和文献[34]中的方法更有效。
    图 4 空变图像去模糊方法的比较 数据来源:输入图像取自文献2
    图5中的输入具有不同深度的对象,并存在一些运动模糊,但相比图4较少。输入图像来自于文献[3]。与文献[3]和[34]中的方法相比,该方法产生的结果最清晰。
    图 5 空变图像去模糊方法的比较 数据来源:输入图像取自文献3
    图6中的输入图像来自于文献[30]。将该方法与文献[4,30]和文献[34]。从不同的特征(close-up 特写)区域来看,该方法总体上具有更好的恢复能力。
    图 6 空变图像去模糊方法的比较数据来源:输入图像取自文献4
    今年来开发出的基于卷积神经网络(CNN)的方法处理空变模糊是可以得到出色的结果。图7-图9中的输入图像来自于文献[5],该文献提出了一种基于CNN的空变去模糊方法。在这些图片中,我们还包括了文献[29]和文献[33]中方法的结果,它们也是为了消除空变模糊而设计的。对这些结果进行评估,该方法与基于CNN的方法相比,产生了更好或类似的效果。
    图 7 空变图像去模糊方法的比较数据来源:输入图像取自文献5
    图 8 空变图像去模糊方法的比较数据来源:输入图像取自文献5
    图 9 空变图像去模糊方法的比较数据来源:输入图像取自文献5
    图 10 空变图像去模糊方法的比较数据来源:输入图像取自文献6
    最后,我们将文献[5]和[33]中基于CNN的方法与本文方法进行定量比较。数据集取自文献[6],其提供了对应的真实图像。在表1中,我们列出了具有不同模糊量的图像的峰值信号比(PSNR)和结构相似性(SSIM)值。有关数据集的更多信息,可见文献[6]。在图10中,我们提供了来自该数据集的视觉比较示例。

    可以看出,虽然一些方法是针对各种特定类型的模糊情况而设计的,但所提出的方法可以处理各种模糊情况,并产生能与其他方法相媲美甚至更好的结果,即使在所比较方法是专门针对这种情况设计的时候也是如此。

    5. 讨论

    本文提出的框架设计多个步骤,在表2中,我们提供了每个步骤的详细计算时间。由于集群的数量和集群区域的大小取决于输入图像,因此整个过程的时间不固定。在表格中,我们提供了当输入的图像数据集尺寸为1248x1872时的平均计算时间(运行10次)。每次运行过程中图像块的大小为312x208,步长设置为图像块大小的四分之一。实验是在装有 Intel Xeon® CPU @3.50GHz 和4.7GB内存的计算机上完成的。需要注意的是,某些步骤可以很容易的并行化:可以并行处理图像块以获得初始模糊内核、可以并行完成每个集群的内核优化、可以并行完成每个内核的图像去模糊。如果没有利用可能的并行化,则计算时间将变得很长。以大小为1248x1872的图像为例,按照所设定的图像块大小和步长将有400个图像块。如果按顺序对图像块进行内核估计,则所有补丁的时间将变为4s x 400 = 1600s,大约27分钟。在这种情况下,总时间约为半小时。

    Computational cost
    Algorithm step Average time
    Image patch blur kernel estimation 4 s per patch
    Kernel clustering 2 s
    Kernel refinement 6 s per image
    Image deblurring 70 s per image
    Image fusion 26 s

    如前文所述,本文提出的框架非常灵活,可以适应在不同步骤中使用的技术的变化。聚类、核估计、去模糊或融合技术可以用其他方法替代。这些方法的参数可以通过微调以获得最佳的整体性能。对于本文中的所有试验,我们均使用了一组固定的参数。这些参数是通过试验评价确定的。在此,我们将进一步讨论这些参数对性能的影响。其中一个关键参数是图像块大小。当其太小时,可能没有足够的图像特征来获得可靠的模糊核;当其太大时,很难获得只有一种类型模糊的图像补丁。在图11中,我们比较了三种不同的图像块大小。我们选择的图像块大小为312x208,其可以在每个簇内产生足够大的具有均匀模糊的簇区域。较小的图像块会导致很多小的簇区域,而较大的图像块会导致包含多种类型模糊的较大簇区域;在这两种情况下,去模糊的性能均会降低。
    图 11 图像块大小对聚类和最终去模糊的影响。其显示了在不同图像块大小下的聚类区域和去模糊图像。在每种情况下,步长是图像块大小的1/4。
    第二个关键参数是步长,其表示从一个图像块到另一个图像块间的位移。在极端情况下,步长可以设置为一个像素;这将增加图像块的数量(因此也会增加估计模糊核的数量),并且我们期望具有更可靠的内核聚类。其缺点是计算成本会增加,因为必须估计每个图像块的模糊内核。随着步长的增加,我们会发现其性能会因内核数的减少和丢失均匀和区域的概率增加而下降。在图12中,我们比较了步长设置为四分之一或二分之一的图像块大小。我们可以看到,较大的步长(图像块大小的二分之一)会使得最终的去模糊图像中有明显的人工痕迹。表3提供了对文献[6]中一组图像上不同图像块大小和步长数量的定量比较;这些定量结果与视觉观察结果一致。
    图 12 步长对聚类和最终去模糊的影响。每种情况下图像块的大小为312x208。

    Image name Patch size =240 × 156 Patch size = 312 × 208 Patch size = 312 × 208 Patch size = 468 × 312
    Stride = Patch size/4 Stride = Patch size/4 Stride = Patch size/2 Stride = Patch size/4
    PSNR SSIM PSNR SSIM PSNR SSIM PSNR SSIM
    People 01 32.04 0.95 31.09 0.96 32.04 0.95 32.04 0.95
    People 02 26.65 0.9 27.44 0.92 26.65 0.9 27.12 0.92
    People 03 24.32 0.86 34.1 0.98 31.93 0.95 31.93 0.95
    People 04 18.53 0.63 32.37 0.96 31.23 0.95 31.23 0.95
    Average 25.38 0.83 31.25 0.96 30.46 0.93 30.58 0.94

    另一个重要的参数是均值漂移聚类带宽。当带宽太大时,不同类型的内核将连接在一起;当带宽太小时,内核(即使来自同一类型的模糊)便无法分组,而且某些模糊类型可能被跳过。在图13中,我们提供了不同带宽值的结果;我们看到4.5的带宽值与其他值相比产生了较好的结果。
    图 13 均值漂移聚类带宽对去类和最终去模糊的影响
    最后,我们探究了和聚类中的初始点对性能是否有影响。我们随机选择种子点,并重复该过程十次。与我们预期的一样,不同的种子点可能会导致集群的稍有不同;然而,这不会导致最终去模糊图像中有任何重大变化。如图14所示。
    图 14 聚类种子点随机选择对聚类收敛和最终去模糊的影响。(a)中的结果在10次运行中的第7次获得;(b)中的结果在10次运行中的第3次获得。

    6. 结论

    本文提出了一种适用于空变模糊的盲图像去模糊方法。该方法可以处理任何类型的空变模糊,而无需对摄像机或物体的运动进行任何参数化假设。该方法将图像分割成重叠的图像块,并估计每个图像块中的模糊核。然后对估计的内核进行聚类以找到主模糊核和对应的区域。某些图像区域可能仍然为分配给集群。对于每个聚类区域,模糊核都将进行优化。然后用每个改进后的模糊核对输入图像进行去模糊处理。图像的融合过程将这些去模糊图像合并为一个单独的图像,使用能量函数选择最佳像素。尽管我们为每个步骤提供了一组特定的技术,但是该框架可以与其他技术和参数选择一起使用,从而有可能在将来进行改进。将该方法与其他各种空变的去模糊方法进行了比较;并在各种模糊情况下产生可以媲美或更好的效果,包括相机抖动、离焦模糊和对象运动。

    参考文献

    [1] B.K. Gunturk, X. Li, Image Restoration: Fundamentals and Advances, CRC Press, Boca Raton, FL, 2012.
    [2] M. Hirsch, C.J. Schuler, S. Harmeling, B. Schölkopf, Fast removal of non-uniform camera shake, IEEE Int. Conf. Comput. Vis. 463–470 (2011).
    [3] Z. Hu, L. Xu, M.H. Yang, Joint depth estimation and camera shake removal from single blurry image, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 2893–2900, 2014.
    [4] N. Joshi, S.B. Kang, C.L. Zitnick, R. Szeliski, Image deblurring using inertial measurement sensors, ACM Trans. Graph. 29 (2010).
    [5] S. Nah, H.T. Kim, K.M. Lee, Deep multi-scale convolutional neural network for dynamic scene deblurring, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 3883–3891, 2017.
    [6] W.S. Lai, J.B. Huang, Z. Hu, N. Ahuja, M.H. Yang, A comparative study for single image blind deblurring, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, 2016, pp. 1701–1709.
    [7] R. Fergus, B. Singh, A. Hertzmann, W.T. Freeman, Removing camera shake from a single photograph, ACM Trans. Graph. 25 (2006) 787–794.
    [8] Q. Shan, J. Jia, A. Agarwala, High-quality motion deblurring from a single image, ACM Trans. Graph. 27 (2008) 1–10.
    [9] N. Joshi, R. Szeliski, D.J. Kriegman, PSF estimation using sharp edge prediction, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 1–8, 2008.
    [10] S. Cho, S. Lee, Fast motion deblurring, ACM Trans. Graph. 28 (2009) 145:1–145:8.
    [11] L. Xu, J.Y. Jia, Two-phase kernel estimation for robust motion deblurring, European Conf. Comput. Vis. 6311 (2010) 157–170.
    [12] J. Cai, H. Ji, C. Liu, Z. Shen, Blind motion deblurring from a single image using sparse approximation, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 104–111, 2009.
    [13] J. Chen, L. Yuan, C.K. Tang, L. Quan, Robust dual motion deblurring, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 1–8, 2008.
    [14] F. Li, J.Y. Yu, J.X. Chai, A hybrid camera for motion deblurring and depth map super-resolution, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 1–8, 2008.
    [15] L. Yuan, J. Sun, L. Quan, H.Y. Shum, Image deblurring with blurred/noisy image pairs, ACM Trans. Graph. 26 (2007).
    [16] O. Whyte, J. Sivic, A. Zisserman, J. Ponce, Non-uniform deblurring for shaken images, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 98, 2010, pp. 168–186.
    [17] A. Gupta, N. Joshi, C.L. Zitnick, M. Cohen, B. Curless, Single image deblurring using motion density functions, European Conf. Comput. Vis. 6311 (2010) 171–184.
    [18] O. Šindelář, F. Šroubek, Image deblurring in smartphone devices using built-in inertial measurement sensors, J. Electron. Imaging 22 (2013).
    [19] Q. Shan, W. Xiong, J.Y. Jia, Rotational motion deblurring of a rigid object from a single image, IEEE Int. Conf. Comput. Vis. 1–8 (2007).
    [20] J. Jia, Single image motion deblurring using transparency, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, 2007.
    [21] Y.W. Tai, H.X. Tang, M.S. Brown, S. Lin, Detail recovery for single image defocus blur, Trans. Comput. Vis. Appl. 1 (2009) 95–104.
    [22] Y.W. Tai, M.S. Brown, Single image defocus map estimation using local contrast prior, IEEE Int. Conf. Image Process. 1797–1800 (2009).
    [23] C.T. Shen, W.L. Hwang, S.C. Pei, Spatially-varying out-of-focus image deblurring with L1-2 optimization and a guided blur map, in: IEEE Int. Conf. on Acoustics, Speech, and Signal Processing, Vol. 1069–1072, 2012.
    [24] H. Cheong, E. Chae, E. Lee, G. Jo, J. Paik, Fast image restoration for spatially-varying defocus blur of imaging sensor, Sensors 15 (2015) 880–898.
    [25] A. Levin, R. Fergus, F. Durand, W.T. Freeman, Image and depth from a conventional camera with a coded aperture, ACM Trans. Graph. 26 (2007) 1–9.
    [26] R. Liu, Z. Li, J. Jia, Image partial blur detection and classification, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 1–8, 2008.
    [27] A. Chakrabarti, T. Zickler, W.T. Freeman, Analyzing spatially-varying blur, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 2512–2519, 2010.
    [28] A. Levin, Blind motion deblurring using image statistics, Adv. Neural Inf. Process. Syst. 841–848 (2006).
    [29] T.H. Kim, K.M. Lee, Segmentation-free dynamic scene deblurring, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 2766–2773, 2014.
    [30] Z. Shen, T. Xu, J. Pan, J. Guo, Non-uniform motion deblurring with kernel grid regularization signal process, Signal Process., Image Commun. 62 (2018) 1–15.
    [31] S. Harmeling, H. Michael, B. Schoelkopf, Space-variant single image blind deconvolution for removing camera shake, Adv. Neural Inf. Process. Syst. 1 (2010) 829–837.
    [32] H. Ji, K. Wang, A two-stage approach to blind spatially-varying motion deblurring, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 73–80, 2012.
    [33] J. Sun, W. Cao, Z. Xu, Ponce, Learning a convolutional neural network for non-uniform motion blur removal, in: IEEE Int. Conf. on Computer Vision and Pattern Recognition, Vol. 769–777, 2015.
    [34] Q. Qian, B.K. Gunturk, Space-varying blur kernel estimation and image deblurring, IS&T/SPIE Electron. Imaging 9023 (2014).
    [35] Y. Cheng, Mean shift, mode seeking, and clustering, IEEE Trans. Pattern Anal. Mach. Intell. 17 (1995) 790–799.
    [36] J.F. Wang, Y. Zhang, W.T. Yin, An efficient TVL1 algorithm for deblurring multi-channel images corrupted by impulsive noise, J. Sci. Comput. 31 (2009) 2842–2865.

    展开全文
  • 翻译《有关编程、重构及其他的终极问题?》——26.潜伏的VARIANT_BOOL 标签(空格分隔): 翻译 技术 C/C++ 作者:Andrey Karpov 翻译者:顾笑群 - Rafael Gu 最后更新:2017年06月01日 26. 潜伏的...

    翻译《有关编程、重构及其他的终极问题?》——26.潜伏的VARIANT_BOOL

    标签(空格分隔): 翻译 技术 C/C++
    作者:Andrey Karpov
    翻译者:顾笑群 - Rafael Gu
    最后更新:2017年06月01日


    26. 潜伏的VARIANT_BOOL

    下面这段代码摘自NAME项目。PVS-Studio对这段危险的代码诊断如下: V721 The VARIANT_BOOL type is utilized incorrectly. The true value (VARIANT_TRUE) is defined as -1. Inspect the first argument(译者注:大意是VARIANT_BOOL类型被错误的使用了,因为VARIANT_TRUE的实际定义值位-1,请检查第一个参数)。

    virtual HRESULT __stdcall
      put_HandleKeyboard (VARIANT_BOOL pVal) = 0;
    ....
    pController->put_HandleKeyboard(true);

    解释
    这里有句非常诙谐的名句:

    “我们都陷于某种在易被影响的年纪学习基础的原罪”——P.J. Plauger

    这句话非常适用于罪恶的话题。VARIANT_BOOL类型是Viusal Basic带给我们的。我们当前的一些编程麻烦和这个类型有关。关键的问题在于这种类型的“true”其值位-1.

    让我们看看但这个类型的声明以及常量true/false的表达:

    typedef short VARIANT_BOOL;
    #define VARIANT_TRUE ((VARIANT_BOOL)-1)
    #define VARIANT_FALSE ((VARIANT_BOOL)0)

    看上去着没有什么糟糕的,False为0, 而Ture不是0。所以看上去-1是一个非常合适的常量。但这在使用true或者TRUE时而非VARIANT_TRUE时容易导致错误。

    正确的代码

    pController->put_HandleKeyboard(VARIANT_TRUE);

    建议
    假如你看到一个不认识的类型,最好不要慌,而是去查找相关的文档。甚至类型名为BOOL,这也不意味着你能把1放入到这个类型的变量里。

    程序员们有时也会犯下类似的错误,比如在使用HRESULT类型时,尝试去和FALSE或TRUE去比较,但忘了:

    #define S_OK     ((HRESULT)0L)
    #define S_FALSE  ((HRESULT)1L)

    所以我真的要求您在面对新类型时必须特别仔细,不要在编程时过于匆忙去下定义。

    展开全文
  • Variant 英文翻译:变体。 文章目录Chapter4:创建构建Variant4.1 构建类型4.2 product flavor4.3 构建variant4.4 参考资料 4.1 构建类型 在Gradle的Android插件中,构建类型用来定义如何构建一个应用或依赖库。...
  • 看到一个介绍 C++17 的系列博文(原文),有十来篇的样子,觉得挺好,看看有时间能不能都简单翻译一下,这是第六篇~ std::optional, std::any, 和 std::variant 有一个共同特点:他们都支持就地构造.另外的,std::...
  • C++ VARIANT 学习小记录 一:为什么会有这个? 目前,计算机语言有很多(大哥,为什么不能就那么一样呢?),如C++、Java,此外还有JavaScript、VBScript等脚本语言,它们自立门派,各自维护自己的数据类型。 C++是...
  • C++ VARIANT 学习小记录

    2014-07-24 11:01:00
    一:为什么会有这个?... C++是一种强类型语言,即C++中的某个变量,在使用时类型已经确定,C++中的变量都会被翻译成准确的内存地址和大小,如果类型不确定是不可能处理的。当使用C++这样强类型的语言来读取...
  • Android studio 部分翻译

    2019-06-06 18:53:17
    Syncing only active variant You can disable this experimental feature from File → Settings → Experimental → Gradle → Only sync the active variant 仅同步活动变体 您可以从中禁用此实验性功能 文件...
  • 此外,它会被认为是一个单一的variant,并且同一个测试程序将会被用来测试每​​个多APK。 当在variant 上运行install或connectedCheck 任务时,Gradle 会自动匹配把正确的 APK 输出到每一个连接的设备中。
  • 1. 概述LMDB is compact(紧凑的), fast,powerful, and robust and implements a simplified variant of the BerkeleyDB(BDB) API. (BDB is also very powerful, and verbosely documented in its ownright.) After ...
  • TK | 作者LearnKu | 翻译https://www.freecodecamp.org/news/learning-python-from-zero-to-hero-120ea540b567/注:篇幅过长以分为两篇发出,上篇Python基础知识点总结:数据分析从0到大师必Mark的一篇!(上)5类型与...
  • where fixed-part consists of a number of components called fields, and variant-part consists of variants, each of which in turn consists of a number of fields.
  • 继续翻译 4.8 Empty Target Files to Record Events ======================================= The "empty target" is a variant of the phony target; it is used to hold recipes for an act...
  • 翻译系列出现的首要目的是督促本人每周学习以及提升英语能力,所以无法保证文章质量(无论是原文还是翻译),如果本文能让您对原文有大致认知对我来说就很开心了。原文地址:...
  • 为了在裁剪工作期间挑选一个合适的 RUP 变量作为基线,...To pick an appropriate RUP variant as a baseline during tailoring work, a process architect must be cognizant of existing and future states of the...
  • 使用报表变量时,引用“frxVariables”单元。 变量定义在“TfrxVariable” 类: TfrxVariable = class(TCollectionItem) published ... //Name of a variable property Value: Variant; //Value of a variable...
  • 原文所在链接:Tool Documentation Index工具文档索引1.Copy Number Variant Discovery 拷贝数变异发现 2.Coverage Analysis 覆盖率分析3.Diagnostics and Quality Control 诊断和质量控制4.Intervals Manipulation ...
  • 绿色学院 - Green Institute - 不听人间乐 - 想得到 - 做得到 - Xoops <!--.space { font-size: 12px; line-height: 150%; font-weight: normal; font-variant: normal; text-transform
  • 3.7通过NFS使用ELDK 以NFS作为根文件系统的目标机,可以通过NFS使用ELDK。例如,8xx系列的机器,假设ELDK安装在/opt/eldk,可以使用下面的目录作为NFS的根...target_cpu_variantt>/dev 目录下创建必要的设备节...
  • RPM打包探索(rpm-max翻译整理)

    千次阅读 2018-05-22 10:08:57
    1. %global 和 %define 的区别? 这是内置宏,%define用来定义宏,%global用来定义一个全局可见的宏(在整个spec文件中可见) 2. %{!?macro-name} 和 %{?!macro-name} 的区别?...5. 宏定义 %define kernel_variant...
  • 常用的CSS标签标记属性翻译注释

    千次阅读 2009-04-20 09:53:00
    这里收藏一些编写网页的常用属性,便于... 1、字体属性(type)font-family(使用什么字体)font-style(字体的样式,是否斜体):normal/italic/obliquefont-variant(字体大小写):normal/small-capsfont-weight(字体的粗细
  • 对基库的思考 The new Domain Components framework will let developers create reusable domain ... Obviously, we should supply our variant of the domain component library. Our library should be full e...
  • All variables in a dynamically typed language are “variant”-like. This means that their type is not fixed, and is only modified through assignment. Example: 动态类型语言中的所有变量都是“可变”的。...
  • <p>From my first question I've got the following code ...<p>So how to write the code in way so the translation file will take one or another variant of BBB translation and put it in text ? </div>

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

variant翻译