潘紅艷
圖像數(shù)據(jù)庫技術(shù)是數(shù)字圖像處理技術(shù)、數(shù)據(jù)庫技術(shù)和模式識別技術(shù)發(fā)展并相結(jié)合的產(chǎn)物。它具有如下特點:數(shù)據(jù)對象龐大、數(shù)據(jù)結(jié)構(gòu)復(fù)雜、數(shù)據(jù)類型多樣、結(jié)構(gòu)性數(shù)據(jù)與非結(jié)構(gòu)性數(shù)據(jù)并存。圖像數(shù)據(jù)庫能夠?qū)⒋笈鷪D像及有關(guān)信息存儲在一起并進行有效的管理。
這些圖像信息的有效組織和檢索便依賴于基于內(nèi)容的圖像檢索方式CBIR(Content-Based Image Retrieval)[1] [2],即據(jù)給定圖象或顏色、紋理、形狀、空間關(guān)系等特征,檢索庫存圖像,找出與給定圖像特征相似的圖像來。
遙感圖像數(shù)據(jù)庫系統(tǒng)已廣泛應(yīng)用于中國的軍事、林業(yè)、國土、地質(zhì)礦產(chǎn)、水利、農(nóng)業(yè)等領(lǐng)域的資源調(diào)查和動態(tài)監(jiān)測。遙感圖像很多為 G級大小,且對精度要求高,很多存為Tif/Tiff格式。一般的軟件無法處理Tif/Tiff圖像,數(shù)據(jù)庫要對這種超大復(fù)雜的圖像執(zhí)行操作也十分困難,耗費很多時間和內(nèi)存資源。遙感圖像數(shù)據(jù)庫有其自身特點,本文架構(gòu)并實現(xiàn)了基于縮略圖的海量圖像數(shù)據(jù)庫系統(tǒng)[3]。
本文第二部分為系統(tǒng)架構(gòu),第三部分為系統(tǒng)實現(xiàn)及分析,第四部分為結(jié)論及展望。
本文提供的遙感圖象基于256灰度級,一個字節(jié)代表一個像素點,它的區(qū)間為 0x00~0xff中 256個灰度級。使用UltraEdit工具觀察該圖像的組織形式:IFH--數(shù)據(jù)--IFD。對于Tif/Tiff圖像目前有多種函數(shù)庫,其中最為有效的處理方式為libtiff函數(shù)庫(Adobe公司);
針對支持CBIR的遙感圖像數(shù)據(jù)庫,本文基于OOP的組件化設(shè)計思想,采用基于 windows2000操作系統(tǒng)平臺的模塊化軟件設(shè)計,以提高系統(tǒng)的開放性、可擴充性和通用性,設(shè)計了如圖1的系統(tǒng)架構(gòu):
主要實現(xiàn)和硬件系統(tǒng)的交互;設(shè)備層包括TIFF圖像處理器,圖像裝載器,數(shù)據(jù)庫連接器和圖像檢索器等,負(fù)責(zé)系統(tǒng)所有事務(wù)的執(zhí)行;事務(wù)映射層主要實現(xiàn)系統(tǒng)事務(wù)和設(shè)備層之間的交互;用戶接口層包括用戶數(shù)據(jù)輸入輸出交互,視圖的得到。
圖1 系統(tǒng)架構(gòu)
根據(jù)已經(jīng)掌握的支撐軟件要求,采用標(biāo)準(zhǔn)臺式PC機,配置為:CPU:PIV2.0GHz ;內(nèi)存:128M;顯卡:帶64M加速緩存的AGP卡;硬盤:40G以上;運行軟件建立在Delphi平臺上,進行界面設(shè)計,核心算法可采用IDL 、C/ C++語言開發(fā),形成動態(tài)鏈接庫。
本文通過Borland公司發(fā)布的數(shù)據(jù)庫引擎Firebird連接Delphi6.0[4] [5]程序和Interbase庫。對于海量遙感圖像,使用(1)實體圖像數(shù)據(jù)表1和(2)縮略圖數(shù)據(jù)表2(包括特征值字段)的方法來存儲圖像(Tblob型)。讀取Tif/Tiff文件中的像素,存到bmp文件中,最后讀取并顯示bmp文件的倒敘RGB像素。以GUID字段為主鍵,通過外鍵Path相連。有3個好處:
(1)這樣BLOB和表格與數(shù)據(jù)一起備份和恢復(fù),數(shù)據(jù)插入、更新和刪除都在同一個事務(wù)中實現(xiàn)。這樣就確保了數(shù)據(jù)的一致性和文件與數(shù)據(jù)庫之間的一致性,易于管理。
(2)數(shù)據(jù)庫系統(tǒng)可對大量小文件進行優(yōu)化,具有良好可伸縮性。
(3)數(shù)據(jù)庫復(fù)制允許在分布式環(huán)境中復(fù)制、分配和潛在的修改數(shù)據(jù)。在主系統(tǒng)失效的情況下,日志轉(zhuǎn)移提供了保留數(shù)據(jù)庫備用副本的方法。見圖2。
圖2 TIF 入庫存儲
分布在磁盤中各個文件中的大量超大原文件,采用選取磁盤自動檢索方式,管理員選擇文件夾進行入庫批處理。
處理對象為超大圖像,且算法包含了圖像縮略圖提取算法和屬性提取算法,在文件數(shù)量較多的時候此批處理動作可能將持續(xù)較長時間??紤]作底層后臺循環(huán)運算。同時可以執(zhí)行一些前臺突發(fā)事務(wù)。兩者通過線程的同步來解決。線程同步時不釋放線程機鎖。
事務(wù)是一種能夠在一個單一的、大型的、原子性的操作中知性所有的操作的方法,它可以保證所有的操作要么都成功,要么都失敗。流程圖見圖3。
圖3 操作流程圖
就目前的硬件水平,已經(jīng)能夠獲得9216x9216約8.5億像素的特大彩色圖像。而從圖像采集卡得原始圖像則占據(jù)160MB以上空間,用遙感圖像構(gòu)成的圖像數(shù)據(jù)庫達海量級別。對此一般不有損壓縮,而無損壓縮的壓縮比例不高。計算機對于1G大小的圖像反應(yīng)慢,畫面閃爍。只能通過每次移入整個屏幕的量,分塊顯示。而處理Tif/Tiff海量圖像時,很多操作不涉及顯示原圖,比如手動查找比較建筑區(qū),查找需要的圖像,剔除不合要求的圖像,象征性顯示圖像內(nèi)區(qū)域等。因此本文所用縮略圖策略來進行基礎(chǔ)操作[6],在需要時才點擊縮略圖顯示原圖??s略圖顯示效果見圖4。
圖 4 TIF/TIFF縮略圖的顯示界面
本縮略圖提取策略,使縮略圖的一個像素RGB值對應(yīng)原圖的一個對等長方形的所有RGB值,長方形中的每個像素根據(jù)其離長方形中心的距離為權(quán)重依據(jù),進行權(quán)重累加。最后得出縮略圖中一個像素的RGB值。比起選取長方形中一點提取RGB的方法更精確。取得了很高的保真度。但這種方法提高了提取像素的數(shù)量和計算量,很難降低提取縮略圖時間耗費。
傳統(tǒng)的縮略圖提取算法使用 Canvsa.Pixels方法的GetValue,像素依次讀取 RGB值,經(jīng)實驗這對于海量的Tif/Tiff遙感圖像來說,需要幾分鐘的處理時間,見圖3顯示的TimeStamp兩幅Tif/Tiff圖像完成入庫的時間差:
平均需時約為 1.75分鐘。為了提高效率,避免無謂的時間犧牲,本文在使用Libtif時,使用指針數(shù)組代替Borland公司使用的指針,分行存儲提取出的像素,使用了分行讀取的Scanline方法代替了原來的pixels方法。并優(yōu)化了算術(shù)運算符計算方法,使提取縮略圖策略的速度提高了20多倍。具體見圖4顯示的TimeStamp圖像完成入庫的時間差(包括用庫函數(shù)讀圖,圖像入數(shù)據(jù)庫及其他字段入庫等操作):
平均需時約為 5秒鐘,可見對于本實驗所用圖像數(shù)據(jù)(約1M大小的遙感Tiff圖像),此縮略圖提取算法的速度提高了近20倍,但此數(shù)據(jù)包括調(diào)用庫函數(shù)讀取圖像,原始超大圖像入庫及其他數(shù)據(jù)入庫時間,所以實際上提高更多,20倍以上。圖像越大,此算法效率越高。此策略同樣可用于許多其他的對超大圖像的處理上,用來讀取圖像像素進行處理。
縮略圖提取算法流程見圖5:
圖5 TIF/TIFF圖像縮略圖提取算法流程
特大圖像動態(tài)顯示法,實現(xiàn)了圖像的快速瀏覽。圖像的存儲和顯示方式,直接影響著整個圖像數(shù)據(jù)庫的運行速度和性能,在存儲和顯示過程中,使用內(nèi)存流技術(shù)(TStream)進一步提高速度,并保證快速、平滑、連續(xù)地瀏覽整個圖像數(shù)據(jù)庫中的任一圖像。
在DELPHI中定義一個內(nèi)存流,就可用流指針在內(nèi)存中快速加載和顯示縮略圖。并可以快速定位到滾動條所移動到的位置,進而動態(tài)加載該位置圖像。主要思想,先判斷將顯示區(qū)域的大小是否大于顯示屏幕,若小于則全顯示,若大于,則只是將某一個位置的一個顯示屏幕大小平面中的某一些像素直接拷貝到內(nèi)存,并顯示出來,若繼續(xù)移動滾動條顯示,則釋放已加載的內(nèi)存區(qū)域,并當(dāng)滾動條移到某區(qū)域時動態(tài)加載該一個顯示屏大小的該區(qū)域的圖像,而原來已經(jīng)加載的圖像當(dāng)被移出顯示區(qū)域外時,立即釋放其所占的內(nèi)存,并存儲新的一個顯示屏大小的區(qū)域。這樣無論多大的圖像,當(dāng)顯示時始終只有顯示區(qū)域在占用內(nèi)存。由于顯示的是圖像的某一塊,而其他的部分可通過移動滾動條來實現(xiàn),所以該設(shè)計方法不受圖像大小的限制,再大的圖像也只是加載入顯示屏大小的圖像,速度自然是相當(dāng)快的。
在窗體的創(chuàng)建事件中,當(dāng)初始化時就建立雙緩沖區(qū),可以加快圖像顯示速度。
Self doublebuffered = true;
本文針對 Tif/Tiff海量遙感圖像和基于內(nèi)容的檢索技術(shù),設(shè)計了適用的圖像數(shù)據(jù)庫系統(tǒng)。創(chuàng)新點為:通過特大圖像縮略圖快速提取策略、特征向量、縮略圖與原始圖像分開存儲、線程同步和內(nèi)存流等技術(shù),實現(xiàn)了特大圖像快速存儲與顯示。實現(xiàn)了海量圖像數(shù)據(jù)庫的高效管理與應(yīng)用。接下來筆者將針對海量遙感數(shù)據(jù)庫,進行有針對性的算法設(shè)計以及重點區(qū)域或感興趣區(qū)域(ROI)的選取。
[1] Datta R ,Li Jia ,Wang J Z.Content-based image retrieval approaches and trends of the new Age[C] //Proceedings of the 7thInternational Workshop on Multimedia Information Retrieval ,in conjunction with ACM International Conference on Multimedia. Singapore ,ACM ,November 2005 :2532262.
[2] 董衛(wèi)軍,周明全,耿國華,黎曉.基于內(nèi)容的圖像檢索技術(shù)研究[J] .計算機工程,2005,31(10):162-163.
[3] 鄭斌.基于內(nèi)容的遙感圖像數(shù)據(jù)庫的多維索引技術(shù)[J] .計算機測量與控制. 2007年12月.
[4] (美)Ray Lischner.肖雪蓮(譯).Delphi 技術(shù)手冊[M] .中國電力出版社. 2001年5月.
[5] 李維.Delphi7高效數(shù)據(jù)庫程序設(shè)計[M] .機械工業(yè)出版社.2003-4第2次印刷.
[6] 黃斌,楊世洪.數(shù)據(jù)庫中特大圖像快速存儲與顯示研究及實現(xiàn)[J] ,計算機工程及應(yīng)用.2005.5:176-178 [7] Roni Yagel, Davids Ebert, James N Scottetal. Grouping Volume Renderers For Enhanced Visualization in Computational Fluid Dynamics[J] .IEEE Transaction on Visualization and Computer Graphics, 1995.