基于Hadoop的海量医学图像检索系统

时间:2022-10-16 08:39:31

基于Hadoop的海量医学图像检索系统

摘要:为了提高海量医学图像检索效率,针对单节点医学图像检索系统的缺陷,提出一种基于Hadoop的海量医学图像检索系统。首先采用Brushlet变换和局部二值模式算法提取医学示例图像特征,并将图像特征库存储于Hadoop分布式文件系统(HDFS);然后采用Map将示例图像特征与特征库的特征进行匹配,采用Reduce接收各Map任务的计算结果,并按相似度大小进行排序;最后根据排序结果找到医学图像的最优检索结果。实验结果表明,相对于其他医学图像检索系统,Hadoop的医学图像检索系统减少了图像存储和检索时间,提高了图像检索速度。

关键词:医学图像; 检索算法; Brushlet变换; 局部二值模式; 分布式系统

中图分类号:TP181; TP391.41 文献标志码:A

0引言

随着数字化影像技术发展,医学图像急剧增多,如何对这些医学图像进行有效管理和组织,以便为临床诊断提供服务,是医学工作者面临的难题[1]。基于内容的医学图像检索(ContentBased Medical Image Retrieval,CBMIR)具有检索速度快、精度高等优点,在医学教学、辅助医学诊断、医学资料管理等领域得到了广泛应用[2]。

CBMIR算法需要计算示例医学图像特征与特征库特征的相似度,这是一个典型的数据密集型计算过程[3]。当特征库征数量比较大时,传统浏览器/服务器模式(Browser/Server,B/S)单节点的检索效率难以满足图像的实时性要求,且系统的稳定性、可扩展性差[4]。云计算(cloud computing)可以将任务分配到各个工作节点共同完成任务,具有分布式、并行处理能力,为医学图像检索提供了一种新的研究思路[5]。Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是一个可扩展的分布式文件系统,它可以运行于廉价的普通硬件上,得到许多公司支持,如:Google、Amazon、Yahoo!等,在不了解底层细节的情况下,利用Map/Reduce函数轻松实现并行计算,在大规模数据处理领域得到了广泛的应用[6-8]。利用Hadoop的优点,可以较好地解决医学图像检索过程中检索效率低的难题,而且目前国内相关研究较少[9]。

为了提高医学图像检索效率,针对B/S单节点系统存在的不足,提出一种基于Hadoop分布式的医学图像检索系统。实验结果表明,Hadoop的医学图像检索系统减少了图像检索时间,提高了图像检索效率,对于海量医学图像检索优势更加明显。

1Hadoop平台

Hadoop平台是当今应用最为广泛的开源云计算编程平台,它是一个在集群上运行大型数据库处理应用程序的开放式源代码框架,支持使用MapReduce分布式调度模型来实现资源的虚拟化管理、调度和共享[10]。

1.1HDFS体系结构

一个HDFS集群包含一个主服务器(NameNode)和多个块服务器(DataNode),被多个客户端(Client)访问。

NameNode负责管理文件系统的名字空间以及客户端对文件的访问;DataNode负责管理它所在节点上的数据存储,并负责处理文件系统客户端的读写请求,在NameNode统一调度下进行数据块的创建、删除和复制[11]。HDFS把文件切割成块,这些块分散地存储于不同的DataNode上,每个块还可以复制数份存储于不同的DataNode上,因此具有较高的容错性和对数据读写的高吞吐率。

1.2MapReduce

MapReduce是一个编程模型,用于进行大数据量的计算。对于大数据量的计算,通常采用的处理手法就是并行计算:首先要将一个逻辑上完整的大任务分解成若干个子任务,系统根据任务的信息采用适当的策略把不同的任务分配到不同资源节点上去运行,当所有子任务处理结束,则完成整个大任务的一次处理,最后将处理结果传给用户[12]。在Map阶段,每个Map任务对分配给它的数据进行计算,然后按照Map的输出key值将结果数据映射到对应的Reduce任务中;在Reduce阶段,每个Reduce任务对接收到的数据作进一步聚集处理,得到输出结果。为使MapReduce的数据处理流程更加形象,Map/Reduce模型的计算流程如1所示。

2Hadoop的分布式医学图像检索

2.1提取Brushlet域特征

Brushlet变换是为解决角分辨问题的图像多尺度几何分析工具,二维Brushlet具有一定的方向结构和振动频率范围,能够完全重构,其基函数的结构大小和分析窗口的大小成反比。具有相位参数的二维Brushlet基表示了其方向,因此较好地反映了图像的方向信息,能对Fourier域进行分解[13]。1层Brushlet变换将Fourier平面分成4个象限,系数被分为4个子带,对应的方向为π/4+kπ/2(k=0,1,2,3);

2层分解是在1层的基础上进一步把每个象限分为4部分,共分为12个方向,分别为π/12+kπ/6(k=0,1,…,11),分解后系数子带共有16个,其中环绕中心的4个子带是低频分量,其余的为高频分量;以此类推。图2是3层分解方向图。

