張 森,孔 明,王道檔,劉 維,郭天太,趙 軍
(中國計量大學 計量測試工程學院,浙江 杭州 310018)
在電廠、糧倉等大型存儲基地為了防止煤炭或糧食等受到強光、雨水等的侵蝕而建立圓形的倉庫,對其所要的存儲的煤炭、糧食等進行保存.其中,圓形煤場因具有儲存、緩沖和混煤等多項用途[1],而且相較于其它封閉式倉庫,圓形儲物倉具有相對用地少,單位面積內存儲量大、現(xiàn)代化程度高、對惡劣環(huán)境抵抗性強、環(huán)境友好等優(yōu)點,因此圓形儲物倉越來越受到燃煤電廠的青睞[2].由于圓形煤場特殊的外形,目前較多圓形煤場儲煤量采用估算的方式獲取,這與實際情況之間存在較大誤差[3].因此,有必要提出一種新的針對圓形煤場煤堆體積計算的測量方案從而快速、準確地獲得圓形煤場煤堆的體積和質量,這將有助于國家、企業(yè)進行生產計劃調整.隨著計算機視覺和光學技術的發(fā)展,基于機器視覺重建的光學測量系統(tǒng)的研究越來越多——顧超[4]等為了解決傳統(tǒng)相位解包時存在的誤差傳播和測量精度問題,提出一種基于面結構光的雙目視覺系統(tǒng),使用三種頻率光柵投射的三頻外差相位展開技術,但投射光柵條紋的數(shù)目的增多勢必會增加測量時間,使系統(tǒng)不能滿足實時性的要求.楊德山[5]等提出一種利用手持激光掃描儀來測量堆積物體積的系統(tǒng),該系統(tǒng)雖然能較快速地計算出堆積物的體積,但由于測量結果很大程度上受外界干擾比較大,因此測量精度較低.熊文濤等[6]通過對誤差源的分析,提出一種利用微積分和中心極限定理的方法來實現(xiàn)煤堆體積的自動測量,雖然該方法能在一定程度上實現(xiàn)自動化,但測量過程的耗時較長,且精度較差.陶森柏[7]在三維重構過程中,利用棱錐剖分的方法代替?zhèn)鹘y(tǒng)的算法,在重構速度上有一定的提升,但過程復雜,實時性較差.
本文提出一種圓形煤場煤堆體積快速測量的方法,即利用多線結構光系統(tǒng)對煤堆進行拍攝采集,利用光條紋中心提取算法,計算出煤堆三維點云數(shù)據(jù).而此時的數(shù)據(jù)不光包括煤堆點云,還有煤場的墻體和屋頂,因此本文提出一種剔除墻體、屋頂點云數(shù)據(jù)的算法,使得處理后的點云只包括煤堆點.最后又利用Delaunay三角化方法[8-12]對提取出的煤堆點云進行三角可視化操作,并最終計算出煤堆的體積[13-14].
本文提出的圓形煤場煤堆體積快速測量系統(tǒng)如圖1,用多線激光器作為系統(tǒng)光源,其發(fā)出的25條線激光同時投射在被測物體上,然后通過高精度移動導軌使攝像系統(tǒng)和激光投影系統(tǒng)在同一平面內做無相對運動的移動,在多個位置對被測物進行投射并采集圖像,然后將經待測物體調制之后的光條紋的圖像進行濾波等預處理,利用條紋中心提取算法和煤堆提取算法即可獲取煤堆的三維坐標點云,之后再利用Delaunay三角化方法對提取出的煤堆點云進行三維重構和體積計算.
圖1 多線激光測量系統(tǒng)Figure 1 Multi-line laser measurement system
圖2 系統(tǒng)原理圖Figure 2 System schematic diagram
利用激光三角法原理得到待測物體的三維坐標,原理如圖2.其中,被測物體位于坐標系XWYWZW內,多線激光器的焦點和相機鏡頭焦點都位于x軸上,z軸為待測物體高度方向.坐標系xyz是由相機像平面和相機光軸所形成的坐標系,其中相機光軸在z軸上.通過圖像像素坐標系→圖像物理坐標系→相機坐標系→世界坐標系的轉換,可以從采集的圖像提取出待測物體的三維坐標值.假設(r,c)和(u,v)分別為圖像物理坐標系和像素坐標系中的對應點,根據(jù)式(1)建立兩者之間的關系為
(1)
式(1)中:(u0,v0)為圖像物理坐標系中的原點在像素坐標系中的位置,dx、dy分別為單位像素在圖像物理坐標系橫、縱軸上的真實大小.
(2)
式(2)中f是相機的焦距,(xc,yc,zc)是相機坐標系中與(r,c)所對應的點.所以圖像像素坐標和相機坐標的對應關系為
(3)
式(3)中:s是比例系數(shù),并且有幾何關系知像點、物點和原點三點共線,所以可得
(4)
式(4)中:(xc,yc,zc)是處于面陣檢測器所形成的坐標系中的任意一點,fx為相機橫軸上的焦距,fy為相機縱軸上的焦距.然后通過標定確定線條紋的平面方程如式(5),并與式(4)聯(lián)立,即可獲取待測物體的三維坐標.
axc+byc+czc+d=0.
(5)
用多線激光測量系統(tǒng)在煤場內部對煤堆進行掃描取點時,不可避免地會采集到煤場的墻體和部分屋頂.在進行煤堆體積計算時,必須把采集到的墻體等多余的點云數(shù)據(jù)去除,否則將影響點云重構速度,還會對煤堆體積計算帶來誤差.為了提取煤堆點云,首先需從煤場點云中區(qū)分出煤堆和墻體.在本文中將對煤堆的堆積特性分析可知,其在自然堆積狀態(tài)下總會與地面形成一定的坡度,由此利用墻體和煤堆法向量的差異將其分別提取出來.由于煤場和倉庫的形狀都是規(guī)則的圓形,因此將其投影到X-Y平面上,根據(jù)點到圓心的距離來判定某點是否需要保留.算法流程如圖3.
圖3 體積測量流程圖Figure 3 Flow chart of volume measurement
1)根據(jù)煤堆、墻體以及地面法向量的差異區(qū)分三者——煤堆外表面法向量“傾斜”,墻體法向量是水平方向或者“傾斜”,地面法向量“豎直向上”.若墻體法向量為水平方向,可直接根據(jù)法向量來區(qū)分煤堆和墻體;若墻體法向量也為“傾斜”,則找到墻體和煤堆所有的法向量,距離煤場中心來說,最外側的“傾斜”法向量即為墻體.
2)將采集到的煤堆點云(包括墻體)透射到X-Y平面.煤場在X-Y平面上的投影為圓形,可以確定該圓的圓心即煤場的中心.結合前一步驟通過法向量特征提取出的墻體,可得出其到煤場中心的距離R.圖中黑色散點區(qū)域即為待測煤堆,外側圓形邊框即為待去除墻體.
3)利用平面上點與點之間的距離計算公式來確定該點是否為墻體上一點.
(6)
式(6)中:(x0,y0)為X-Y投影平面的圓心坐標即煤場中心,(x,y)為空間任一點投影到X-Y平面的投影坐標.當且僅當d=R時,該點視為墻體上一點,應該除去;否則,視為煤場內一點,應該保留.
4)對濾除了墻體的煤堆點云數(shù)據(jù)再進行地面點云去除.之后再進行濾波,該濾波方法結合了直通濾波和統(tǒng)計濾波[11]的優(yōu)點,能夠快速過濾距離目標點較遠的離群點,且有效地過濾掉離目標點較近的稀疏點群.
為了驗證煤堆提取算法的有效性,利用標準函數(shù)生成煤場模擬點云如圖4(a)所示,圖中柱體模擬煤堆,四周環(huán)繞模擬地面和墻體.結合法向量和距離兩個條件來進行煤堆提取.對該模擬點云分別進行法向量提取、投影、點云去除等步驟后(圖4(b)為中間過程),可提取出模擬煤堆如圖4(c).
圖4 函數(shù)模擬提取過程Figure 4 Function simulation extraction process
在進行煤堆體積計算之前,需要先進行煤堆的三維形貌重構.由于煤堆不存在空間分層遮擋的問題,因此利用投影的方式將點云數(shù)據(jù)映射到二維平面上.并由區(qū)域生長和拓撲關系來得到三角網格,如圖5.Delaunay三角剖分[4-8]得到的三角網格具有良好的幾何特性——空間中的任意四點不共圓,并且最小角最大,這保證了所得到的三角網格的唯一性和穩(wěn)定性.并且當某些局部點發(fā)生變化時,也只影響其周圍所形成的三角形.
圖5 三角剖分原理圖Figure 5 Triangulation schematic diagram
在實現(xiàn)煤堆點云數(shù)據(jù)的三維可視化后,可以利用前述得到的三角化的信息進行煤堆體積計算.將投影在二維平面上的三角形和與之唯一對應的空間三角形對應點相連接,即可得到一個三棱柱,如圖6.對所有的三棱柱累加求和,即可得到煤堆的體積.
圖6 三棱柱計算模型Figure 6 Three prism calculation model
其中,每一個三棱柱的體積都可被分解為一個正三棱柱和兩個四面體體積之和:
(7)
由點云坐標計算公式可知,對點云坐標產生影響的誤差主要有:1)測量誤差;2)系統(tǒng)安裝誤差.而作為靜態(tài)常量的系統(tǒng)安裝誤差可以通過系統(tǒng)標定來進行消除[15].可利用相對誤差E來反映系統(tǒng)測量的準確性.
(8)
式(8)中,xm是測量值,xr是真實值.
為了驗證系統(tǒng)的測量可靠性,我們通過多次測量以此得到系統(tǒng)的重復測量誤差,并以此來衡量系統(tǒng)的重復性.首先通過貝塞爾公式得到實驗的標準差s,然后利用此標準差s除以測量均值,利用此計算結果表征系統(tǒng)的重復性誤差er[17-18].
(9)
(10)
利用上述測量原理設計了基于多線結構光的堆積物體積快速測量系統(tǒng),系統(tǒng)采用了安福德25條平行線激光器作為激光光源,大恒MER-132-30GC相機,其分辨率1 292(H)×964(V).將激光器和相機安裝在同一個移動導軌上,以使相機光心和激光器的透射中心始終在同一平面之上.安裝完成之后,對系統(tǒng)進行標定,以確定相機內參并消除安裝誤差.
根據(jù)煤堆的自然堆積特性[16],搭建了沙堆模型,如圖7,模型上底面直徑為31 cm,下底面直徑為20 cm,高12 cm.標準沙堆體積為1 000 cm3,堆高5 cm.
圖7 沙堆模型實物圖Figure 7 Sandpile model physical map
圖8 沙堆模型點云Figure 8 Sandpile model point cloud
利用本文搭建的多線結構光測量系統(tǒng)對模型進行掃描測量,生成的沙堆模型點云如圖8.先對其進行距離統(tǒng)計濾波[15].之后再對濾波后的沙堆點云進行煤堆提取算法,可得沙堆點云如圖9.之后再對提取出來的煤堆點云進行點云三角化處理,并對其體積進行計算.
圖9 提取出的沙堆點云Figure 9 A point cloud extracted from a pile of sand
表1為沙堆模型體積計算結果,由式(8)和式(10)可得平均相對誤差和重復性誤差分別為0.17%與0.17%.結果表明本文提出的基于多線結構光的圓形煤場煤堆體積快速測量系統(tǒng)具有較好的測量精度.并且,該測量系統(tǒng)能夠在500 ms內對被測對象進行三維重構和體積計算,在保證精度的同時,大大地縮短了測量時間,提高了測量的效率.
表1 沙堆體積測量結果
圖10 沙堆模型體積測量相對誤差Figure 10 Relative error of volume measurement of sand pile model
本文提出了一種圓形煤場煤堆體積快速測量方法,解決了圓形煤場煤堆體積的準確實時測量問題.即:利用光條中心提取算法將多線結構光測量系統(tǒng)拍攝的煤場圖片轉換為煤場點云數(shù)據(jù);利用煤堆提取算法,能夠準確地去除墻體等環(huán)境點云的影響,從而提取出煤堆點云,并通過Delaunay三角剖分實現(xiàn)煤堆點云的三維重構可視化及煤堆體積計算.圓形容器沙堆實驗結果表明該測量系統(tǒng)的平均相對誤差和重復測量誤差僅為0.17%和0.17%,測量時間為500 ms,能夠實現(xiàn)快速、準確地測量.結果表明,利用本文提出的多線結構光測量系統(tǒng)能夠完成圓形煤場煤堆體積準確、快速測量.