郝娟+呂曉琪+溫秀梅+谷宇+黃顯武



摘 要: 針對海量醫學圖像存儲及檢索效率低的問題,該文提出利用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
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.