李軼博
摘要:目的:采用非接觸的方法檢測墻地面或墻角的垂直度;方法:利用Kinect獲取檢測墻面或墻角的深度圖像信息,通過兩平面法向量點乘數值的大小確定平面間夾角的數學方法,來判斷墻地面或墻角的垂直度;結果:通過Kinect1.0獲取某墻角的點云數據,在VS2013平臺下實現該文算法,通過與實測數據進行對比,三個面的三個角度的檢測誤差指標分別為1.45、1.37、0.1,檢測耗時4.7S;結論:實驗驗證了該方法測得的精度較高,并且實現起來方便,速度快,方法有效可行。
關鍵詞:Kinect;墻面垂直度;檢測;平面法向量;點乘
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)26-0179-02
1 概述
在許多地方,需要檢測兩個相交面的垂直度,如在房屋的裝修中墻角的垂直度就是一個重要指標。目前常規(guī)的墻面垂直度檢測方法有鉛垂法和量尺法等,但它們都有一些缺陷,如鉛垂法,在裝修過程中室內可能沒有可以懸掛鉛垂線的地方,再如使用量尺法時,工作中需要人工將尺貼靠在墻面上,工作起來比較麻煩。另外量尺法屬于接觸式測量方法,會污染墻面。
Kinect是近幾年才出現的一種新型視覺傳感設備,與普通攝像機不同之處在于,它除了普通攝像頭外,還有集成了一個雙攝像頭,能夠獲取深度信息,即3D信息。如果把Kinect引入到建筑墻面的垂直度檢測中來,可以發(fā)揮其雙目立體特長以及計算機的強大計算能力,會使墻面檢測的質量有大幅度提高,另外無需多人配合,能夠提高檢測人員的工作效率,節(jié)約人力,因而本研究有較大的實用價值。
2 深度圖像獲取與處理
2.1 圖像獲取
圖像獲取采用Kinect裝置,其有3個鏡頭,中間鏡頭是一個普通的RGB彩色攝像機,通過它可以獲取被測對象的普通彩色圖像;左邊攝像頭是一個紅外線發(fā)射器,右邊攝像頭是一個紅外感應器,左右這兩個攝像頭構成了3D深度感應器。該文中帶深度信息的圖像就是通過這兩個攝像頭獲取的,存成深度點云文件。
2.2 圖像數據處理
這里以三個面構成的墻角為例進行分析和介紹,主要要進行分割處理。通過Kinect獲取的墻角原始點云圖像的三個面是互相連接的,要想利用后面的算法進行三個面相互夾角的計算,首先需要對上述圖像進行分割,然后才能分別擬合出各自的平面方程,點云圖像的分割可以直接采用PCL點云庫的分割功能。這里的點云分割采用的是區(qū)域生長分割法,該方法基本思想是:(1)設置一空的像素點序列和空的聚類區(qū)域,選好初始像素后,將其加入到像素點序列中,并搜索鄰域點。(2)依據點的曲率值對點進行排序。區(qū)域生長算法是從曲率最小的點開始生長的,這個點就是初始像素點,初始像素點所在的區(qū)域即為最平滑的區(qū)域,從最平滑的區(qū)域開始生長可減少分割片段的總數,提高效率。(3)對每一個鄰域點,比較鄰域點的法線與初始像素點的法線之間的夾角,小于平滑閾值的將其加入到當前區(qū)域,刪除當前初始像素點。(4)循環(huán)執(zhí)行以上步驟,直到初始像素序列為空。至此,墻面點云圖像就會被分割成三個點云面。
3 垂直度檢測算法
3.1 垂直度檢測算法
直度檢測實質上就是求兩個面的夾角。數學上求解兩個面的夾角,可以通過兩個平面的法向量的點乘數值的反三角函數獲得。
平面的一般表達式為:
3.2 點云面的擬合
在第2.1部分已經把墻角深度圖像的點云分隔成了三個點云面,如果能夠把這三個點云面擬合出具體的平面方程,再估算出每個面的法向量,就可以利用上面的算法求出面與面之間的夾角,從而進行垂直度判斷了。
在進行平面擬合之前,可以先采用主成分分析方法對點云數據進行降維處理,去除一些冗余數據,簡化問題。之后采用最小二乘法進行點云面的擬合。最小二乘法平面方程擬合計算的實現目標就是使所有點到該平面的距離和最小,通過求解方程組,求出平面方程系數,即完成云平面的擬合。
4 實驗與分析
(1) 本實驗使用微軟的Kinect1.0采集墻面的深度點云圖像,這里取的是三面墻構成的墻角深度圖像,如圖1所示。
(2) 在Visual Studio2013平臺下,通過PCL點云庫里的區(qū)域生長分割法來分割三個墻面,得到的結果如圖2所示。
(3) 通過最小二乘法分別擬合各個面的平面方程,求出法向量,計算法向量點乘結果,再通過余弦定理求出兩條法線之間夾角。
(4) 實際測量墻角三個面的角度與本實驗監(jiān)測結果進行對比,對比結果如表1所示。
通過表中的數據可以看出,本實驗方法具有較高的精度,并且方法比較簡單,方便操作,因而可行性高。實驗中存在的誤差主要有幾個方面的原因:(1)光照影響。(2)Kinect精度。(3)實際測量誤差。若用更高精度的Kinect,并減少光照的影響,實驗精度會得到進一步提高。
5 結束語
本文在介紹Kinect的基礎上,提出了一種墻面垂直度檢測的方法,通過求取檢測平面的法向量的夾角,來判斷墻面垂直度是否達到預定的指標要求。本文算法是基于Kinect1.0,在Visual Studio2013編程環(huán)境下,采用C++結合PCL點云庫實現的,通過實驗驗證,說明本方法具有較高的檢測精度,能夠較準確判斷墻體的垂直程度。
參考文獻:
[1] 劉路平. Kinect尺寸測量方法研究[D].哈爾濱工業(yè)大學,2017.
[2] 劉鑫,許華榮,胡占義.基于GPU和Kinect 的快速物體重建[J].自動化學報,2012,38(8):1288-1297.
[3] 程彥榮.基于Kinect的三維區(qū)域測量技術研究[D].東華大學,2016
[4] 浮單單,周紹光.基于主成分分析的點云平面擬合技術研究[J].繪圖工程,2014,2(4):20-23.
[通聯編輯:光文玲]