本發(fā)明屬于計算機視覺,具體涉及一種基于語義分割技術(shù)的多傳感器融合agv動態(tài)目標(biāo)剔除方法和裝置。
背景技術(shù):
1、agv(automated?guided?vehicle)是一種先進的自動運輸工具,常用于工業(yè)和物流領(lǐng)域的一種輪式移動機器人,協(xié)助廠區(qū)和車間進行物料的無人運輸,提高生產(chǎn)效率。當(dāng)前agv實現(xiàn)了狀態(tài)估計到圖優(yōu)化的后端優(yōu)化方法,以及基于視覺技術(shù)的slam(simultaneouslocalization?and?mapping)架構(gòu)和多傳感器融合構(gòu)成的精準(zhǔn)定位。上述技術(shù)實現(xiàn)了靜態(tài)環(huán)境的定位和建圖的精準(zhǔn)化,但應(yīng)用于動態(tài)環(huán)境時還存在一些不足。
2、傳統(tǒng)的視覺slam,其精確度高,有著優(yōu)秀的回環(huán)效果,但在動態(tài)環(huán)境下,因動態(tài)特征點的存在會使構(gòu)建的地圖錯亂,影響定位精度。為此,建圖時實現(xiàn)對動態(tài)對象進行的分離尤為重要。動態(tài)對象的分離方法,通常分為目標(biāo)檢測、語義分割、實例分割三種方法。目標(biāo)檢測方法,對視覺傳感器捕捉到的圖像進行檢測,以最小外接矩形框選中目標(biāo)并去除,但存在框內(nèi)的靜態(tài)特征點也同時被去除,影響了定位精度。語義分割方法,對視覺傳感器捕捉到的圖像進行檢測并賦予語義,能夠沿著檢測對象輪廓進行分割,去除檢測對象的特征點,將剩余特征點用于建圖。實例分割方法,對視覺傳感器捕捉到的圖像進行檢測并賦予語義,能夠?qū)μ囟▽ο筮M行分割與跟蹤,對運動對象進行動態(tài)跟蹤,優(yōu)化動態(tài)特征點和靜態(tài)特征點。動態(tài)目標(biāo)的跟蹤和分割需要借助聚類方法,存在區(qū)域誤匹配的問題。另外語義分割方法和實例分割方法都是基于視覺slam,易受到環(huán)境光照影響,而且計算復(fù)雜度高,其穩(wěn)定性和實時性難以保證。
3、視覺傳感器中通常分為深度相機、雙目相機、魚眼相機、單目相機和全景相機,其中深度相機存在工作距離有限、超出一定范圍后深度信息準(zhǔn)確度丟失的問題,雙目相機存在計算復(fù)雜度高、基線長度固定的問題,魚眼相機存在數(shù)據(jù)冗余、畸變嚴(yán)重和邊緣區(qū)域精度低的問題,單目相機存在深度信息缺失、尺度不確定性、初始化困難的問題,全景相機存在深度信息缺失、拼接復(fù)雜問題。
4、傳統(tǒng)的二維激光slam,其能夠探測較遠的尺度,受光照影響小,計算速度快,因而得到廣泛的應(yīng)用。但由于特征點局限于平面,且稀疏,在遇到相似環(huán)境結(jié)構(gòu)時會造成誤匹配。
5、可見將視覺和激光傳感器融合可彌補各自的不足,利用激光雷達的高頻特性檢測場景內(nèi)可能存在的動態(tài)目標(biāo),再利用視覺的目標(biāo)檢測和語義分割方法切除動態(tài)目標(biāo)。構(gòu)建一種階段性特征投影的柵格地圖方法,基于激光slam的框架附加一條視覺線程,將視覺線程分為確認動態(tài)目標(biāo)區(qū)域和切割動態(tài)目標(biāo)兩個階段,在確認動態(tài)目標(biāo)區(qū)域階段先進行確定的靜態(tài)特征點投影,再在切割動態(tài)目標(biāo)階段對特征點進行補充,提高動態(tài)環(huán)境slam的運行速度和精度。在傳統(tǒng)的多傳感器融合的動態(tài)對象剔除方法中,提取的是視覺和激光點云的特征,同時需要完全切割動態(tài)對象后再進行特征點的投影,降低了動態(tài)環(huán)境下slam的運行速度。
6、現(xiàn)有技術(shù)中至少存在如下問題:
7、基于語義分割的slam優(yōu)化方法只使用視覺傳感器,容易受到光照條件影響,影響語義分割對象,對于動態(tài)目標(biāo)的跟蹤,需要先使用聚類方法確定跟蹤區(qū)域,跟蹤特征點會受到聚類方法的影響,存在誤匹配的可能,對于視覺目標(biāo)的檢測需要先進行一定的復(fù)雜計算。
技術(shù)實現(xiàn)思路
1、本發(fā)明要解決視覺傳感器對目標(biāo)檢測需要進行初步復(fù)雜計算以及二維激光雷達動態(tài)點錯誤檢測的問題,提出一種基于目標(biāo)檢測和語義分割技術(shù)的多傳感器融合agv動態(tài)目標(biāo)剔除方法和裝置。
2、本發(fā)明對單目相機、二維激光雷達、里程計和imu(inertial?measurement?unit)的傳感器信息進行融合,基于cartographer和yolov8算法進行構(gòu)建。使用二維激光雷達的差分計算和目標(biāo)檢測算法標(biāo)記動態(tài)對象,利用二維激光雷達數(shù)據(jù)量少和高頻掃描的特性可快速判斷是否有動態(tài)目標(biāo),使用目標(biāo)檢測算法進行輔助判斷,排除二維激光雷達錯誤檢測動態(tài)目標(biāo)的情況,僅對目標(biāo)檢測區(qū)域進行語義分割,減少語義分割的計算量。優(yōu)化復(fù)雜動態(tài)環(huán)境建圖質(zhì)量,實現(xiàn)agv的定位精度的提升,解決在光照不良、有低速運動物體以及動態(tài)變化的復(fù)雜環(huán)境下,產(chǎn)生誤判或過多去除特征點的問題。
3、為實現(xiàn)上述目的,本發(fā)明的第一方面,提供基于目標(biāo)檢測和語義分割技術(shù)的多傳感器融合agv動態(tài)目標(biāo)剔除方法,具體步驟如下:
4、(1)安裝二維激光雷達和單目相機,對單目相機和二維激光雷達進行聯(lián)合標(biāo)定,獲得相機的內(nèi)參矩陣和激光雷達坐標(biāo)系到單目相機坐標(biāo)系的轉(zhuǎn)換矩陣tlc;
5、(2)激光slam進入激光跟蹤線程,對激光點云預(yù)處理,融合imu、里程計的位姿信息對獲取的二維激光點云進行掃描匹配,通過掃描匹配修正激光點云,使用激光雷達數(shù)據(jù)幀進行幀間差分計算,對前后兩組動態(tài)點云的最小鄰點對距離進行動態(tài)閾值的檢測;
6、(3)對單目相機采集到工廠內(nèi)的圖像和激光點云進行時間戳的匹配,基于動態(tài)點所屬時刻tl對視覺數(shù)據(jù)幀進行插值計算,得到對應(yīng)時刻tc的視覺數(shù)據(jù)幀framel,將其作為視覺關(guān)鍵幀;
7、(4)將激光動態(tài)點進行坐標(biāo)轉(zhuǎn)換,投影到tc時刻視覺關(guān)鍵幀framel的圖像坐標(biāo)系,將激光雷達動態(tài)點輸入到目標(biāo)檢測線程中;
8、(5)對tc時刻的視覺關(guān)鍵幀進行目標(biāo)檢測,對目標(biāo)檢測框進行跟蹤,用目標(biāo)檢測方法輔助確認動態(tài)對象,提取目標(biāo)檢測框外的特征點,用于更新子圖;
9、(6)在目標(biāo)檢測框區(qū)域進行語義分割,將特征點根據(jù)語義分割結(jié)果進行過濾,篩選出靜態(tài)特征點,在地圖構(gòu)建階段,對柵格概率進行更新。
10、進一步地,步驟(1)具體過程如下:
11、步驟1-1、在同一環(huán)境下同時使用激光雷達和相機采集數(shù)據(jù),使用能夠被兩個傳感器識別的標(biāo)定物進行特征的提取,將視覺特征投影到激光雷達坐標(biāo)系中,建立激光雷達坐標(biāo)系與相機坐標(biāo)系的聯(lián)系;
12、步驟1-2、通過優(yōu)化算法求解最佳的旋轉(zhuǎn)矩陣和平移向量,獲得二維激光雷達和單目相機的外參數(shù)矩陣。
13、步驟1-3、在求解外參數(shù)矩陣的過程中,激光雷達和單目相機通過對同一標(biāo)定物進行特征的提取,得到激光雷達坐標(biāo)系中的數(shù)據(jù)點組pl和相機坐標(biāo)系中對應(yīng)的點組pc,其中rlc為旋轉(zhuǎn)矩陣,t為平移向量,使得:
14、??????????????(1)
15、pc和pl分別表示相同物理點在相機坐標(biāo)系和激光雷達坐標(biāo)系中的位置。
16、步驟1-4、通過lm(levenberg-marquardt)方法最小化重投影誤差來求解rlc和t。將相機坐標(biāo)系中的點投影到圖像坐標(biāo)系中,獲取相機的內(nèi)參數(shù)矩陣k,使得:
17、????????????????(2)
18、其中,pi為圖像坐標(biāo)系上的點坐標(biāo)。
19、進一步地,步驟(2)具體過程如下:
20、步驟2-1、激光雷達掃描獲得點云,通過激光雷達幀間差分方法進行動態(tài)點云檢測,每隔一定時間間隔掃描得到一組點云數(shù)據(jù)集p(t)和p(t+δt),其中δt是兩次掃描的時間間隔。將前后兩次掃描得到的二維激光點云進行icp(iterative?closest?pointalgorithm)算法的迭代配準(zhǔn)。
21、步驟2-2、將當(dāng)前二維激光雷達數(shù)據(jù)引入kd樹以提高對最近鄰點對的檢索速度,為加速檢測icp匹配的最近鄰點對,選擇x軸和y軸作為分割軸,以軸內(nèi)的最大方差作為分割依據(jù),對數(shù)據(jù)進行遞歸劃分。
22、步驟2-3、在最近鄰的搜索過程中,從根節(jié)點出發(fā),根據(jù)分割軸和最大方差將查詢點向下遞歸地指向左子樹或右子樹,直到達到葉節(jié)點。更新最近鄰點對,在葉節(jié)點,計算查詢點與葉節(jié)點中數(shù)據(jù)點的距離,更新當(dāng)前最近鄰點和最短距離。
23、???????????????(3)
24、步驟2-4、其中d(q,p)是查詢點q和數(shù)據(jù)點p的歐氏距離,和分別是點q和點p在第i維上的坐標(biāo)。對父節(jié)點進行回溯,觀察另一側(cè)子樹是否包含有點到分割平面的距離小于當(dāng)前最短距離的點,對另一側(cè)子樹進行向下遞歸搜索并更新最近鄰點。搜索完成后,當(dāng)前最近鄰點為查詢點的最近匹配點。
25、步驟2-5、在icp算法迭代過程中,利用kd樹計算得到的最近鄰點進行計算,目的是計算出當(dāng)前激光雷達幀與參考激光雷達幀的旋轉(zhuǎn)平移矩陣r,實現(xiàn)兩組點云的最優(yōu)對齊。設(shè)有一組對應(yīng)點為,其中是當(dāng)前點云的點,是參考點云的對應(yīng)的最近鄰近點,變換由旋轉(zhuǎn)矩陣r和平移向量t組成,構(gòu)成最小化誤差函數(shù):
26、?????????????(4)
27、步驟2-6、與參考幀進行最小鄰點對的檢索,得到最優(yōu)的旋轉(zhuǎn)矩陣r和平移向量t,將旋轉(zhuǎn)平移矩陣作用在當(dāng)前幀的激光雷達坐標(biāo)系上,得到世界坐標(biāo)系下的激光雷達位姿,將三維激光雷達位姿轉(zhuǎn)換到二維平面上,賦予位姿當(dāng)前的激光雷達數(shù)據(jù)幀,兩組點云匹配成功,則記錄當(dāng)前三維空間下的激光雷達位姿ξ。
28、步驟2-7、在任意連續(xù)幀內(nèi)有動態(tài)物體進入或者離開,激光點云位置發(fā)生變化,差分可以簡化為δp(x,y)?=?p(t+δt)(x,y)-p(t)(x,y)。對于前后幀激光點,根據(jù)差分結(jié)果判斷是否有位移變化,設(shè)定閾值δ,如果||δp(x,y)||?>?δ,則認為該點存在動態(tài)變化。
29、進一步地,步驟(3)具體過程如下:
30、步驟3-1、單目相機與激光雷達傳感器的采樣率不同,需要通過已知的數(shù)據(jù)點進行匹配,對于視覺傳感器,其采樣率遠低于雷達傳感器,需要使用插值匹配的方法對視覺數(shù)據(jù)幀進行估算。tl時刻為激光雷達的動態(tài)點產(chǎn)生時刻,
31、步驟3-2、tc1和tc2為單目相機相鄰的兩個數(shù)據(jù)幀所在時刻,framel為估算得到的數(shù)據(jù)幀,framec1和framec2為相鄰的兩個數(shù)據(jù)幀內(nèi)容,由以下公式對framel進行計算。
32、??(5)
33、進一步地,步驟(4)具體過程如下:
34、將激光動態(tài)點進行坐標(biāo)轉(zhuǎn)換,步驟二中得到的任意動態(tài)激光點p經(jīng)過旋轉(zhuǎn)矩陣rlc和平移向量t,在步驟三中的得到framel視覺數(shù)據(jù)幀中進行坐標(biāo)轉(zhuǎn)換,得到framel相機坐標(biāo)系下的激光點集合p_c。將相機坐標(biāo)系下的激光點p_c,經(jīng)過相機的針孔投影模型進行投影,由內(nèi)參矩陣k描述,經(jīng)過旋轉(zhuǎn)平移,將任意激光點p_c(xc,yc,zc)?轉(zhuǎn)換到圖像坐標(biāo)系得到圖像激光點p_t(xt,yt,1),得到圖像激光點集合p_t。
35、進一步地,步驟(5)具體過程如下:
36、步驟5-1、使用目標(biāo)檢測方法輔助確認動態(tài)對象,yolov8中動態(tài)檢測框以(xc,yc,w,h)進行表示,檢測框的左上角坐標(biāo)可以表示為(x1,x2)=(xc-w/2,yc-h/2),檢測框的右下角坐標(biāo)則可以表示為(x2,y2)=(xc+w/2,yc+h/2),對于步驟四中的任意激光點p_t(xt,yt,1),只需要滿足,,則可以得到該目標(biāo)檢測區(qū)域;
37、步驟5-2、對目標(biāo)檢測框進行動態(tài)追蹤,獲取上一幀中的的真實檢測框,與當(dāng)前框進行計算,利用檢測框的中心點坐標(biāo)(cx,?cy)進行中心點的位移計算,得到位移距離d,再基于位移距離d和連續(xù)兩幀之間的時間間隔計算速度v,設(shè)定速度閾值vd,若速度v大于vd,則認為當(dāng)前區(qū)域內(nèi)存在動態(tài)對象。
38、步驟5-3、對原始圖像進行orb(oriented?fast?and?rotated?brief)的特征提取,將步驟5-1中得到的目標(biāo)檢測框區(qū)域以外的圖像區(qū)域的特征點標(biāo)記為靜態(tài)特征點。
39、步驟5-4、構(gòu)建靜態(tài)特征點集合pj,將步驟二中得到的激光雷達位姿ξ通過旋轉(zhuǎn)平移矩陣rlc和t轉(zhuǎn)換為視覺傳感器位姿,使用當(dāng)前幀的視覺傳感器位姿與參考幀的視覺傳感器位姿進行求解,將當(dāng)前幀的靜態(tài)特征點與上一幀的靜態(tài)特征點進行深度求解,得到深度值z,將特征點及其深度值投影到當(dāng)前幀的agv坐標(biāo)系上。
40、?????????????????????(6)
41、f是相機的焦距,b是基線,和分別是當(dāng)前幀和上一幀的特征點的橫坐標(biāo)。
42、步驟5-4、將機器人坐標(biāo)系上的三維特征點投影到二維平面上與激光雷達點云進行疊加,轉(zhuǎn)換為柵格地圖。
43、進一步地,步驟(6)具體過程如下:
44、步驟6-1、對步驟5-1中得到的目標(biāo)檢測框區(qū)域進行語義分割,獲取語義分割掩膜,將掩膜內(nèi)的特征點標(biāo)記為動態(tài)語義特征點,掩膜外的特征點標(biāo)記為靜態(tài)語義特征點。
45、步驟6-2、對語義分割后的特征點進行過濾,保留靜態(tài)語義特征點,將靜態(tài)語義特征點坐標(biāo)轉(zhuǎn)換到世界坐標(biāo)系,將世界坐標(biāo)系中的語義特征點坐標(biāo)轉(zhuǎn)換為柵格索引,計算語義特征點所在柵格的對數(shù)幾率得到,設(shè)定一個對數(shù)幾率增量,得到語義特征點投影后的對數(shù)幾率。
46、??????????????(7)
47、將對數(shù)幾率轉(zhuǎn)換為柵格概率p,得到該柵格坐標(biāo)的新柵格概率,實現(xiàn)柵格概率的更新。
48、本發(fā)明的第二個方面涉及一種基于語義分割的多傳感器融合agv動態(tài)目標(biāo)剔除裝置,包括存儲器和一個或多個處理器,所述存儲器中存儲有可執(zhí)行代碼,所述一個或多個處理器執(zhí)行所述可執(zhí)行代碼時,用于實現(xiàn)本發(fā)明的基于語義分割的多傳感器融合agv動態(tài)目標(biāo)剔除方法。
49、本發(fā)明的第三個方面涉及一種計算機可讀存儲介質(zhì),其上存儲有程序,該程序被處理器執(zhí)行時,實現(xiàn)本發(fā)明的基于語義分割的多傳感器融合agv動態(tài)目標(biāo)剔除方法。
50、本發(fā)明的第四個方面涉及一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序在被處理器執(zhí)行時實現(xiàn)本發(fā)明的基于語義分割的多傳感器融合agv動態(tài)目標(biāo)剔除方法。
51、本發(fā)明還涉及一種基于語義分割的多傳感器融合agv動態(tài)目標(biāo)剔除系統(tǒng),包括移動底盤、特征去除模塊、運動控制模塊;特征去除模塊包括單目相機數(shù)據(jù)處理模塊、二維激光雷達數(shù)據(jù)處理模塊、目標(biāo)檢測模塊、語義分割模塊;通過相機數(shù)據(jù)處理模塊對環(huán)境的特征點和深度圖進行提取,由激光雷達數(shù)據(jù)處理模塊進行位姿推算、子圖匹配、圖優(yōu)化。使用二維激光雷達對周邊環(huán)境進行動態(tài)的粗檢測,實現(xiàn)初步的動態(tài)檢測,將粗檢測的動態(tài)激光點組投影到圖像坐標(biāo)系,將該動態(tài)激光點組投影到圖像坐標(biāo)系中,對圖像坐標(biāo)系中目標(biāo)檢測算法檢測到的目標(biāo)檢測框范圍進行檢索,若有動態(tài)激光點落入目標(biāo)檢測框內(nèi),則認為該目標(biāo)對象為動態(tài)對象,進行初步去除,否則將該區(qū)域內(nèi)特征點轉(zhuǎn)換到柵格地圖中。將目標(biāo)檢測框區(qū)域的圖像作為語義分割線程的輸入,賦予語義標(biāo)簽,將分割的語義對象作為動態(tài)語義對象,目標(biāo)檢測框內(nèi)的剩余區(qū)域作為靜態(tài)語義對象,將特征點根據(jù)語義分割結(jié)果進行過濾,篩選出靜態(tài)特征點,在地圖構(gòu)建階段,對柵格概率進行更新,實現(xiàn)動態(tài)特征點的去除,并增加剩余靜態(tài)特征點在柵格地圖的表征,本發(fā)明豐富了二維激光slam的地圖特征,并在動態(tài)環(huán)境下進行地圖的構(gòu)建。
52、本發(fā)明的有益效果是:采用激光雷達的動態(tài)特征點作為目標(biāo)檢測線程的輸入,輔助確認運動對象的存在,減少語義分割的分割區(qū)域。利用激光雷達動態(tài)點將環(huán)境中的實時動態(tài)反饋,使用目標(biāo)檢測方法確認動態(tài)目標(biāo)的存在,優(yōu)化動態(tài)檢測效果。僅在確認為真實動態(tài)物體時,進行語義分割,減少計算資源的消耗。對獲取的特征點進行多個階段處理,提高地圖的準(zhǔn)確性。