宋紅霞 ,侯妙樂,胡云崗
(北京建筑大學,北京 100044)
文物保護工程中,運用三維激光掃描技術獲取文物的空間信息,可以對文物的幾何信息進行精確的三維量算、根據虛擬現實及相關技術為文物的修復提供有效的輔助手段[1,2],還可以根據需要制作文物的數字正射影像圖、數字線劃圖、等值線圖等各種圖件。隨著數據采集和處理技術的發展,文物保護工程中涉及的數據量越來越大,數據類型也越來越多,面對“數據膨脹”,目前工程中采用的文件管理方式已日益顯示出不足。因此,如何解決海量數據庫的存儲管理,已成為目前亟待解決的問題[3]。
文物保護工程中運用激光掃描儀獲取文物三維點云空間信息,對所采集數據進行數據重組織與調度、數據配準、數據去噪與精簡、數據分割與分類、三維模型構建、紋理映射、成果數據輸出等處理,生成工程中需要的各類成果數據。目前使用的三維點云數據處理軟件,如Geomagic Studio、Cyclone 等都是針對特定格式的數據,所以以文件的形式管理數據,有利于數據處理。
在實際操作中,隨著工程中數據的日益增長,數據格式的不斷增加,在數據管理和查詢方面,文件管理已越來越顯示出其不足:
(1)數據的完整性問題。數據的完整性是指數據的正確性、有效性和相容性[4]。工程中涉及的所有數據都缺乏其對應的元數據管理,數據的屬性數據缺乏,造成文物信息留取不完整,數據可信度降低。
(2)數據孤立,數據獲取困難。對于數據與數據之間的聯系,文件系統仍缺乏有效的管理手段。對于表示同一位置的不同類型數據,不能互相查找,如不能通過某只手的點云數據,迅速找到其對應位置的模型數據或紋理數據。如圖1(a)是千手觀音某只手的模型數據,圖1(b)是同一只手的數字線劃圖數據,在數據文件管理模式下,無法實現這兩種數據間的互相查找。

圖1 千手觀音某只手的模型數據與數字線劃圖
(3)數據存儲不規范。由于數據采集及數據處理的分散性,數據沒有按照一定的規則或存儲規范存放,導致數據查詢困難。
(4)數據假丟失。由于數據存儲雜亂無章,無命名規則和存儲路徑規范,導致原本存在的數據,因忘記文件名稱或存儲路徑而無法找到。
(5)數據重復存儲。數據存儲中,為了安全起見,往往對數據進行備份,由于數據多次備份造成一定的存儲空間浪費。
數據庫管理數據,具有數據結構化,共享性高,冗余度低,易擴充,數據獨立性高等優點。對于文章擬采用的文件與數據庫結合管理文物保護工程中數據的方法,更具有以下優點:
(1)數據文件采用文件管理模式管理。對數據存儲路徑和數據命名進行規范化,制定命名規則和存儲方案,便于理解數據之間的層次關系,為數據查詢及數據庫設計提供條件,而且此種存儲方法不破壞數據的數據結構,仍可采用先進的三維點云數據處理軟件對數據進行處理。
(2)數據庫管理數據文件間的關系并補充完善其屬性數據,利用數據庫和數據編程語言,編寫合適的查詢界面,實現數據的屬性查詢,存儲位置查詢等,提高數據查詢使用效率。
由于文物保護工程中文物范圍很大,為了數據采集方便,需根據工程特點及實際操作便利程度將文物進行分區,對文物信息進行分區域數據采集,另外需要將文物中具有代表性特點的對象進行單獨的數據采集和存儲。據此可以將文物三維數字化工程在文件管理中按照整體、區域、對象進行分類,若對象較多且復雜,可再根據工程需要分為若干子對象。
以大足石刻千手觀音虛擬修復工程為例,根據千手觀音的整體結構特征,將其劃分為9 行11 列,共99 個區域,各區域以“行號-列號”命名(如圖2);將具有代表性的對象進行分類,分為主尊、肋侍、手、法器,并以此命名文件夾。根據各對象特點,各肋侍命名為肋侍1、肋侍2、肋侍3、肋侍4,手以“所屬區域行號-所屬區域列號-手編號”的方式命名,法器以其類別名稱命名。

圖2 工程分區及主尊、肋侍對象示意圖
根據劃分區域、對象的提取及各文件夾命名,千手觀音虛擬修復工程數據的文件管理結構如圖3所示。

圖3 千手觀音虛擬修復工程文件管理結構
該工程中涉及的數據類型有紋理數據、點云數據、模型數據、真三維模型數據、正射影像圖、數字線劃圖、剖面圖,在整理好的文件管理結構各個子文件中存儲該對象或區域的各類數據。
數據庫主要存儲上述文件管理結構,對于工程中涉及的各類空間數據,需存儲各類數據間的關系及數據屬性信息。
該工程中的文件管理結構在數據庫中主要通過編碼的方法實現,即按目錄層次編碼,每層2 位編碼,則每個目錄最多有99 個子目錄,由于千手觀音有近1 000只手,所以在手數據目錄層編碼設置3 位,可以存儲999 個子目錄,可滿足工程需要。上述文件結構編碼如圖4所示:

圖4 文件結構各層編碼示意圖
在數據庫中,該文件結構可由表1實現,記錄各文件目錄Id 及名稱,父目錄名稱,所屬層級及編碼號,在查詢文件結構時,可根據父目錄名稱查詢該文件夾下的文件夾名稱和數目,也可以根據編碼查詢文件結構。

