本公開涉及計算機視覺,具體涉及一種基于卷積神經網絡的點云分片下采樣方法,一種基于卷積神經網絡的點云分片下采樣系統,一種電子設備以及一種計算機可讀存儲介質。
背景技術:
1、隨著三維點云捕獲掃描性能的不斷提升,以及深度學習技術的不斷發展,三維點云已經在虛擬現實、自動駕駛等領域得到廣泛應用。與此同時,龐大的三維數據以及越來越復雜的深度學習算法也對硬件設備的存儲以及計算機的處理提出了挑戰。
2、點云下采樣技術是從原有點云中選擇魯棒性更高或更具價值的點進行保留,以減少點云的總體數量,進而減少點云處理時的復雜度。舉例說明:現有的基于卷積神經網絡的下采樣方法處理1000個點大約需要1到2gb顯存,然而在實際場景掃描的三維點云一般具有20萬到200萬個點,那這保守估計需要200gb以上顯存。通過基于卷積神經網絡直接處理三維點云這直接對硬件設備提出了嚴峻的挑戰,尤其是在內存容量和數據處理速度這兩個關鍵方面。
3、目前,隨著深度學習網絡復雜度越來越高,很多網絡架構不能直接處理大規模的點云,同時,對于一個已經訓練好的網絡模型,能夠支持的輸入點數量往往也是固定的,這就要求設計一種點云切片算法,對于大規模的點云首先進行切片,隨后再送入神經網絡處理。而當前的各種采樣方法,如最遠點采樣、k近鄰的點云分片算法,都存在采樣算法切片內聚合度差,無法實現對整個點云完全覆蓋,會導致采樣后點云質量更差的問題。
技術實現思路
1、為了至少解決現有技術中存在的采樣算法切片內聚合度差,無法實現對整個點云完全覆蓋,因而導致采樣后點云質量差的問題。本公開提供一種基于卷積神經網絡的點云分片下采樣方法、基于卷積神經網絡的點云分片下采樣系統、電子設備以及計算機可讀存儲介質,采樣過程能夠不重復的完美覆蓋原始點云,且切片內部聚合度更高,可以生成更加逼真的下采樣點云。
2、第一方面,本公開提供一種基于卷積神經網絡的點云分片下采樣方法,所述方法包括:
3、s1:獲取三維點云數據,設定劃分的切片數,根據切片數初始化簇中心,將每個數據進行劃分;
4、s2:重新計算新的簇中心,按照預設的標準對部分數據點進行重新劃分;
5、s3:重復步驟s2,直到算法滿足終止條件,得到待處理點云切片;
6、s4:將得到的待處理點云切片送入下采樣網絡,得到下采樣后的點云切片;
7、s5:將下采樣后的點云切片,拼接成完整的下采樣點云。
8、進一步的,所述獲取三維點云數據,設定劃分的切片數,根據切片數初始化簇中心,將每個數據進行劃分,包括:
9、對獲取的三維點云數據,用{pi|i=1,…,n}表示待分片的3d無序點云,其中每個點有(x,y,z)三個通道特征;
10、設定需要將點云劃分的切片數為k個切片,每個切片具有npatch個點;
11、利用fps(farthest?point?sampling,最遠點采樣)方法隨機初始化k個簇中心,對于數據集中的每一個數據點,計算其與每個聚類中心的距離;然后,將該數據點分配到與其距離最近的聚類中心所在的簇中。
12、進一步的,所述重新計算新的簇中心,按照預設的標準對部分數據點進行重新劃分,包括:
13、計算每個簇中包含的點數,尋找包含點數最多的簇,設其為簇c,滿足其簇中心定義為:
14、xmid=average(x1,...,xl)?????????????(1)
15、ymid=average(y1,...,yl)?????????????(2)
16、zmid=average(z1,...,zl)?????????????(3)
17、隨后計算每個點到簇中心的距離選取距離簇中心最遠距離對應的點滿足:
18、
19、計算到其他簇中心的距離,并從小到大進行排序,選取距離最小所對應的簇,如果該簇現有點數少于npatch,則將該點從簇c,移動到該簇中,否則,忽視此距離及其對應簇,判斷下一個距離,直到找到第一個滿足條件的簇為止,將該點從簇c移動到此簇中。
20、進一步的,所述算法滿足終止條件包括:
21、每個簇包含的點都為npatch。
22、進一步的,所述將得到的待處理點云切片送入下采樣網絡,得到下采樣后的點云切片,包括:
23、將得到的待處理點云切片送入預設的下采樣網絡,網絡的輸入為具有npatch個點的切片點云,輸出為具有mpatch個點的切片點云;
24、所述預設的下采樣網絡通過若干卷積層用于提取點云的特征,并對每個點的貢獻值情況進行打分,選取得分高的點組成下采樣后的點云。
25、進一步的,所述預設的下采樣網絡采樣過程包括:
26、通過以下方式對原始點云切片進行處理:
27、f1=conv1(pin)?????????????????????(5)
28、f2=conv2(f1)?????????????????????(6)
29、fmat=conv3(f2)????????????????????(7)
30、f4=conv4(fmat·pin)??????????????????(8)
31、f5=conv5(f4)?????????????????????(9)
32、fsort=sort(f5)????????????????????(10)
33、idx=get_index(fsort)?????????????????(11)
34、psp=select_pt(idx,pin)????????????????(12)
35、pin表示原始點云切片,conv1表示第一層卷積,f1為該層輸出的特征矩陣,conv2表示第二層卷積,f2為該層輸出的特征矩陣,conv3表示第三層卷積,fmat為該層輸出轉換矩陣,隨后用轉換矩陣fmat和輸入點云點乘,conv4表示第四層卷積,f4表示第四層卷積輸出特征,conv5表示第五層卷積,f5表示第五層卷積輸出特征,sort表示對特征排序,fsort表示排序結果,get_index表示選取數值較大的前mpatch個元素,idx表示查詢到的索引值,select_pt表示根據索引值和原始點云進行選擇,psp表示下采樣后的點云切片。
36、進一步的,所述方法還包括:
37、對所述預設的下采樣網絡模型進行訓練及測試,包括:
38、選取公開數據集,并劃分測試集和訓練集;
39、訓練與測試中,設置batch?size,學習率,且每20個epoch衰減為原來的0.9倍,總epoch數為200,點云下采樣模型的損失函數如下式所示:
40、
41、式中,lemd表示移地距離,pin表示原始點云,psp表示下采樣的點云,是一種映射關系,即對于下采樣點集中的每個元素,都存在輸入點集中唯一且不重復的點與其對應。
42、第二方面,本公開提供一種基于卷積神經網絡的點云分片下采樣系統,所述系統包括:
43、云數據獲取及初步劃分模塊,其設置為獲取三維點云數據,設定劃分的切片數,根據切片數初始化簇中心,將每個數據進行劃分;
44、重新劃分模塊,其設置為重新計算新的簇中心,按照預設的標準對部分數據點進行重新劃分;以及,
45、重復上述步驟,直到算法滿足終止條件,得到待處理點云切片;
46、點云下采樣模塊,其設置為將得到的待處理點云切片送入下采樣網絡,得到下采樣后的點云切片;
47、點云拼接模塊,其設置為將下采樣后的點云切片,拼接成完整的下采樣點云。
48、第三方面,本公開提供一種電子設備,包括存儲器和處理器,所述存儲器中存儲有計算機程序,當所述處理器運行所述存儲器存儲的計算機程序時,所述處理器執行如第一方面中任一所述的基于卷積神經網絡的點云分片下采樣方法。
49、第四方面,本公開提供一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現上述第一方面中任一所述的基于卷積神經網絡的點云分片下采樣方法。
50、有益效果:
51、本公開提供的基于卷積神經網絡的點云分片下采樣方法、基于卷積神經網絡的點云分片下采樣系統、電子設備及存儲介質;對獲取的點云數據通過初始化簇中心初步劃分后,重新計算新的簇中心,將超出預定數量且距離簇中心最遠距離對應的點遷移到未超過預設數量且與該點距離最近的聚類中心所在的簇中,實現數據重新分配,保證每個簇點數一致,使采樣過程能夠不重復的完美覆蓋原始點云,且切片內部聚合度更高,可以生成更加逼真的下采樣點云,提升下采樣后點云質量。