本發明涉及點云處理,具體而言,涉及一種圓柱體檢測方法、裝置、電子設備及存儲介質。
背景技術:
1、焊接機器人對工件進行焊接首先需要找到工件的焊縫,工件焊縫往往通過將工件轉換為工件點云,然后在工件點云中找到焊縫,要在工件點云中找到焊縫,需要先檢測出工件點云中的圓柱體,再通過圓柱體和平面的切線找到焊縫。
2、相關技術中,檢測點云中的矮圓柱體(例如,高度<=30mm的圓柱體),可以采用不基于點云配準的圓柱體檢測方法,首先檢測點云中所有的平面,然后根據法向對平面進行分組,每組平面對應于一種點云切分方案,使用平面切分點云后,將切分部分投影至切分平面上,然后判斷哪個切分部分的投影點云最有可能對應于圓,對該部分投影點云檢測圓,從而檢測點云中的矮圓柱體。
3、但該方法可能無法選出正確的投影部分,且當不同的投影部分都含有圓時,也無法對每個部分判斷是否含有圓,因此該方法可能無法正確檢測出點云中的矮圓柱體,或者無法檢測出點云中的所有矮圓柱體。
技術實現思路
1、有鑒于此,本發明實施例的目的在于,提供一種圓柱體檢測方法、裝置、電子設備及存儲介質以至少部分地改善上述問題。
2、為了實現上述目的,本發明實施例采用的技術方案如下:
3、第一方面,本發明實施例提供了一種圓柱體檢測方法,所述方法包括:
4、對待檢測點云進行切分處理,得到多個切分部分;
5、針對每個所述切分部分,選擇一個投影面,對所述切分部分進行投影,得到投影點云;
6、對所述投影點云進行簡化處理,得到簡化投影點云;
7、對所述簡化投影點云進行聚類,得到至少一個聚類點云;
8、對各所述聚類點云進行圓柱體檢測,以確定所述切分部分中的所有圓柱體。
9、可選地,對待檢測點云進行切分處理,得到多個切分部分,包括:
10、使用平面檢測算法檢測所述待檢測點云中的平面;
11、根據各所述平面的第一法向,對各所述平面進行分組,得到至少一個平面組;
12、對于每個所述平面組,用所述平面組對所述待檢測點云進行切分,得到多個切分部分。
13、可選地,所述對所述投影點云進行簡化處理,得到簡化投影點云,包括:
14、針對所述投影點云中的每個點云點,判斷所述點云點是否已經被處理;
15、若否,在所述投影點云中,查找以所述點云點為中心、半徑為預設半徑內的點,得到第一待處理點;
16、根據各所述第一待處理點,計算出所述點云點法向范圍內的點的中心點,將所述中心點存入簡化投影點云。
17、可選地,所述根據各所述第一待處理點,計算出所述點云點法向范圍內的點的中心點,包括:
18、獲取所述點云點的第二法向,并初始化中心點集合、中心點數量;
19、針對每個所述第一待處理點,判斷所述第一待處理點是否已經被處理;
20、若否,計算出所述點云點指向所述第一待處理點的向量;
21、將所述向量朝所述第二法向進行投影,得到垂直距離;
22、在所述垂直距離小于預設距離的情況下,將所述第一待處理點加入到所述中心點集合,將所述中心點數量加1,將所述第一待處理點標記為已處理;
23、遍歷每個所述第一待處理點,得到最終的所述中心點集合以及所述中心點數量,并計算出所述點云法向范圍內的點的中心點。
24、可選地,所述對所述簡化投影點云進行聚類,得到至少一個聚類點云,包括:
25、對所述簡化投影點云進行直線檢測;
26、對于每個檢測到的直線,計算投影點云中每個點到所述直線的距離,刪除所述距離小于預設閾值對應的點,得到刪除點后的簡化投影點云;
27、對刪除點后的簡化投影點云進行聚類,得到至少一個聚類點云。
28、可選地,所述對各所述聚類點云進行圓柱體檢測,以確定所述切分部分中的所有圓柱體,包括:
29、選取任一所述聚類點云進行圓弧檢測,當在所述聚類點云滿足圓弧特征的情況下,計算出所述聚類點云的圓心以及半徑;
30、根據所述聚類點云的圓心、半徑以及所述投影面,確定出虛擬圓柱體;
31、根據所述虛擬圓柱體的圓柱面,從所述聚類點云中找出在所述圓柱面上的點,得到所述聚類點云中的圓柱體;
32、遍歷每個所述聚類點云,確定出所述切分部分中的所有圓柱體。
33、可選地,所述選取任一所述聚類點云進行圓弧檢測,當在所述聚類點云滿足圓弧特征的情況下,計算出所述聚類點云的圓心以及半徑,包括:
34、對選取的所述聚類點云進行簡化處理,得到聚類簡化點云;
35、使用圓檢測算法對所述聚類簡化點云檢測圓,得到對應的假設圓以及所述假設圓的圓心和半徑;
36、獲取所述聚類簡化點云中在所述假設圓上的點,對所述假設圓上的點進行聚類,得到至少一個聚類;
37、當在各所述聚類的數量為1的情況下,計算所述假設圓上的點的特征值;
38、當在所述假設圓上的點的數量除以所述聚類簡化點云的點的數量的值大于或等于第一預設比例,且所述特征值除以所述假設圓的半徑的值大于或等于第二預設比例的情況下,將所述圓心和所述半徑作為所述聚類點云的圓心以及半徑。
39、第二方面,本發明實施例提供了一種圓柱體檢測裝置,所述裝置包括:
40、點云切分單元,用于對待檢測點云進行切分處理,得到多個切分部分;
41、點云投影單元,用于針對每個所述切分部分,選擇一個投影面,對所述切分部分進行投影,得到投影點云;
42、投影簡化單元,用于對所述投影點云進行簡化處理,得到簡化投影點云;
43、投影聚類單元,用于對所述簡化投影點云進行聚類,得到至少一個聚類點云;
44、圓柱體檢測單元,用于對各所述聚類點云進行圓柱體檢測,以確定所述切分部分中的所有圓柱體。
45、第三方面,本發明實施例提供了一種電子設備,包括存儲器、處理器及存儲在存儲器上并在處理器上運行的計算機程序,所述處理器執行所述程序時實現上述任一項所述的方法。
46、第四方面,本發明實施例提供了一種存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現上述任一項所述的方法。
47、本發明實施例提供的一種圓柱體檢測方法、裝置、電子設備及存儲介質,通過劃分平面組,使用平面組對點云進行切分,針對每個切分部分進行投影,得到投影點云,然后對投影點云進行簡化,得到簡化投影點云,可以去除投影點云中的噪聲,使得簡化投影點云具有更加清晰的曲線結構,針對簡化投影點云進行直線檢測,使用直線檢測結果去除簡化投影點云中的點,進一步減少噪聲,最后對簡化投影點云進行聚類,對每個聚類都進行圓柱體檢測,從而可以更加準確的檢測點云中所有的矮圓柱體。
48、為使本技術的上述目的、特征和優點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。