一種船體複雜外板三維點雲數據精簡方法及裝置與流程
2023-06-04 08:14:36
本發明涉及船體外板加工領域,尤其涉及一種船體複雜外板三維點雲數據精簡方法及裝置。
背景技術:
水火彎板是指沿預定的加熱線對板材進行局部線狀加熱,並用水跟蹤冷卻使板材產生局部塑性變形,從而將板材彎成所要求的曲面形狀的一種彎板方法。長期以來,水火彎板工藝廣泛應用於船體外板複雜成型曲面的加工製造中,對船體複雜外板的檢測及成型曲面的判別是是船體彎板自動化成型加工的關鍵技術。其中,船體複雜外板形變三維點雲數據重建出三維成型曲面的技術,可提供全面,直觀,準確的實時彎板曲面形變信息,是當今船體外板自動化加工技術的研究熱點。然而,由於船板較大,對於外板的三維點雲數據的讀取和處理需要耗費大量的時間,且存在大量冗餘的數據。
近年來,人們對三維散亂點雲數據的精簡進行了大量的研究,目前已有的點雲數據精簡方法按照是否構建點雲數據的三角網格分為兩大類基於三角網格的點雲精簡方法和直接對點雲進行精簡的方法。其中直接對點雲進行精簡不需要三角網格化的操作,精簡過程更為簡單,時間複雜度也更低。直接對點雲精簡的方法包括:1)隨機採樣法;2)包圍盒法;3)均勻網格法曲率;4)曲率精簡法。但是,隨機採樣法、包圍盒法和均勻採樣法都沒有考慮到點雲數據的局部特性,因此無法保留原始點雲數據的細節特徵。而曲率精簡算法雖能有效的保留曲面的表面特徵,但是精簡率過大,比較耗時,尤其在處理船體複雜外板這種大規模點雲數據時,這一缺陷更加明顯。
技術實現要素:
本發明實施例提供了一種船體複雜外板三維點雲數據精簡方法及裝置,解決了現有技術中對船體複雜外板三維點雲數據的精簡方法無法在有效的保留曲面的表面特徵的情況下也能用較高的運算效率進行精簡數據的技術問題。
本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法,包括:
通過採用k-d樹與八叉樹相結合的剖分準則將船體複雜外板的散亂的三維點雲數據剖分成不同的節點空間,並建立三維點雲數據之間的拓撲關係;
在每個節點空間中,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率;
根據所有節點空間的平均曲率,設定可調的曲率閾值;
根據曲率閾值對三維點雲數據的所屬區域劃分為平坦區域或細節豐富區域,並對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化。
可選地,通過採用k-d樹與八叉樹相結合的剖分準則將船體複雜外板的散亂的三維點雲數據剖分成不同的節點空間,並建立三維點雲數據之間的拓撲關係具體包括:
獲取船體複雜外板對應的所有三維點雲數據的最小外包圍盒,並設定八叉樹的分割深度,依據分割深度確定八叉樹的葉節點大小,構建出對應的八叉樹;
對每個八叉樹的葉節點中的三維點雲數據利用k-d樹進行組織,分別存儲索引信息和節點坐標信息,並將每個k-d樹的首記錄存放到對應的八叉樹葉節點中。
可選地,在每個節點空間中,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率具體包括:
在每個節點空間中,利用k-鄰域搜索節點空間內每個點的k個最近鄰,建立各節點空間內的散亂的三維點雲數據的k-鄰域關係,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率。
可選地,根據所有節點空間的平均曲率,設定可調的曲率閾值具體包括:
根據所有節點空間的平均曲率,通過公式一確定初始曲率閾值,並針對不同的船體外板的三維點雲數據模型中各區域所佔的大小不同,通過公式二對初始曲率閾值進行修正,獲得修正後的曲率閾值,公式一具體為:
其中,為初始曲率閾值,n為點雲數據的總和,ij為每點的特徵曲率;
公式二具體為:
其中,i'為修正後的曲率閾值,α為依據數據模型特徵進行的索引取值。
可選地,根據曲率閾值對三維點雲數據的所屬區域劃分為平坦區域或細節豐富區域,並對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化具體包括:
判斷每個節點空間的平均曲率是否大於修正後的曲率閾值,若是,則將平均曲率大於修正後的曲率閾值的節點空間對應的所有三維點雲數據判定為屬於細節豐富區域,否則,將平均曲率小於或等於修正後的曲率閾值的節點空間對應的所有三維點雲數據判定為屬於平坦區域;
對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化。
本發明實施例提供的一種船體複雜外板三維點雲數據精簡裝置,包括:
剖分模塊,用於通過採用k-d樹與八叉樹相結合的剖分準則將船體複雜外板的散亂的三維點雲數據剖分成不同的節點空間,並建立三維點雲數據之間的拓撲關係;
估算模塊,用於在每個節點空間中,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率;
設定模塊,用於根據所有節點空間的平均曲率,設定可調的曲率閾值;
劃分簡化模塊,有根據曲率閾值對三維點雲數據的所屬區域劃分為平坦區域或細節豐富區域,並對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化。
可選地,剖分模塊包括:
構建單元,用於獲取船體複雜外板對應的所有三維點雲數據的最小外包圍盒,並設定八叉樹的分割深度,依據分割深度確定八叉樹的葉節點大小,構建出對應的八叉樹;
組織單元,用於對每個八叉樹的葉節點中的三維點雲數據利用k-d樹進行組織,分別存儲索引信息和節點坐標信息,並將每個k-d樹的首記錄存放到對應的八叉樹葉節點中。
可選地,估算模塊包括:
估算單元,用於在每個節點空間中,利用k-鄰域搜索節點空間內每個點的k個最近鄰,建立各節點空間內的散亂的三維點雲數據的k-鄰域關係,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率。
可選地,設定模塊包括:
確定修正單元,用於根據所有節點空間的平均曲率,通過公式一確定初始曲率閾值,並針對不同的船體外板的三維點雲數據模型中各區域所佔的大小不同,通過公式二對初始曲率閾值進行修正,獲得修正後的曲率閾值,公式一具體為:
其中,為初始曲率閾值,n為點雲數據的總和,ij為每點的特徵曲率;
公式二具體為:
其中,i'為修正後的曲率閾值,α為依據數據模型特徵進行的索引取值。
可選地,劃分簡化模塊包括:
判斷單元,用於判斷每個節點空間的平均曲率是否大於修正後的曲率閾值,若是,則將平均曲率大於修正後的曲率閾值的節點空間對應的所有三維點雲數據判定為屬於細節豐富區域,否則,將平均曲率小於或等於修正後的曲率閾值的節點空間對應的所有三維點雲數據判定為屬於平坦區域;
簡化單元,用於對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化。
從以上技術方案可以看出,本發明實施例具有以下優點:
本發明實施例提供了一種船體複雜外板三維點雲數據精簡方法及裝置,包括:通過採用k-d樹與八叉樹相結合的剖分準則將船體複雜外板的散亂的三維點雲數據剖分成不同的節點空間,並建立三維點雲數據之間的拓撲關係;在每個節點空間中,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率;根據所有節點空間的平均曲率,設定可調的曲率閾值;根據曲率閾值對三維點雲數據的所屬區域劃分為平坦區域或細節豐富區域,並對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化,本發明實施例中利用八叉樹和k-d樹相結合的空間剖分與局部曲面特徵相結合的點雲精簡方法,不僅能儘可能的保留原始點雲的特徵區域的數據,同時還刪除了大量冗餘數據,顯著提高點雲數據精簡的效率,具有較高的運算效率,並且對於三維點雲數據的精簡有助於後續步驟中對船體彎板三維成型曲面的重構,也有利於後續船體外板自動加工成型技術,提高船板加工精度和效率滿足實際需求,解決了現有技術中對船體複雜外板三維點雲數據的精簡方法無法在有效的保留曲面的表面特徵的情況下也能用較高的運算效率進行精簡數據的技術問題。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其它的附圖。
圖1為本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法的一個實施例的流程示意圖;
圖2為本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法的另一個實施例的流程示意圖;
圖3為本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法的另一個實施例的具體流程示意圖;
圖4為本發明實施例提供的船體複雜外板三維點雲數據精簡方法精簡後的船體外板示意圖;
圖5為本發明實施例提供的一種船體複雜外板三維點雲數據精簡裝置的結構示意圖。
具體實施方式
本發明實施例提供了一種船體複雜外板三維點雲數據精簡方法及裝置,用於解決現有技術中對船體複雜外板三維點雲數據的精簡方法無法在有效的保留曲面的表面特徵的情況下也能用較高的運算效率進行精簡數據的技術問題。
為使得本發明的發明目的、特徵、優點能夠更加的明顯和易懂,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發明一部分實施例,而非全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬於本發明保護的範圍。
請參閱圖1,本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法,包括:
101、通過採用k-d樹與八叉樹相結合的剖分準則將船體複雜外板的散亂的三維點雲數據剖分成不同的節點空間,並建立三維點雲數據之間的拓撲關係;
102、在每個節點空間中,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率;
103、根據所有節點空間的平均曲率,設定可調的曲率閾值;
104、根據曲率閾值對三維點雲數據的所屬區域劃分為平坦區域或細節豐富區域,並對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化。
本發明實施例提供了一種船體複雜外板三維點雲數據精簡方法,包括:通過採用k-d樹與八叉樹相結合的剖分準則將船體複雜外板的散亂的三維點雲數據剖分成不同的節點空間,並建立三維點雲數據之間的拓撲關係;在每個節點空間中,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率;根據所有節點空間的平均曲率,設定可調的曲率閾值;根據曲率閾值對三維點雲數據的所屬區域劃分為平坦區域或細節豐富區域,並對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化,本發明實施例中利用八叉樹和k-d樹相結合的空間剖分與局部曲面特徵相結合的點雲精簡方法,不僅能儘可能的保留原始點雲的特徵區域的數據,同時還刪除了大量冗餘數據,顯著提高點雲數據精簡的效率,具有較高的運算效率,並且對於三維點雲數據的精簡有助於後續步驟中對船體彎板三維成型曲面的重構,也有利於後續船體外板自動加工成型技術,提高船板加工精度和效率滿足實際需求,解決了現有技術中對船體複雜外板三維點雲數據的精簡方法無法在有效的保留曲面的表面特徵的情況下也能用較高的運算效率進行精簡數據的技術問題。
以上為對本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法的一個實施例的詳細描述,以下將對本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法的另一個實施例進行詳細的描述。
請參閱圖2和圖3,本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法的另一個實施例包括:
201、獲取船體複雜外板對應的所有三維點雲數據的最小外包圍盒,並設定八叉樹的分割深度,依據分割深度確定八叉樹的葉節點大小,構建出對應的八叉樹;
首先,讀取船體複雜外板的原始三維點雲數據,根據船體複雜外板的近似對稱特性,快速檢索出點雲數據中x,y,z坐標的最小與最大值{xmax,xmin,ymax,ymin},並構造包圍所有點的大體包圍盒。然後獲取到船體複雜外板對應的所有三維點雲數據的最小外包圍盒,並設定八叉樹的分割深度,依據分割深度確定八叉樹的葉節點大小,構建出對應的八叉樹。
202、對每個八叉樹的葉節點中的三維點雲數據利用k-d樹進行組織,分別存儲索引信息和節點坐標信息,並將每個k-d樹的首記錄存放到對應的八叉樹葉節點中;
此後,再對每個八叉樹的葉節點中的點雲數據利用k-d樹進行組織,分別存儲索引信息和節點坐標信息,同時將每一個k-d樹的首記錄存放到對應的八叉樹葉節點中。
203、在每個節點空間中,利用k-鄰域搜索節點空間內每個點的k個最近鄰,建立各節點空間內的散亂的三維點雲數據的k-鄰域關係,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率;
在每個節點空間中,利用k-鄰域搜索節點空間內每個點的k個最近鄰,建立各節點空間內的散亂的三維點雲數據的k-鄰域關係,對於讀取得到的船體複雜外板的原始三維點雲數據採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率。
需要說明的是,在進行鄰域搜索時,如果當前坐標點所在的八叉樹葉節點無法找到滿足要求的數據集,則必須擴展搜索範圍,再次進行搜索,直到找到滿足要求的結果或是達到算法終止條件為止。
204、根據所有節點空間的平均曲率,通過公式一確定初始曲率閾值,並針對不同的船體外板的三維點雲數據模型中各區域所佔的大小不同,通過公式二對初始曲率閾值進行修正,獲得修正後的曲率閾值,公式一具體為:
其中,為初始曲率閾值,n為點雲數據的總和,ij為每點的特徵曲率;
公式二具體為:
其中,i'為修正後的曲率閾值,α為依據數據模型特徵進行的索引取值。
205、判斷每個節點空間的平均曲率是否大於修正後的曲率閾值,若是,則將平均曲率大於修正後的曲率閾值的節點空間對應的所有三維點雲數據判定為屬於細節豐富區域,否則,將平均曲率小於或等於修正後的曲率閾值的節點空間對應的所有三維點雲數據判定為屬於平坦區域;
206、對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化。
請參閱圖4,為本發明實施例提供的船體複雜外板三維點雲數據精簡方法對船體外板模型進行精簡後的示意圖。
與現有技術相比,本發明實施例提供了一種船體複雜外板三維點雲數據精簡方法,包括:1)通過k-d樹與八叉樹相結合的剖分準則將三維點雲數據剖分成不同層次空間,層層遞歸形成樹狀數據模型;2)在每個節點空間內,同時分別利用k-鄰域計算、特徵曲率估算,獲得點雲特徵曲率信息;3)根據所有葉子節點空間內的曲率,設定可調的曲率閾值,按閾值將數據源的散亂點雲數據分為不同曲率大小的區域;4)在較平坦區域應用基於空間剖分的均勻網格法成點雲簡化,保證精簡效率;5)在細節較豐富區域採用最小距離法實現點雲精簡,保證點雲的基本幾何信息儘量不丟失。本發明實施例中針對不同船體複雜外板曲面,不僅能保留必要的特徵信息,同時也能精簡數據,具有較高的運算效率,解決了現有技術中對船體複雜外板三維點雲數據的精簡方法無法在有效的保留曲面的表面特徵的情況下也能用較高的運算效率進行精簡數據的技術問題。
以上為對本發明實施例提供的一種船體複雜外板三維點雲數據精簡方法的另一個實施例的詳細描述,以下將對本發明實施例提供的一種船體複雜外板三維點雲數據精簡裝置進行詳細描述。
請參閱圖5,本發明實施例提供的一種船體複雜外板三維點雲數據精簡裝置包括:
剖分模塊301,用於通過採用k-d樹與八叉樹相結合的剖分準則將船體複雜外板的散亂的三維點雲數據剖分成不同的節點空間,並建立三維點雲數據之間的拓撲關係;剖分模塊301包括:
構建單元3011,用於獲取船體複雜外板對應的所有三維點雲數據的最小外包圍盒,並設定八叉樹的分割深度,依據分割深度確定八叉樹的葉節點大小,構建出對應的八叉樹;
組織單元3012,用於對每個八叉樹的葉節點中的三維點雲數據利用k-d樹進行組織,分別存儲索引信息和節點坐標信息,並將每個k-d樹的首記錄存放到對應的八叉樹葉節點中。
估算模塊302,用於在每個節點空間中,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率;估算模塊302包括:
估算單元3021,用於在每個節點空間中,利用k-鄰域搜索節點空間內每個點的k個最近鄰,建立各節點空間內的散亂的三維點雲數據的k-鄰域關係,採用拋物線擬合方法來進行特徵曲率估算,獲得所有三維點雲數據的曲率信息及每個節點空間的平均曲率。
設定模塊303,用於根據所有節點空間的平均曲率,設定可調的曲率閾值;設定模塊303包括:
確定修正單元3031,用於根據所有節點空間的平均曲率,通過公式一確定初始曲率閾值,並針對不同的船體外板的三維點雲數據模型中各區域所佔的大小不同,通過公式二對初始曲率閾值進行修正,獲得修正後的曲率閾值,公式一具體為:
其中,為初始曲率閾值,n為點雲數據的總和,ij為每點的特徵曲率;
公式二具體為:
其中,i'為修正後的曲率閾值,α為依據數據模型特徵進行的索引取值。
劃分簡化模塊304,有根據曲率閾值對三維點雲數據的所屬區域劃分為平坦區域或細節豐富區域,並對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化;劃分簡化模塊304包括:
判斷單元3041,用於判斷每個節點空間的平均曲率是否大於修正後的曲率閾值,若是,則將平均曲率大於修正後的曲率閾值的節點空間對應的所有三維點雲數據判定為屬於細節豐富區域,否則,將平均曲率小於或等於修正後的曲率閾值的節點空間對應的所有三維點雲數據判定為屬於平坦區域;
簡化單元3042,用於對所屬區域為平坦區域的三維點雲數據通過基於空間剖分的均勻網格法完成點雲簡化,對所屬區域為細節豐富區域的三維點雲數據通過最小距離法實現點雲簡化。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬碟、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光碟等各種可以存儲程序代碼的介質。
以上所述,以上實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。