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