给定一个图像f,对其进行Brushlet的l层分解,分解后生成实部f^r和虚部f^i【下标i表虚部两个部分,每个部分有4l个子带,每个子带反映的是其对应分解方向上的方向信息。能量集中的地方正是纹理图像突变的部分,对每个子带可以选用模值的均值和标准差来表示其能量信息,因为Brushlet是复值函数,这里同时采用变换后实部和虚部对应子带的系数来计算模值,分解后实部和虚部的第n个子带分别记作f^nr和f^ni(n=1,2,…,4l)。第n个子带模值的均值μn和标准差σn分别为:

2.2提取局部二值模式特征

局部二值模式(Local Binary Pattern,LBP)可以刻画邻域内像素点的灰度相对于中心点的变化情况,注重像素灰度的变化,符合人类视觉对图像纹理的感知特点[14]。因此对图像提取LBPu23(u2表示跳变次数不超过2次),并将直方图作为图像的空域特征。

2.3相似度匹配

其中:P为待检索医学图像,Q为医学图像库的图像。

对于图像LBP特征,首先对特征进行归一化处理,然后采用欧氏距离距离计算相似度。

2.4医学图像检索算法

2.4.1MapReduce的医学图像存储

图像存储是医学图像自动检索的基础,是一个数据密集型计算过程,采用传统方法将图像放到HDFS中十分耗时,因此采取MapReduce分布式处理方式将图像上传到HDFS中。具体如下:

1)Map阶段,采用Map函数每次读入一幅医学图像,并提取图像的颜色和纹理特征。

2)Reduce阶段,将提取的医学图像特征数据存入HDFS。HBase是一个面向列的分布式数据库,因此HDFS的医学图像存储采用HBase表形式存存储。具体流程如图2所示。

2.4.2MapReduce的医学图像检索

医学图像及其特征均存储于HBase中,当HBase的数据集非常大时,扫描搜索整个表要花费比较长的时间。为了减少检索图像的时间和提高检索效率,利用MapReduce计算模型对医学图像检索进行并行计算,基于MapReduce的医学图像检索步骤如下:

1)收集医学图像,提取相应的特征,并将特征数据存入HDFS;

2)用户提交检索请求,提取待检索的医学图像的Brushlet域特征和LBP特征;

3)Map阶段,将待检索的医学图像特征与HBase中的图像特征进行相似度匹配,Map的输出为〈相似度,图像ID〉键值;

4)根据相似度的大小对Map输出全部〈相似度,图像ID〉键值进行排序和重新划分,然后再输入到Reducer;

5)Reduce阶段,收集所有的〈相似度,图像ID〉键值对,再对这些键值对进行相似度排序,把前N个键值对写入到HDFS;

6)输出与待检索医学图像最相似的那些图像的ID,用户得到最终的医学检索结果。

Map函数定义如下:

3仿真测试

3.1实验环境

在Linux环境下,通过1个主节点(NameNode)机和3工作节点(DataNode)组成一个Hadoop分布式系统,具体配置见表1。在Hadoop分布式系统中,通过在不同的节点数下进行医学图像检索测试,并将其测试结果与文献[15]的传统图像检索系统和B/S架构下的图像检索系统的测试结果进行对比,系统性能评价标准采用存储效率、检索速度、查准率和查全率,并对Hadoop分布式图像检索系统的性能进行分析。

3.2系统负载性能测试

对于Hadoop医学图像检索系统,40万幅医学图像的各节点的CPU使用率如图4所示。

从图4可知,由于只有2个Map任务,它们分别分配给DataNodel和DataNode3,tl和t2时刻,两个节点的Map任务在执行中;t3时刻,DataNode3节点的Map任务执行完毕,并在该节点开始执行Reduce任务,DataNodel节点的Map任务还在执行;在t4时刻,DataNodel节点上的Map任务完成,该节点将Map任务产生的中间结果交由DataNode3进行Reduce处理;在t5时刻,只有DataNode3在执行Reduce任务,DataNodel和DataNode2处于空闲状态;t6时刻,整个检索任务完成,各节点处于空闲状态。

对80万和100万幅医学图像,各节点的CPU使用率如图5、6所示。从图5、6可知,各节点的负载情况类似于处理40万幅医学图像的负载情况。

3.3医学图像检索结果

上传一幅医学图像后,采用Hadoop的医学图像系统进行检索,其检索结果如图7所示。从图7可知,检索结果比较好。

3.4与传统方法的性能对比

3.4.1存储性能对比

采用不同数量的医学图像,在不同节点情况下,图像存储时间如图8所示。从图8可知,当医学图像数量小于20万时,两种系统的存储性能差别不大;随着图像数量增大,B/S单节点系统的存储时间急剧增加,而Hadoop分布式系统存储时间增长缓慢;同时本文系统的存储性能要优于传统Hadoop图像处理系统,这是因为传统Hadoop图像处理系统仍然采用传统上传方式,只是在图像检索过程中采用MapReduce方式,而本文系统通过MapReduce方式将医学图像上传到HDFS中,因此,本文系统减少了图像存储时间,能使医学检索系统的整体性能得以提高。