表1 文件層次關系表
利用三維激光掃描儀器獲取文物的三維信息,根據點云數據的基本處理流程,工程中的四類基本數據類型為:點云數據、紋理數據、模型數據、真三維模型數據。
根據這四類基本數據,還可以得到一些其他類型的數據,為了滿足日后數據管理的需要,在數據庫中設計數據類型管理表,用來管理工程中涉及的各類數據,表2列出了該工程中的4 種數據類型,由于各工程中的數據類型不止這4 種,所以可以根據需要,向數據類型管理表中繼續添加數據類型。

表2 數據類型管理表
數據類型管理實體與各類數據類型實體之間是分類管理的關系,四類基本數據類型來源及關系總結如下:點云數據通過三維激光掃描儀獲取;紋理數據利用高分辨率數碼相機獲取;模型數據是由點云數據經配準、去噪、融合、建模等處理得到的數據,所以點云數據與模型數據是多對一的關系;模型數據經紋理貼圖后得到真三維模型數據,所以真三維模型數據與模型數據是一對一的關系,與紋理數據是一對多的關系。數據類型管理實體與各類數據的關系及各類數據之間的關系可表示為圖5所示。

圖5 數據類型與各類數據之間關系
在千手觀音虛擬修復工程中,利用這四類基本數據生成了正射影像圖、數字線劃圖、剖面圖三類數據。該工程中涉及的這三類數據來源為:正射影像圖由多張紋理圖數據經軟件糾正所得,所以正射影像圖與紋理數據是一對多的關系;數字線劃圖是正射影像圖經軟件描繪提取得到的,所以數字線劃圖與正射影像圖是一對一的關系;剖面圖是利用三維模型,經軟件剖切獲得的,由于剖面可以有不同的方位,所以剖面圖與模型數據是多對一的關系。
在實體關系中,有一對一和多對一的關系。對于關系中,一對一的關系,在其中一個實體表中設置外鍵,如紋理數據和圖像數據關系中,可在紋理數據表格中設置圖像數據編號外鍵,實現兩者一對一的關系;多對一的關系,在前者表中設置外鍵,如紋理數據與真三維模型數據是多對一的關系,在紋理數據表格中設置真三維模式數據編號外鍵,以此實現兩者多對一的關系。數據類型實體屬性及關系設置如圖6(E-R 圖)所示:

圖6 數據類型及關系設計(E-R)圖
根據上述數據庫關系模型圖,設計各數據表格和數據模式,將表的字段表示為數據庫支持的數據類型。
利用Oracle 數據庫管理系統,在User 表空間下,創建Spatial 用戶,并創建各表數據,建立各表之間的關系。
數據加載方式有多種,本次實驗中,已有表格數據利用SQL developer 導入Excel 數據,部分實驗數據采用手工錄入方式,其他數據采用程序開發的方式導入。
數據庫查詢:利用創建的數據庫,可以根據工程需要,查詢文物信息采集狀況、成果數據完成情況等,如某區域數據是否進行數據采集,是否符合工程標準;還可利用線劃圖數據名稱查找相關正射影像圖數據等。
為了方便日常數據管理,便于無數據庫相關基礎知識人員對數據進行相關查詢,設計如下數據庫管理系統,對數據進行簡單查詢調用。
本系統以Microsoft visual studio 2010 為開發平臺,利用c#開發語言,ADO.NET 連接Oracle 數據庫。Oracle 數據連提供程序是.NET Framework 的一個插件,提供了訪問Oracle 數據的功能[6]。
為了方便數據錄入,編寫數據入庫界面實現點云數據、模型數據等空間數據的導入操作。
各項數據存入數據庫后,可根據需要進行各項數據查詢,方便數據管理,提高管理效率。
另外,為方便無數據庫知識背景人員對數據進行查詢,設計了數據查詢界面(如圖7所示),可實現特定數據類型的通過數據對象名稱進行的查詢。

圖7 數據庫查詢界面設計
本文分析總結了文物三維數字化工程中涉及的各類數據關系,以大足石刻千手觀音虛擬修復工程為例,實現了數據的高效管理和查詢,主要成果如下:
(1)根據該工程特點及文物三維數字化工程采集處理數據的共性,對該工程涉及的各類數據進行了整理,在文件管理模式下,規范了存儲路徑和命名規則,使數據在文件管理模式下更加規范,節省了存儲空間;
(2)對工程中涉及的多源數據關系及屬性數據進行整理,設計數據庫實體與實體關系,利用oracle 數據庫及數據庫工具,通過程序開發的方式將各類數據導入數據庫,提高了數據查詢效率和安全性;
(3)設計并開發了簡單的數據庫操作系統,方便無數據庫知識背景的工作人員對數據進行查詢,提高了工程中數據的查詢使用效率。
[1]Min Lu,Bo Zheng,Jun Takamastsu.Ko Nishino and Katsushi Ikeuchi.2011.3D shape restoration via matrix recovery[J].Lecture Notes in Computer Science,2011,Volume 6469/2011,306 ~315.
[2]萬惠玲.3D 虛擬技術文物虛擬還原展示——以蚌埠雙墩1 號墓器物修復為例[J].湖北經濟學院學報·人文社會科學學報,2013,10(1):29 ~30.
[3]明智勇.數據庫技術的現狀與發展趨勢[J].產業與科技論壇,2013,12(1):80 ~81.
[4]萬常選,廖國瓊,吳京慧等.數據庫系統原理與設計[M].北京:清華大學出版社,2011:2 ~8.
[5]郭明.海量精細空間數據管理技術研究[D].武漢:武漢大學,2011.
[6]YingBai.C#數據庫編程實戰經典[M].北京:清華大學出版社,2011:78 ~87.