李玲玲,王正勇,卿粼波,何海波
(1.四川大學 電子信息學院,四川 成都610065;2.成都西圖科技有限公司, 四川 成都610000)
基于Kinect 2.0深度圖像的快速體積測量
李玲玲1,王正勇1,卿粼波1,何海波2
(1.四川大學 電子信息學院,四川 成都610065;2.成都西圖科技有限公司, 四川 成都610000)
為了滿足現(xiàn)實生活中對物體體積實時測量的需求,提出了一套基于Kinect 2.0深度圖像處理的快速體積測量方案。首先,使用Kinect 2.0 深度傳感器獲得深度圖像及對應的點云數(shù)據(jù)矩陣,并對深度圖像進行增強、二值化、目標提取等預處理,定位出目標物體。然后,通過像素點的統(tǒng)計和點云數(shù)據(jù)的處理得到目標物體的面積、高度。最后由面積和高度完成目標物體的體積計算。經(jīng)驗證這種方法的體積測量誤差控制在3%以內,完全滿足實時性的誤差要求,又由于深度圖像較彩色圖像不易受光線、背景的干擾,使得該方法具有很強的魯棒性。
Kinect 2.0深度圖像;點云數(shù)據(jù)矩陣;目標提??;體積計算
體積測量在現(xiàn)實生活中應用廣泛,例如在航空運輸行業(yè)中,貨物入艙前需對運輸貨物體積有快速明確的估計,以滿足飛機腹艙空間的充分利用,提高運輸效率。目前機場主要是通過目測確定需運入飛機腹艙的貨物體積,其精確度不夠高,因此研發(fā)一套自動化體積測量系統(tǒng)尤為必要?,F(xiàn)體積測量系統(tǒng)主要是基于激光傳感器[1-3],但實際操作中為了獲得被測物體某個面上的三維坐標信息,激光傳感器需要電機等配套設備的驅動才能獲取由線陣數(shù)據(jù)組成的整個物體表面的信息[1],又由于對激光傳感器的掃描分辨率和靈敏度的要求,使得整個系統(tǒng)操作復雜,速度慢且成本高[1]。不同于傳統(tǒng)的激光傳感器得到的線陣數(shù)據(jù),Kinect 2.0深度傳感器得到的不僅是面陣數(shù)據(jù),而且可獲取物體深度信息,為此,本文主要研究基于Kinect 2.0深度圖像預處理方法實現(xiàn)入艙前貨物體積的快速實時測量。該方案優(yōu)點主要體現(xiàn)在實現(xiàn)速度快,系統(tǒng)組成和操作簡單,只需一臺Kinect和一臺電腦,成本低,更具有經(jīng)濟使用價值。
圖1 體積測量方案流程
圖1為體積測量方案流程。本文首先用Kinect 2.0采集深度圖像及其對應的點云數(shù)據(jù)矩陣,然后采用漫水填充的方法增強圖像初步去噪突出目標物體,并經(jīng)過圖像二值化、Canny邊緣檢測提取物體輪廓,圖像填充提取目標物體。最后,根據(jù)Kinect 2.0視場與像素個數(shù)的比值關系得到面積,由目標物體在整個圖像中的具體位置將其配準到點云數(shù)據(jù)矩陣中計算物體高度,進而求出物體體積。
2.1 深度圖像獲取
深度圖像又叫做距離圖像,類似于彩色圖像矩陣中的顏色值、灰度圖像矩陣中的灰度值,深度圖像信息即深度值存儲在深度圖像矩陣中。深度圖像較灰度圖像的優(yōu)勢是,深度值只與距離相關,與光照強度和方向無關[4]。
圖2 Kinect深度圖像
本方案采用Kinect 2.0攝像頭獲取深度圖像。Kinect 2.0是微軟公司于2014年7月推出的高性價比攝像頭。相比于傳統(tǒng)的激光傳感器,Kinect 2.0是一款功能強大、性價比高、方便使用的三維數(shù)據(jù)采集設備,其分辨率為512×424;水平視場可增大至70°,垂直視場增大至60°;其深度圖像拍攝范圍為0.8~4.0 m,圖2為獲取的一張深度圖像。
2.2 點云數(shù)據(jù)矩陣獲取
點云是指以各種方式獲得的點數(shù)據(jù),是測量目標表面上各點信息的集合。坐標數(shù)據(jù)是點云數(shù)據(jù)必須包括的信息,另外法向量、顏色值或其他數(shù)據(jù)信息也可能被包括在點云數(shù)據(jù)中[5]。本方案中Kinect 2.0獲取的點云數(shù)據(jù)是與其深度圖像的每個像素點對應的距離信息矩陣,其大小為512行、424列,其值表示的是Kinect 2.0深度攝像頭到被拍攝物體表面的垂直距離,單位為mm。經(jīng)實驗驗證Kinect 2.0在其所能達到的距離范圍0.8~4 m內的距離誤差均在2 cm以內,Kinect 2.0測得距離與實際距離的比較如表1所示,由此獲得的Kinect 2.0測試距離和實際距離的精度曲線如圖3所示。
表1 Kinect 2.0測量距離與實際距離 (單位:cm)
圖3 測試距離精度曲線
由于Kinect采集的深度圖像并不完美,含有與距離平方成正比的噪聲及無效像素構成的空洞[6]。本文中的深度圖像還有周圍物體的干擾,因此對采集到的原始深度圖像進行預處理對后續(xù)進一步研究尤為重要。本方案經(jīng)過對深度圖像的漫水填充[7]處理、基于Otsu[8]算法的圖像二值化、Canny算子[9]邊緣檢測、圖像填充等預處理方法檢測定位提取出目標物體。
3.1 基于漫水填充的圖像增強
圖像增強可弱化或消除一些不必要信息,經(jīng)過增強處理的圖像比原始圖像更適合特定場景的需求[10]。本文首先對帶目標物體的深度圖像通過漫水填充,強化突出目標區(qū)域。實驗證明該方法效果比較理想,基本上消除了周圍噪聲并突出了目標物體,為后續(xù)圖像處理做準備。漫水填充法是一種常用的區(qū)域填充法,它的實質是種子填充法,經(jīng)常被用來標記或分離圖像的感興趣區(qū)域。
圖4 漫水填充處理后的圖像
漫水填充法的具體操作即在具有同一顏色或亮度值的像素區(qū)域內選取種子點,通過判斷種子與種子點的鄰域像素顏色或亮度值的差別是否滿足預先設定的閾值,來決定是否對鄰域的像素用新的顏色或亮度值代替,直到遍歷完區(qū)域內所有像素或達到輪廓線的邊界[11]。由此可知,初始種子點、替代顏色和目標顏色判定閾值是漫水填充的3個重要參數(shù)。本文并沒有填充目標區(qū)域,而是通過填充目標區(qū)域以外的區(qū)域為白色即像素值為(255,255,255)來突出黑色的目標區(qū)域,這樣就簡化了參數(shù)的選擇。漫水填充可通過opencv中的cvFlood Fill函數(shù)來實現(xiàn),選取種子點為(20,20),將下標記和上標記都選取為30,對種子的8鄰域逐點進行判斷,經(jīng)實驗驗證這種參數(shù)的選取值可取得很好的效果,如圖4所示。
3.2 基于Otsu的圖像二值化
圖像增強雖然突出了目標物體但周圍仍有噪聲,故需對圖像進行進一步的處理。接下來對漫水填充后的圖像進行二值化操作以適應下一步圖像處理的要求。針對目標物體與背景有較大差別的圖像,為了得到理想的二值化效果,閾值分割是備受青睞的方法。因此,區(qū)分目標物體和背景的閾值對二值化效果是否理想起到關鍵的作用。設原始灰度圖像為f(x,y),經(jīng)二值化處理的圖像為g(x,y),可用式(1)描述二值化過程。
(1)
(2)
(3)
將灰度值大于等于t的像素灰度值規(guī)定為255,小于t的像素灰度值規(guī)定為0。通過圖像二值化將24 bit的深度圖像轉化為8 bit深度圖像,以便后續(xù)對目標圖像的提取。
3.3 基于Canny算子邊緣檢測的目標提取
目標提取即把感興趣的部分從單幅圖像或序列圖像中提取出來。為了從背景中提取出目標物體,采用Canny算子對二值化圖像進行邊緣檢測。相比于其他邊緣檢測算子,依據(jù)圖像邊緣檢測最優(yōu)準則設計的Canny邊緣檢測算法具有良好的邊緣檢測性能,且具備信噪比大和檢測精度高的優(yōu)點,因此文中使用Canny算子進行邊緣檢測,效果如圖5所示。
圖5 Canny邊緣檢測
然后對提出的邊緣進行內輪廓填充,將輪廓內的像素值填充為1,效果如圖6所示,圖中黑色的區(qū)域為背景,白色區(qū)域即提取出的目標物體。
圖6 提取的目標物體
利用統(tǒng)計匹配像素點及視場比值不變性的方法計算物體的體積, Kinect 2.0的視場圖如圖7所示。其中h是Kinect 2.0到物體表面的距離,N是圖像中目標物體區(qū)域內像素個數(shù)測量值,S是物體實際面積大??;M是Kinect 2.0整個視場范圍內像素的個數(shù),S1是Kinect2.0整個視場的面積;α和β分別是Kinect2.0的水平視場和垂直視場。
圖7 Kinect 2.0視場圖
4.1 面積計算
由于Kinect 2.0采集的深度圖像中保存的是深度信息,要進行體積測量還需得到面積相關的信息。當Kinect 2.0與所測物體的距離固定時,可以根據(jù)Kinect 2.0在該距離的視場范圍和該視場范圍內像素個數(shù)的比例關系來求取面積。即圖像中目標物體區(qū)域內像素個數(shù)測量值N與實際物體的面積大小S的比值和在該距離下Kinect 2.0整個視場范圍內像素的個數(shù)M與整個視場面積S1的比值是相等的,如式(4)所示:
(4)
其中N是根據(jù)圖像統(tǒng)計出的目標物體所在區(qū)域的像素個數(shù),即二值圖像中像素值等于1的像素個數(shù),S1可根據(jù)圖7中Kinect2.0的視場范圍由幾何關系求出,如式(5)所示:
(5)
又由于視場S1中總的像素個數(shù)M=512×424,利用這個原理,對于搭建好的圖像采集系統(tǒng),由式(4),在S1、M、N已知的情況下即可以求出目標物體區(qū)域的面積S:
(6)
4.2 高度計算
統(tǒng)計目標物體區(qū)域即圖6中的白色區(qū)域在整幅圖像中的具體位置,即白色區(qū)域的起始行m1和終止行m2以及起始列n1和終止列n2,然后求出白色區(qū)域的中間行m和中間列n,并將其配準對應到點云矩陣A1和A,即在A1和A中提取出白色區(qū)域對應的距離信息。由于得到的Kinect 2.0攝像頭到背景表面和到目標物體表面的兩個點云矩陣A1和A邊緣有噪聲,因此選取A1和A中20×20的中間區(qū)域的小矩陣,即行m-10至m+9和列n-10至n+9的區(qū)域分別求平均值得到h1和h。通過背景距離減去前景距離計算被測物的高度信息h2,計算公式為:
h2=h1-h
(7)
4.3 體積計算及實驗測試
由體積計算公式V=Sh2,即可計算出被測物的體積。
分別對不同的物體和0.8~4m不同的距離(Kinect2.0到被測物的距離)進行了實驗,盡管被測對象的體積很小,但誤差均有良好的可控性,結果顯示控制在3%以內,這充分說明了該方案的潛力和可行性。具體測量結果及誤差分析如表2所示。
表2 測量結果及誤差分析
本文基于VS2013環(huán)境和Kinect SDK 2.0提出一套體積測量方案,實驗證明本文提出的測量方案測量結果準確可靠,3%以內的體積測量誤差可滿足實時的需求。
(1)本文應用Kinect 2.0深度圖像的處理來求體積,充分利用了深度圖像較彩色圖像不易受光照強度和方向影響的優(yōu)勢,增強了本文提出算法的魯棒性。
(2)本文設計的體積測量方案成本低,經(jīng)濟實惠,不需要配套的硬件驅動,所需設備僅為一臺電腦和一臺Kinect 2.0,性價比高,操作簡單便捷,并且可實現(xiàn)快速準確實時的體積測量,經(jīng)濟價值可觀。
(3)本文將Kinect 2.0的應用由尺寸測量進一步深入到體積測量領域,增強了Kinect 2.0的實用性,拓展了Kinect 2.0的應用領域,對計算視覺技術在體積測量領域的應用具有積極意義。
[1] 路達, 滕奇志, 卿粼波,等. 基于激光測距的中小型貨物三維體積掃描[J]. 微型機與應用, 2015,34(23):83-86.
[2] 周峰. 基于三維激光掃描技術的倉儲散糧堆體積測量系統(tǒng)研究[D].長春:吉林大學,2015.
[3] 雷文. 基于激光掃描的物料堆三維測量系統(tǒng)研究[D].長沙:湖南大學,2014.
[4] Yue Haosong, Chen Weihai, Wu Xingming, et al. Fast 3D modeling in complex environments using a single Kinect sensor[J]. Optics and Lasers in Engineering, 2014, 53(2): 104-111.
[5] 韋羽棉. 基于 Kinect 深度圖像的三維重建研究[D].重慶:重慶大學, 2014.
[6] 陳理. Kinect 深度圖像增強算法研究[D]. 長沙:湖南大學, 2013.
[7] BRADSKI G, KAEBLER A.Learning OpenCV[M].California:0’Reilly Media,Inc,2008.
[8] OTSU N. A threshold selection method from gray-level histogram [J]. IEEE Transactions on Systems, Man, and Cybernetics, 1979, 9(1): 62-66.
[9] CANNY J. A computational approach to edge detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986, 8(6):679-698.
[10] Li Bai, Li Ya, Cao Hongxin, Fet al. Image enhancement via lateral inhibition: an analysis under illumination changes[J]. Optik-International Journal for Light and Electron Optics, 2016, 127(12): 5078-5083.
[11] 陳佳鑫, 賈英民. 一種基于漫水填充法的實時彩色目標識別方法[J]. 計算機仿真, 2012, 29(3):4-9.
作者簡介:
李玲玲(1990-),女,碩士,主要研究方向:圖像處理、圖像識別。
王正勇(1969-),女,副教授,碩士生導師,主要研究方向:圖像處理與識別、信息與信號處理。
卿粼波(1982-),男,副教授,碩士生導師,主要研究方向:圖像處理、圖像/視頻編碼通信。
Fast volume measurement based on Kinect 2.0 depth image
Li Lingling1, Wang Zhengyong1, Qing Linbo1, He Haibo2
(1.College of Electronics and Information Engineering, Sichuan University, Chengdu 610065,China;2.Chengdu West Image Technology Ltd., Chengdu 610000,China)
In order to meet the demand of real-time volume measurement, a fast volumetric measurement scheme based on Kinect2.0 depth image processing is proposed . Firstly, Kinect 2.0 depth sensor is used to obtain depth images and the corresponding point cloud data matrix, and the depth image enhancement, binarization, target extraction and other pretreatment methods are used to detect the location of the target object. Then the area and the height of the target object are calculated through doing statistics of pixels and processing the point cloud data . Finally, the volume of the target object is calculated via area and height. It is proved that the volume measurement error of this method is controlled within 3%, which fully meets the error requirement , and because the depth image is less susceptible to light and background than color image, so that this method has a strong robustness.
Kinect 2.0 depth image; point cloud data matrix; object extraction; volume calculation
王炳文(1986-),男,碩士,工程師,主要研究方向:計算機應用。
TP274
A
10.19358/j.issn.1674- 7720.2017.07.011
李玲玲,王正勇,卿粼波,等.基于Kinect 2.0深度圖像的快速體積測量[J].微型機與應用,2017,36(7):35-38,42.
2016-11-01)