?

基于三維點云處理的包裝袋繩檢測

2024-01-03 12:04楊國威劉新月陳綺帆王校陽
天津科技大學學報 2023年6期
關鍵詞:歐氏包裝袋夾角

楊國威,劉新月,陳綺帆,王校陽

(天津科技大學電子信息與自動化學院,天津 300222)

在現代工業中,一些原本需要大量人力的工作越來越智能化,在降低人工成本的同時實現了生產效率的提高;貨物拆包等很多枯燥、繁重的工作也漸漸由工業機器人來完成,自動拆包也是自動化行業的發展趨勢。自動拆包通常需要測量包裝袋上包裝袋繩的位置并將位置信息提供給機械手以便于機械手進行操作。為準確可靠地定位到包裝袋上包裝袋繩的位置,需采用三維傳感器進行測量。三維點云信息相比于二維圖像信息更加精準,可以充分地描述物體的空間幾何信息,能更精準地定位出包裝袋繩在空間中的位置。

三維點云信息測量的設備主要有激光雷達傳感器、RGB 雙目相機、基于結構光的深度相機等。激光雷達傳感器在深度信息的獲取上,具有較高的可靠性和準確性。徐善軍等[1]利用雷達激光檢測引線及其引線端點,使機器人能夠精確抓取引線位置從而完成自動化配網帶電作業;但激光雷達成本較高,通常用于自動駕駛等多變的復雜場景下。RGB 雙目相機的優點是測量精度高、魯棒性強。朱槐雨[2]使用RGB 雙目相機對番茄進行標定、立體匹配和RGB 圖像與深度配準的實驗,實現了對成熟番茄的定位和自動化采摘;但RGB 雙目相機對圖像的特征匹配依賴度極高,在光照環境不好和缺乏紋理的場景下難以準確測量?;诮Y構光的深度相機采用主動投影的方法實現快速魯棒的匹配特征點,不依賴物體本身的顏色和紋理。陳勇忠等[3]針對形狀各異、散亂放置、高度不一致的異構件在弱紋理、反光等場景中通過結構光相機獲取數據進行三維重建并實現精準抓取。通常包裝袋拆包是在工廠內部進行,不存在復雜多變的情況,但容易受光照條件的影響,因此基于結構光的深度相機更適合測量包裝袋點云數據。

從工業三維相機采集的包裝袋三維點云數據來看,包裝袋繩的點云信息嵌入在包裝袋點云里。直接對包裝袋的點云數據進行目標分割,容易導致包裝袋繩的信息被分割掉或者被錯誤地分割為包裝袋的一部分。為解決這一問題,本文設計了一種先提取點云邊界再分割的包裝袋繩檢測算法。包裝袋繩與包裝袋相比,棱角更加分明,點云數據曲率變化較大,通常體現為邊界信息。對采集到的點云數據進行邊界提取,將提取后的點云進行目標分割,便能得到完整的包裝袋繩點云。

點云邊界檢測算法通常有兩類。第一類算法利用點云自身的曲率、深度信息等特征判斷采樣點是否為邊界。Woo 等[4]通過八叉樹(octree)查找鄰近點,邊界處的點云法向上有較大的變化,通過計算鄰近點的標準差可反映點云在法向上的變化情況,從而提取出邊界。Xi 等[5]根據深度信息將三維點云轉換為圖像信息,再使用圖像邊界提取中的改進拉普拉斯算法判斷邊界。第二類算法是基于夾角閾值的邊界提取算法,該算法將點云投影到微切面,再通過投影點連線的最大夾角判別采樣點是否為邊界特征點。張長勇等[6]首先使用KD-Tree(K-dimensional tree)對點云數據進行拓撲關系構建,然后使用K 領域的向量疊加邊界提取算法進行粗提取,最后對候選邊界點使用基于微切面的近鄰最大夾角法進行精提取。

點云分割根據目標點云的幾何、空間等特征將點云數據進行劃分,使得劃分后的相同區域具有一致的特征,屬于同一個目標。常用的點云分割算法有區域生長算法[7]、隨機采樣一致性分割算法[8]和歐氏距離分割算法等。秦碩[9]采用區域生長算法實現了箱體表面點云的分割聚類。劉闖等[10]以法向量夾角為約束條件對點云進行分類,再結合隨機采樣一致性分割算法完成點云的分割。韓曉龍等[11]采用歐氏距離分割算法完成散貨料堆點云的地面分割,彌補隨機采樣一致性分割算法分割不徹底的問題。為實現精準拆包,基于歐氏距離分割算法,通過距離閾值將邊界提取后的點云進行分割。

