王樹城
摘要 角度測量是一項基本且重要的測量項目,特別是隨著城市的發(fā)展,由多個非平行平面組成復(fù)雜外墻結(jié)構(gòu)的高層建筑越來越多,此時對于幕墻作業(yè)機器人來說就更加如此。本文通過利用計算機視覺技術(shù)對二面角進(jìn)行非接觸式測算的研究,提出了一種僅用相機即可完成為幕墻機器人動態(tài)測算二面角任務(wù)的方法。
【關(guān)鍵詞】計算機視覺 二面角測算 幕墻機器人 圖像處理
隨著高層建筑的涌現(xiàn),越來越多的幕墻工作機器人被研發(fā)和使用。這類機器人在作業(yè)時需要在平滑的玻璃上移動,也需要翻越由不同玻璃平面形成的二面夾角,因此就對二面角的非接觸、實時測量提出了較高的要求。而隨著計算機和CCD相機性能的提高,計算機視覺開始在距離測量、空間運動分析等領(lǐng)域得到廣泛應(yīng)用。計算機視覺測量有非接觸性、實時性、動態(tài)性、實現(xiàn)簡單、測量范圍大等優(yōu)點,非常適合應(yīng)用在機器人上。本文提出一種基于計算機視覺的幕墻二面角測算方法,解決的是玻璃幕墻機器人在越障時,對所翻越二面角的測量問題。
1 相機準(zhǔn)備、玻璃幕墻處理和圖像采集
使用固定焦距的相機和一塊相機參數(shù)標(biāo)定板(例如黑白棋盤格標(biāo)定板)對相機進(jìn)行標(biāo)定(例如“張正友標(biāo)定法”),獲取相機的內(nèi)部參數(shù)矩陣K及畸變系數(shù)Kl、K2、K3、Pl. P2;
對玻璃框進(jìn)行上色處理,并控制機器人上的云臺用相機從任意方向?qū)π枰M(jìn)行測量的夾角部位拍攝一張彩色圖像,要求拍攝的圖像完整包含夾角部位;
2 用OpenCV視覺庫做初步圖像處理
首先利用上步中獲取的相機內(nèi)部參數(shù)矩陣及畸變系數(shù)對所拍攝的圖像進(jìn)行校正;然后將所攝圖像應(yīng)用OpenCV從R(紅)G(綠)B(藍(lán))顏色空間變換至H(色相)S(飽和度)V(色調(diào))顏色空間,并進(jìn)行直方圖均衡化,以便于后續(xù)處理。“均衡化”是指對圖像中像素個數(shù)多的灰度級進(jìn)行展寬,而對圖像中像素個數(shù)少的灰度級進(jìn)行壓縮,從而擴展像原取值的動態(tài)范圍,增強了對比度和灰度色調(diào)的變化,有利于后面的識別。
3 顏色識別及圖像二值化
將上一步所得圖像進(jìn)行H、S、V三通道分離,并根據(jù)與玻璃框顏色對應(yīng)的H通道的閾值將圖像二值化。所述閾值用于從H通道劃定H值對應(yīng)的區(qū)間,該區(qū)間以內(nèi)設(shè)為白色,以外則設(shè)為黑色,或者反過來設(shè)置顏色,以便于識別出玻璃框。這里把H值看成一個連續(xù)數(shù)集,隨著H值的變化,對應(yīng)的顏色也在變化,所以識別顏色,就是從中一段一段地取區(qū)間出來。換種說法,這些閾值相當(dāng)于是為了取出特定顏色而通過實驗得來的一些區(qū)間端點值。
4 圖像的濾波和形態(tài)學(xué)操作
對上一步已識別出玻璃框的二值圖像進(jìn)行中值濾波及高斯濾波的圖像預(yù)處理操作,以減弱由圖像傳輸、編解碼和傳感器結(jié)構(gòu)造成的噪聲。之后可對降噪后的圖像進(jìn)行開操作、閉操作和膨脹的形態(tài)學(xué)處理,以達(dá)到減小無關(guān)物干擾和增強擬合精度的目的。
5 過濾出需要的目標(biāo)
在經(jīng)過形態(tài)學(xué)處理的二值圖中提取所有玻璃框的完整輪廓。接著便用最小包圍矩形去擬合所得輪廓,并從結(jié)果中去掉非玻璃框的輪廓對應(yīng)的矩形。
6 求算成角兩玻璃平面上的滅點坐標(biāo)
將上一步中篩選出的矩形輪廓均根據(jù)四角點坐標(biāo)判斷出方向,從而進(jìn)一步篩選出長邊垂直于成角兩平面交線的矩形。然后求算2N個篩選出的最小包圍矩形的、與最小包圍矩形長邊平行的對稱軸的直線方程,并按照所在的玻璃平面分成兩類,各自求解出(N*(N-1))/2個滅點坐標(biāo)。所述對稱軸是指各矩形輪廓自身的對稱軸,就是過各矩形兩短邊中點的那條直線。所述對稱軸對應(yīng)的矩形都有質(zhì)心,質(zhì)心在相機成像平面上都有對應(yīng)坐標(biāo),將各質(zhì)心的橫縱坐標(biāo)分別排序,之后分別求相鄰兩項的差值,由于這些矩形分別處于兩個玻璃平面,而在同一玻璃平面的矩形質(zhì)心坐標(biāo)差較小,可據(jù)此分類。
7 精確滅點坐標(biāo)及夾角的求算
采取最小二乘法,利用上一步得到的兩類一共N* (N-l)個滅點坐標(biāo),在兩個玻璃面板上分別擬合出一個更精確的滅點坐標(biāo)。這是因為一段窗框?qū)?yīng)一個矩形,一個矩形對應(yīng)一根對稱軸直線,則兩根對稱軸直線可確定此玻璃面上的一個滅點,兩兩相求就可得此面上的(N*(N-1))/2個滅點坐標(biāo)。
最后,利用標(biāo)定而得的相機內(nèi)參矩陣K及之前求出的各個玻璃平面上的滅點坐標(biāo)計算玻璃所夾二面角的余弦值,通用計算公式[3]如下:
其中K為標(biāo)定而得的相機內(nèi)參矩陣,p為玻璃平面的比例因子(可根據(jù)其上的滅點坐標(biāo)及內(nèi)參矩陣由式(1)求得),u和v分別是此玻璃平面對應(yīng)的那個較精確滅點坐標(biāo)的橫、縱坐標(biāo)值。根據(jù)式(1)可求出兩玻璃平面各自對應(yīng)的比例因子pl和p2,再根據(jù)式(2)結(jié)合兩平面各自對應(yīng)的滅點坐標(biāo)ul、vl和u2、v2即可求出夾角余弦值。最后利用反余弦函數(shù)求得玻璃所夾二面角數(shù)值θ并回傳給機器人控制系統(tǒng)。
8 實驗結(jié)果與討論
實驗中,在使用電子量角器多次測量取平均值后,得到所測玻璃二面角的真實值為90 021 0。在光照均勻的條件下,按照本文提出的方法測出了多組角度值,其中誤差最大的一組為5.31%,最小的一組僅為0.49%??梢?,本方法在相當(dāng)程度上解決了方便、靈活和穩(wěn)定地測量玻璃二面角的問題,為需要使用二面角角度工作的相應(yīng)機器人(例如玻璃幕墻清洗機器人等)的研發(fā)提供了技術(shù)參考。
參考文獻(xiàn)
[1] Zhengyou Zhang.A Flexible NewTechnique for Camera Calibration[R]. Microsoft Corporation: TechnicalReport,MSR-TR-98-71,1998.
[2]陶旺林,盧選民,劉李娟,單長,基于OpenCV的非線性圖像畸變校正研究[J].現(xiàn)代電子技術(shù),2011,34 (12):117-120.
[3]王德麾,袁中凡,樊慶文,基于計算機視覺的平面角度測量方法[J].西南交通大學(xué)學(xué)報,2010,45 (05): 775-779+793.