本發(fā)明涉及基于點(diǎn)云配準(zhǔn)的噴漆機(jī)器人位置配準(zhǔn)方法。
背景技術(shù):
隨著現(xiàn)代工業(yè)對(duì)產(chǎn)品質(zhì)量和生產(chǎn)效率的要求,計(jì)算機(jī)輔助制造工程已經(jīng)成為現(xiàn)代計(jì)算機(jī)科學(xué)的重要組成部分,而三維點(diǎn)云配準(zhǔn)技術(shù)則是計(jì)算機(jī)輔助制造工程中較為重要的環(huán)節(jié)。在工業(yè)生產(chǎn)中,通過(guò)點(diǎn)云配準(zhǔn)可以起到控制工業(yè)生產(chǎn)測(cè)量精度誤差、快速檢測(cè)工業(yè)產(chǎn)品缺陷和加快工業(yè)生產(chǎn)進(jìn)度等作用。此外,在醫(yī)療診斷、文物修復(fù)等非工業(yè)領(lǐng)域,點(diǎn)云配準(zhǔn)技術(shù)依然有著十分重要的作用,尤其是在噴漆機(jī)器人領(lǐng)域,利用三維點(diǎn)云配準(zhǔn)技術(shù)可以極大提高機(jī)器人噴漆效率。
三維點(diǎn)云配準(zhǔn)技術(shù)就是對(duì)采集回的點(diǎn)云數(shù)據(jù)進(jìn)行匹配,找到兩組點(diǎn)云數(shù)據(jù)集的一系列空間變換關(guān)系,并通過(guò)這些空間變換,使得兩個(gè)點(diǎn)云數(shù)據(jù)集的對(duì)應(yīng)點(diǎn)在空間位置上盡最大可能的一致。根據(jù)待配準(zhǔn)點(diǎn)云形變模型的復(fù)雜程度,點(diǎn)云配準(zhǔn)可以分為剛體點(diǎn)云配準(zhǔn)和非剛體點(diǎn)云配準(zhǔn)。對(duì)于剛體點(diǎn)云的配準(zhǔn)問(wèn)題已經(jīng)取得了很多理論成果,然而,現(xiàn)實(shí)中普遍存在的是非剛體形變,所以對(duì)非剛體的研究十分重要。
對(duì)于剛體點(diǎn)云配準(zhǔn),由beslpj和mckaynd于1987年提出的迭代最近點(diǎn)算法(iteratedclosestpointsalgorithm,icp)使用最為廣泛,該算法運(yùn)用最小二乘的最優(yōu)匹配原理,當(dāng)初值較好時(shí),具有極高的配準(zhǔn)精度。而相對(duì)于剛體點(diǎn)云配準(zhǔn),非剛體點(diǎn)云的配準(zhǔn)涉及到更多的自由度,也更加復(fù)雜。為有效解決這一難題,相關(guān)的基于概率的軟匹配方法被相繼提出,即利用概率值來(lái)描述點(diǎn)對(duì)點(diǎn)之間可能的匹配對(duì)應(yīng)關(guān)系。其中較為成功的是mcneill與vijayakumar等提出的基于高斯混合模型(gaussianmixturemodels,gmm)的em算法,以及在此基礎(chǔ)上,andriymyronenko和xubosong提出了一致點(diǎn)漂移算法(coherentpointdrift,cpd),兩者的核心都是將匹配矩陣的求解轉(zhuǎn)化為gmm的質(zhì)心點(diǎn)集與觀測(cè)數(shù)據(jù)點(diǎn)集進(jìn)行擬合的最大似然估計(jì)問(wèn)題,前指利用em(期望最大值)算法,后者基于運(yùn)動(dòng)一致性原理(motioncoherenttheory,mct)求解優(yōu)化,因此對(duì)于噪聲、出格點(diǎn)以及缺失點(diǎn)的影響具有較強(qiáng)魯棒性。
然而,對(duì)于實(shí)際中采集到的非剛體三維點(diǎn)云,因?yàn)槠潼c(diǎn)云數(shù)據(jù)量大、變形復(fù)雜、有噪聲、出格點(diǎn)和缺失點(diǎn)的影響,所以大部分三維點(diǎn)云非剛體配準(zhǔn)算法存在配準(zhǔn)精度低、魯棒性差、計(jì)算時(shí)間長(zhǎng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了解決現(xiàn)有三維點(diǎn)云非剛體配準(zhǔn)算法在點(diǎn)云數(shù)據(jù)量大、變形復(fù)雜、有噪聲、出格點(diǎn)和缺失點(diǎn)影響的情況下,存在配準(zhǔn)精度低、魯棒性差、計(jì)算時(shí)間長(zhǎng)的缺點(diǎn),而提出基于一致點(diǎn)漂移算法的三維非剛體點(diǎn)云配準(zhǔn)方法。
基于一致點(diǎn)漂移算法的三維非剛體點(diǎn)云配準(zhǔn)方法具體過(guò)程為:
步驟一、利用噴漆機(jī)器人中的圖像采集設(shè)備對(duì)待噴漆物體進(jìn)行掃描,采集得到一組三維點(diǎn)云數(shù)據(jù)作為待配準(zhǔn)點(diǎn)云;
步驟二、對(duì)步驟一中采集得到的待配準(zhǔn)點(diǎn)云進(jìn)行預(yù)處理,得到的點(diǎn)云數(shù)據(jù)作為參考點(diǎn)集;
步驟三、計(jì)算步驟二中得到的參考點(diǎn)集與已有的模板點(diǎn)集的協(xié)方差σ,并初始化一致點(diǎn)漂移算法的相關(guān)參數(shù);
一致點(diǎn)漂移算法的相關(guān)參數(shù)包括系數(shù)矩陣w,反應(yīng)噪聲影響占比的權(quán)值ω,高斯濾波器的寬度β和最大似然擬合參數(shù)λ;
步驟四、通過(guò)步驟三得到的協(xié)方差和初始化后的相關(guān)參數(shù),構(gòu)造高斯核矩陣g;
步驟五、利用步驟四中得到的高斯核矩陣,迭代更新模板點(diǎn)集直至收斂,得到最終配準(zhǔn)的結(jié)果點(diǎn)集,根據(jù)最終的配準(zhǔn)結(jié)果點(diǎn)集對(duì)待噴漆物體進(jìn)行噴漆作業(yè)。
本發(fā)明的有益效果為:
1)本發(fā)明針對(duì)現(xiàn)有的主流三維點(diǎn)云非剛體配準(zhǔn)算法在點(diǎn)云數(shù)據(jù)量大、變形復(fù)雜、有噪聲、出格點(diǎn)和缺失點(diǎn)影響的情況下,存在配準(zhǔn)精度低、魯棒性差、計(jì)算時(shí)間長(zhǎng)的問(wèn)題,提出來(lái)了基于一致點(diǎn)漂移算法的三維非剛體點(diǎn)云配準(zhǔn)并行處理方法,保證了三維非剛體點(diǎn)云配準(zhǔn)的強(qiáng)魯棒性和高配準(zhǔn)精度,可以精準(zhǔn)完成對(duì)待噴漆物體進(jìn)行噴漆。
2)本發(fā)明提高了配準(zhǔn)精度,在有噪聲、出格點(diǎn)和缺失點(diǎn)的情況下,配準(zhǔn)誤差小于0.01個(gè)單位長(zhǎng)度。
3)本發(fā)明采用的gpu并行處理極大的縮短了程序的運(yùn)行時(shí)間,較現(xiàn)有的國(guó)內(nèi)外廣泛使用的cpd點(diǎn)云配準(zhǔn)庫(kù),在程序運(yùn)行效率上有較大的優(yōu)越性:對(duì)于有四千多個(gè)點(diǎn)的兩組點(diǎn)云,cpd點(diǎn)云配準(zhǔn)庫(kù)中的非剛體配準(zhǔn)算法完成一次配準(zhǔn)的時(shí)間約為35min,而本發(fā)明的運(yùn)行時(shí)間僅為8min。
附圖說(shuō)明
圖1是具體實(shí)施方式一中基于一致點(diǎn)漂移算法的三維非剛體點(diǎn)云配準(zhǔn)并行處理方法的流程圖。
圖2是步驟一中使用kineat采集到的一組點(diǎn)云圖;
圖3是步驟二中對(duì)原始點(diǎn)云數(shù)據(jù)進(jìn)行無(wú)關(guān)背景移除和降采樣等預(yù)處理后的點(diǎn)云圖;
圖4是具體實(shí)施方式五中將模板點(diǎn)云配準(zhǔn)到參考點(diǎn)云后的最終效果圖。
具體實(shí)施方式
具體實(shí)施方式一:結(jié)合圖1說(shuō)明本實(shí)施方式,本實(shí)施方式的基于一致點(diǎn)漂移算法的三維非剛體點(diǎn)云配準(zhǔn)并行處理方法具體過(guò)程為:
步驟一、利用噴漆機(jī)器人中的圖像采集設(shè)備對(duì)待噴漆物體進(jìn)行掃描,采集得到一組三維點(diǎn)云數(shù)據(jù)作為待配準(zhǔn)點(diǎn)云;如圖2;
步驟二、對(duì)步驟一中采集得到的待配準(zhǔn)點(diǎn)云進(jìn)行預(yù)處理,得到的點(diǎn)云數(shù)據(jù)作為參考點(diǎn)集;如圖3;
步驟三、計(jì)算步驟二中得到的參考點(diǎn)集與已有的模板點(diǎn)集的協(xié)方差σ,并初始化一致點(diǎn)漂移算法的相關(guān)參數(shù);
一致點(diǎn)漂移算法的相關(guān)參數(shù)包括系數(shù)矩陣w,反應(yīng)噪聲影響占比的權(quán)值ω,高斯濾波器的寬度β和最大似然擬合參數(shù)λ;
步驟四、通過(guò)步驟三得到的協(xié)方差和初始化后的相關(guān)參數(shù),構(gòu)造高斯核矩陣g;
步驟五、利用步驟四中得到的高斯核矩陣,迭代更新模板點(diǎn)集直至收斂,得到最終配準(zhǔn)的結(jié)果點(diǎn)集,根據(jù)最終的配準(zhǔn)結(jié)果點(diǎn)集對(duì)待噴漆物體進(jìn)行噴漆作業(yè)。
具體實(shí)施方式二:本實(shí)施方式與具體實(shí)施方式一不同的是:所述步驟二中對(duì)步驟一中采集得到的待配準(zhǔn)點(diǎn)云進(jìn)行預(yù)處理,得到的點(diǎn)云數(shù)據(jù)作為參考點(diǎn)集;具體過(guò)程為:
步驟二一、對(duì)步驟一中采集得到的待配準(zhǔn)點(diǎn)云中不需要配準(zhǔn)的背景點(diǎn)云數(shù)據(jù)進(jìn)行刪除,得到去背景后的點(diǎn)云;
步驟二二、使用統(tǒng)計(jì)濾波器和半徑濾波器對(duì)步驟二一中得到的去背景后的點(diǎn)云中的離群點(diǎn)進(jìn)行刪除,得到濾波后的點(diǎn)云;
步驟二三、對(duì)步驟二二中得到的濾波后的點(diǎn)云進(jìn)行降采樣,得到降采樣后的點(diǎn)云;以稀疏點(diǎn)云數(shù)據(jù),達(dá)到減少點(diǎn)云數(shù)據(jù)量的目的;
步驟二四、將步驟二三中得到的降采樣后的點(diǎn)云以矩陣的形式保存為一個(gè)數(shù)據(jù)集,做為參考點(diǎn)集。
其它步驟及參數(shù)與具體實(shí)施方式一相同。
具體實(shí)施方式三:本實(shí)施方式與具體實(shí)施方式一或二不同的是:所述步驟三中計(jì)算步驟二中得到的參考點(diǎn)集與已有的模板點(diǎn)集的協(xié)方差σ,并初始化一致點(diǎn)漂移算法的相關(guān)參數(shù);具體過(guò)程為:
步驟三一、參考點(diǎn)集和模板點(diǎn)集分別表示為xn×d=(x1,…xn)t,ym×d=(y1,…ym)t,則兩點(diǎn)集的協(xié)方差初始化為:
其中,m,n分別為模板點(diǎn)集和參考點(diǎn)集中點(diǎn)的數(shù)目,取值為正整數(shù);d為點(diǎn)集的維數(shù);xn為參考點(diǎn)集中第n個(gè)點(diǎn)的d維向量,ym為模板點(diǎn)集中第m個(gè)點(diǎn)的d維向量;
步驟三二、對(duì)一致點(diǎn)漂移算法的相關(guān)參數(shù)初始化,系數(shù)矩陣w初始化為零矩陣,即w=0;對(duì)ω,β,λ初始化,滿足0≤ω≤1,β>0,λ>0。
其它步驟及參數(shù)與具體實(shí)施方式一或二相同。
具體實(shí)施方式四:本實(shí)施方式與具體實(shí)施方式一至三之一不同的是:所述步驟四中通過(guò)步驟三得到的協(xié)方差和初始化后的相關(guān)參數(shù),構(gòu)造高斯核矩陣g;具體過(guò)程為:
式中,gij表示高斯核矩陣g第i行第j列元素,e是自然對(duì)數(shù)的底數(shù),β為高斯濾波器的寬度,yi,yj分別表示模板點(diǎn)集中第i個(gè)和第j個(gè)點(diǎn)的d維向量。
其它步驟及參數(shù)與具體實(shí)施方式一至三之一相同。
具體實(shí)施方式五:本實(shí)施方式與具體實(shí)施方式一至四之一不同的是:所述步驟五中利用步驟四中得到的高斯核矩陣,迭代更新模板點(diǎn)集直至收斂,得到最終配準(zhǔn)的結(jié)果點(diǎn)集;具體過(guò)程為:
步驟五一、利用cuda核函數(shù)計(jì)算高斯關(guān)聯(lián)矩陣k:
先將模板點(diǎn)集ym×d和參考點(diǎn)集xn×d拷貝到顯存,并為cuda核函數(shù)分配m×n個(gè)線程,所有線程同時(shí)計(jì)算矩陣k中的對(duì)應(yīng)元素,如索引為(m,n)的線程應(yīng)計(jì)算矩陣k的第m行第n列元素,計(jì)算方法為
式中,kmn為高斯關(guān)聯(lián)矩陣k的第m行第n列元素;
步驟五二、基于步驟五一得到的高斯關(guān)聯(lián)矩陣k,利用cuda核函數(shù)在gpu中并行計(jì)算下列三個(gè)向量:
ptl=l-ca;pl=ka;pxn×d=k(a.*xn×d)
其中,p為高斯混合模型的后驗(yàn)概率矩陣,符號(hào).*表示點(diǎn)乘,上角標(biāo)t表示矩陣的轉(zhuǎn)置,l為元素全為1的列向量,
步驟五三、對(duì)步驟五二得到的三個(gè)向量,利用cuda核函數(shù)中的cusolver庫(kù)進(jìn)行如下線性方程求解:
aw=b
其中a=g+λσ2d(pl)-1,b=d(pl)-1pxn×d-ym×d,d(pl)表示由向量pl生成的對(duì)角矩陣;a、b為中間變量;
步驟五四、利用步驟五三得到的系數(shù)矩陣w,對(duì)模板點(diǎn)集進(jìn)行更新,更新后的模板點(diǎn)集為:
其中,ym×d為模板點(diǎn)集,g為高斯核矩陣;
步驟五五、利用步驟五四中得到的更新后的模板點(diǎn)集,計(jì)算并更新參考點(diǎn)集和模板點(diǎn)集的協(xié)方差:
其中,np=ltpl;符號(hào)tr(a)表示矩陣a的跡,a為xtm×dd(ptl)xn×d、
步驟五六、重復(fù)步驟五一到步驟五五,直至滿足收斂條件,求出滿足收斂條件時(shí)的g和w;
收斂條件為協(xié)方差σ2小于預(yù)設(shè)閾值,預(yù)設(shè)閾值設(shè)置為計(jì)算機(jī)最小非零浮點(diǎn)數(shù)的十倍(根據(jù)實(shí)際情況決定,推薦設(shè)置為計(jì)算機(jī)最小非零浮點(diǎn)數(shù)的十倍);
步驟五七、根據(jù)步驟五六迭代的結(jié)果,計(jì)算得到最終配準(zhǔn)的結(jié)果點(diǎn)集:res=y(tǒng)m×d+gw。如圖4。
其它步驟及參數(shù)與具體實(shí)施方式一至四之一相同。
具體實(shí)施方式六:本實(shí)施方式與具體實(shí)施方式一至五之一不同的是:所述步驟五三中系數(shù)矩陣w具體求解過(guò)程為:
1.初始化cusolver和cublas求解器;
2.將矩陣a和b拷貝進(jìn)顯存;
3.計(jì)算所需的工作緩沖區(qū)的大??;
4.對(duì)矩陣a進(jìn)行qr分解,即a=qr;
5.計(jì)算qtb的值;
6.求解多右端線性方程組:rw=qtb,得到系數(shù)矩陣w的值;
7.釋放緩沖區(qū)和顯存。
其它步驟及參數(shù)與具體實(shí)施方式一至五之一相同。
采用以下實(shí)施例驗(yàn)證本發(fā)明的有益效果:
實(shí)施例一:
本實(shí)施例基于一致點(diǎn)漂移算法的三維非剛體點(diǎn)云配準(zhǔn)并行處理方法用于對(duì)噴漆機(jī)器人采集到的三維點(diǎn)集x4436×3與已有的模板點(diǎn)集y4672×3進(jìn)行位置配準(zhǔn)。具體步驟與本發(fā)明具體實(shí)施過(guò)程一致,其中相關(guān)參數(shù)設(shè)置如下:
反應(yīng)噪聲影響占比的權(quán)值ω=0.1,高斯濾波器的寬度β=3.0,最大似然擬合參數(shù)λ=3.0;
步驟一、利用噴漆機(jī)器人中的圖像采集設(shè)備對(duì)待噴漆物體進(jìn)行掃描,采集得到一組三維點(diǎn)云數(shù)據(jù)作為待配準(zhǔn)點(diǎn)云;
步驟二、對(duì)步驟一中采集得到的待匹配點(diǎn)云進(jìn)行預(yù)處理,得到的點(diǎn)云數(shù)據(jù)作為參考點(diǎn)集;
步驟三、計(jì)算步驟二中得到的參考點(diǎn)集與已有的模板點(diǎn)集的協(xié)方差σ,并初始化一致點(diǎn)漂移算法的相關(guān)參數(shù);
一致點(diǎn)漂移算法的相關(guān)參數(shù)包括系數(shù)矩陣w,反應(yīng)噪聲影響占比的權(quán)值ω,高斯濾波器的寬度β和最大似然擬合參數(shù)λ;
步驟四、通過(guò)步驟三得到的協(xié)方差和初始化后的相關(guān)參數(shù),構(gòu)造高斯核矩陣g;
步驟五、利用步驟四中得到的高斯核矩陣,迭代更新模板點(diǎn)集直至收斂,得到最終配準(zhǔn)的結(jié)果點(diǎn)集,根據(jù)最終的配準(zhǔn)結(jié)果點(diǎn)集對(duì)待噴漆物體進(jìn)行噴漆作業(yè)。
最終,在intel酷睿i53230m處理器、nvidiageforcegt740m的顯卡配置下,程序運(yùn)行時(shí)間約為8min,相比其他主流算法效率更高。此外,配準(zhǔn)誤差小于0.01m,配準(zhǔn)精度較高。
本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,本領(lǐng)域技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。