本文摘要:摘 要:針對海量控制點影像管理現狀中的不足, 提出了基于數據庫方式進行控制點影像管理與應用的新模式, 并基于內存動態調度, 采用VC6.0平臺, 實現了控制點影像數據庫系統。通過該系統在青海第二測繪局的應用實踐表明, 該系統能夠有效提高控制點影像數據的管
摘 要:針對海量控制點影像管理現狀中的不足, 提出了基于數據庫方式進行控制點影像管理與應用的新模式, 并基于內存動態調度, 采用VC6.0平臺, 實現了控制點影像數據庫系統。通過該系統在青海第二測繪局的應用實踐表明, 該系統能夠有效提高控制點影像數據的管理效率, 在控制點影像數據的檢查、更新以及管理等方面發揮作用。同時, 基于數據庫方式的控制點影像管理, 有益于提高利用控制點對控制點影像匹配的速度, 對促進測繪資料的高效利用有著重要意義。
關鍵詞:控制點影像; 影像匹配; 內存調度; 報表生成
控制點影像在空間數據生產中具有關鍵作用, 是影像預處理的重要組成部分[1]。隨著測繪資料的增加, 人工管理控制點影像, 主要存在如下局限[1]: (1) 人工選擇控制點, 對人員專業素質要求較高, 需要具備良好的專業基礎和較高的影像判別能力[2]; (2) 對于海量控制點影像, 其查詢與更新, 人工管理方式都存在較大的弊端[3]; (3) 影像控制點, 屬于機密資料, 人工管理存在較大的保密安全隱患[4]。因此, 建立控制點影像系統, 采用科學有效的手段來管理控制點影像, 迫在眉睫。眾多研究表明, 當前控制點影像庫系統, 其控制點及控制點匹配大多由人工干預選取, 其自動化程度不高耗費的人力物力較大[5]。另外, 由于生產中使用的影像數據占用內存較大, 時常存在調用卡頓的現象, 影響作業的效率, 而且當前應用系統均缺少控制點影像報表自動生成功能, 不利于資料交替。基于以上問題, 提出了海量控制點影像庫系統, 旨在自動提取控制點和實現控制點匹配, 同時引入TLSF算法優化內存調度, 提升用戶體驗。此外, 系統還實現了控制點信息報表自動生成功能, 便于資料移交和使用。具體的關鍵技術與系統功能如下詳述。
1 系統設計
系統的環境為Windows 7操作系統, VC 6.0開發平臺, Sql server數據庫管理系統。該影像系統主要由4個板塊組成, 分別是影像質量控制板塊、影像數據庫入庫與更新板塊、數據安全與備份板塊、數據應用板塊。海量影像數據庫系統的主要功能結構如圖1所示。
主要功能結構Fig.1 Structure diagram of the main functions 下載原圖該系統主要完成對影像庫中數據的檢查、更新、查找、應用以及管理等功能。影像質量控制模塊主要用來檢查數據錄入的格式, 處理影像的幾何糾正問題。影像數據入庫與更新模塊功能是控制點的錄入與批量錄入、影像的錄入與批量錄入、數據的修改與更新。影像的安全與備份模塊功能是報表的自動生成與訪問影像庫身份設置。影像庫可以完成影像與控制點在該界面的顯示、查詢和輸出等功能。
2 關鍵技術
2.1 影像間自動匹配
系統借鑒了sift影像匹配算法與RANSAC去除誤差算法。sift與其他影像匹配算法相比, 有效地減少了錯綜控制點的干擾問題, 提高了匹配時的速度, 同時使用影像的特征點代替影像人工選擇的控制點, 更多的考慮了影像的特征信息, 也就是說sift算法是尋找在2個影像中特征最相像的點匹配, 改變了之前算法過于復雜的情況, 是一種十分高效的影像匹配算法。它的設計思路是將圖像之間的匹配轉換為特征向量之間的匹配。選取的特征要求不會隨著影像的旋轉等變化而改變, 且該特征在空間域與頻率域都有很好的定位作用, 這樣可以減少在圖像匹配時因噪聲產生的誤差。該方法的重要特點是可以生成大量的特征向量, 這些特征可以在各種尺度和位置上密集地覆蓋圖像。特征量對于對象識別尤其重要, 例如在雜亂背景中可靠地檢測并識別小對象時, 要求每個對象至少正確匹配3個特征向量[6]。該匹配方法大致可以分為5個步驟: (1) 尺度空間極值檢測; (2) 關鍵點定位; (3) 關鍵點方向分配; (4) 提取特征描述; (5) 特征點匹配[6]。(1) 尺度空間極值檢測 使用圖像金字塔與尺度空間結合, 即先對圖像進行降采樣或升采樣, 減少或增加其分辨率形成圖像金字塔, 再對每一層采樣后的圖像使用不同維度的二元高斯函數進行平滑, 即假如一張影像的圖像金字塔有n張, 做m次平滑我們就可以得到m×n張的不同影像, 之后使用同分辨率層中相鄰的影像相減即得到DOG算子模型。平滑圖像公式為
(2) 關鍵點定位 在獲得影像金字塔模型后就要尋找影像灰度變化的極值, 由于原影像數據為離散灰度值, 所以需要插值, 這里插值函數與極值點為
用于控制點匹配的另一種算法RANSAC是一種簡單快捷的去除噪音的方法, 其優勢在于使用少量的點就可以得到大范圍的估計模型, 在sift算法影像提取特征點時可以剔除的只是邊緣的錯誤特征點, 系統對其方法進行改正, 用RANSAC算法對特征點定位后的結果去除噪聲點, 具體方法如下:(1) 均勻選取L個點擬合出一個連續灰度曲面。(2) 計算除了L個點的其他數據點距離曲面的距離, 超出閾值的舍去。(3) 沒有舍去的點即為有效特征點。選取L個不同的初始點, 將以上算法迭代K次, 得
其中:Z為K次有一次L個點都是有效特征點的概率; (1-ωL) K表示K次迭代沒有一次迭代選中的點都是有效特征點的概率。(3) 方向賦值 得到了需要的特征點后, 通過二元梯度計算公式得到每一個特征點的梯度值方向與幅值, 將其按照東、南、西、北、東北、西北、東南、西南8個方向進行統計, 得到幅值>80%的所有方向。到這一步我們獲得了所有有效特征點的賦值信息, 包括位置、方向和尺度。(4) 關鍵點描述 sift算法就是用特征點的方向來代替影像點直接的匹配, 所以需要將每一個特征點轉化為特征向量。為了保證特征方向的旋轉不變性, 就要保證主方向不變, 即將影像方向與特征向量方向重合。設圖像2次旋轉角度相差的值為θ, 最終旋轉公式為
其中:X與x為坐標矩陣。(5) 特征點匹配 匹配2幅不同時相下的影像時, 使用以上4步對影像特征矢量化, 之后找到特征最相似的2點即為匹配點, 由于結果有很多錯誤匹配點, 所以在最后匹配時應該設置閾值a, a為最近匹配點和次近匹配點之比。在a較大時會產生大量錯誤匹配, a取小值時特征匹配點對數會減小, 此次系統采用a值為0.5。
2.2 內存動態管理
(1) 內存管理原理 靜態內存管理在程序開始運行時系統就會為程序分配一定的存儲空間, 在程序運行完成后再全部釋放內存, 動態內存管理的好處在于不需要提前預留內存空間, 可以根據程序本身要求內存進行分配。但傳統的動態內存管理也存在碎片化等問題。結合控制點影像庫管理系統的要求與傳統內存管理存在的問題, 設計的新的內存動態調用機制需要滿足以下幾點的要求:(1) 在影像庫使用過程中調用數據的速度是影響作業的關鍵所在。該系統采用的新的內存管理機制主要通過改變原有的數據結構, 使用新的分割內存塊的方法實現。(2) 最適應性原則。在一個內存管理機制中如何快速的找到與請求內存需求大小最適合的空閑內存塊是后續工作進行的前提, 這是對首次適應方法的改進。(3) 減少內存碎片提高內存池的使用效率[11]。許多實例已經證明了碎片問題會嚴重限制內存管理。Johnstone等人曾指出“在內存分配機制中, 內存碎片確實是一個十分難以解決的問題”。該系統使用的內存動態調度機制的關鍵是定義了一個內存分配器, 系統通過內存分配器對用戶存儲請求進行處理, 進而實現了對數據庫內存分配的動態管理。例如, 當影像管理系統下Sql Sever數據庫接受到用戶的內存請求后, 從其所維護的虛擬地址空間區域為用戶程序分配所需要大小的空間, 而不是通過Windows內存管理API函數malloc () /new來實現[12]。同理在用戶執行其他有關數據庫存儲操作時, 其工作都將會由內存管理器來承擔而不是原有系統的函數。所以其是一種自定義的內存分配器, 可以根據實際的情況對分配器修改, 與原有的內存分配相比具有更好的適應性。(2) 內存管理器數據結構 此次設計的控制點影像管理系統中內存管理機制主要用到了TLSF算法, TLSF算法是一種良好適應性算法, 其使用一串空列表, 每一個列表里都是無序的空閑內存塊, 其大小介于上一個列表類與下一個列表類之間, 每一個列表包含著相同分類等級的內存塊, 使其可以找到與請求內存大小最匹配的空閑內存塊。詳細結構如下。在對影像數據存儲時TLSF算法會分2級去尋找空內存塊, 這樣比順序的查找計算機中的空內存塊效率更高且內存碎片更少, 該算法將內存分為2個隔離級, 第1級以2k (k=1, 2, …, n) 為區間對計算機存在的空閑內存塊進行劃分[13]。第2級在第1級的基礎上再次劃分, 具體劃分區間大小可以調整 (都要為2的冪) , 這里我們將其劃分為4個區間, 以25為例將其劃分為[32, 40) 、[40, 48) 、[48, 56) 、[56, 64) 這4個區間。不論是一級還是二級鏈表都有位圖文件去表示每一區間中塊是否有空余。結構如圖2所示, 圖2中黑色方塊為最后搜索到的空閑內存。
圖2 TSLF數據結構Fig.2 TSLF data structure 下載原圖確定一級搜索位置的變量設為N, 確定二級搜索位置的變量設為M, N/M值的大小由影像內存的尺寸大小 (設為SIZE) 來決定, 其公式為
其中:SLI為二級小區間長度。在影像庫數據釋放后通過指針搜索到相鄰的空閑內存塊, 將釋放后的空內存塊與原有空閑內存鏈相連接。該方法可以顯著地減少內存碎片, 符合分配機制的設計要求。分類器中分配流程和在內存釋放后分配器處理流程如圖3所示。
圖3 內存分配器工作流程Fig.3 Working process of memory allocator 下載原圖2.3 報表的自動生成
海量的控制點影像存儲對于管理來說是一種挑戰, 如何更好地適應大數據量的管理, 同時適應系統對于影像數據的分布式數據管理體系是一個必須要解決的問題。元數據對于影像的有效管理不可或缺, 對于影像數據庫來說其功能可以劃分為7種, 分別是描述性元數據、結構性元數據、管理性元數據、存儲性元數據[14]。元數據大多存儲在開發系統的數據庫中, 傳統的影像庫大多是對于感興趣區域框選后, 在界面上顯示相關的影像信息, 其缺點在于界面無法顯示過多的元數據, 且在查找具體的元數據時也存在困難。該系統將元數據在數據庫中自動生成報表, 通過控制點影像庫系統使用Sql Sever數據庫查詢自動生成相關數據的元數據報表, 具體形式見表1和表2。
表1 控制點元數據Table 1 Meta date table of the control point 下載原表
上述列出的是一些重要元數據信息, 具體報表信息可以根據需求進行選取。
3 系統的實現
3.1 系統界面實現
基于以上思路, 設計出了運行良好的海量控制點影像庫管理系統, 并將其應用到了青海影像庫的建設中。軟件整體不僅可以滿足控制點影像庫的調用存儲, 還可以完成許多影像庫應用的功能, 例如mdb、dxf等數據的導入導出, 地圖的快速制作與矢量數據的快速入庫等功能, 它的界面與主要功能菜單如圖4所示。
3.2 主要功能實現
該系統的優勢在于提高了控制點選取的自動化程度, 加快了數據存儲調用的效率, 提供影像庫系統元數據自動成表打印三大功能, 有效地提高了控制點影像庫相關作業的效率。
表2 影像元數據Table 2 Meta date of the image 下載原表
該系統使用sift與RANSAC算法結合完成圖像控制點的匹配, 最終完成影像的幾何糾正, 其操作順序為控制點自動生成→控制點匹配, 匹配完成結果如圖5所示。從圖5中可以看出小幅影像圖上控制點與庫中影像順利匹配。將設計好的控制點影像庫與原青海控制點影像庫在調用影像與控制點速率上進行測試對比, 結果見表3。其中影像加載速度是一幅影像從確定導入到導入完成需要耗費的時間, 控制點加載速度是測試的一幅影像中控制點導入全部的速度, 卡頓率為每導入100幅影像圖存在超過5min以上卡頓情況的影像數。從表3可以看出該系統通過設計內存管理器大幅度的提高了影像與控制點調用的速度, 明顯降低了卡頓率, 達到了軟件設計的目的。影像導入的同時需將其對應的原始元數據導入, 系統可以每隔30min記錄1次影像與控制點修改的情況, 并將記錄在元數據中直接生成表格輸出, 系統輸出元數據格式為mat格式。
4 結論
結合Sql Sever開發的海量控制點影像庫系統, 良好地實現了對海量控制點影像的檢查、更新、查找以及管理等應用操作, 并且對現在影像庫設計中的不足進行改進, 提高了影像匹配的自動化程度, 完善了影像庫框架下內存分配的漏洞, 增加了影像庫中報表自動生成的功能, 提高了影像庫管理安全性, 并將開發系統成功應用于青海影像庫的管理中。事實證明其顯著地提高了青海第二測繪院在影像存儲與應用中的效率, 節省了大量的人力物力資源, 對影像庫的管理設計有著重要的意義。但系統同樣存在應用數據不夠多樣化的情況, 這就導致我們不了解在使用其他類型數據時該系統是否可以全部正常運行, 所以該系統還不足夠穩定, 存在風險, 因此需要我們去不斷的嘗試, 將不同的數據類型應用于系統, 不斷發現問題并改善。另外sift算法為暴力影像匹配, 需要對整幅影像搜索匹配, 當影像特別大時會影響匹配速度。
參考文獻
[1]盧剛.控制點影像庫的設計與實現[C]//江蘇省測繪學會、江蘇省測繪學會航測與遙感專業委員會.江蘇省測繪學會2011年學術年會論文集.江蘇省測繪學會、江蘇省測繪學會航測與遙感專業委員會, 2011.[2]陳愛玲, 陳子越.基于控制點影像數據庫的國產衛星影像糾正技術研究[J].測繪與空間地理信息, 2016, 39 (8) :28-30.[3]溫禮, 柴淵, 田立瑛, 等.土地利用動態遙感監測控制點影像庫管理系統建設[J].遙感學報, 2007, (4) :595-600.[4]王占宏, 王月莉, 李發紅.基于控制點影像數據庫的控制點提取研究[J].測繪通報, 2009, (12) :13-15, 30.[5]趙筱榕, 劉津.基于控制點影像數據庫的國產衛星影像幾何糾正[J].測繪通報, 2013, (8) :61-64, 90.[6]Lowe D G.Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision, 2004, 60 (2) :91-110.[7]Ke Y, Sukthankar R.PCA-SIFT:A More Distinctive Representation for Local Image Descriptors[C]//Computer Vision and Pattern Recognition, 2004.CVPR 2004.Proceedings of the2004IEEE Computer Society Conference on.IEEE, 2004:Ⅱ.[8]Zhao J, Liu H, Feng Y, et al.BE-SIFT:A More Brief and Efficient SIFT Image Matching Algorithm for Computer Vision[C]//IEEE International Conference on Computer and Information Technology;Ubiquitous Computing and Communications;Dependable, Autonomic and Secure Computing;Pervasive Intelligence and Computing.IEEE, 2015:568-574.[9]屈慶琳, 李良光.TLSF算法在嵌入式系統中的研究與實現[J].計算機與信息技術, 2011, 19 (10) :24-26.[10]王欣, 邱昕, 慕福奇, 等.嵌入式系統新型動態內存管理機制的研究[J].微電子學與計算機, 2017, 34 (8) :66-69.[11]李江, 梅靜靜, 王申良, 等.TLSF動態內存分配算法的研究與應用[J].單片機與嵌入式系統應用, 2011, 11 (11) :1-4.[12]魏海濤, 姜昱明, 李建武, 等.內存管理機制的高效實現研究[J].計算機工程與設計, 2009, 30 (16) :3708-3712.[13]Masmano M, Ripoll I, Crespo A, et al.TLSF:A New Dynamic Memory Allocator for Real-time Systems[C]//Euromicro Conference on Real-Time Systems.IEEE Computer Society, 2004.[14]于詠.元數據在縮微影像數據庫中的應用[J].數字與縮微影像, 2013, (2) :5-7.
推薦閱讀:《數字與縮微影像》(季刊)創刊于1982年,由北京電影機械研究所主辦。本刊自創刊以來一直貫徹普及與提高相結合的辦刊方針,以普及為主,以應用為主。
轉載請注明來自發表學術論文網:http://www.cnzjbx.cn/dzlw/18659.html