本文采用基于夾角閾值的點云邊界提取算法,先對點云數據進行邊界提取,再利用歐氏距離分割算法分割點云數據,最終可以得到分割后的包裝袋繩點云數據。

1 包裝袋繩三維點云檢測算法原理

1.1 包裝袋繩點云數據分析

本文的包裝袋點云數據是由基于結構光的三維相機獲取,工業相機拍攝的包裝袋點云如圖1 所示。從圖1(a)可以看出,包裝袋繩點云嵌入在包裝袋點云里,調整角度后能夠看到空間中包裝袋繩的形狀;且圖1(b)顯示獲取的點云存在噪聲影響,難以直接從點云中區分出包裝袋繩的點云信息。此外,包裝袋繩與包裝袋相比,棱角更加分明,點云數據曲率變化較大,通常體現為邊界信息;因此,先選擇基于夾角閾值的點云邊界提取算法提取出包裝袋繩的邊界,再采用歐氏距離分割算法將包裝袋繩點云分割出來。

圖1 工業相機拍攝的包裝袋點云Fig.1 Packaging bag point cloud captured by industrial camera

1.2 包裝袋繩三維點云檢測流程

本文設計的先提取點云邊界再分割的點云處理算法流程如圖2 所示。

圖2 點云處理算法流程Fig.2 Flow chart of point cloud processing algorithm

為了從包裝袋的三維點云中提取出包裝袋繩的位置,需要進行如下處理:首先,對點云數據進行預處理[12],下采樣減少點云數量的同時不改變目標輪廓;然后,通過基于夾角閾值的邊界提取算法提取出包裝袋邊緣與包裝袋繩的輪廓;最后,通過歐氏距離分割算法將包裝袋繩點云從包裝袋點云中分割出來。

2 基于夾角閾值的點云邊界提取

為了保證包裝袋三維點云邊界提取的精度和效率,在邊界提取前先對原始的點云數據進行濾波和下采樣;這樣可以有效消除噪聲點,在提高邊界提取效率的同時可以減少噪聲點對邊界特征的影響。

包裝袋繩在包裝袋三維點云中體現為點云邊界,因此可利用基于夾角閾值的點云邊界提取算法進行提取。首先確定微切面,計算向量之間的夾角,然后對邊界特征點進行提取。

2.1 求取微切面

設P 為采樣點,通過P 點搜索K 近鄰點;此K鄰域表示為 Mj( j =0,1,2, …, k-1),代表一個參考數據。采用最小二乘法擬合出微切面,假設為F ( x, y , z ) = a1x + a2y + a3z + a4=0,矩陣形式為

ATA =0進行特征值求取。矩陣A 的特征值為λi(i = 1,2,… , n ),其中λi為 ATA 的正特征值;n 為奇異值個數。求出 ATA 的最小特征值以及最小特征值所對應的特征向量,此特征向量就是Aa=0的最小二乘解。求得微切面的法向量 n= ( a1, a2, a3)。

2.2 提取邊界特征點

將采樣點 pi及其K 鄰域 Mj( j =0,1,2, …, k -1)投影到其對應的微切面,可以獲得采樣點的投影和K 鄰域點投影的集合( j = 0,1,2, …, k - 1)。假設空間散亂點集各個坐標為 Ni( xi, yi, zi)( i = 0,1,…, n ),則其在微切面的投影點坐標為( xi′ , yi′ , zi′),于是有

在通過式(4)計算出相鄰向量的夾角后,通過排序算法求出相鄰向量夾角的最大值。夾角的最大值大于夾角閾值時,判斷當前點為邊界特征點,否則為內部點。通過嘗試不同的閾值,比較提取結果與實際邊界的一致性,將夾角閾值設定為π/4。由于該實驗中提取的是包裝袋繩的點云數據,當包裝袋繩上相鄰點之間的法向量夾角大于π/4 時說明點云之間的夾角更加尖銳,符合提取包裝袋繩邊界的要求。

點云邊界提取算法流程圖如圖3 所示。

圖3 點云邊界提取算法流程圖Fig.3 Flow chart of point cloud boundary extraction algorithm

3 基于歐氏距離分割算法的點云分割