3.4.2检索效率对比

不同规模的医学图像库在不同节点情况下的医学图像检索耗时如图9所示。从图9可知,当医学图像规模较小时,分布式系统和B/S单节点系统的检索时间相差不大;随着医学图像数量的增加,两个系统的检索时间均相应增加,而B/S单节点系统图像检索时间增长幅度较大,Hadoop医学图像系统的时间增长则比较缓慢。主要是由于采用MapReduce的并行计算优势,将医学图像检索任务分配到多个节点,提高了医学图像检索效率;同时,节点越多,检索速度越快,增加Hadoop式系统节点数,可以提高图像检索系统性能。

3.4.3检索结果对比

对于不同类型的医学图像,采用Hadoop和传统检索系统进行对比实验,它们的查准率和查全率见表2和3。

从表2和表3可知,本文Hadoop系统的查准率和查全率略高于传统Hadoop图像检索系统以及B/S单节点图像检索系统,优势不十分明显。然而对于大规模的医学图像检索系统,系统性能优劣主要通过图像检索效率来衡量,而从图9可知,本文的Hadoop分布式系统有效降低了医学图像检索时间,提高了医学图像检索效率,较好地解决了海量医学图像检索效率低的难题,得到了比较令人满意的检索结果。

4结语

CBMIR的医学图像检索是一个数据密集型计算过程,传统B/S单节点检索系统存在效率低、可靠性差等缺陷,为此,提出一种Hadoop的医学图像检索系统。仿真测试结果表明,Hadoop的医学图像检索系统提高了图像存储和检索效率,获得较优的检索结果,可以满足医学图像检索的实时性要求,尤其当处理大规模医学图像时,具有传统B/S单节点不可比拟的优势。但是相对于当前Hadoop的医学图像检索系统,优势不太明显,因此,未来的工作重点是提高Map任务与Reduce任务之间数据传输速度,减少更多由于传输信息所产生的时间消耗,进一步提高现有图像检索系统的执行效率。

参考文献:

[1]宋真,颜永丰.基于兴趣点综合特征的图像检索[J].计算机应用,2012, 32(10):2840-2842.

[2]张泉,邰晓英.基于Bayesian的相关反馈在医学图像检索中的应用[J].计算机工程, 2008, 44(17):158-161.

[3]余胜,谢莉,成运.基于颜色和基元特征的图像检索[J].计算机应用,2013, 33(6):1674-1708.

[4]CHANG F, DEAN J, GHEMAWAT S, et al. Bigtable: a distributed storage system for structured data [C]// OSDI 2006: Proceedings of the 7th Symposium on Operating Systems Design and Implementat. Berkeley: USENIX Association, 2006, 7: 276-290.

[5]KEKRE H B, THEPADE S D, SANAS S. Improving performance of multileveled BTC based CBIR using sundry color spaces [J]. International Journal of Image Processing, 2010, 4(6):620-630.

[6]利业鞑,林伟伟.一种Hadoop数据复制优化方法[J].计算机工程与应用,2012, 48(21):58-61.

[7]王贤伟,戴青云,姜文超,等.基于MapReduce 的外观设计专利图像检索方法[J].小型微型计算机系统,2012,33(3):626-232.

[8]GHEMAWAT S, GOBIOFF H, LEUNG ST. The Google File System [C]// SOSP 03: Proceedings of the 19th ACM Symposium on Operating Systems Principles. New York: ACM, 2003: 29-43.

[9]梁秋实,吴一雷,封磊.基于MapReduce的微博用户搜索排名算法[J].计算机应用,2012, 32(11):2989-2993.

[10]DEAN J, GHEMAWAT S. MapReduce: a flexible data processing tool [J]. Communications of the ACM, 2010, 53(1):72-77.

[11]ATTEBURY G, BARANOVSKI A, BLOOM K, et al. Hadoop distributed file system for the grid [C]// Proceedings of the 2009 IEEE Nuclear Science Symposium Conference Record. Piscataway: IEEE, 2009: 1056-1061.

[12]JEFFREY D, SANJAY G. MapReduce: simplified data processing on large clusters [C] // OSDI 2004: Proceedings of the 6th Symposium on Operating Systems Design and Implementat. Berkeley: USENIX Association, 2004:107-113.

[13]练秋生,李芹,孔令富.融合圆对称轮廓波统计特征和LBP的纹理图像检索[J].计算机学报,2007,30(12): 2198-2204.

[14]王中晔,杨晓慧,牛宏娟.Brushlet域复特征纹理图像检索算法[J].计算机仿真, 2011, 28(5): 263-266, 282.

[15]ZHANG J, LIU X L, LUO J W, et al. DIRS: Distributed image retrieval system based on MapReduce [C]// ICPCA 2010: Proceedings of the 5th International Conference on Pervasive Computing and Applications. Piscataway: IEEE, 2010:93-98.

上一篇:高职院校.NET课程实训教学研究 下一篇:基于Hadoop的大矩阵乘法处理方法