本發(fā)明涉及工業(yè)機(jī)械臂領(lǐng)域,尤其是指一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的工業(yè)機(jī)械臂視覺(jué)控制方法。
背景技術(shù):
在工業(yè)生產(chǎn)中,工業(yè)機(jī)械臂可以替代人力進(jìn)行簡(jiǎn)單和重復(fù)性的工作,例如:拾取、組裝、焊接、包裝、敲打、剪切、打磨、拖拽等生產(chǎn)操作。特別是在危險(xiǎn)、惡劣的作業(yè)環(huán)境下使用機(jī)器人技術(shù)降低潛在的安全風(fēng)險(xiǎn)。研究機(jī)器人技術(shù)是實(shí)現(xiàn)智能制造,降低企業(yè)生產(chǎn)成本的重要的途徑。
“運(yùn)動(dòng)規(guī)劃”和“任務(wù)確定”是工業(yè)機(jī)械臂的關(guān)鍵的兩類技術(shù)?!斑\(yùn)動(dòng)規(guī)劃”可以分為路徑規(guī)劃(path planning)和軌跡生成(trajectory generation)兩部分。路徑規(guī)劃的目的是為工業(yè)機(jī)械臂找到一系列無(wú)干涉、并能成功完成任務(wù)的路徑點(diǎn),這些路徑點(diǎn)可以是三維空間中的坐標(biāo),或者關(guān)節(jié)角度,路徑規(guī)劃即為工業(yè)機(jī)械臂確定工作過(guò)程中需要經(jīng)過(guò)的特定位置的集合;軌跡生成負(fù)責(zé)為工業(yè)機(jī)械臂生成一系列在運(yùn)動(dòng)上連續(xù)的參考點(diǎn)和附加信息,軌跡生成即確定工業(yè)機(jī)械臂以何種方式、速度通過(guò)路徑規(guī)劃生成的路徑點(diǎn)集合。
“任務(wù)確定”是研究和解決工業(yè)機(jī)械臂如何識(shí)別目標(biāo)物體。工業(yè)機(jī)械臂需要能夠識(shí)別目標(biāo)物體,然后才能進(jìn)行后續(xù)生產(chǎn)操作。目前這部分存在很大缺陷,現(xiàn)有的工業(yè)機(jī)械臂需要要求物件出現(xiàn)在固定的空間三維坐標(biāo)位置上。工業(yè)機(jī)械臂再?gòu)倪@個(gè)位置針對(duì)不同作業(yè)對(duì)物件進(jìn)行具體操作。
目前在傳統(tǒng)工業(yè)機(jī)器人上的控制技術(shù)(正逆運(yùn)動(dòng)學(xué),正逆動(dòng)力學(xué),軌跡規(guī)劃,參數(shù)辨識(shí),誤差補(bǔ)償?shù)?在理論上已經(jīng)非常成熟了,只要給定目標(biāo)坐標(biāo),就能配合多種方法進(jìn)行軌跡規(guī)劃獲取一條適當(dāng)?shù)倪\(yùn)動(dòng)路徑和運(yùn)動(dòng)過(guò)程中的動(dòng)力輸出配置。
目前生產(chǎn)上的工業(yè)機(jī)械臂使用方式有以下幾種:
1.拖動(dòng)示教:即通過(guò)拖動(dòng)工業(yè)機(jī)器人來(lái)教會(huì)工業(yè)機(jī)器人按照固定的軌跡進(jìn)行工作,使用上十分簡(jiǎn)單,但是面對(duì)復(fù)雜工作不能很好的進(jìn)行規(guī)劃,而且這種拖動(dòng)方式需要人來(lái)進(jìn)行,工業(yè)機(jī)器人存在一定危險(xiǎn)性。
2.外部示教:利用手:勢(shì)傳感器來(lái)操作機(jī)器人,讓機(jī)器人模仿手的運(yùn)動(dòng)。但是問(wèn)題在于這些傳感器的精度不高,短期內(nèi)無(wú)法用于工業(yè)生產(chǎn)。
3.語(yǔ)音示教:利用預(yù)定義的語(yǔ)音指令來(lái)操縱工業(yè)機(jī)器人運(yùn)動(dòng),存在問(wèn)題是可操作精度差,不能很好的進(jìn)行精細(xì)的工作。
4.編程示教:即利用工業(yè)機(jī)器人的示教盒進(jìn)行編程控制工業(yè)機(jī)器人的運(yùn)轉(zhuǎn),這需要工廠中有熟悉機(jī)器人的使用人員。
以上的4種工業(yè)機(jī)器人使用方式都存在的缺點(diǎn)的是,工業(yè)機(jī)器人需要按照預(yù)定義的程序運(yùn)轉(zhuǎn),需要專業(yè)人員進(jìn)行維護(hù),并且應(yīng)用到新任務(wù)中的復(fù)雜度高。部署和實(shí)施上的困難在很大程度上限制了機(jī)器人產(chǎn)業(yè)的反展。給定目標(biāo)物體信息,工業(yè)機(jī)械臂便可完成相應(yīng)生產(chǎn)操作,但是如何確定目標(biāo)物體是應(yīng)用的一大難題。因此亟需一種智能的能夠自動(dòng)識(shí)別目標(biāo)物體的算法用于控制工業(yè)機(jī)械臂,降低工業(yè)機(jī)械臂的應(yīng)用成本。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有工業(yè)機(jī)械臂視覺(jué)控制技術(shù)自動(dòng)化水平與智能化層度低,提出了一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的工業(yè)機(jī)械臂視覺(jué)控制方法,該方法考慮了工業(yè)機(jī)械臂相對(duì)穩(wěn)定的室內(nèi)工作環(huán)境要求,克服通過(guò)重復(fù)性編程控制工業(yè)機(jī)器人的缺點(diǎn);結(jié)合機(jī)器學(xué)習(xí)與機(jī)器視覺(jué),利用仿生物視覺(jué)方法的深度卷積神經(jīng)網(wǎng)絡(luò)的提取目標(biāo)零件的能力,提升工業(yè)機(jī)械臂視覺(jué)系統(tǒng)識(shí)別目標(biāo)零件的準(zhǔn)確度,優(yōu)化工業(yè)機(jī)械臂的使用和加速工業(yè)機(jī)械臂在生產(chǎn)中的應(yīng)用。
為實(shí)現(xiàn)上述目的,本發(fā)明所提供的技術(shù)方案為:一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的工業(yè)機(jī)械臂視覺(jué)控制方法,具體包含以下步驟:
1)目標(biāo)物體視覺(jué)信息采集與預(yù)處理
將目標(biāo)物體放置于工作臺(tái)上,利用CCD照像機(jī)采集目標(biāo)物體圖像的顏色信息圖片和深度信息,以及進(jìn)行人工標(biāo)注理想抓取位姿點(diǎn)。
2)訓(xùn)練與調(diào)整深度卷積神經(jīng)網(wǎng)絡(luò)模型
利用步驟1)中采集的目標(biāo)物體對(duì)預(yù)設(shè)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行,得到目標(biāo)物體模型高層次特征表達(dá),得到預(yù)訓(xùn)練的深度卷積神經(jīng)網(wǎng)絡(luò)模型,并利用一組測(cè)試數(shù)據(jù)調(diào)整和測(cè)試預(yù)訓(xùn)練的深度卷積神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確率。
3)驗(yàn)證模型與保存模型
將CCD照像機(jī)采集新的目標(biāo)物體圖像的樣本作為步驟2)得到的深度卷積神經(jīng)網(wǎng)絡(luò)的輸入,得到目標(biāo)物體上的理想抓取位置,以此位置作為目標(biāo)點(diǎn),控制機(jī)械臂進(jìn)行抓取操作。
在步驟1)中,目的是充分獲取到目標(biāo)物體的視覺(jué)信息表示以及標(biāo)注理想抓取位置,利用CCD照相機(jī)采集目標(biāo)物體視覺(jué)信息。具體要求為采集在工作臺(tái)上不同姿態(tài),不同位置,不同方向的目標(biāo)物體視覺(jué)信息圖片,這樣才能充分表示在多種情況下目標(biāo)物體的實(shí)際分布。目標(biāo)物體可以有多種,比如電子零件、剪刀、水杯、手機(jī)天線等物體。在工廠實(shí)際加工中生產(chǎn)線上需要加工的多類別的。采集生產(chǎn)線上需要加工的多種目標(biāo)物體的視覺(jué)信息圖像樣本可使訓(xùn)練后的深度卷積神經(jīng)網(wǎng)絡(luò)具備識(shí)別多種目標(biāo)物體抓取位置的能力。規(guī)整采集到的目標(biāo)物體圖像大小為248×248像素。人工使用方框標(biāo)注目標(biāo)物體的理想抓取位置,即工業(yè)機(jī)械臂家具需要運(yùn)動(dòng)到此區(qū)域才能完成成功的抓取。目標(biāo)物體的理想抓取位置可能存在多個(gè),便可以多次標(biāo)注,以5元組的形式表示標(biāo)注的理想抓取位置:(抓取中心x坐標(biāo),抓取中心y坐標(biāo),方框長(zhǎng)度,方框高度,方框與水平方向的夾角),其中夾角用弧度制表示。標(biāo)注的多個(gè)抓取點(diǎn),其重要性不同,對(duì)于規(guī)則的目標(biāo)物體,工業(yè)機(jī)械臂抓取的成功概率是越接近目標(biāo)物體中心的抓取成功率越高。由此需要對(duì)采集的圖像進(jìn)行二值化,然后按照高斯分布以目標(biāo)物體中心產(chǎn)生對(duì)目標(biāo)物體圖像產(chǎn)生抓取可能性描述,抓取成功可能性是有(0,1)區(qū)間表示的概率,其中目標(biāo)物體中心點(diǎn)的抓取可能性設(shè)為1,目標(biāo)物體的邊界抓取可能性設(shè)為0。對(duì)人工標(biāo)準(zhǔn)的5元組集合進(jìn)行添加上抓取成功可能性屬性即最終得到關(guān)于抓取位置的6元組(抓取成功可能性,抓取中心x坐標(biāo),抓取中心y坐標(biāo),方框長(zhǎng)度,方框高度,方框與水平方向的夾角)。由此,訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)所需要的目標(biāo)物體視覺(jué)信息圖像樣本和標(biāo)注信息已經(jīng)完備。
在步驟2)中,本發(fā)明采用深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)工作臺(tái)上的目標(biāo)物體的理想抓取點(diǎn)進(jìn)行識(shí)別從而控制工業(yè)機(jī)械臂進(jìn)行抓取等工業(yè)加工處理操作,具體實(shí)現(xiàn)為如下:
在深度卷積神經(jīng)網(wǎng)絡(luò)中主要包括卷積運(yùn)算操作層、下采樣層、激活層(在本發(fā)明中使用的是修正線性單元函數(shù))以及全連接層(一般用于深度卷積網(wǎng)絡(luò)的最后一層,得出深度卷積網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果)。
卷積運(yùn)算操作層相對(duì)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中的層減少了層中權(quán)重參數(shù)的數(shù)量。卷積運(yùn)算操作層通過(guò)令每個(gè)神經(jīng)元與下一層的若干個(gè)局部區(qū)域相連接。將目標(biāo)物體視覺(jué)信息圖像(長(zhǎng)、寬固定)輸入到卷積運(yùn)算層中,計(jì)算權(quán)重和局部區(qū)域圖像像素值的內(nèi)積,卷積運(yùn)算后的輸出y與卷積核w、卷積前的輸入x關(guān)系如下:
其中yj是卷積后輸出向量中的元素,xi是與yj對(duì)應(yīng)的卷積前輸入的局部區(qū)域中的像素,從而提取局部區(qū)域的特征結(jié)果信息,在整幅圖像上滑動(dòng)的重復(fù)計(jì)算這個(gè)過(guò)程,提取得到整幅圖像關(guān)于此權(quán)重向量的特征結(jié)果信息,這部分權(quán)重值組成的向量稱為卷積核或過(guò)濾器。過(guò)濾器能夠提取出目標(biāo)物體圖像的部分特征信息,當(dāng)過(guò)濾器與局部區(qū)域圖像像素進(jìn)行內(nèi)積操作時(shí),存在特征內(nèi)積輸出展現(xiàn)為激活狀態(tài)。經(jīng)過(guò)卷積運(yùn)算操作后就能得到新的目標(biāo)物體的二維表示,在單個(gè)卷積運(yùn)算操作層中應(yīng)用若干過(guò)濾器提取目標(biāo)物體若干新的二維表示,其中過(guò)濾器相對(duì)應(yīng)的特征的表達(dá)結(jié)果保留在新的二維表示中,在訓(xùn)練過(guò)程中,會(huì)根據(jù)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果與真實(shí)結(jié)果的誤差,通過(guò)反向計(jì)算最終誤差對(duì)每一層的參數(shù)的導(dǎo)數(shù)(即誤差函數(shù)的梯度方向)對(duì)卷積核進(jìn)行修正,從而使網(wǎng)絡(luò)能夠?qū)W習(xí)導(dǎo)目標(biāo)物體理想抓取位置的特征。
在卷積運(yùn)算操作層中過(guò)濾器(卷積核)也是其獨(dú)特新穎之處,根據(jù)歷史經(jīng)驗(yàn)用高緯度的數(shù)據(jù)訓(xùn)練傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)會(huì)造成梯度消失、陷入局部最優(yōu)等困難。在卷積運(yùn)算操作層中,每一層的神經(jīng)元僅與上一層的局部區(qū)域相連接,前一層的以滑動(dòng)窗口的方式對(duì)內(nèi)積和像素值進(jìn)行內(nèi)積操作。在內(nèi)積操作中,僅窗口中的目標(biāo)物體圖像像素值參與內(nèi)積運(yùn)算。滑動(dòng)方式是每次窗口向右移動(dòng)若干單位的像素(使得窗口覆蓋新的局部區(qū)域),若以到達(dá)目標(biāo)物體圖像的右邊界,則移動(dòng)窗口回到目標(biāo)圖像的左邊界,并將窗口向下移動(dòng)若干單位的像素。此窗口即為過(guò)濾器(卷積核),其具有長(zhǎng)度和寬度(具有長(zhǎng)×寬的像素大小的區(qū)域)。上述運(yùn)算提取出目標(biāo)物體圖像具有過(guò)濾器所表示特征的過(guò)濾結(jié)果。在實(shí)際應(yīng)用中,過(guò)濾器的長(zhǎng)、寬、數(shù)量屬于超參數(shù),需要手動(dòng)設(shè)置。通過(guò)這樣的方式,過(guò)濾器減少了卷積操作層中需要的參數(shù)數(shù)量,實(shí)現(xiàn)了層中參數(shù)共享的作用。
下采樣層,也即池化層,經(jīng)過(guò)卷積運(yùn)算操作層后,得到的目標(biāo)物體新的二維表示仍然存在維度過(guò)高的情形,維數(shù)過(guò)多使得訓(xùn)練難度增加,容易使得深度卷積網(wǎng)絡(luò)產(chǎn)生過(guò)擬合現(xiàn)象,需要通過(guò)下采樣方法降低新的二維表示的數(shù)據(jù)維度。下采樣的方法是對(duì)圖像數(shù)據(jù)中不同位置的特征進(jìn)行聚合統(tǒng)計(jì),具體是:將目標(biāo)物體新的二維表示分割成大小相同的若干的小區(qū)域,以此小區(qū)域的統(tǒng)計(jì)特征表示該區(qū)域,從而使得數(shù)據(jù)的維度降低。下采樣常采用2×2的分割區(qū)域大小。通常卷積運(yùn)算操作層和下采樣層合并認(rèn)為是一層。
本發(fā)明的深度卷積神經(jīng)網(wǎng)絡(luò)的在上述的基本層上疊加產(chǎn)生的,由5個(gè)卷積層、3個(gè)下采樣層、2個(gè)全連接層以及一個(gè)DropOut層組合而成。最終輸出的是一個(gè)6元組描述的抓取位置點(diǎn),包含抓取位置的信息,其具體形式即步驟1)中處理后的標(biāo)注信息:(抓取成功可能性,抓取中心x坐標(biāo),抓取中心y坐標(biāo),方框長(zhǎng)度,方框高度,方框與水平方向的夾角)。
第一層是卷積運(yùn)算操作層與下采樣層,這一層輸入的是248×248像素大小的目標(biāo)物體視覺(jué)信息圖像。大小為9×9像素的32個(gè)過(guò)濾器,填充值為4,使用的激活函數(shù)是修正線性單元函數(shù),使用2×2的核進(jìn)行下采樣輸出為:124×124×32,然后進(jìn)行正則化處理。
第二層是卷積運(yùn)算操作層與下采樣層,這一層輸入的是124×124×32的圖像,采用大小為9×9像素的32個(gè)過(guò)濾器,填充值為4,使用的激活函數(shù)是修正線性單元函數(shù),使用2×2的核進(jìn)行下采樣輸出為:68×68×32的二維圖像。
第三層是卷積運(yùn)算操作層,這一層輸入的是68×68×32的圖像,采用大小為7×7像素的16個(gè)過(guò)濾器,填充值為3,使用的激活函數(shù)是修正線性單元函數(shù),這一層不使用下采樣,輸出為68×68×16的二維圖像。
第四層是卷積運(yùn)算操作層,這一層輸入的是68×68×16的圖像,采用大小為5×5像素的12個(gè)過(guò)濾器,填充值為2,使用的激活函數(shù)是修正線性單元函數(shù),這一層不使用下采樣,輸出為68×68×12的二維圖像。
第五層是卷積運(yùn)算操作層與下采樣層,這一層輸入的是68×68×16的圖像,采用大小為3×3像素的6個(gè)過(guò)濾器,填充值為1,使用的激活函數(shù)是修正線性單元函數(shù),使用2×2的核進(jìn)行下采樣輸出為:34×34×6的二維圖像。
第六層是全連接層,接收的輸入是6936維的向量,即上一神經(jīng)網(wǎng)絡(luò)層的輸出展開(kāi)后的向量,輸出2000維的向量,使用的激活函數(shù)是修正線性單元函數(shù)。
第七層是DropOut層,接收2000維的輸入向量,輸出1000維向量采用的激活函數(shù)是修正線性單元函數(shù)防止過(guò)擬合,DropOut層僅產(chǎn)生80%的輸出。
第八層是全連接層接收上一層的輸出,通過(guò)softmax函數(shù)產(chǎn)生一個(gè)6元抓取位置描述(抓取成功可能性,抓取中心x坐標(biāo),抓取中心y坐標(biāo),方框長(zhǎng)度,方框高度,方框與水平方向的夾角)。
在本發(fā)明的深度卷積神經(jīng)網(wǎng)絡(luò)中,前七層使用的是線性修正單元函數(shù),經(jīng)過(guò)探究發(fā)現(xiàn)在大、復(fù)雜的數(shù)據(jù)上,線性修正單元函數(shù)比對(duì)數(shù)似然函數(shù)在訓(xùn)練中更加快收斂,使得訓(xùn)練效率提高,線性修正單元函數(shù)定義如下:
f(x)=max(0,x)
因?yàn)榫€性修正單元函數(shù)的在0點(diǎn)處并不連續(xù),在利用隨機(jī)梯度下降算法反向訓(xùn)練算法時(shí)候要求其中的神經(jīng)元激活函數(shù)連續(xù)可導(dǎo),人為定義線性修正單元函數(shù)在0點(diǎn)處的導(dǎo)數(shù)為:
本發(fā)明中深度卷積神經(jīng)網(wǎng)絡(luò)給處的預(yù)測(cè)項(xiàng)重要不一致,其中抓取成功可能性最重要,深度卷積神經(jīng)網(wǎng)絡(luò)應(yīng)該能夠給出抓取成功率最高的可能性預(yù)測(cè),因此在損失函數(shù)中加入懲罰項(xiàng),提高預(yù)測(cè)抓取成功可能性對(duì)在深度卷積神經(jīng)網(wǎng)絡(luò)中的影響,將6元組以(a,x,y,w,h,c)表示,其中a對(duì)應(yīng)抓取成功可能性,x對(duì)應(yīng)抓取中心x坐標(biāo),y對(duì)應(yīng)抓取中心y坐標(biāo),w對(duì)應(yīng)方框長(zhǎng)度,h對(duì)應(yīng)方框高度,c對(duì)應(yīng)方框與水平方向的夾角,損失函數(shù)為:
通過(guò)超參數(shù)λ增大a(抓取成功可能性)的影響,式中表示輸入樣本的目標(biāo)標(biāo)簽,即步驟1)中描述的人工標(biāo)注標(biāo)簽。
訓(xùn)練階段,通過(guò)將步驟1)中得到的目標(biāo)物體樣本數(shù)據(jù)分割成3部分:訓(xùn)練集合、驗(yàn)證集合、測(cè)試集合。利用批量隨機(jī)梯度下降的方法訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)。需要對(duì)深度卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率參數(shù)η,mini-batch大小參數(shù)以及迭代次數(shù)等超參數(shù)進(jìn)行調(diào)優(yōu)。每次訓(xùn)練后在驗(yàn)證集合上驗(yàn)證訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果,滿足一定成功率閾值后即可停止訓(xùn)練。
測(cè)試階段,利用分割后的測(cè)試集合進(jìn)行測(cè)試訓(xùn)練后深度卷積神經(jīng)網(wǎng)絡(luò)的泛化誤差,滿足一定成功率閾值后即可進(jìn)入步驟3),若低于此成功率則需要對(duì)深度卷積神經(jīng)網(wǎng)絡(luò)的超參數(shù)進(jìn)行調(diào)優(yōu)重新訓(xùn)練。
在步驟3)中,預(yù)先標(biāo)定CCD照相機(jī)的位置與工業(yè)機(jī)械臂使得工業(yè)機(jī)械臂坐標(biāo)系與CCD照相機(jī)圖片坐標(biāo)系相匹配(使CCD圖片坐標(biāo)系與工業(yè)機(jī)械臂坐標(biāo)系只有平移變換),即需要獲得CCD照相機(jī)與工業(yè)機(jī)械臂的橫坐標(biāo)偏差Δx,縱坐標(biāo)偏差Δy以及工作臺(tái)與工業(yè)機(jī)械臂坐標(biāo)空間零點(diǎn)z軸方向的偏差的Δz,利用齊次坐標(biāo)變換即可將CCD照相機(jī)坐標(biāo)系的點(diǎn),變?yōu)楣I(yè)機(jī)械臂坐標(biāo)系中的點(diǎn):
其中(rx,ry,rz)即為轉(zhuǎn)換后工業(yè)機(jī)械臂坐標(biāo)系中的點(diǎn),通過(guò)設(shè)置CCD照相機(jī)與工業(yè)機(jī)械臂之間的偏移使得視覺(jué)控制方法中預(yù)測(cè)出的抓取位置點(diǎn)中的(x,y)坐標(biāo)結(jié)合工作臺(tái)與的工業(yè)機(jī)械臂坐標(biāo)空間零點(diǎn)z軸方向的偏差能夠轉(zhuǎn)化成工業(yè)機(jī)械臂坐標(biāo)系中的空間點(diǎn)(rx,ry,rz)。
在工作臺(tái)上放置需要進(jìn)行抓取操作的目標(biāo)物體,經(jīng)過(guò)CCD照相機(jī)采集目標(biāo)物體視覺(jué)信息圖像后,將圖像大小規(guī)整為248×248,送入訓(xùn)練后的深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),得到深度卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)后的抓取位置點(diǎn),將此目標(biāo)點(diǎn)進(jìn)行轉(zhuǎn)換到工業(yè)機(jī)械臂坐標(biāo)空間的坐標(biāo)點(diǎn)(x,y,z),同時(shí)需要對(duì)末端執(zhí)行器夾具的角度進(jìn)行調(diào)整(根據(jù)深度卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)6元組中的方框與水平方向的夾角),然后實(shí)施抓取操作。
往復(fù)驗(yàn)證此過(guò)程以驗(yàn)證實(shí)際生產(chǎn)中的視覺(jué)控制方法的成功率,當(dāng)滿足一定成功率后便可認(rèn)為具有實(shí)用性。對(duì)于不同生產(chǎn)應(yīng)用場(chǎng)景此成功率有所不同??蓪⒂?xùn)練得到的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行保存便于生產(chǎn)和功能更新。也可將訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)移植到其他工業(yè)生產(chǎn)線中,由此體現(xiàn)了本發(fā)明具有的共享性。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)與有益效果:
1、本發(fā)明首次將深度卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在工業(yè)機(jī)械臂的視覺(jué)控制中,能夠提取不同姿態(tài)的目標(biāo)物體的理想抓取位置,并能夠識(shí)別多種物體的理想抓取位置,提升了系統(tǒng)能夠適用的范圍,從而克服了傳統(tǒng)視覺(jué)控制系統(tǒng)智能識(shí)別特定目標(biāo)物體。
2、與以往的工業(yè)機(jī)械臂編程示教控制方法不同,本發(fā)明方法有效的簡(jiǎn)化了工業(yè)機(jī)械臂的使用難度,為工業(yè)機(jī)械臂控制提供了一種新的解決方案。與以往的視覺(jué)控制系統(tǒng)不同,本發(fā)明能夠持續(xù)集成識(shí)別新的目標(biāo)物體的深度卷積神經(jīng)網(wǎng)絡(luò),具備良好的擴(kuò)展性。
3、本發(fā)明提出的基于深度卷積神經(jīng)網(wǎng)絡(luò)的工業(yè)機(jī)械臂視覺(jué)控制方法,不僅可以適用于工業(yè)機(jī)械臂的抓取操作,也可適用于工業(yè)機(jī)械臂進(jìn)行焊接、敲打等其他操作,也可適用于delta并聯(lián)機(jī)器人的視覺(jué)控制。
附圖說(shuō)明
圖1為本發(fā)明方法的流程圖。
圖2為本發(fā)明的深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖3為生產(chǎn)應(yīng)用中機(jī)械臂實(shí)驗(yàn)示意圖。
圖4為本發(fā)明的目標(biāo)物體視覺(jué)信息采集與預(yù)處理的結(jié)果示意圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
以六自由度冗余工業(yè)機(jī)械臂為例,如圖1所示,本實(shí)施例的基于深度卷積神經(jīng)網(wǎng)絡(luò)的工業(yè)機(jī)械臂視覺(jué)控制方法,具體包括以下步驟:
1)目標(biāo)物體視覺(jué)信息采集與預(yù)處理
將目標(biāo)物體放置于工作臺(tái)上,利用CCD照像機(jī)采集目標(biāo)物體在工作臺(tái)上不同姿態(tài),不同位置,不同方向的圖像的顏色信息圖片,以及進(jìn)行人工標(biāo)注理想抓取位姿點(diǎn)。目的是充分獲取到目標(biāo)物體的視覺(jué)信息表示以及標(biāo)注理想抓取位置,這樣才能充分表示在多種情況下目標(biāo)物體的實(shí)際分布。目標(biāo)物體可以有多種,比如電子零件、剪刀、水杯、手機(jī)天線等物體。在工廠實(shí)際加工中生產(chǎn)線上需要加工的多類別的。采集生產(chǎn)線上需要加工的多種目標(biāo)物體的視覺(jué)信息圖像樣本可使訓(xùn)練后的深度卷積神經(jīng)網(wǎng)絡(luò)具備識(shí)別多種目標(biāo)物體抓取位置的能力。規(guī)整采集到的目標(biāo)物體圖像大小為248×248像素。人工使用方框標(biāo)注目標(biāo)物體的理想抓取位置,即工業(yè)機(jī)械臂家具需要運(yùn)動(dòng)到此區(qū)域才能完成成功的抓取。目標(biāo)物體的理想抓取位置可能存在多個(gè),便可以多次標(biāo)注,如圖4所示,以5元組的形式表示標(biāo)注的理想抓取位置:(抓取中心x坐標(biāo),抓取中心y坐標(biāo),方框長(zhǎng)度,方框高度,方框與水平方向的夾角),其中夾角用弧度制表示。標(biāo)注的多個(gè)抓取點(diǎn),其重要性不同,在圖4中,中間標(biāo)注的方框區(qū)域的抓取位置抓取可能性最大。對(duì)于規(guī)則的目標(biāo)物體,工業(yè)機(jī)械臂抓取的成功概率是越接近目標(biāo)物體中心的抓取成功率越高。由此需要對(duì)采集的圖像進(jìn)行二值化,然后按照高斯分布以目標(biāo)物體中心產(chǎn)生對(duì)目標(biāo)物體圖像產(chǎn)生抓取可能性描述,抓取成功可能性是有(0,1)區(qū)間表示的概率,其中目標(biāo)物體中心點(diǎn)的抓取可能性設(shè)為1,目標(biāo)物體的邊界抓取可能性設(shè)為0。對(duì)人工標(biāo)準(zhǔn)的5元組集合進(jìn)行添加上抓取成功可能性屬性即最終得到關(guān)于抓取位置的6元組(抓取成功可能性,抓取中心x坐標(biāo),抓取中心y坐標(biāo),方框長(zhǎng)度,方框高度,方框與水平方向的夾角)。由此,訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)所需要的目標(biāo)物體視覺(jué)信息圖像樣本和標(biāo)注信息已經(jīng)完備。
2)訓(xùn)練與調(diào)整深度卷積神經(jīng)網(wǎng)絡(luò)模型
本發(fā)明采用深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)工作臺(tái)上的目標(biāo)物體的理想抓取點(diǎn)進(jìn)行識(shí)別從而控制工業(yè)機(jī)械臂進(jìn)行抓取等工業(yè)加工處理操作,具體實(shí)施如下:
卷積運(yùn)算操作層相對(duì)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)中的層減少了層中權(quán)重參數(shù)的數(shù)量。卷積運(yùn)算操作層通過(guò)令每個(gè)神經(jīng)元與下一層的若干個(gè)局部區(qū)域相連接。將目標(biāo)物體視覺(jué)信息圖像(長(zhǎng)、寬固定)輸入到卷積運(yùn)算層中,計(jì)算權(quán)重和局部區(qū)域圖像像素值的內(nèi)積,卷積運(yùn)算后的輸出y與卷積核w、卷積前的輸入x關(guān)系如下:
其中yj是卷積后輸出向量中的元素,xi是與yj對(duì)應(yīng)的卷積前輸入的局部區(qū)域中的像素,從而提取局部區(qū)域的特征結(jié)果信息,在整幅圖像上滑動(dòng)的重復(fù)計(jì)算這個(gè)過(guò)程,提取得到整幅圖像關(guān)于此權(quán)重向量的特征結(jié)果信息,這部分權(quán)重值組成的向量稱為卷積核或過(guò)濾器。過(guò)濾器能夠提取出目標(biāo)物體圖像的部分特征信息,當(dāng)過(guò)濾器與局部區(qū)域圖像像素進(jìn)行內(nèi)積操作時(shí),存在特征內(nèi)積輸出展現(xiàn)為激活狀態(tài)。經(jīng)過(guò)卷積運(yùn)算操作后就能得到新的目標(biāo)物體的二維表示,在單個(gè)卷積運(yùn)算操作層中應(yīng)用若干過(guò)濾器提取目標(biāo)物體若干新的二維表示,其中過(guò)濾器相對(duì)應(yīng)的特征的表達(dá)結(jié)果保留在新的二維表示中。
在卷積運(yùn)算操作層中過(guò)濾器(卷積核)也是其獨(dú)特之處,在實(shí)際應(yīng)用中,過(guò)濾器的長(zhǎng)、寬、數(shù)量屬于超參數(shù),需要手動(dòng)設(shè)置,本發(fā)明的深度卷積神經(jīng)網(wǎng)絡(luò)的不同層分別采用了9×9,7×7,5×5,3×3大小的過(guò)濾器。
下采樣層在實(shí)施中的下采樣層采用2×2的分割區(qū)域大小。卷積運(yùn)算操作層和下采樣層合并認(rèn)為是一層。
如圖2所示,本實(shí)施例上述的深度卷積神經(jīng)網(wǎng)絡(luò)具體由5個(gè)卷積層、3個(gè)下采樣層、2個(gè)全連接層以及一個(gè)DropOut層組合而成,最終輸出的是一個(gè)6元組描述的抓取位置點(diǎn),包含抓取位置的信息,其具體形式即步驟1)中處理后的標(biāo)注信息:(抓取成功可能性,抓取中心x坐標(biāo),抓取中心y坐標(biāo),方框長(zhǎng)度,方框高度,方框與水平方向的夾角)。
第一層是卷積運(yùn)算操作層與下采樣層,這一層輸入的是248×248像素大小的目標(biāo)物體視覺(jué)信息圖像。大小為9×9像素的32個(gè)過(guò)濾器,填充值為4,使用的激活函數(shù)是修正線性單元函數(shù),使用2×2的核進(jìn)行下采樣輸出為:124×124×32,然后進(jìn)行正則化處理。
第二層是卷積運(yùn)算操作層與下采樣層,這一層輸入的是124×124×32的圖像,采用大小為9×9像素的32個(gè)過(guò)濾器,填充值為4,使用的激活函數(shù)是修正線性單元函數(shù),使用2×2的核進(jìn)行下采樣輸出為:68×68×32的二維圖像。
第三層是卷積運(yùn)算操作層,這一層輸入的是68×68×32的圖像,采用大小為7×7像素的16個(gè)過(guò)濾器,填充值為3,使用的激活函數(shù)是修正線性單元函數(shù),這一層不使用下采樣,輸出為68×68×16的二維圖像。
第四層是卷積運(yùn)算操作層,這一層輸入的是68×68×16的圖像,采用大小為5×5像素的12個(gè)過(guò)濾器,填充值為2,使用的激活函數(shù)是修正線性單元函數(shù),這一層不使用下采樣,輸出為68×68×12的二維圖像。
第五層是卷積運(yùn)算操作層與下采樣層,這一層輸入的是68×68×16的圖像,采用大小為3×3像素的6個(gè)過(guò)濾器,填充值為1,使用的激活函數(shù)是修正線性單元函數(shù),使用2×2的核進(jìn)行下采樣輸出為:34×34×6的二維圖像。
第六層是全連接層,接收的輸入是6936維的向量,即上一神經(jīng)網(wǎng)絡(luò)層的輸出展開(kāi)后的向量,輸出2000維的向量,采用的激活函數(shù)是修正線性單元函數(shù)。
第七層是DropOut層,接收2000維的輸入向量,輸出1000維向量采用的激活函數(shù)是修正線性單元函數(shù)防止過(guò)擬合,DropOut層僅產(chǎn)生80%的輸出。
第八層是全連接層接收上一層的輸出,通過(guò)softmax函數(shù)產(chǎn)生一個(gè)6元抓取位置描述(抓取成功可能性,抓取中心x坐標(biāo),抓取中心y坐標(biāo),方框長(zhǎng)度,方框高度,方框與水平方向的夾角)。
在本發(fā)明的深度卷積神經(jīng)網(wǎng)絡(luò)中,前七層使用的是線性修正單元函數(shù),經(jīng)過(guò)探究發(fā)現(xiàn)在大、復(fù)雜的數(shù)據(jù)上,線性修正單元函數(shù)比對(duì)數(shù)似然函數(shù)在訓(xùn)練中更加快收斂,使得訓(xùn)練效率提高,線性修正單元函數(shù)定義如下:
f(x)=max(0,x)
因?yàn)榫€性修正單元函數(shù)的在0點(diǎn)處并不連續(xù),在利用隨機(jī)梯度下降算法反向訓(xùn)練算法時(shí)候要求其中的神經(jīng)元激活函數(shù)連續(xù)可導(dǎo),人為定義線性修正單元函數(shù)在0點(diǎn)處的導(dǎo)數(shù)為:
本發(fā)明中深度卷積神經(jīng)網(wǎng)絡(luò)給處的預(yù)測(cè)項(xiàng)重要不一致,其中抓取成功可能性最重要,深度卷積神經(jīng)網(wǎng)絡(luò)應(yīng)該能夠給出抓取成功率最高的可能性預(yù)測(cè),因此在損失函數(shù)中加入懲罰項(xiàng),提高預(yù)測(cè)抓取成功可能性對(duì)在深度卷積神經(jīng)網(wǎng)絡(luò)中的影響,將6元組以(a,x,y,w,h,c)表示,其中a對(duì)應(yīng)抓取成功可能性,x對(duì)應(yīng)抓取中心x坐標(biāo),y對(duì)應(yīng)抓取中心y坐標(biāo),w對(duì)應(yīng)方框長(zhǎng)度,h對(duì)應(yīng)方框高度,c對(duì)應(yīng)方框與水平方向的夾角,損失函數(shù)為:
通過(guò)超參數(shù)λ增大a(抓取成功可能性)的影響,式中表示輸入樣本的目標(biāo)標(biāo)簽,即步驟1)中描述的人工標(biāo)注標(biāo)簽。在實(shí)施中將超參數(shù)λ設(shè)置為0.1。
訓(xùn)練階段,通過(guò)將步驟1)中得到的目標(biāo)物體樣本數(shù)據(jù)分割成3部分:訓(xùn)練集合、驗(yàn)證集合、測(cè)試集合。利用批量隨機(jī)梯度下降的方法訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)。需要對(duì)深度卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率參數(shù)η,mini-batch大小參數(shù)以及迭代次數(shù)等超參數(shù)進(jìn)行調(diào)優(yōu)。每次訓(xùn)練后在驗(yàn)證集合上驗(yàn)證訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果,滿足一定成功率閾值后即可停止訓(xùn)練。在本實(shí)施例使用了28種小物體的數(shù)據(jù)集合(包含被子、剪刀、筆、遙控器等)。在本實(shí)驗(yàn)中設(shè)置學(xué)習(xí)率參數(shù)為0.05,mini-batch為64,進(jìn)行了2000迭代實(shí)驗(yàn),最終在驗(yàn)證集合上神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果與真實(shí)結(jié)果相比得到的準(zhǔn)確率為86.72%。
測(cè)試階段,利用分割后的測(cè)試集合進(jìn)行測(cè)試訓(xùn)練后深度卷積神經(jīng)網(wǎng)絡(luò)的泛化誤差。滿足一定成功率閾值后即可進(jìn)入步驟3),若低于此成功率則需要對(duì)深度卷積神經(jīng)網(wǎng)絡(luò)的超參數(shù)進(jìn)行調(diào)優(yōu)重新訓(xùn)練。在此例中設(shè)置的閥值為85%,在實(shí)驗(yàn)集合上本發(fā)明的深度卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)86.34%的準(zhǔn)確率。證明網(wǎng)絡(luò)的泛化能力足夠,面對(duì)28種的目標(biāo)物體能夠成功實(shí)現(xiàn)抓取超過(guò)8成的物體。
3)驗(yàn)證模型與保存模型
如圖3所示,預(yù)先標(biāo)定CCD照相機(jī)的位置與工業(yè)機(jī)械臂使得工業(yè)機(jī)械臂坐標(biāo)系與CCD照相機(jī)圖片坐標(biāo)系相匹配(使CCD圖片坐標(biāo)系與工業(yè)機(jī)械臂坐標(biāo)系只有平移變換),即需要獲得CCD照相機(jī)與工業(yè)機(jī)械臂的橫坐標(biāo)偏差Δx,縱坐標(biāo)偏差Δy以及工作臺(tái)與工業(yè)機(jī)械臂坐標(biāo)空間零點(diǎn)z軸方向的偏差的Δz,利用齊次坐標(biāo)變換即可將CCD照相機(jī)坐標(biāo)系的點(diǎn),變?yōu)楣I(yè)機(jī)械臂坐標(biāo)系中的點(diǎn):
其中(rx,ry,rz)即為轉(zhuǎn)換后工業(yè)機(jī)械臂坐標(biāo)系中的點(diǎn),通過(guò)設(shè)置CCD照相機(jī)與工業(yè)機(jī)械臂之間的偏移使得視覺(jué)控制方法中預(yù)測(cè)出的抓取位置點(diǎn)中的(x,y)坐標(biāo)結(jié)合工作臺(tái)與的工業(yè)機(jī)械臂坐標(biāo)空間零點(diǎn)z軸方向的偏差能夠轉(zhuǎn)化成工業(yè)機(jī)械臂坐標(biāo)系中的空間點(diǎn)(rx,ry,rz)。
在工作臺(tái)上放置需要進(jìn)行抓取操作的目標(biāo)物體,經(jīng)過(guò)CCD照相機(jī)采集目標(biāo)物體視覺(jué)信息圖像后,將圖像大小規(guī)整為248×248,送入訓(xùn)練后的深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),得到深度卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)后的抓取位置點(diǎn),將此目標(biāo)點(diǎn)進(jìn)行轉(zhuǎn)換到工業(yè)機(jī)械臂坐標(biāo)空間的坐標(biāo)點(diǎn)(x,y,z),同時(shí)需要對(duì)末端執(zhí)行器夾具的角度進(jìn)行調(diào)整(根據(jù)深度卷積神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)6元組中的方框與水平方向的夾角),然后實(shí)施抓取操作。
往復(fù)驗(yàn)證此過(guò)程以驗(yàn)證實(shí)際生產(chǎn)中的視覺(jué)控制方法的成功率,當(dāng)滿足一定成功率后便可認(rèn)為具有實(shí)用性。對(duì)于不同生產(chǎn)應(yīng)用場(chǎng)景此成功率有所不同??蓪⒂?xùn)練得到的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行保存便于生產(chǎn)和功能更新。也可將訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)移植到其他工業(yè)生產(chǎn)線中,由此體現(xiàn)了本發(fā)明方法具有的共享性。
總之,本發(fā)明提出的基于深度卷積神經(jīng)網(wǎng)絡(luò)的工業(yè)機(jī)械臂視覺(jué)控制方法簡(jiǎn)化了傳統(tǒng)編織示教方式控制工業(yè)機(jī)械臂的難度,同時(shí)又具有良好的擴(kuò)展適應(yīng)性,值得推廣。
以上所述實(shí)施例只為本發(fā)明之較佳實(shí)施例,并非以此限制本發(fā)明的實(shí)施范圍,故凡依本發(fā)明之形狀、原理所作的變化,均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。