Hadoop平台下基于内容的医学图像检索

郝娟+吕晓琪+温秀梅+谷宇+黄显武



摘 要: 针对海量医学图像存储及检索效率低的问题,该文提出利用Hadoop平台分别实现大量医学图像的分布式存储以及并行处理模式下的基于内容的医学图像检索。利用HIPI图像处理接口将医学图像上传到分布式文件系统(HDFS)中;然后,分别提取图像的形状以及纹理特征,并将其特征向量存储到HDFS中;最后,利用MapReduce模型实现并行式檢索并将图像检索结果按照相似度大小进行排序及显示。实验结果表明,在Hadoop云平台下大量医学图像的存储效率以及检索效率较高,且图像数量越多效率优势越明显。
关键词: Hadoop平台; 分布式存储; 并行处理; 医学图像检索
中图分类号: TN911.73?34 文献标识码: A 文章编号: 1004?373X(2017)04?0115?05
Content?based medical image retrieval by means of Hadoop platform
HAO Juan1,2, L? Xiaoqi1, WEN Xiumei2, GU Yu1, HUANG Xianwu1
(1. School of Information Engineering, Inner Mongolia University of Science and Technology, Baotou 014010, China;
2. School of Information Engineering, Hebei University of Architecture, Zhangjiakou 075000, China)
Abstract: Since the storage and retrieval efficiency of massive medical images is low, the Hadoop platform is used to realize the distributed storage of the massive medical images and content?based medical image retrieve in the parallel processing mode respectively. The Hadoop image processing interface (HIPI) is adopted to upload the medical images to the Hadoop distributed file system (HDFS). The shape and texture features of the images are extracted respectively, and their feature vectors are stored in HDFS. The MapReduce model is employed to realize the parallel retrieval, and sort and display the image retrieval results according to their similarity. The experimental results show that the efficiency of the massive medical images storage and retrieval by means of Hadoop cloud platform is high, and the efficiency advantage is significantly obvious with the increase of the image quantity.
Keywords: Hadoop platform; distributed storage; parallel processing; medical image retrieval
0 引 言
传统的基于文本的医学图像检索方法需要人工对图像添加文本描述,再利用文本检索系统对图像进行检索,因其检索过程比较复杂、时效性较低且准确率不高被淘汰,而基于内容的医学检索(Content?based Medical Image Retrieval,CBMIR)[1]是运用图像自身特征进行检索,自身特征一般包括颜色、纹理、形状等,因其检索准确性较高被广泛采用。由于医学图像大多是灰度图像,因此颜色特征在医学图像检索中作用不明显;纹理特征是图像的重要信息,可反映图像中同质现象的视觉特征,体现物体表面共有的内在属性,包含物体表面结构组织排列的重要信息以及它们与周围环境的联系;形状特征也是图像的一个重要特征并且此特征具有稳定性,基于形状特征的医学图像检索[2]可非常直观地区别图像。目前,基于内容的医学图像检索技术已经取得了重大突破,但是,由于不同类型的图像具有不同的属性特征,通过单一的图像特征进行检索,其通用性较差,结果不够理想,再加上用传统的单机串行处理模式面对大规模的医学图像数据时已出现进程瓶颈。本文利用不同特征之间的互补优势,结合医学图像形状特征与纹理特征,并运用与大数据处理密切相关的具有分布式、并行处理能力的Hadoop云计算平台,实现大量的医学图像检索,从而提高检索的时效性与准确性。
1 Hadoop平台
Hadoop[3]由Apache基金会开发,是在分布式服务器集群上存储海量数据并运行分布式分析应用的一种方法。Apache Hadoop软件库是一个框架,其设计规模可以从单服务器扩展到几千台服务器。不依赖于硬件,具有高效性。Hadoop的体系结构主要通过HDFS(Hadoop Distributed File System)来实现对分布式存储的底层支持,并通过MapReduce来实现对分布式并行运算的程序支持。
1.1 HDFS
HDFS[4]是一个高度容错性的系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。一个集群是由一个NameNode和若干个DataNode组成。NameNode管理着文件系统的Namespace,维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata),并且記录着每个文件中各个块所在的数据节点的位置信息,但当这些信息在系统中重新启动时会从数据节点重建,因此并不是永久存储这些信息。DataNode是文件系统的工作节点,它们根据客户端或者是NameNode的调度存储和检索数据,并且定期向NameNode发送它们所存储的块(block)的列表。
1.2 MapReduce
MapReduce[5]是一种并行编程模式,支持大型集群上执行分布式应用,具有很好的容错性和负载均衡等优点。MapReduce运用分而治之的思想将计算过程抽象为两个函数:Map函数和Reduce函数。其中Map函数将总任务分解为多个任务进行并行计算,Reduce函数负责将分解后多个任务进行中间结果的汇总,再做进一步的处理得到结果。
2 Hadoop模式下的医学图像检索
Hadoop平台下的医学图像检索技术[6?7]打破了图像数据存储空间受单一服务器容量限制的瓶颈,医生可以在具有更大存储能力的云服务平台下检索所需要的影像数据。检索过程利用MapReduce并行编程模型通过分解和规约的方式来快速实现。总之,本文在Hadoop云平台下实现,医学图像检索系统采用HDFS分布式文件系统存储以及MapReduce并行式检索结构下多特征融合的检索算法,以提高检索准确性和时效性。
2.1 HDFS的医学图像存储
Hadoop平台默认是用来处理大数据的文本文件,与医学图像和处理大不相同,并且Hadoop本身没有默认的图像处理接口。因此,本课题使用了由弗吉尼亚大学的Chris Sweeney等人编写的HIPI接口[8]。HIPI是Hadoop平台下MapReduce模式的一个大型的图像处理和计算机视觉库,为在Hadoop平台下进行图像处理提供接口。另外,Hadoop默认处理的数据块大小为64 MB,而常见的DICOM医学影像大小约为512 KB。为了避免造成内存空间的浪费与损耗,本文将每个病人每次检查所拍摄的一百多张医学图像借助HIPI中的HipiImageBundle类、FloatImage类和CullMapper类等合并成一个单独的hib格式文件,再存储到HDFS中。图像存储过程将图片遍历,合并为一个hib文件,生成SF?DICOM.hib和SF?DICOM.hib.dat。该方法实现部分代码如下:
public static void ReadAllFile() throws IOException {
Configuration conf=new Configuration();
HipiImageBundle
Hib=new HipiImageBundle(new Path
("hdfs://172.21.70.73:9000/input/SF?DICOM.hib"),conf);
hib.open(AbstractImageBundle.FILE_MODE_WRITE,true);
File f = null;
f = new File("/home/hadoop/input/SF-DICOM/");
File[] files = f.listFiles();
List list = new ArrayList();
for (File file : files) {
FileInputStream fis=new FileInputStream(file);
hib.addImage(fis,ImageType.DICOM_IMAGE); }
2.2 MapReduce的医学图像检索
为了减少检索图像的时间并提高检索效率,本研究利用了MapReduce模型来对图像的检索进行并行计算。检索过程包括对图像特征的提取,以及建立索引并将检索结果返回给用户,其算法流程如下:
(1) 提取医学图像库中的图像特征并存储在分布式文件HDFS中;
(2) 用户提交医学图像检索请求,并提取待检索图像的纹理特征以及形状特征;
(3) 系统响应检索请求上传至Hadoop云平台进行任务分解,发送至各个节点进行并行工作;
(4) 为Map函数中的key/value键值对赋值为<相似度,图像ID>,在此阶段将待检测图像与图像库中的图像进行特征相似度匹配,并输出键值对;
(5) 根据相似度的大小进行排序,并按照键值对的形式输入给Reduce;
(6) Reduce函数收集所有键值对,再重新进行排序,并把前12个键值对,存储到HDFS中;
(7) 最后将结果进行归纳将检索到的图像按照相似度反馈给用户,得到最终结果。
MapReduce的具体处理流程如图1所示。
2.2.1 医学特征提取以及匹配
以上运用了MapReduce并行模式进行运算能提高检索效率,为了提高检索的准确性,在基于内容的医学图像检索中提取算法的选择也相当重要。本文选择了基于区域的形状特征:Hu不变矩[9]进行图像特征的提取。因为用不变矩表达图像的形状特征可以不受图像的缩放、平移和旋转的影响,对噪声也不敏感;因此该方法在描述目标的形状特征中也被广泛应用。对于二维离散数字图像,其阶普通矩如式(1)以及相应的阶中心矩为:

(1)
(2)
式中:;和分别是图像的高度和宽度;和分别代表图像在水平方向和垂直方向的重心。
当图像发生变化时,也会发生变化,而则虽具有平移不变性但失去了旋转不变性,因此需要对中心矩进行归一,使其同时具有平移,旋转和比例不变性。归一中心矩如下:
(3)
另外,在此基础上利用二阶和三阶归一中心矩构造7个不变矩作为特征向量,如式(4)所示。
(4)
2.2.2 医学图像纹理特征提取
纹理特征体现图像的底层特征,在医学图像分析中占有很重要的地位。其中,小波变换算法是一种重要的基于变换的纹理特征提取方法。
小波变换算法是法国科学家Mallat提出的,该算法不但具有时域和频域的局部化分析的能力[10],而且对图像进行纹理分析时品质因数都恒定不变。小波变换能做多分辨率分析,纹理尺寸大小不一、对比度有强有弱时,用小波变换的方法提取纹理特征具有很大的优势。对于医学图像检索而言,获取图像要对其进行预处理,一般情况下3层的小波分解已经能够满足要求,3层分解可以得到10个子图,各个子带小波系数的均值和标准差可以对各个子图的特征进行描述,其均值如式(5)所示,标准差如式(6)所示,其中,,,,…,,代表图像的纹理特征。
(5)
(6)
式中,和分别表示子图像的高度和宽度,。由于特征向量的物理意义和取值范围不同,为了防止检索过程中产生偏差,也为了便于处理与分析数据,本文在此基础上选择高斯归一化的方法对特征向量进行了归一化。特征向量记为,经过高斯归一可以得出,如下:
(7)
还需要平移变换将特征值最终落在[0,1]区间上,如下:
(8)
2.3 相似度测量
欧氏距离[11]是在图像检索中一种常见的距离度量方式,距离越小表示相似度越高。此方法计算简单,复杂度较低,物理意义也很明确。本文在两种特征之间的距离测量方式中都用此测量方法,如式(9)所示:
(9)
另外,考虑到不同维对相似度的影响不同的问题,本文在普通的欧氏距离基础上进行了加权优化,如式(10)所示:
(10)
式中:和分别代表查询图像和图像的第分量;为权重。最终两幅图像之间的距离为:
(11)
式中:;和分别是纹理特征和形状特征之间的距离。可根据权重得出最终的相似距离,本文取值均为0.5。
3 实验结果及分析
3.1 实验环境
本实验是在Linux操作系统下,使用Hadoop?0.20.0平台,利用了HIPI图像接口,在Eclipse开发环境下,搭建了由一个主节点(NameNode)和三个工作节点(DataNode)组成的Hadoop伪分布式系统。运用Java语言编写程序实现MapReduce并行模式的医学图像检索。本实验在单机模式以及不同的节点数的Hadoop云平台环境下对比了图像的存储效率、图像检索效率,并对最终的检索结果进行显示与分析。
3.2 存储效率对比
本文在第一个实验中,完成在单机环境下以及不同节点数的情况下上传不同数量的医学图像到HDFS分布式文件系统中,并进行存储时间的对比,对比关系如图2所示。
由图2可以得出,当图像数量较少,只有1万~2万张医学图像时,四种情况下实验所需存储时间相差不大,本文实验环境下的存储体现不出优势,甚至随着节点数的增多,所需存储时间相对越多,这是因为在上传过程中进行节点任务的分配需要额外时间;但是,随着图像数量的增多,节点数越多该系统的存储性能优势越来越明显,系统进行分配任务的时间不会影响到大量图像存储的上传速度。另外,由图2可以看出,图像数量成倍增加时,在单机环境下存储时间也基本是按照比例成倍增加,而在不同节点数的环境下随着图像数量成倍增加,节点数越多曲线越趋于平缓,时间的增长幅度越小,即所需存储时间就越少。总之,数据量越大在本实验配置环境下的存儲高效性越明显。
3.3 检索效率对比
第二组实验是进行医学图像检索效率的对比,通过对不同数量的医学图像库进行检索,比较在单机模式下与本实验所搭建的不同节点的分布式环境下进行检索时间的对比,其对比关系如图3所示。
由图3可以看出,当图像数量少于2万张时,工作节点数的多少对检索时间影响不大,但当图像数量大于2万时,单机环境下的检索时间随着图像数量成倍增长也基本按相应的倍数增加;而在本实验所搭建的环境下,虽然图像数量成倍增长,但是节点数的增多使得增长幅度变小,也即检索时效性增强;总之,对于大量医学图像进行检索,节点数越多,检索效率越高,系统性能越好。
3.4 实验结果分析
将本实验环境下多特征融合算法与传统Hadoop环境下单特征检索结果进行对比,检索结果见图4和图5。
本组实验选取了2万张作为待检测图像,由图4、图5可以看出本系统检索结果更加准确,且检索效率提高,达到了实验预期,能满足客观需求。
4 结 语
本文实现了一种Hadoop云平台下基于内容的海量医学图像检索,利用云平台的分布式、并行处理能力,将大量医学图像数据集检索的任务进行并行式处理,利用Hadoop的核心框架分布式文件系统HDFS进行分布式存储和MapReduce编程模式进行并行式检索,各个节点之间相互配合。
实验中选取不同数量级的图像数据进行测试,并在存储效率以及检索效率方面与传统单机环境的图像检索系统进行对比验证,实验表明本系统与传统单机环境检索系统相比,有效提高了大量医学图像存储以及检索的效率。
参考文献
[1] 沈晔,李敏丹,夏顺仁.基于内容的医学图像检索技术[J].计算机辅助设计与图形学学报,2010(4):569?578.
[2] 付玮,曾接贤.基于形状特征的图像检索技术研究[J].计算机技术与发展,2007,17(11):228?232.
[3] ARMBRUST M, FOX A, GRIFFITH R, et al. A view of cloud computing [J]. Communications of the ACM, 2010, 53(4): 50?58.
[4] 黄晓云.基于HDFS的云存储服务系统研究[D].大连:大连海事大学,2010.
[5] MCKENNA A, HANNA M E, SIVACHENKO A, et al. The genome analysis toolkit: a MapReduce framework for analyzing next?generation DNA sequencing data [J]. Genome research, 2010, 20(9): 1297?1303.
[6] 韩法旺.基于云计算模式的图像检索研究[J].情报科学,2011(10):1534?1538.
[7] 陈洪.基于云计算的大规模图像检索后台处理系统实现[D].成都:西南交通大学,2013.
[8] SWEENEY C, LIU L, ARIETTA S, et al. HIPI: a Hadoop image processing interface for image?based MapReduce tasks [J]. Journal of Chris University of Virginia, 2011: 231?235.
[9] 黄勇,王崇骏,王亮,等.基于形状不变矩的图像检索算法的研究[J].计算机应用研究,2004,21(7):256?257.
[10] 宋余庆,刘博,谢军.基于Gabor小波变换的医学图像纹理特征分类[J].计算机工程,2010,36(11):200?202.
[11] 杜阳.基于贝叶斯分类器的最小欧氏距离图像检索相关反馈及DSP实现[D].长春:吉林大学,2006.