范 敏,徐勝才
FAN Min1,XU Shengcai2
1.杭州職業(yè)技術(shù)學(xué)院,杭州 310018
2.同濟大學(xué) 電子與信息工程系,上海 201815
1.Hangzhou Vocational and Technical College,Hangzhou 310018,China
2.Department of Electronic Engineering,Tongji University,Shanghai 201815,China
隨著數(shù)字化影像技術(shù)發(fā)展,大量的醫(yī)學(xué)圖像隨之產(chǎn)生,這些海量醫(yī)學(xué)圖像數(shù)據(jù)可以為臨床診斷提供服務(wù)[1]。如何對這些醫(yī)學(xué)圖像進行有效管理和組織是醫(yī)學(xué)工作者面對的難題,基于關(guān)鍵字的傳統(tǒng)圖像檢索技術(shù)存在主觀性較強、不能準確反映圖像信息等缺陷,而基于內(nèi)容的醫(yī)學(xué)圖像檢索(Content-based Medical Image Retrieval,CBMIR)在該種背景下發(fā)展起來,在醫(yī)學(xué)教學(xué)、輔助醫(yī)學(xué)診斷、醫(yī)學(xué)資料管理等領(lǐng)域得到了廣泛應(yīng)用[2]。
醫(yī)學(xué)圖像檢索是一個典型的數(shù)據(jù)密集型計算過程,對于海量醫(yī)學(xué)圖像,基于B/S的醫(yī)學(xué)圖像檢索系統(tǒng)難以滿足圖像的實時性要求[3-4]。具有分布式、并行處理能力云計算(cloud computing)可以將大型任務(wù)進行分解子任務(wù),然后將子任務(wù)分配到各個工作節(jié)點共同完成任務(wù),為醫(yī)學(xué)圖像檢索提供了一種新思路[5]。云計算模型得到許多公司支持,如:Google、Amazon、Yahoo!等,在不了解底層細節(jié)的情況下,利用Map/Reduce函數(shù)輕松地實現(xiàn)并行計算,在大規(guī)模文本分類、專利圖像分類等領(lǐng)域得到了廣泛的應(yīng)用[6-8]。云計算具有的優(yōu)點可以較好地解決醫(yī)學(xué)圖像檢索過程中的難題,而且目前國內(nèi)還沒有相關(guān)研究[9]。
為了提高醫(yī)學(xué)圖像檢索效率,提出一種基于云計算的醫(yī)學(xué)圖像檢索系統(tǒng)。首先采用Brushlet變換和LBP算法提取醫(yī)學(xué)示例圖像的頻域和空域特征,然后采用Map函數(shù)將其與醫(yī)學(xué)圖像特征庫中的特征進行匹配,并采用Reduce函數(shù)對Map任務(wù)的匹配結(jié)果進行收集和排序,最后根據(jù)排序結(jié)果找到醫(yī)學(xué)圖像的最優(yōu)檢索結(jié)果,并進行性能測試與分析。
云計算的Hadoop是一個使用Java的支持開發(fā)和并行處理大規(guī)模數(shù)據(jù)的分布式計算開源框架,主要由分布式文件系統(tǒng)(HDFS)和MapReduce并行計算模型組成。進行Hadoop開發(fā)時,可以將分布式并行程序運行于由大量節(jié)點所組成的大規(guī)模集群系統(tǒng)上完成海量數(shù)據(jù)的計算,而不用操心并行編程中的工作調(diào)度、分布式存儲、容錯處理、網(wǎng)絡(luò)通信和負載平衡等問題[10]。
HDFS采用master/slave架構(gòu),一個HDFS集群是由一個NameNode和一組DataNode組成,NameNode是一個中心節(jié)點,負責管理文件系統(tǒng)的名字空間(namespace)以及客戶端對文件的訪問。集群中一般是一個節(jié)點上運行一個DataNode,負責管理它所在節(jié)點上的數(shù)據(jù)存儲,并負責處理文件系統(tǒng)客戶端的讀寫請求,在NameNode統(tǒng)一調(diào)度下進行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制[11]。HDFS把文件切割成塊(block),這些block分散地存儲于不同的DataNode上,每個block還可以復(fù)制數(shù)份存儲于不同的DataNode上,因此具有較高的容錯性和對數(shù)據(jù)讀寫的高吞吐率。
MapReduce是一種處理海量數(shù)據(jù)的并行編程模型和計算框架,用于大規(guī)模數(shù)據(jù)的并行計算,其采用一種“分而治之”的思想,把大的任務(wù)分解成若干個較小的任務(wù)分發(fā)給各個節(jié)點來執(zhí)行,再將各個節(jié)點的執(zhí)行結(jié)果進行匯總,從而得到最終的結(jié)果。這種處理過程分為Map過程和Reduce兩個階段[12]。
在Map(映射)階段,MapReduce框架將任務(wù)的輸入數(shù)據(jù)先分割成若干固定大小的塊(Split),對Split又分解成一批鍵值對(Key1,Value1)傳給Map函數(shù);每個節(jié)點的Map函數(shù)對每組鍵值對進行處理后,形成新的鍵值對(Key2,Value2),并按照Key2值相同的進行匯總,形成(Key2,list(Value2)),傳給Reduce作為Reduce的輸入。一般來說,Map會將Key2值相同的鍵值對傳給相同的節(jié)點來進行Reduce階段的處理。
在Reduce階段,Map輸出的(Key2,list(Value2))成為Reduce階段的輸入,對于輸入作相應(yīng)處理后會得到鍵值對(Key3,Value3),根據(jù)用戶需要輸出到HDFS或者HBase數(shù)據(jù)庫等指定的位置。
為使得MapReduce的數(shù)據(jù)處理流程更加形象,MapReduce模型的計算流程如圖1所示。
圖1 MapReduce數(shù)據(jù)處理流程
Brushlets變換可以有效地分析富含方向信息的紋理圖像,其具有類似于小波包的多層結(jié)構(gòu),可以對Fourier域進行極佳的分解[13]。Brushlets一層分解把Fourier平面分成4個象限,分解后的系數(shù)由4個子帶組成,對應(yīng)的方向為π/4+kπ/2,k=0,1,2,3,那么Brushlets兩層分解把每個象限進一步分為4個部分,共12個方向,分別為 π/12+kπ/6,k=0,1,…,11,分解后的系數(shù)由16個子帶構(gòu)成,其中環(huán)繞著中心的4個子帶為低頻紋理分量,其余的為高頻紋理。Brushlets多層分解是對上一層繼續(xù)加以細分,但如果層數(shù)過多就會出現(xiàn)明顯的頻譜混疊現(xiàn)象,故而一般采用1~3層分解,3層分解如圖2所示。
圖2 Brushlet三層分解方向
令∧f表示Brushlet分解后的系數(shù),而實部和虛部的第帶模值的均值 μn和標準差σn分別為:
其中i=1,2,…,M ,j=1,2,…,N,M 和 N 是每個子帶的行數(shù)和列數(shù),圖像最終的特征為:
LBP可以刻畫領(lǐng)域內(nèi)像素點的灰度相對于中心點的變化情況,注重像素灰度的變化,符合人類視覺對圖像紋理的感知特點[14-15]。因此對圖像提取LBPu23,并將直方圖作為圖像的空域特征。
其中,
式中,gc為一個鄰域中心像素點的灰度值,gi是以gc為中心3×3鄰域順時針各像素點的灰度值。
對Brushlet域特征相似性采用平均距離度量:
其中,P為待檢索醫(yī)學(xué)圖像,Q為醫(yī)學(xué)圖像庫的圖像。
對于圖像LBP特征,首先對特征進行歸一化處理,然后采用歐式距離計算相似度。
式中,Wˉ為歸一化后特征矢量。
由于SimBrushlet和SimLBP取值范圍不同,對它們進行“外部歸一化”處理,具體為:
兩幅醫(yī)學(xué)圖像間的距離為:
式中,w1和w2為權(quán)重,并且滿足w1+w2=1。
醫(yī)學(xué)圖像及其特征均存儲于HBase中,當HBase的數(shù)據(jù)集非常大時,掃描搜索整個表要花費比較長的時間。為了減少檢索圖像的時間和提高檢索效率,利用MapReduce計算模型對醫(yī)學(xué)圖像檢索進行并行計算,具體框架如圖3所示。
圖3 圖像檢索的工作框圖
基于MapReduce的醫(yī)學(xué)圖像檢索步驟如下:
(1)收集醫(yī)學(xué)圖像,提取相應(yīng)的特征,并將特征數(shù)據(jù)存入HDFS。
(2)用戶提交檢索請求,提取待檢索的醫(yī)學(xué)圖像的Brushlet域特征和LBP特征。
(3)Map階段。將待檢索的醫(yī)學(xué)圖像特征與HBase中的圖像特征進行相似度匹配,map的輸出為<相似度,圖像ID>鍵值。
(4)根據(jù)相似度的大小對map輸出全部<相似度,圖像ID>鍵值進行排序和重新劃分,然后再輸入到reducer。
(5)Reduce階段。收集所有的<相似度,圖像ID>鍵值對,再對這些鍵值對進行相似度的排序,把前N個鍵值對寫入到HDFS。
(6)輸出與待檢索醫(yī)學(xué)圖像最相似的那些圖像的ID,用戶得到最終的醫(yī)學(xué)檢索結(jié)果。
云計算醫(yī)學(xué)圖像檢索系統(tǒng)的工作流程如圖4所示。
圖4 云計算醫(yī)學(xué)圖像檢索系統(tǒng)的工作流程
在Linux環(huán)境下,通過1個主節(jié)點(NameNode)機和3工作節(jié)點(DataNode)組成一個云計算系統(tǒng),通過主節(jié)點對工作節(jié)點進行管理,具體配置見表1。在云計算系統(tǒng)中,通過在不同的節(jié)點數(shù)下進行醫(yī)學(xué)圖像檢索測試,將其測試結(jié)果與傳統(tǒng)B/S架構(gòu)下的圖像檢索系統(tǒng)的測試結(jié)果進行對比,系統(tǒng)性能評價標準采用存儲效率、檢索速度、查準率(%)、查全率(%)、檢索速度,并對云計算圖像檢索系統(tǒng)的性能進行分析。
表1 云計算系統(tǒng)各節(jié)點的配置情況
通過向云計算系統(tǒng)(節(jié)點數(shù)為3)提交醫(yī)學(xué)圖像檢索任務(wù),在不同時間點以及不同數(shù)據(jù)量下測試各節(jié)點的負載情況,記錄各節(jié)點CPU的使用率,時間采樣平均分布在檢索任務(wù)的執(zhí)行時間內(nèi),統(tǒng)計結(jié)果如圖5~7所示。從圖5~7可以得到如下結(jié)論:
圖5 處理40萬幅圖像的CPU使用率
圖6 處理80萬幅圖像的CPU使用率
圖7 處理100萬幅圖像的CPU使用率
(1)當醫(yī)學(xué)圖像數(shù)據(jù)量為40萬幅時,只有2個Map任務(wù),2個Map任務(wù)分別分配給DataNodel和DataNode3,t1和t2時刻(時間間隔為10 s),兩個節(jié)點的Map任務(wù)在執(zhí)行中。
(2)t3時刻,DataNode3節(jié)點的Map任務(wù)執(zhí)行完畢,并在該節(jié)點開始執(zhí)行Reduce任務(wù),DataNodel節(jié)點的Map任務(wù)還在執(zhí)行。
(3)在t4時刻,DataNodel節(jié)點上的Map任務(wù)完成,該節(jié)點將Map任務(wù)產(chǎn)生的中間結(jié)果交由DataNode3進行Reduce處理。
(4)在t5時刻,只有DataNode3在執(zhí)行Reduce任務(wù),DataNodel和DataNode2處于空閑狀態(tài)。
(5)t6時刻,整個檢索任務(wù)完成,各節(jié)點處于空閑狀態(tài)。
(6)在處理80萬幅醫(yī)學(xué)圖像(時間點間隔為25 s)和120萬(時間點間隔為40 s)時,各節(jié)點的負載情況類似于處理40萬幅醫(yī)學(xué)圖像的負載情況。
4.3.1 存儲性能對比
采用不同數(shù)量的醫(yī)學(xué)圖像,在不同節(jié)點情況下,圖像存儲時間如圖8所示。從圖8可知,當醫(yī)學(xué)圖像數(shù)量較小時,相對于B/S單節(jié)點系統(tǒng),云計算系統(tǒng)的優(yōu)勢不明顯。當醫(yī)學(xué)圖像數(shù)量增大時,B/S單節(jié)點系統(tǒng)的存儲時間大幅度增加,而云計算系統(tǒng)存儲時間增長比較緩慢,這表明采用MapReduce方式將醫(yī)學(xué)圖像上傳到HDFS中,提高了存儲效率。
圖8 兩種系統(tǒng)的醫(yī)學(xué)圖像存儲時間對比
4.3.2 檢索效率對比
醫(yī)學(xué)圖像的數(shù)據(jù)量分別為20萬、40萬、60萬、80萬、100萬以及120萬幅時,云計算的醫(yī)學(xué)圖像檢索系統(tǒng)與B/S單節(jié)點系統(tǒng)的圖像檢索的耗時,實驗結(jié)果如圖9所示。當醫(yī)學(xué)圖像數(shù)據(jù)量為20萬幅,云計算系統(tǒng)檢索速度比B/S單節(jié)點模式慢,因為此時醫(yī)學(xué)圖像數(shù)據(jù)量比較小,云計算把數(shù)據(jù)集作為一個Map任務(wù),存放在一個節(jié)點上進行處理,即只有一個節(jié)點執(zhí)行一個Map任務(wù),任務(wù)的初始化、分配以及清空作業(yè)的耗時造成檢索時間的延長。當醫(yī)學(xué)圖像數(shù)據(jù)量為40萬幅時,此時有2個Map任務(wù),云計算系統(tǒng)醫(yī)學(xué)圖像檢索的速度有了很大提高,相比B/S單節(jié)點系統(tǒng),檢索速度分別提高了41.15%;當醫(yī)學(xué)圖像數(shù)據(jù)量為60萬幅時,此時有3個Map任務(wù),云計算系統(tǒng)的檢索時間相對于B/S單節(jié)點模式分別提高了33.89%。當數(shù)據(jù)量繼續(xù)增大時(數(shù)據(jù)量大于60萬),此時云計算系統(tǒng)的檢索時間成線性增長,因為Map任務(wù)已超出了分布式系統(tǒng)的節(jié)點數(shù),部分節(jié)點會分配多個Map任務(wù),而一個節(jié)點同一時刻只能處理一個Map任務(wù),從而使檢索時間呈線性增長,因此適當增加云計算系統(tǒng)的節(jié)點數(shù),以增強分布式系統(tǒng)并行處理Map任務(wù)的能力,并提高醫(yī)學(xué)圖像檢索速度。
圖9 兩種系統(tǒng)的醫(yī)學(xué)圖像檢索效率對比
對于表2不同類型的醫(yī)學(xué)圖像,采用云計算系統(tǒng)和B/S系統(tǒng)進行檢索,得到的檢索結(jié)果見表2。從表2可知,云計算系統(tǒng)的查準率和查全率均要優(yōu)于B/S單節(jié)點系統(tǒng),這表明云計算系統(tǒng)提高了醫(yī)學(xué)圖像檢索速度,獲得了更高醫(yī)學(xué)圖像的查準率、查全率。
表2 多類醫(yī)學(xué)圖像檢索結(jié)果對比
針對海量醫(yī)學(xué)圖像檢索效率低的難題,提出一種云計算的醫(yī)學(xué)圖像檢索系統(tǒng)。仿真測試結(jié)果表明,云計算的醫(yī)學(xué)圖像檢索系統(tǒng)縮短了圖像存儲和檢索時間,獲得較優(yōu)的檢索結(jié)果,較好地滿足了圖像檢索的實時性要求,尤其當處理大規(guī)模醫(yī)學(xué)圖像時,具有傳統(tǒng)算法不可比擬的優(yōu)勢。
[1]沈嘩,夏順仁,李敏丹.基于內(nèi)容的醫(yī)學(xué)圖像檢索中的相關(guān)反饋技術(shù)[J].中國生物醫(yī)學(xué)工程學(xué)報,2009,28(1):128-137.
[2]張泉,邰曉英.基于Bayesian的相關(guān)反饋在醫(yī)學(xué)圖像檢索中的應(yīng)用[J].計算機工程,2008,44(17):158-161.
[3]焦蓬蓬,郭依正.特征級數(shù)據(jù)融合在醫(yī)學(xué)圖像檢索中的應(yīng)用[J].計算機工程與應(yīng)用,2010,46(6):217-220.
[4]Chang F,Dean J.Bigtable:a distributed storage system for structured data[C]//7th OSDI,2006:276-290.
[5]Kekre H B,Thepade S,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]利業(yè)韃,林偉偉.一種Hadoop數(shù)據(jù)復(fù)制優(yōu)化方法[J].計算機工程與應(yīng)用,2012,48(21):58-61.
[7]王賢偉,戴青云,姜文超,等.基于MapReduce的外觀設(shè)計專利圖像檢索方法[J].小型微型計算機系統(tǒng),2012,33(3).
[8]Ghemawat S,Gobioff H,Leung S T.The Google file system[C]//Proceedings of the 19th ACM Symposium on Operating Systems Principles.Bolton Landing:ACM,2003:29-43.
[9]李彬,劉莉莉.基于MapReduce的Web日志挖掘[J].計算機工程與應(yīng)用,2012,48(22):95-98.
[10]Dean J,Ghemawat S.MapReduce:a flexible data processing tool[J].Communications of the ACM,2010,53(1):72-77.
[11]Shvacliko K,Kuang H,Radia S,et al.Hadoop distributed file system for the grid[C]//Proceedings of the Nuclear Science Symposium Conference Record(NSS/MIC),2009:1056-1061.
[12]Dean J,Ghemawat S.Mapreduce:simplified data processing on large clusters[C]//Proceedings of the 6th Symposium on Operating Systems Design and Implementat.San Francisco:Google Inc,2004:107-113.
[13]練秋生,李芹,孔令富.融合圓對稱輪廓波統(tǒng)計特征和LBP的紋理圖像檢索[J].計算機學(xué)報,2007,30(12):2198-2204.
[14]王中曄,楊曉慧,牛宏娟.Brushlet域復(fù)特征紋理圖像檢索算法[J].計算機仿真,2011,28(5):263-266.
[15]趙汝哲,房斌,文靜.自適應(yīng)加權(quán)LBP的單樣本人臉識別方法[J].計算機工程與應(yīng)用,2012,48(31):146-149.