王凱 支煜 陳浩 張毅坤
摘 要: 在過度包裝檢測過程中,針對商品三維重建后的散亂點云無法進行后續(xù)空隙率判定的問題,提出一種基于Denaunay三角化和凸包算法的散亂點云結(jié)構(gòu)化方法。首先,因為空間點云結(jié)構(gòu)復(fù)雜,所以將空間點云進行切片和投影操作,也就是降維操作;其次,對投影數(shù)據(jù)點進行結(jié)構(gòu)化處理,尋找初始點,依次對投影點按照極角大小進行排序;最后利用所構(gòu)造的掃描線對數(shù)據(jù)點進行篩選和結(jié)構(gòu)化。實驗表明,基于Denaunay三角化和凸包算法的散亂點云結(jié)構(gòu)化方法處理時間短,穩(wěn)定性和精度高、適用性強,完全滿足過度包裝檢測系統(tǒng)。與目前方法相比,該方法有更好的適用性,能夠滿足大多數(shù)平臺的需求。
關(guān)鍵詞: 過度包裝; 散亂點云; Graham掃描算法; Denaunay三角化; 凸包算法; 點云結(jié)構(gòu)化
中圖分類號: TN919.2?34 文獻標識碼: A 文章編號: 1004?373X(2018)14?0139?04
Research on space point cloud structuring algorithm
based on Graham scanning algorithm
WANG Kai1,2, ZHI Yu2, CHEN Hao2, ZHANG Yikun2
(1. Xian Institute of Measurement and Testing Technology, Xian 710068, China; 2. Xian University of Technology, Xian 710048, China)
Abstract: In allusion to the problem that the subsequent voidage judgment cannot be performed due to the scattered point cloud after 3D reconstruction of commodities during the excessive packaging detection process, a scattered point cloud structuring method based on Denaunay triangularization and convex hull algorithm is proposed. As the structure of the space point cloud is complex, the slicing and projection operations (also called dimensionality reduction operations) are conducted. The projected data points are structured, the initial point is searched out, and the projected points are orderly ranked according to the size of the polar angle. The data points are filtered and structured by using the constructed scanning line. The experimental results show that the scattered point cloud structuring method based on Denaunay triangularization and convex hull algorithm has short processing time, high stability and accuracy, and strong applicability, and can fully satisfy the excessive packaging detection system. In comparison with the current method, the method has better applicability, and can meet the needs of most platforms.
Keywords: excessive packaging; scattered point cloud; Graham scanning algorithm; Denaunay triangularization; convex hull algorithm; point cloud structuring
0 引 言
在過度包裝檢測的過程中,首先對商品和商品包裝進行掃描,得到空間散亂點云[1?2],完成空間重建;然后利用本文提出的方法對散亂點云進行結(jié)構(gòu)化處理,明確拓撲信息;最后進行空隙率計算,得到是否過度包裝的結(jié)論。所謂點云,是指在逆向工程中通過測量儀器得到的產(chǎn)品外觀表面的點數(shù)據(jù)集合。由于獲取方便、表示簡單、靈活等優(yōu)勢、點云逐漸成為常用的三維模型表示方法[3]。點云數(shù)據(jù)通常會攜帶著坐標信息和其他拓撲信息,所以目前絕大多數(shù)的三維建模使用的都是點云數(shù)據(jù)。散亂點云指的是點與點之間的拓撲關(guān)系尚未明確的點云。
尋找拓撲關(guān)系是三維重建必不可少的過程,目前使用的是基于德勞內(nèi)(Delaunay)[4?5]結(jié)構(gòu)化方法和基于凸包[6?8]的結(jié)構(gòu)化方法?;诘聞趦?nèi)三角化法的結(jié)構(gòu)化處理中的逐點插入法是一個傳統(tǒng)的方法,由于要花費大量的時間在點的查詢及三角形的定位查詢上,逐點插入法的時間復(fù)雜度較大,特別是如果每次查詢插入點都是對整個點集里的所有點,則算法的時間復(fù)雜度將進一步增大。
基于Graham掃描法[9]是通過尋找一個起始點,對所有點與初始點形成的極角逆時針排序,利用壓棧操作對外圍的點存儲和排序。凸包通常都是顯示著物體的大致輪廓,且比實際的面積略微擴大,顯然不適合處理體積大小的問題。
基于Graham掃描法改進型構(gòu)造算法,兼容了上述兩種方法的優(yōu)點,避免了不足,為后面體積計算的實驗數(shù)據(jù)精度提供了有力保障。
1 Graham掃描法
Graham掃描法[10]過程描述如下:
1) 在所有點中選取[y] 坐標最小的一點H,當作基點。如果存在多個點的[y]坐標都為最小值,則選取x坐標最小的一點。坐標相同的點應(yīng)排除。然后按照其它各點[p]和基點構(gòu)成的向量[
2) 線段[
3) 在加入一點時,必須首先考慮前面線段有沒有出現(xiàn)在凸包上。掃描從基點處開始,凸包上的每條鄰接線段的旋轉(zhuǎn)方向相同,并且和掃描的方向應(yīng)該相反。當發(fā)現(xiàn)新加入的點使新線段和上線段的轉(zhuǎn)動方向發(fā)生了變化,便可以判定之前的點肯定沒有在凸包上。實現(xiàn)時可用向量叉積進行判斷,假設(shè)加入的一點為pn+1,之前點為pn,再上一點是pn -1。在進行順時針掃描的時候,當向量
4) 在圖1中,當加入[K]點時,由于[
圖2中外圍形狀表示的多邊形就是點集[Q]={p0, p1,…,p12}的凸包。
假設(shè)一個有三個或者以上點的點集[Q],Graham掃描法的過程如下:
1) p0為[Q]中x?y坐標系下排序值最小的點;
2) 設(shè)S是對其余以p0點為中心的極角進行逆時針排序得到的點集;
3) p0進棧S;
4) p1進棧S;
5) p2進棧S;
6) 直至所有的點全部壓入棧S;
7) 由S的棧頂元素和棧頂元素的下一個元素,和p1構(gòu)成的折線只拐向右側(cè);
8) 對S彈棧;
9) 壓pi進棧S;
10) 返回棧S。
經(jīng)過上述過程的執(zhí)行,棧S由棧底至棧頂元素就是[Q]凸包的頂點按照逆時針排序所得出的。在對點按極角大小按照逆時針來排序的時候,不需求出極角的值,只需要求出次序就可以。這個步驟通??梢允褂檬噶坎娣e性質(zhì)實現(xiàn)。該算法在對二維點云進行結(jié)構(gòu)化處理時,只可能出現(xiàn)凸多邊形,而本文所研究的系統(tǒng)中物體輪廓會出現(xiàn)凹槽,這就導(dǎo)致在精度上該算法會出現(xiàn)一定的損失。
2 基于Graham掃描法改進型構(gòu)造算法
針對存在的問題,提出了基于Delaunay三角化法和Graham掃描法的改進算法?;贕raham掃描法改進型構(gòu)造算法流程如圖3所示。
2.1 初始點的選擇及構(gòu)造掃描線
在所有的二維投影點數(shù)據(jù)中,分別搜索出點云水平方向的最小值和垂直方向上的最大值和最小值,構(gòu)造包含所有點的正方形,初始點為兩條對角線的交點,同時找出最左下方的點,記作p0,如圖4所示。
構(gòu)造包含所有點的最小包圍盒,構(gòu)造規(guī)則的包圍盒,是為了在選擇初始點的時候計算更加的方便,通過數(shù)據(jù)點中的幾個最大最小目標點就可以確定初始點。
以該點為出發(fā)點,構(gòu)造射線,以射線與x軸夾角為0時為初始掃描線,進行逆時針旋轉(zhuǎn)掃描,如圖5所示。
2.2 數(shù)據(jù)點的篩選排序和存儲
對所有的點云數(shù)據(jù)點與初始點連線按照角度由小到大進行排序;假設(shè)坐標原點[o],初始掃描線上的某點[pa] ,和數(shù)據(jù)點處于當前掃描線上的位置點[pb]。于是極角大小[A]為:
[A=(xpa-xo)×(ypb-yo)-(xpb-xo)(ypa-yo)] (1)
可以根據(jù)極角[A]的大小對所有點進行排序。
使用掃描線進行掃描,當同一角度的射線上含有2個或者含有2個以上的點,選擇最外側(cè)的點(可以用距離進行判斷),只保留最外側(cè)的點,將其余的點舍棄。
[pi=max(dis(o,pk)), i,k=1,2,3,…] (2)
[pi]為需要存儲的點,[pk]為掃描線上的點。[dis(o,pk)]為求解距離函數(shù),約簡示意圖如圖6所示。
將篩選后的點一次進行壓棧操作,便可以存儲相互的拓撲信息。從A點開始,按照掃描線掃描的順序依次連接篩選后的坐標點。結(jié)果如圖7所示。
3 基于Graham掃描改進型算法的體積計算
在過度包裝檢測系統(tǒng)中,采用的是切片法來計算體積,對于每一個切片的投影需要進行二維層面的結(jié)構(gòu)化處理。首先將商品的空間點云進行切割,然后對切片進行投影,其次對每一個切片投影進行結(jié)構(gòu)化處理,再利用矢量乘法求得投影面積,最終求得體積。切片的大小直接影響著體積計算精度,切片越大,精度越低,切片越小,精度越高。
4 實驗分析
實驗物體是石膏制的維尼熊,瓦楞板紙箱和叮當貓,分別有41 000個,57 900個和35 200個數(shù)據(jù)點,通過對上述兩種方法的測試得到以下數(shù)據(jù)。
4.1 處理時間比較
基于Graham掃描算法的改進型算法在和Graham掃描法在處理同樣數(shù)據(jù)的情況下,改進型算法具有更短的運行時間。處理的時間如圖8所示。
4.2 體積計算時間
在切片大小不變,數(shù)據(jù)點逐漸減小的基礎(chǔ)上,對基于兩種方法的體積計算運行時間進行比對,如圖9所示。通過對規(guī)則輪廓(杯子外包裝)和不規(guī)則輪廓(維尼熊藝術(shù)品)的體積計算驗證基于Graham掃描算法和基于改進型構(gòu)造算法的點云體積計算算法的計算精度、準確性和效率,通過實驗,驗證結(jié)果如表1所示。
5 結(jié) 語
本文提出了一種基于Graham掃描法的改進型點云體積構(gòu)造算法。該算法是對已有的Graham掃描算法的有效補充和改進。該算法的關(guān)鍵在于對于初始點的選擇,和對大量數(shù)據(jù)的預(yù)篩選。實驗表明,改進型點云構(gòu)造算法可以完全滿足過度包裝檢測系統(tǒng)對計算體積的實時性和精度需求。與Graham掃描算法相比,該算法具有更高的精度同時擁有更短的運行時間。
注:本文通訊作者為張毅坤。
參考文獻
[1] ZHANG X, LI G, ZHAO J, et al. New triangulation method for surface scattered points [C]// Proceedings of IEEE International Conference on Mechatronics and Automation. Tianjin: IEEE, 2014: 541?546.
[2] HE X, NI M, XUE Y, et al. An algorithm for topology reconstruction of scattered point cloud in reverse engineering [J]. Intelligent control and automation, 2010, 20(1): 3126?3131.
[3] 王凱,支煜,張毅坤,等.一種檢測攝像機與被測物間三維軸線求解方法[J].現(xiàn)代電子技術(shù),2015,38(18):22?25.
WANG Kai, ZHI Yu, ZHANG Yikun, et al. A method to calculate three?dimensional axis between detecting camera and object under test [J]. Modern electronics technique, 2015, 38(18): 22?25.
[4] SONG D, LI Z. A fast surface reconstruction algorithm based on Delaunay [C]// Proceedings of International Conference on Computer Science and Information Processing. Xian: IEEE, 2012: 981?984.
[5] ZHAO M, AN B, WU Y, et al. A robust Delaunay triangulation matching for multispectral/multidate remote sensing image registration [J]. IEEE geoscience & remote sensing letters, 2015, 12(4): 711?715.
[6] KLETTE G. A recursive algorithm for calculating the relative convex hull [C]// Proceedings of 25th International Conference of Image and Vision Computing. Queenstown: IEEE, 2010: 1?7.
[7] 劉人午,楊德宏,李燕,等.一種改進的最小凸包生成算法[J].大地測量與地球動力學(xué),2011,31(3):130?133.
LIU Renwu, YANG Dehong, LI Yan, et al. An improved algorithm for producing minimum convex hull [J]. Journal of geodesy and geodynamics, 2011, 31(3): 130?133.
[8] LIU Guanghui, CHEN Chuanbo. A new algorithm for computing the convex hull of a planar point set [J]. Journal of Zhejiang University: Science A, 2007, 8(8): 1210?1217.
[9] TERESHCHENKO V, TERESHCHENKO Y, KOTSUR D. Point triangulation using Graham′s scan [C]// Proceedings of 5th International Conference on the Innovative Computing Technology. Pontevedra: IEEE, 2015: 148?151.
[10] MAHMOOD M T, CHOI Y K, SHIM S O, et al. Estimating shape from focus by Gaussian process regression [C]// Proceedings of IEEE International Conference on Systems, Man, and Cybernetics. Seoul: IEEE, 2012: 1345?1350.