|
发布时间: 2017-12-16 |
综述 |
|
|
收稿日期: 2017-05-12; 修回日期: 2017-09-01
基金项目: 国家自然科学基金项目(61171146,61675124)
第一作者简介:
刘应乾(1980-), 男, 上海大学通信与信息工程学院信息与通信工程专业博士研究生, 主要研究方向为图像处理与模式识别。E-mail:patternclass@shu.edu.cn.
中图法分类号: TP391
文献标识码: A
文章编号: 1006-8961(2017)12-1623-17
|
摘要
目的 格子玻尔兹曼(LB)方法作为一种兼具建模与快速求解偏微分方程(PDE)功能的方法已被成功应用于图像去噪、修复和分割。考虑到国内外尚未有LB方法在图像处理中研究进展的综述论文,为使即将进入该研究领域的学者比较全面地了解该方法的研究现状,本文对其进行系统综述。方法 着重分析了与图像去噪、修复、分割和3维图像处理密切相关的文献,将LB图像处理模型的构建分为自上而下和自下而上两种途径,对图像处理中的LB模型从宏观和微观两个角度进行分类。对模型的计算机实现算法、算法时间复杂度以及模型的具体应用进行分析与总结。最后,讨论了LB方法与PDE方法的本质区别,并指出几个尚未解决的问题。结果 第一,LB方法在图像处理中具有清晰的物理意义,像素值可视被为粒子密度值,像素值的改变可被视为受松弛时间和源项影响的粒子的重新分布;第二,各向异性扩散模型、非线性扩撒模型、线性扩散模型之间的微观区别在于松弛时间的差异,以上模型的时间复杂度依次降低,含源项扩散模型的时间复杂度除松弛时间以外还受外力项的影响;第三,自上而下的建模方法仅仅将LB视为PDE的一种解法,自下而上的建模方法从LB方法的物理意义出发,直接设计演化方程的关键参数,相对于第一种方法更为灵活;第四,LB算法固有并行,编程简单,当该方法被应用于并行平台时,图像数据量越大,GPU/CPU加速比越明显;第五,各向异性、非线性扩散模型可用于图像去噪、修复,含源项扩散模型中外力项的设计对图像分割质量有较大影响。结论 尽管LB方法作为一种固有的并行算法在3维图像去噪、配准和分割等快速图像处理领域具有极高的应用价值,但仍然存在边界条件处理、并行平台选择及优化等几个值得继续研究的问题。
关键词
图像处理; 格子玻尔兹曼方法; 图像扩散格子玻尔兹曼模型; 并行算法; 时间复杂度
Abstract
Objective
Currently, images, such as 3D medical and high-resolution satellite images, provide considerable information, and image processing results are required in real time in many cases, such as clinical and meteorological. Parallel image processing devices, such as graphics processing unit (GPU) and field-programmable gate arrays, have been created for engineers at a convenient price. Partial differential equation (PDE) method is extensively used in image processing. However, its solution methods are time-consuming and difficult to be directly mapped to GPU. Traditional PDE solution methods are contradictory to the assumption that space and time are continuous. Thus, a method that is naturally parallel and simple and with clear physical meaning is required to simulate the macro model described by the PDE. Recently, lattice Boltzmann (LB) method has been applied to image denoising, inpainting, registration, and segmentation as an efficient and flexible method for modeling and solving PDE. However, a systematic review of the applications of LB for image processing has not been found in previous studies. Therefore, this paper proposes the abovementioned literature review to support scholars in gaining further insights into the frontier development of the topic.
Method
In this work, numerous public reports on the applications of LB for image denoising, inpainting, segmentation, and other 3D image processing were initially surveyed using the keywords, "lattice Boltzmann" and "image processing." These reports were classified according to their differences when scholars proposed LB mathematical models, namely, "top-down" or "bottom-up" approaches in terms of macro or micro, respectively. Then, programming algorithms, computing complexities, and application scenarios of LB for image processing were analyzed and summarized. Finally, essential differences between LB and other PDE-solving methods were concluded, and further research directions on this topic were proposed.
Result
First, LB model has a clear physical meaning. The general LB method consists of two steps as follows:a streaming step in which particles (or particle densities) move from node to node on a lattice and a collision step in which particles (or particle densities) are redistributed at each node. The two steps are governed by the LB evolution equation, where parameters relaxation time and source term decide the movement of the particles. The state of each node at the next moment is only related to the state of its neighboring nodes because the particles move along the
Key words
image processing; Lattice Boltzmann (LB) method; image diffusion LB model; parallel algorithm; time complexity
0 引言
当前,图像处理领域面临以下几个问题:1)传感器技术的发展使得图像分辨率日益提高,而视频或医学图像处理往往需要实时的处理结果;2)计算机硬件技术的发展使得并行图像处理设备的成本日益降低;3)现有的基于偏微分方程(PDE)的图像处理方法在速度上难以满足实时性的要求,且在并行设备上的实现需要较高的编程技巧。以上3点使得图像处理领域迫切需要一种固有的并行算法[1]。格子玻尔兹曼(LB)方法[2]来源于元胞自动机[3]模型,最初被用于流体力学中,是一种介于流体的微观分子动力学模型和宏观连续模型之间的介观模型。LB方法将流体离散成一系列的粒子,粒子分布在离散空间的节点中,粒子密度代表节点的状态,在每个时刻,节点中的粒子互相碰撞并向其相邻节点移动,直到达到平衡状态。LB方法根据所模拟系统的物理特性设计演化方程,使建模结果从宏观角度对系统进行模拟逼近,在对系统进行模拟的同时完成其求解。由于LB方法天然离散,可以方便地处理复杂边界,同时每个节点下一时刻的状态只与其相邻节点的状态有关,因此非常适合并行实现。研究证明,当松弛时间大于0.5时,该方法是稳定的[4]。自出现开始,该方法就因为其清晰的物理意义和固有的并行特性,被用以模拟和求解Navier-Stokes方程、反应扩散方程[5]、非线性演化方程[6]、波动方程[7]、泊松方程[8]和对流扩散方程[9]。
Jawerth等人首次将LB方法引入图像处理[10],他们用像素值代替节点值,将像素灰度的改变视作粒子重新分布的结果,并以松弛时间限制粒子的扩散方向,从而在保持图像边缘的前提下完成图像去噪。随后,该方法在图像处理领域的研究逐渐开展,目前已被应用到图像去噪、修复、分割[11]和配准[12]中。为全面总结LB方法在图像处理中的研究现状,作者分别以“Lattice Boltzmann & Image Process”和“格子玻尔兹曼 & 图像处理”作为关键词检索了自2006年以来Web of Science和中国知网中的相关论文,经过分析整理发现以下几个问题:第一,目前缺乏一种LB方法在图像处理中的统一解释;第二,尚未有文献全面归纳过LB方法在图像处理中的研究现状;第三,从宏观角度看,图像处理中有多种LB模型,然而不同模型之间、模型算法时间复杂度之间的差异均未被系统分析过,使得研究者难以根据图像处理的目的选择高效合理的模型和参数。
1 格子玻尔兹曼方法在图像处理中的物理解释
1.1 流体力学中的格子玻尔兹曼方法
LB方法将流体看成由大量离散粒子组成的时空离散系统,这些粒子比分子大,在宏观上又无限小,粒子在2维空间节点中随机运动,节点内的粒子互相碰撞(图 1(a))并改变运动方向,一部分粒子从当前节点移动到相邻节点(图 1(b)),直到达到平衡态,节点中粒子的密度代表节点的状态。图像处理中常用的格子
$\begin{array}{*{20}{c}} {{f_\alpha }\left( {r + {\mathit{\boldsymbol{e}}_\alpha }\Delta t,t + \Delta t} \right) - {f_\alpha }\left( {r,t} \right) = } \\ {\frac{1}{\tau }\left[ {f_\alpha ^{{\rm{eq}}}\left( {r,t} \right) - {f_\alpha }\left( {r,t} \right)} \right]} \end{array}$ | (1) |
$\begin{array}{*{20}{c}} {{f_\alpha }\left( {r + {\mathit{\boldsymbol{e}}_\alpha }\Delta t,t + \Delta t} \right) - {f_\alpha }\left( {r,t} \right) = } \\ {\frac{1}{\tau }\left[ {f_\alpha ^{{\rm{eq}}}\left( {r,t} \right) - {f_\alpha }\left( {r,t} \right)} \right] + \Delta t \cdot {F_\alpha }} \end{array}$ | (2) |
式中,Δ
${e_\alpha } = \left\{ {\begin{array}{*{20}{l}} \begin{array}{l} \left( {0,0} \right)\\ \quad \quad \quad \quad \quad \quad \quad \alpha = 0 \end{array}\\ \begin{array}{l} c\left( {{\rm{cos}}\left[ {\left( {\alpha - 1} \right)\frac{{\rm{\pi }}}{2}} \right],{\rm{sin}}\left[ {\left( {\alpha - 1} \right)\frac{{\rm{\pi }}}{2}} \right]} \right)\\ \quad \quad \quad \quad \quad \quad \quad \alpha = 1,2,3,4 \end{array}\\ \begin{array}{l} \sqrt 2 c\left( {{\rm{cos}}\left[ {\left( {2\alpha - 1} \right)\frac{{\rm{\pi }}}{4}} \right],{\rm{sin}}\left[ {\left( {2\alpha - 1} \right)\frac{{\rm{\pi }}}{4}} \right]} \right)\\ \quad \quad \quad \quad \quad \quad \quad \alpha = 5,6,7,8 \end{array} \end{array}} \right.$ | (3) |
式中,
值得注意的是,
$\begin{array}{*{20}{c}} {{f_\alpha }\left( {r,t + \Delta t} \right) = \frac{1}{\tau }\left[ {f_\alpha ^{{\rm{eq}}}\left( {r,t} \right) - {f_\alpha }\left( {r,t} \right)} \right] + } \\ {{f_\alpha }\left( {r,t} \right)} \end{array}$ | (4) |
${f_\alpha }\left( {r + {\mathit{\boldsymbol{e}}_\alpha }\Delta t,t + \Delta t} \right) = {f_\alpha }\left( {r,t + \Delta t} \right)$ | (5) |
可以看到,LB方法中每一个节点在下一时刻的状态仅由当前状态以及相邻节点决定,因此LB方法是局部和并行的。
1.2 图像处理中的格子玻尔兹曼方法
物理上的扩散可以视为介质中某种浓度分布不均匀的杂质从浓度较高区域向浓度较低区域迁移的过程。如果把图像中像素的灰度值看做流体中的粒子密度,把像素灰度值的改变看做粒子重新分布的结果,就可以把LB方法从流体力学领域引入图像处理领域,此时,需要重新定义LB方法的相关变量[11](以灰度图像为例,具体见表 1):每个像素点对应一个节点,像素灰度值
表 1
流体力学和图像处理中格子玻尔兹曼方法参数含义比较
Table 1
Translation of definitions of key Lattice Boltzmann parameters from hydrodynamics to image processing
流体力学 | 图像处理 |
流体节点 | 像素 |
粒子密度 | 灰度值 |
粒子移动方向 | 亚像素的位置 |
平衡态分布函数 | |
松弛时间 | 松弛时间 |
时间 | 时间 |
2 格子玻尔兹曼方法在图像处理中的研究现状
从自上而下和自下而上两种建模角度分别归纳LB方法在图像去噪、修复和分割中的研究现状,并对LB方法在图像处理中的其他研究进行了简要概述,及简要总结。
2.1 图像去噪
按照上述物理解释,只要使粒子在图像平坦区域扩散较快,而在图像边缘附近扩散较慢,即可在加速图像边缘的同时实现图像边缘的保持。粒子扩散的快慢受演化方程中松弛时间的影响,因此如何确定
2.1.1 自上而下
已知图像去噪的PDE模型为
Chang等人[20]模拟了TV(total variation)模型,证明了该方法在去除均值为零的高斯白噪声时满足图像去噪的守恒定律,并且可以有效消除由于后向扩散引起的图像灰度“阶跃”现象,在串行环境下其速度为TV模型数值解法的1/4~1/9,但该方法未考虑松弛时间对扩散的影响,本质上是一种线性扩散,因此在边缘保持能力上相对于TV模型较差;Zhao[21]从LB演化方程出发得到抛物线扩散方程(parabolic diffusion equation),使之在特定情况下逼近Poisson方程并将之应用于图像编辑,随后模拟了ADM并将之应用于3维图像去噪;文献[22]利用快速行进法(fast marching method)生成3维图像的距离场,以距离场代替LB方法的粒子密度,从LB演化方程得到了含平均曲率的扩散方程,以之完成了3维图像的表面去噪,随后将外力项引入扩散方程并将之应用于3维图像形变,其中,外力项是形变物体表面与目标物体表面距离场的函数,相对于文献[21],该文利用LB方法简化了曲率的计算。
2.1.2 自下而上
为了在去噪的同时保持图像细节,粒子的扩散必须满足在图像梯度较大的地方较慢,反之较快,即
2.2 图像修复
图像修复的思想之一是模拟物理学中的热扩散将待修补区域周围的信息传播到修补区域中,即使到达待修复区边界上的等照线沿着等照线切线方向向待修复区内部延伸[26-27],等照线曲率的引入可使图像修复模型具有保持图像边缘连通性的能力。从以上修复原理可以发现,只要对LB方法中的粒子扩散做一定限制,即可完成类似的修复效果。例如,Chen等人[28]在文献[23]的基础上将图像梯度和曲率引入
2.3 图像分割
从自上而下和自下而上两个角度归纳LB方法在图像分割中的建模,并总结LB方法与其他方法的结合在图像分割中的应用。
2.3.1 自上而下
图像分割中常用的活动轮廓模型的建模可以归结为最小化一个封闭曲线的能量泛函
2.3.2 自下而上
Chen等人[34-35]将ADM看成是热量场的扩散过程,将演化曲线看成是热量场中的零等温线,随着热量场的扩散,零温度线也随之演化。Chen为了实现图像分割,引入了与图像梯度相关的导热系数,在图像的边缘处,导热系数很小,扩散过程非常缓慢,反之导热系数变大,扩散过程加快,这样,曲线最终将停留在待分割目标的边缘处。该方法中,将初始轮廓吸引到待分割物体边缘的力完全由图像梯度提供,并且,为了保证轮廓是向外运动的,必须将初始轮廓定义在待分割物体内部且靠近待分割物体边缘,实验结果表明该方法容易出现轮廓不能到达待分割物体边缘的情况。
在面对更加复杂的图像分割问题时,自上而下的建模方法和文献[34-35]的方法显然有很大的局限性。如果我们把图像看做是一个具有特定分布的粒子浓度场,在图像中定义一个初始轮廓,该轮廓可以看做某一粒子浓度等值线,粒子在扩散作用产生的内力与图像数据产生的外力共同作用下发生碰撞和扩散并重新分布,从而浓度等值线随之改变,当内力和外力平衡时,即粒子分布不再发生变化时,得到分割结果。基于以上考虑,同时联系演化方程式(2)以及2.3.1节的分析可以发现,如果将图像分割的“外力项”进行离散化,然后将之引入LB演化方程[22],就可以构建起影响粒子分布的
2.3.3 与其他方法的结合
在面对复杂的图像分割问题时,LB方法与其他方法的结合也成为研究者解决问题的途径之一。例如,在进行颅内动脉瘤分割时,考虑到血栓与相邻组织灰度的相似性,文献[49]将LB方法与阈值法、数学形态学方法相结合,从而完成了血栓和血管腔的分割;针对同样的问题,文献[50]首先利用LB方法模拟ADM对颅内动脉瘤图像进行去噪,随后利用Canny算子得到边缘图,并在边缘图上定义了粒子的扩散速度,最后,利用LB模拟了测地活动轮廓(GAC)模型完成分割,其中GAC的扩散项和外力项分别利用LB方法和中心差分法实现;为了完成具有复杂背景的自然图像的分割,文献[51]将自组织映射(SOM)与LB方法相结合,其中SOM用来学习目标和背景的先验知识,先验知识被引入到LB演化方程中作为演化终止的条件。
2.4 格子玻尔兹曼方法的加速方法研究
目前,结合OpenMP技术,LB方法已经在具有共享内存的多CPU系统上实现了并行加速,结合MPI技术已在单GPU和GPU组上实现了并行加速,由于GPU的计算内核通过局部输入产生输出,因此LB方法非常适合GPU的局部和并行结构。文献[21-22]对3维图像去噪、变形以及体数据平滑在GPU上进行了加速,Zhou[52]设计了NLDM的CUDA(compute unified device architecture)算法用于2维图像去噪。文献[38, 42-43, 45-47]和文献[44]分别对2维图像分割过程在GPU和现场可编程门阵列(FPGA)上进行了加速,文献数据表明,并行平台上的LB方法相对于串行平台加速比一般能提高一个数量级,而且图像数据量越大,加速效果越明显。除去并行加速研究,Huang[53]提出了多重网格LB去噪算法,其思想是在图像变化缓慢的区域采用大网格以加速运算,在图像变化剧烈的区域采用小网格以保持图像细节,多重网格的采用提高了LB方法的效率。
2.5 3维医学图像处理
LB方法由于其固有并行的特性和速度优势得到了研究者的重视并被用于3维图像处理。文献[21]和[22]分别在GPU上利用LB方法完成了3维图像去噪和3维图像变形。文献[12]将LB方法用于3维颅脑MR影像之间的配准。文献[54]在GPU组上完成了包括头部CT、头部MR、结肠、动脉瘤等3维医学图像数据的分割。文献[55]利用脑部MR图像的边缘信息和区域信息建立一个3维LB分割模型,直接在3维空间中通过碰撞和迁移过程提取海马结构。通过对以上文献的分析可以发现LB方法的优点:1)在串行以及并行平台上,LB方法相对于传统PDE方法均具有明显的速度优势;2)LB方法在GPU上运行时,3维图像的GPU/CPU加速比大于2维图像;3)在进行3维图像处理时,当图像数据大于643时,LB方法的GPU/CPU加速比可达100以上,且图像数据量越大,加速比越明显。以上发现充分说明了LB方法非常适合GPU平台上的3维图像处理。与此同时,可以看到:1)LB方法在3维图像处理中的研究相对较少;2)在利用LB方法进行3维图像处理时,多GPU之间的通信时间(即边界数据交换及读写所耗时间)大于LB算法每次迭代所需时间。以上缺点为下一步的研究指明了方向:1)拓展LB方法在3D医学图像处理中的应用,如多模态图像的配准;2)构建新的计算机体系更快的读写和交换LB方法计算产生的边界数据。
2.6 小结
图像去噪必须使粒子在梯度越大的地方扩散速度越慢,反之越快,从而在去噪的同时保护边缘,因此可将
3 格子玻尔兹曼模型的分类
尝试对LB模型进行分类,并揭示LB宏观模型(即建模得到的PDE)与微观模型(即重新设计的演化方程)之间的内在联系。结合第1节与第2节的分析可以发现,LB方法实际上是一种基于扩散的图像处理方法,根据扩散的性质我们将模型分为各向同性和各向异性两大类,每类又包含有“外力项”和无“外力项”两种情况,其中各向同性扩散又被分为线性和非线性两种情况。
3.1 宏观角度
从LB演化方程式(1)(2)出发,利用Chapman-Enskog展开法,分别得到不含外力项和含外力项的扩散模型[15, 31]
$\frac{{\partial I}}{{\partial t}} = {\rm{div}}\left( {{D_{ij}}\nabla I} \right)$ | (6) |
$\frac{{\partial I}}{{\partial t}} = {\rm{div}}\left( {{D_{ij}}\nabla I} \right) + b{F_\alpha }$ | (7) |
式中,
3.2 微观角度
LB扩散模型中
4 算法
首先分析标准LB算法的实现过程,在此基础上比较不同模型算法之间以及算法时间复杂度之间的区别。
4.1 标准格子玻尔兹曼算法
结合图像去噪的NLDM说明LB算法应用于图像处理的具体流程。
NLDM图像去噪算法:
1) 预计算,输入原始图像
2) 迭代计算,计算松弛时间
3) 计算平衡态分布函数:
4) 碰撞过程
5) 扩散过程,
6) 更新节点质量,
7) 确定迭代是否达到PSNR,如果是执行步骤8),否则转到步骤2)并依次执行步骤2)—7)直至满足终止条件;
8) 输出,
标准LB算法流程图如图 4所示。首先将图像像素值分配到节点中,对应NLDM算法的第1)步;接下来初始化用于限制粒子扩散的
4.2 不同模型的实现算法
由演化方程(1)可知每次碰撞与扩散会对分布函数
4.3 不同模型算法时间复杂度的差异
假设:格子结构采用D2Q
基于以上假设:1)所有算法设定初始条件的复杂度均为O(1);2)LDM指定
表 2
不同格子玻尔兹曼扩散模型算法时间复杂度比较
Table 2
Comparison of time complexity of Lattice Boltzmann diffusion models
模型 | 第1步 | 第2步 | 第3步 | 第4步 | 第5步 | 第6步 | 第7步 | 时间复杂度 |
LDM | O (1) | O(1) | O(1) | |||||
NLDM | O(1) | O(1) | ||||||
ADM | O(1) | O(1) | ||||||
FLDM | O(1) | O(1) | O(1) | |||||
FNLDM | O(1) | O(1) |
从表 2可以发现,LDM、NLDM、ADM算法时间复杂度相同,考虑到在计算
文献[56]分析了两种格子结构对时间复杂度的影响(如图 6所示),可以发现D2Q5与D2Q9两种格子的耗时与迭代次数均呈线性关系,且D2Q9耗时大于D2Q5,这是由任何一步中方向数的不同所造成的计算次数不同引起的。
5 应用
本节希望得到一种通用LB图像处理方法,并简化LB方法在图像去噪、修复和分割中的步骤,基于以上思路,我们必须解决以下几个问题:1)解决图像处理通用模型的构建问题。在第2节中归纳了LB方法在图像去噪、修复和分割中的建模问题,在第3节中对模型进行了分类,然而仍然缺乏一种通用的图像扩散LB模型构建方法,从而使得LB方法在图像处理中的灵活性受到限制。2)解决图像处理模型的选择问题。在4.3节中讨论了不同模型的算法时间复杂度,这使得研究者可以从效率角度选择合适的模型,本节我们希望从图像处理效果的角度针对图像去噪、修复和分割选择合适的模型,即确定LB演化方程中
5.1 图像扩散格子玻尔兹曼模型的构建
从第3节的分析可知图像处理的LB宏观模型为
5.2 模型选择
5.2.1 宏观角度模型选择
图像去噪需要在加速去噪的同时保护图像的边缘特征。LDM的扩散系数为常数(即LB演化方程的
图像修复是从未损坏区域到损坏区域的扩散过程,此过程必须依赖于未损坏区域的梯度和曲率信息,因此相对于ADM和NLDM,LDM不适合用于图像修复。假如选择含“外力项”的模型进行图像修复,其关键是如何设置“外力项”以提高修复质量。
图像分割的关键是使活动轮廓停止在待分割物体边缘,而轮廓是否停止演化主要取决于
5.2.2 微观角度${\tau _\alpha }$ 和${F_\alpha }$ 的确定
5.3 算法输入、输出以及终止条件
图像去噪、修复和分割所对应的LB算法输入、输出以及算法终止条件见表 3。
表 3
图像去噪、修复和分割中的输入、输出和算法终止条件
Table 3
The input, output and termination condition of LB algorithm corresponding to image denoising, inpainting and segmentation
算法输入 | 算法输出 | 算法终止条件 | |
图像去噪 | 像素值作为节点值 | 节点值作为像素值 | 整幅图像达到PSNR |
图像修复 | 确定待修复区域Ω及其周围区域 | 未损坏区域内像素值不变,受损区域内像素值随着节点值的更新而改变 | 受损区域内像素值的改变随迭代的变化小于设定的阈值 |
图像分割 | 设定初始曲线 | 演化曲线 | 活动轮廓不再随迭代次数的变化而运动 |
5.4 细化的“LB核”方法
为了简化LB方法在图像处理中应用,Yan[11]提出了“LB核”的概念(此处的“LB核”即为LB算法核心步骤)并将之嵌入到图像处理算法中,只需设置不同的初始、终止条件以及输出即可利用“LB核”完成图像去噪、修复和分割,但该文献并未将不同模型所对应“LB核”的区别考虑在内,从而使得算法不够具体,本文对此进行补充。
表 4列出了不同模型所对应“LB核”的计算步骤,第1步到第六步分别对应计算
表 4
不同扩散模型所对应“LB核”的计算步骤
Table 4
Computational procedure of "LB kernel" corresponding to different diffusion model
模型 | 计算步骤 | |||||
第1步 | 第2步 | 第3步 | 第4步 | 第5步 | 第6步 | |
NLDM | × | √ | √ | √ | √ | √ |
ADM | × | √ | √ | √ | √ | √ |
LDM | × | × | √ | √ | √ | √ |
FLDM | √ | × | √ | √ | √ | √ |
FNLDM | √ | √ | √ | √ | √ | √ |
注:√表示该步骤需要计算,×表示该步骤不需要计算。 |
文献[11]给出了“LB核”应用于图像去噪、修复和分割的程序流程图,本文进一步给出了其具体实现算法。
5.4.1 图像去噪
图像去噪流程图如图 8(a)所示,算法步骤如下:
1) 将像素值代入节点并初始化平衡态分布函数;
2) 进入“LB核”;
3) 更新节点值,判断是否达到PSNR,如果达到PSNR,则输出节点值(即像素值),否则返回步骤2)直至满足终止条件。
5.4.2 图像修复
图像修复流程图如图 8(b)所示,算法步骤如下:
1) 确定待修复区域Ω及其周围区域
2) 进入“LB核”;
3) 更新节点值,在修复的过程中,未损坏区域内像素值不变,受损区域内像素值随着节点值的更新而改变;
4) 判断算法是否终止,算法的终止条件通常设置为受损区域内像素值的改变随迭代的变化小于设定的阈值,如果算法终止,则输出修复后的图像,否则返回2)直至满足终止条件。
5.4.3 图像分割
图像分割流程图如图 8(c)所示,算法步骤如下:
1) 设定初始曲线
2) 进入“LB核”;
3) 更新节点值;
4) 判断距离函数是否变化,即活动轮廓是否随着迭代次数的变化而变化;
5) 如果活动轮廓不再变化,则输出为演化曲线,否则返回步骤2)直至满足终止条件。
5.5 小结
经过本节的分析,我们可以归纳出利用LB方法进行图像处理的总体思路:首先,根据图像处理的目的选择所需模型,这一步同时确定了“LB核”以及
6 讨论
6.1 与偏微分方程方法的区别
基于PDE的图像处理方法认为图像是连续的,其数值解法是将连续宏观模型转化为离散代数方程,用差分代替微分,这种方法存在以下缺点:1)数字图像本身是离散的;2)对PDE的离散化与PDE时空连续的假设相矛盾[57];3)为了保证求解的精确性和稳定性必须采用复杂的离散方法,这导致求解过程计算量大,编程复杂;4)基于PDE方法的图像处理在并行设备上的实现需要较高的编程技巧。
LB方法是描述物理系统的一种空间、时间和粒子速度均为离散的数学模型,是“介于宏观连续模型与微观分子动力学模型之间的一种介观模型”,它根据系统的微观行为设计演化方程,从而在对系统进行模拟的同时实现其求解。由于图像的像素和LB方法中的节点对应,且每个节点下一时刻的状态只与其相邻节点的状态相关,因此LB方法是一种适合图像处理的并行算法。LB方法的根本原理是图像数据产生的“力”影响了粒子的分布(这个“力”可以根据图像处理的目的构建),新的粒子分布结果即图像处理结果。相对于PDE方法,LB方法具有物理意义清晰,算法简单,易于并行实现,易于处理边界条件,稳定性好的优点。
6.2 存在问题和进一步的研究方向
6.2.1 边界处理问题
边界处理会对计算精度、稳定性以及计算效率产生影响,LB方法的边界处理格式包括启发式格式、动力学格式、外推格式以及其他复杂边界处理格式,其中启发式格式根据粒子的运动规则直接确定边界点上的未知分布函数,包括周期性边界处理格式、对称边界处理格式、充分发展边界处理格式、反弹格式、镜面反射格式、反弹与镜面反射混合格式。图像处理中,一般认为图像与外界无关,因此早期文献采用具有一阶精度精的反弹格式,后来研究者将半步长反弹格式引入,使得计算精度达到二阶。然而,除了这两种反弹格式之外,还有哪一种适合图像处理,极其对计算精度、稳定性以及计算效率的影响尚未有文献专门作出分析和验证。
6.2.2 运行平台选择及优化
LB方法作为一种并行算法,处理的数据量越大,并行平台相对于串行平台速度优势越明显。考虑到并行平台在内存分配、数据读取上的耗时要大于串行平台,因此考虑是否在进行小尺寸图像处理时,串行平台更有计算速度上的优势?多GPU系统从图像多大时相对于单GPU系统开始显现速度优势?以上两个问题需要进一步研究。
尽管LB方法作为一种固有的并行算法非常适合GPU,但在图像处理中需要计算
7 结语
本文贡献如下:1)解释了图像处理中LB方法的物理意义;2)从不同的建模角度分析了LB方法在图像处理去噪、修复和分割中的研究现状;3)从宏观角度对自上而下建模得到的模型进行了分类,从微观角度并分析了不同模型在演化方程上的本质差异;4)分析了不同模型的适用范围以及算法时间复杂度;5)提出了图像处理LB模型的构建方法;6)细化了“LB核”方法在图像去噪、修复和分割中的应用。同时本文也指出了若干值得进一步研究的问题,包括边界处理问题、并行平台的选择和并行平台上的加速问题。
LB方法具有物理意义清晰、固有并行、编程简单的优势,在目前图像数据量日益增大、实时图像处理的要求越来越迫切、GPU成本大为降低的前提下,有着极其重要的应用价值。目前,结合计算机硬件技术,LB方法已经在科研领域(例如医学图像处理和卫星图像处理)以及工业领域(如动漫产业)中获得了应用。由于LB方法在保证优异的图像处理质量的前提下具有速度优势和建模的灵活性,我们预测该方法将成为图像处理领域中的一个新的研究热点。
参考文献
-
[1] Eklund A, Dufort P, Forsberg D, et al. Medical image processing on the GPU-Past, present and future[J]. Medical Image Analysis, 2013, 17(8): 1073–1094. [DOI:10.1016/j.media.2013.05.008]
-
[2] Qian Y H, D'Humières D, Lallemand P. Lattice BGK models for Navier-Stokes equation[J]. Europhysics Letters, 1992, 17(6): 479–484. [DOI:10.1209/0295-5075/17/6/001]
-
[3] Sarkar P. A brief history of cellular automata[J]. ACM Computing Surveys, 2000, 32(1): 80–107. [DOI:10.1145/349194.349202]
-
[4] Sterling J D, Chen S Y. Stability analysis of lattice Boltzmann methods[J]. Journal of Computational Physics, 1996, 123(1): 196–206. [DOI:10.1006/jcph.1996.0016]
-
[5] Dawson S P, Chen S, Doolen G D. Lattice Boltzmann computations for reaction-diffusion equations[J]. Journal of Chemical Physics, 1993, 98(2): 1514–1523. [DOI:10.1063/1.464316]
-
[6] Ma C F. A new lattice Boltzmann model for KdV-Burgers equation[J]. Chinese Physics Letters, 2005, 22(9): 2313–2315. [DOI:10.1088/0256-307X/22/9/048]
-
[7] Yan G W. A lattice Boltzmann equation for waves[J]. Journal of Computational Physics, 2000, 161(1): 61–69. [DOI:10.1006/jcph.2000.6486]
-
[8] Hirabayashi M, Chen Y, Ohashi H. The lattice BGK model for the Poisson equation[J]. JSME International Journal Series B Fluids and Thermal Engineering, 2001, 44(1): 45–52. [DOI:10.1299/jsmeb.44.45]
-
[9] Guo Z L, Shi B C, Wang N C. Fully lagrangian and lattice Boltzmann methods for the advection-diffusion equation[J]. Journal of Scientific Computing, 1999, 14(3): 291–300. [DOI:10.1023/A:1023273603637]
-
[10] Jawerth B, Lin P, Sinzinger E. Lattice Boltzmann models for anisotropic diffusion of images[J]. Journal of Mathematical Imaging and Vision, 1999, 11(3): 231–237. [DOI:10.1023/A:1008304519705]
-
[11] Yan Z Z, Sun Y B, Jiang J H, et al. Novel explanation, modeling and realization of lattice Boltzmann methods for image processing[J]. Multidimensional Systems and Signal Processing, 2015, 26(3): 645–663. [DOI:10.1007/s11045-013-0264-1]
-
[12] Zheng X, Tong M, Cao Y. LBM craniocerebral MR 3D medical image non-rigid registration method[J]. Journal of Xidian University, 2013, 40(6): 125–131. [郑翔, 同鸣, 曹阳. 一种颅脑MR影像的LBM三维非刚体配准方法[J]. 西安电子科技大学学报:自然科学版, 2013, 40(6): 125–131. ] [DOI:10.3969/j.issn.1001-2400.2013.06.022]
-
[13] Deng B, Shi B C, Wang G C. Comparison between two Lattice Bhatnagar-Gross-Krook models for diffusion equation with source term[J]. Journal of Huazhong University of Science and Technology:Nature Science Edition, 2004, 32(12): 114–116. [邓滨, 施保昌, 王广超. 求解含源项扩散方程的两种格子BGK模型比较[J]. 华中科技大学学报:自然科学版, 2004, 32(12): 114–116. ] [DOI:10.3321/j.issn:1671-4512.2004.12.040]
-
[14] Perona P, Malik J. Scale-space and edge detection using anisotropic diffusion[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1990, 12(7): 629–639. [DOI:10.1109/34.56205]
-
[15] Wang Z Q, Yan Z Z, Qian Y H, et al. Lattice Boltzmann model of anisotropic diffusion for image denoising[C]//Proceedings of the 2010 IEEE Youth Conference on Information Computing and Telecommunications. Beijing, China:IEEE, 2010:21-24.[DOI:10.1109/YCICT.2010.5713142]
-
[16] Weickert J. Theoretical foundations of anisotropic diffusion in image processing[M]//Kropatsch K, Klette R, Solina F, et al. Theoretical Foundations of Computer Vision. Vienna:Springer, 1996, 11:221-236.[DOI:10.1007/978-3-7091-6586-7_13]
-
[17] Wen J L, Yan Z Z, Lin X M. Synchronization algorithm for denoising and enhancement of medical image based on lattice Boltzmann method[J]. Journal of Chinese Computer Systems, 2013, 34(9): 2197–2200. [温军玲, 严壮志, 林笑曼. 格子玻尔兹曼方法的医学图像同步去噪增强算法[J]. 小型微型计算机系统, 2013, 34(9): 2197–2200. ] [DOI:10.3969/j.issn.1000-1220.2013.09.046]
-
[18] Wang Z Q, Yan Z Z, Qian Y H. Nonlinear diffusion for image denoising using lattice Boltzmann method[J]. Journal of Applied Sciences, 2010, 28(4): 367–373. [王志强, 严壮志, 钱跃竑. 图像非线性扩散去噪的格子玻尔兹曼方法[J]. 应用科学学报, 2010, 28(4): 367–373. ] [DOI:10.3969/j.issn.0255-8297.2010.04.007]
-
[19] Wang Z Q, Yan Z Z, Zhang R, et al. Lattice Boltzmann method for vector image denoising[J]. Journal of Applied Sciences, 2010, 28(5): 493–500. [王志强, 严壮志, 张蕊, 等. 矢量图像去噪的格子玻尔兹曼方法[J]. 应用科学学报, 2010, 28(5): 493–500. ] [DOI:10.3969/j.issn.0255-8297.2010.05.008]
-
[20] Chang Q S, Yang T. A lattice Boltzmann method for image denoising[J]. IEEE Transactions on Image Processing, 2009, 18(12): 2797–2802. [DOI:10.1109/TIP.2009.2028369]
-
[21] Zhao Y. Lattice Boltzmann based PDE solver on the GPU[J]. The Visual Computer, 2008, 24(5): 323–333. [DOI:10.1007/s00371-007-0191-y]
-
[22] Zhao Y. GPU-accelerated surface denoising and morphing with lattice Boltzmann scheme[C]//Proceedings of the IEEE International Conference on Shape Modeling and Applications. Stony Brook, NY, USA:IEEE, 2008:19-28.[DOI:10.1109/SMI.2008.4547942]
-
[23] Chen Y, Yan Z Z, Qian Y H. An anisotropic diffusion model for medical image smoothing by using the lattice Boltzmann method[C]//Proceedings of the 7th Asian-Pacific Conference on Medical and Biological Engineering. Berlin, Heidelberg:Springer, 2008:255-259.[DOI:10.1007/978-3-540-79039-6_65]
-
[24] Chen Y. A lattice Boltzmann method based medical image denoising and enhancement[C]//Proceedings of the 2nd International Congress on Image and Signal Processing. Tianjin, China:IEEE, 2009:1-4.[DOI:10.1109/CISP.2009.5304101]
-
[25] Chen Y, Yan Z Z, Qian Y H. The lattice Boltzmann method based image denoising[J]. Acta Electronica Sinica, 2009, 37(3): 574–580. [陈玉, 严壮志, 钱跃翃. 基于格子玻尔兹曼模型的图像去噪[J]. 电子学报, 2009, 37(3): 574–580. ] [DOI:10.3321/j.issn:0372-2112.2009.03.027]
-
[26] Barcelos C A Z, Batista M A. Image inpainting and denoising by nonlinear partial differential equations[C]//XVI Brazilian Symposium on Computer Graphics and Image Processing. Sao Carlos, Brazil:IEEE, 2003:287-293.[DOI:10.1109/SIBGRA.2003.1241021]
-
[27] Zhang H Y, Peng Q C. A survey on digital image inpainting[J]. Journal of Image and Graphics, 2007, 12(1): 1–10. [张红英, 彭启琮. 数字图像修复技术综述[J]. 中国图象图形学报, 2007, 12(1): 1–10. ] [DOI:10.3969/j.issn.1006-8961.2007.01.001]
-
[28] Chen Y. A lattice-Boltzmann method for image inpainting[C]//Proceedings of the 3rd International Congress on Image and Signal Processing. Yantai, China:IEEE, 2010:1222-1225.[DOI:10.1109/CISP.2010.5647241]
-
[29] Zhu Y, Yan Z Z, Kang M H. Specular image highlight inpainting based on lattice Boltzmann model[J]. Chinese Journal of Scientific Instrument, 2015, 36(12): 2747–2755. [朱泳, 严壮志, 康明洪. 基于格子玻尔兹曼模型的内镜图像高光修复[J]. 仪器仪表学报, 2015, 36(12): 2747–2755. ] [DOI:10.3969/j.issn.0254-3087.2015.12.014]
-
[30] Chen Y. A lattice Boltzmann method for piece-wise constant Mumford Shah model[J]. International Journal of Digital Content Technology and Its Applications, 2011, 5(12): 339–346. [DOI:10.4156/jdcta.vol5.issue12.42]
-
[31] Wang Z Q, Yan Z Z, Chen G. Lattice Boltzmann method of active contour for image segmentation[C]//Proceedings of the 6th International Conference on Image and Graphics. Hefei, Anhui, China:IEEE, 2011:338-343.[DOI:10.1109/ICIG.2011.138]
-
[32] Sun X Y, Wang Z Q, Chen G. Parallel active contour with lattice Boltzmann scheme on modern GPU[C]//Proceedings of the 19th IEEE International Conference on Image Processing. Orlando, FL, USA:IEEE, 2012:1709-1712.[DOI:10.1109/ICIP.2012.6467208]
-
[33] Chen J H, Chai Z H, Shi B C, et al. Lattice Boltzmann method for filtering and contour detection of the natural images[J]. Computers & Mathematics with Applications, 2014, 68(3): 257–268. [DOI:10.1016/j.camwa.2014.05.023]
-
[34] Chen Y, Yan Z Z, Chu Y G. Cellular automata based level set method for image segmentation[C]//Proceedings of the IEEE/ICME International Conference on Complex Medical Engineering. Beijing, China:IEEE, 2007:171-174.[DOI:10.1109/ICCME.2007.4381715]
-
[35] Chen Y, Yan Z Z, Shi J. Application of lattice Boltzmann method to image segmentation[C]//Proceedings of the 29th Annual International Conference of the Engineering in Medicine and Biology Society. Lyon, France:IEEE, 2007:6561-6564.[DOI:10.1109/IEMBS.2007.4353863]
-
[36] Balla-Arabé S, Gao X B, Wang B. A fast and robust level set method for image segmentation using fuzzy clustering and lattice Boltzmann method[J]. IEEE Transactions on Cybernetics, 2013, 43(3): 910–920. [DOI:10.1109/TSMCB.2012.2218233]
-
[37] Balla-Arabé S, Gao X B. A multiphase entropy-based level set algorithm for MR breast image segmentation using lattice Boltzmann model[M]//Yang J, Fang F, Sun C Y. Intelligent Science and Intelligent Data Engineering. Berlin, Heidelberg:Springer, 2013, 7751:8-16.[DOI:10.1007/978-3-642-36669-7_2]
-
[38] Balla-Arabé S, Gao X B. Geometric active curve for selective entropy optimization[J]. Neurocomputing, 2014, 139: 65–76. [DOI:10.1016/j.neucom.2013.09.058]
-
[39] Wen J L, Yan Z Z, Jiang J H. A lattice Boltzmann model with statistic region information for image segmentation[J]. Journal of Applied Sciences, 2016, 34(1): 49–57. [温军玲, 严壮志, 蒋皆恢. 一种区域统计信息的格子玻尔兹曼图像分割模型[J]. 应用科学学报, 2016, 34(1): 49–57. ] [DOI:10.3969/j.issn.0255-8297.2016.01.006]
-
[40] Wen J L, Yan Z Z, Sun Y B, et al. Image segmentation of integrated edge and region information by lattice Boltzmann model[J]. Journal of Jiangsu University:Natural Science Edition, 2013, 34(6): 687–692. [温军玲, 严壮志, 孙玉彪, 等. 集成边缘和区域信息的格子玻尔兹曼模型图像分割[J]. 江苏大学学报:自然科学版, 2013, 34(6): 687–692. ] [DOI:10.3969/j.issn.1671-7775.2013.06.012]
-
[41] Wen J L, Yan Z Z, Jiang J H. Novel lattice Boltzmann method based on integrated edge and region information for medical image segmentation[J]. Bio-Medical Materials and Engineering, 2014, 24(1): 1247–1252. [DOI:10.3233/BME-130926]
-
[42] Balla-Arabé S, Gao X B, Wang B. GPU accelerated edge-region based level set evolution constrained by 2D gray-scale histogram[J]. IEEE Transactions on Image Processing, 2013, 22(7): 2688–2698. [DOI:10.1109/TIP.2013.2255304]
-
[43] Balla-Arabé S, Gao X B, Wang B, et al. Multi-kernel implicit curve evolution for selected texture region segmentation in VHR satellite images[J]. IEEE Transactions on Geoscience and Remote Sensing, 2014, 52(8): 5183–5192. [DOI:10.1109/TGRS.2013.2287239]
-
[44] Li C, Balla-Arabé S, Ginhac D, et al. Embedded implementation of VHR satellite image segmentation[J]. Sensors, 2016, 16(6): #771. [DOI:10.3390/s16060771]
-
[45] Balla-Arabé S, Li C, Brost V, et al. Fuzzy selecting local region level set algorithm[C]//Proceedings of the 23rd European Signal Processing Conference. Nice, France:IEEE, 2015:1810-1814.[DOI:10.1109/EUSIPCO.2015.7362696]
-
[46] Balla-Arabé S, Gao X B, Ginhac D, et al. Shape-constrained level set segmentation for hybrid CPU-GPU computers[J]. Neurocomputing, 2016, 177: 40–48. [DOI:10.1016/j.neucom.2015.11.004]
-
[47] Balla-Arabé S, Gao X B, Ginhac D, et al. Architecture-driven level set optimization:from clustering to subpixel image segmentation[J]. IEEE Transactions on Cybernetics, 2016, 46(12): 3181–3194. [DOI:10.1109/TCYB.2015.2499206]
-
[48] Wen J L, Jiang J H, Yan Z Z. A new lattice Boltzmann algorithm for assembling local statistical information with MR brain imaging segmentation applications[J]. Multidimensional Systems and Signal Processing, 2017, 28(4): 1611–1627. [DOI:10.1007/s11045-016-0436-x]
-
[49] Wang Y, Courbebaisse G, Zhu Y M. Segmentation of giant cerebral aneurysms using a multilevel object detection scheme based on lattice Boltzmann method[C]//Proceedings of the 2011 IEEE International Conference on Signal Processing, Communications and Computing. Xi'an, China:IEEE, 2011:1-4.[DOI:10.1109/ICSPCC.2011.6061695]
-
[50] Chen Y, Navarro L, Wang Y, et al. Segmentation of the thrombus of giant intracranial aneurysms from CT angiography scans with lattice Boltzmann method[J]. Medical Image Analysis, 2014, 18(1): 1–8. [DOI:10.1016/j.media.2013.08.003]
-
[51] Albalooshi F A, Asari V K. A self-organizing lattice Boltzmann active contour (SOLBAC) approach for fast and robust object region segmentation[C]//Proceedings of the 2015 IEEE International Conference on Image Processing. Quebec City, QC, Canada:IEEE, 2015:1329-1333.[DOI:10.1109/ICIP.2015.7351016]
-
[52] Zhou M, Yan Z Z, Huang B. Design and implementation of CUDA algorithms based on nonlinear image diffusion LB model[J]. Journal of Applied Sciences, 2014, 32(1): 85–92. [周明, 严壮志, 黄彬. 非线性图像扩散LB模型的CUDA算法设计与实现[J]. 应用科学学报, 2014, 32(1): 85–92. ] [DOI:10.3969/j.issn.0255-8297.2014.01.014]
-
[53] Huang B, Yan Z Z, Zhou M. Multi-grid lattice Boltzmann method for anisotropic image diffusion[J]. Journal of Applied Sciences, 2013, 31(6): 619–627. [黄彬, 严壮志, 周明. 各向异性图像扩散的多重网格格子玻尔兹曼方法[J]. 应用科学学报, 2013, 31(6): 619–627. ] [DOI:10.3969/j.issn.0255-8297.2013.06.011]
-
[54] Hagan A, Zhao Y. Parallel 3D image segmentation of large data sets on a GPU cluster[C]//The 5th International Symposium on Advances in Visual Computing. Las Vegas, Nevada:ACM, 2009:960-969.[DOI:10.1007%2F978-3-642-10520-3_92]
-
[55] Lin X M, Yan Z Z, Jiang J H, et al. Fast segmentation of hippocampus in MRI based on 3D lattice Boltzmann model[J]. Progress in Biomedical Engineering, 2014, 35(1): 1–7. [林笑曼, 严壮志, 蒋皆恢, 等. 基于三维格子玻尔兹曼模型的海马结构MRI快速分割[J]. 生物医学工程学进展, 2014, 35(1): 1–7. ] [DOI:10.3969/j.issn.1674-1242.2014.01.001]
-
[56] Zhang W H, Shi B C. Application of lattice Boltzmann method to image filtering[J]. Journal of Mathematical Imaging and Vision, 2012, 43(2): 135–142. [DOI:10.1007/s10851-011-0295-x]
-
[57] Chen Y. A study of lattice Boltzmann models and their applications in image processing[D]. Shanghai:Shanghai University, 2008. [陈玉. 格子玻尔兹曼模型及其在图像处理中的应用研究[D]. 上海: 上海大学, 2008.]