包裝袋表面具有平滑性,但受傳感器視場范圍影響,獲取的包裝袋邊緣也會存在點云邊界;所以利用基于夾角閾值的邊界提取算法提取的點云中,包含包裝袋繩點云和包裝袋邊緣部分點云。包裝袋繩上的點云之間的距離相對較近,而包裝袋邊緣部分點云之間的距離較遠;因此,選擇距離作為分割的標準,采用歐氏距離分割算法將包裝袋繩點云從包裝袋點云中分割出來。

基于歐氏距離的分割本質上是區分鄰里關系的遠近?;跉W氏距離提取集群的方法,僅僅依據距離,將小于距離閾值的點云作為一個點云集Q,如果,則兩點之間的歐氏距離d 表示為

基于歐氏距離分割算法的具體算法步驟如下:

(1)設聚類結果存放在集合Z 中,待檢測的點云則存放在集合A 中。

(2)隨機選擇點云中的某一點P 加入集合A。

(3)用KD-Tree 搜索距離P 點最近的k 個點,并計算k 個點到P 點的歐氏距離。

(4)設置距離閾值r,將距離小于r 的點都歸入A。

(5)選擇集合A 中未被處理過的一點作為新的點P,重復步驟(3)至步驟(5)。

(6)若集合A 中所有的點都被處理完畢,并且不再有新的點加入時,那么A 中所有點就屬于同一類,將其加入集合Z 中,并重置A。

(7)當遍歷完整個點云中所有的點時,集合Z 就是歐氏距離分割的最終結果。

4 實驗結果與分析

4.1 實驗使用設備與系統

本實驗收集數據的設備為D132 型高精度工業三維相機(西安知微傳感技術有限公司),此相機為基于結構光的深度相機。相機參數為:深度精度0.20~0.60 mm,工作距離700~2 000 mm,分辨率1 280 像素×1 024 像素,軟件開發環境Windows。該相機的應用場景有包裹測量、無序分揀、拆垛碼垛、焊接、定位引導等。將相機獲取的數據以PCL(一個大型跨平臺開源C++編程庫)[14]為工具對點云進行處理。

4.2 數據預處理

體素濾波前后的點云數據如圖4 所示。

圖4 體素濾波前后點云數據Fig.4 Point cloud data before and after voxel filtering

體素濾波在達到下采樣的同時不破壞點云本身幾何結構,可以在一定程度上去除噪聲點和離群點。將圖4 中濾波前后圖片進行對比可知:體素濾波能有效過濾包裝袋附近的噪聲點,并在不改變包裝袋基本輪廓的同時減少點云數量;原始的包裝袋的點云數量為1 310 720,體素濾波后的點云數量為231 605。

4.3 基于夾角閾值的點云邊界提取

邊界提取前后點云數據如圖5 所示。圖5(a)為濾波后的包裝袋點云數據,將濾波后的點云作為輸入,通過基于夾角閾值的邊界提取算法對點云進行邊界提取,提取出的實驗結果如圖5(b)所示。實驗結果顯示,邊界提取算法不僅可以提取包裝袋繩的邊界信息,還可以提取出包裝袋的外輪廓和包裝袋周圍的噪聲點。這是因為包裝袋的外輪廓和噪聲點在點云數據中也屬于邊界的部分,符合邊界提取算法的要求。圖5(b)顯示出包裝袋繩點云與包裝袋邊緣的距離關系,包裝袋繩的點云相對比較密集,點與點之間的距離較近,而包裝袋邊緣點云距離較遠,基于歐氏距離的分割算法可以通過設置距離閾值對點云進行分割,最終定位出包裝袋繩的位置。

圖5 邊界提取前后點云數據Fig.5 Point cloud data before and after boundary extraction

4.4 基于歐氏距離的目標分割

點云分割前后數據如圖6 所示。圖6(a)為邊界提取后的點云數據,圖6(b)為對邊界提取后的數據進行歐氏距離分割的實驗結果,圖中紅色線條表示包裝袋繩的點云,綠色線條表示包裝袋外輪廓的邊緣點云。包裝袋繩的點云中點與點之間的距離較近,而包裝袋的邊緣點云距離較遠,滿足基于歐氏距離的點云分割算法中通過距離進行分割的要求。

圖6 點云分割前后數據Fig.6 Data before and after point cloud segmentation

對圖6 中點云分割后的包裝袋繩點云數據進行近鄰點搜索,包裝袋繩點云處理與觀察視圖如圖7 所示,其中圖7(a)為包裝袋的RGB 實物圖。

圖7 包裝袋繩點云處理與觀察視圖Fig.7 Bag rope point cloud processing and observation view

只依靠邊界提取算法提取到的包裝袋繩邊界不足以定位包裝袋繩在空間中的位置,需要對包裝袋繩的點云信息在原始點云中進行近鄰點搜索,搜索到的所有點云共同組成包裝袋繩的區域位置。圖7(c)中紅色線條表示提取出的包裝袋繩邊界,綠色點云范圍表示以包裝袋繩為邊界提取到的近鄰點。上述實驗中通過點云分割與近鄰點搜索定位出包裝袋繩的具體位置,但無法看出包裝袋繩的形狀和在空間中的位置。圖7(d)為調整角度后的點云觀察視圖,可以清晰地看出包裝袋繩的凸起和形狀,這一結果證實了該算法在包裝袋繩檢測上的準確性與有效性。

為了驗證該算法對包裝袋繩檢測與定位的適用性,分別對不同位置、不同形狀的包裝袋繩點云數據進行濾波、邊界提取、點云分割、近鄰點搜索等點云處理,實驗結果如圖8 所示。該實驗結果證實了本文所提出的點云檢測算法的有效性,此算法可以準確定位出包裝袋繩在包裝袋中的位置。

圖8 不同位置、不同形狀的包裝袋繩點云數據Fig.8 Point cloud data of different positions and shapes of packaging bag ropes

本文提到的機械手臂拆包是機械手用刀割斷包裝袋繩,切開包裝袋表面,需要通過提取出的包裝袋繩點云計算出包裝袋繩的中心位置坐標,并通過近鄰點搜索得到包裝袋繩的范圍。本文算法檢測到的包裝袋繩中心位置坐標和包裝袋繩范圍基本可以滿足拆包需求。

為定量分析本文提出算法的檢測精度,在實驗室內從不同位置對具有不同形態包裝袋繩的包裝袋進行測量,對使用算法分割后的包裝袋繩點云采用重心法計算出其中心坐標,再將計算值與人工測量值進行對比,結果見表1。人工測量的包裝袋繩中心位置是通過精度為1 mm 的卷尺多次測量并求平均值計算得到的。測得的最大誤差在15 mm 以內,能夠滿足工業機械手臂拆包的需求,該結果表明本文提出的檢測算法計算出的包裝袋繩中心位置精度能應用到現場拆包中。

表1 實驗室包裝袋繩點云中心位置坐標Tab.1 Point cloud center location coordinates of bag ropes in the lab

為了驗證該算法的現場實用性,對現場采集到的 10 個不同位置和不同形狀的包裝袋點云進行處理得到包裝袋繩點云,計算出包裝袋繩點云數據對應的中心位置坐標,同時通過點云處理實驗得出算法運行時間,結果見表2。包裝袋上包裝袋繩定位所需平均時間約為1.255 s。由于工業拆包中的包裝袋尺寸和容量相對較大,整個拆包過程會持續1~2 min,所以包裝袋繩定位的算法運行時間能夠滿足工業拆包現場應用的需求,實驗結果為現場機械手臂準確拆解包裝袋提供了定位數據。

表2 包裝袋繩點云中心位置坐標與算法運行時間Tab.2 Point cloud center position coordinates of bag ropes and algorithm running times

5 結 語

本文針對準確定位包裝袋上包裝袋繩位置的問題,設計了一種基于三維點云處理的包裝袋繩檢測算法。首先,通過體素濾波消除點云噪聲并下采樣,提高計算效率;然后,采用基于夾角閾值的邊界提取算法提取出包裝袋繩點云;最終,采用基于歐氏距離的點云分割算法將邊界提取后的邊界點云分割,分割出包裝袋繩的點云信息。采用重心法計算出包裝袋繩點云的中心位置坐標,實驗結果顯示檢測誤差小于15 mm,滿足機械手臂拆包要求。為了驗證本文所提出的檢測算法的廣泛應用性,又對不同位置、不同形狀的包裝袋點云進行檢測實驗。實驗結果驗證了所提方法的有效性和可靠性。本文算法在自動化工業領域中的機械手臂自動拆包系統中具有較好的應用前景。

猜你喜歡
歐氏包裝袋夾角
包裝袋
探究鐘表上的夾角
求解異面直線夾角問題的兩個路徑
由包裝袋變身的花盆
任意夾角交叉封閉邊界內平面流線計算及應用
直線轉角塔L形絕緣子串夾角取值分析
賣萌的包裝袋
自立包裝袋的發明與發展
基于多維歐氏空間相似度的激光點云分割方法
三維歐氏空間中的球面曲線
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合