周海明,雷志勇
(西安工業(yè)大學(xué) 電子信息工程學(xué)院,西安710021)
機(jī)械臂的抓取功能是人機(jī)交互的重要橋梁,抓取點(diǎn)的準(zhǔn)確與否直接影響著用戶(hù)體驗(yàn)。國(guó)內(nèi)工廠(chǎng)車(chē)間已大量應(yīng)用機(jī)械臂,其中大多數(shù)是通過(guò)人工設(shè)定好的參數(shù)讓其運(yùn)動(dòng)至目標(biāo)點(diǎn)進(jìn)行作業(yè)[1]。對(duì)于在實(shí)際作業(yè)中的非結(jié)構(gòu)下環(huán)境[2],會(huì)需要耗費(fèi)更多的人力進(jìn)行重新設(shè)定坐標(biāo)點(diǎn)。機(jī)器視覺(jué)[3]的出現(xiàn)賦予了機(jī)械臂智能的處理能力。早期傳統(tǒng)的檢測(cè)算法雖然能通過(guò)監(jiān)督學(xué)習(xí)[4]達(dá)到目標(biāo)但是其需要人工去設(shè)計(jì)特征,如表面的紋理特征[5],個(gè)人的認(rèn)知能力將限制檢測(cè)的能力,當(dāng)復(fù)雜的圖像人工無(wú)法提供特征時(shí),將無(wú)法進(jìn)行監(jiān)督學(xué)習(xí)。
隨著信息技術(shù)的快速發(fā)展,CNN[6]卷積神經(jīng)網(wǎng)絡(luò)的出現(xiàn),豐富了目標(biāo)檢測(cè)的方式,和傳統(tǒng)的檢測(cè)算法最大的不同,其能夠自動(dòng)提取出特征。之后發(fā)展出的目標(biāo)檢測(cè)網(wǎng)絡(luò)可以分為兩大類(lèi):一類(lèi)是單階段的如YOLO[7],SSD[8];一類(lèi)是雙階段的基于候選區(qū)域的網(wǎng)絡(luò)如Fast R-CNN[9],F(xiàn)aster R-CNN[10]。單階段的檢測(cè)網(wǎng)絡(luò)直接將檢測(cè)問(wèn)題轉(zhuǎn)換為回歸問(wèn)題進(jìn)行處理,直接實(shí)現(xiàn)端到端的訓(xùn)練。雙階段的檢測(cè)網(wǎng)絡(luò)則是通過(guò)相關(guān)算法先生成大量的候選區(qū)域,然后再將其送入神經(jīng)網(wǎng)絡(luò)進(jìn)行結(jié)果的預(yù)測(cè)。因此單階段的檢測(cè)時(shí)間總體將會(huì)優(yōu)于雙階段的網(wǎng)絡(luò),預(yù)測(cè)結(jié)果精度總體會(huì)低于雙階段結(jié)構(gòu)。YOLO 網(wǎng)絡(luò)從當(dāng)時(shí)的初代經(jīng)過(guò)前人的不斷改進(jìn)發(fā)展到如今的YOLOv4[11],YOLOv4的預(yù)測(cè)精度可以和二階網(wǎng)絡(luò)相當(dāng)甚至超過(guò)一些二階網(wǎng)絡(luò)的預(yù)測(cè)精度。針對(duì)抓取點(diǎn)的檢測(cè)由于物體表面的紋理信息會(huì)影響到預(yù)測(cè)的問(wèn)題[12],原始的錨寬不適合待檢測(cè)目標(biāo)的比例,以及對(duì)于多尺度目標(biāo)的抓取預(yù)測(cè)不佳的問(wèn)題[13]。本文采用圖像處理算法將物品原圖像轉(zhuǎn)換成只具有輪廓信息的數(shù)據(jù),以YOLOv4 為基礎(chǔ)的卷積神經(jīng)網(wǎng)絡(luò),使用K-Means[14]聚類(lèi)算法使得錨寬適合待檢測(cè)物品,新增特征尺度進(jìn)行抓取點(diǎn)的檢測(cè)。
YOLOv4 是Bochkovski 等人在2020年提出的最新YOLO 系列,其網(wǎng)絡(luò)主要由三部分組成,以CspDarknet53 為主干網(wǎng)絡(luò)的特征提取部分,F(xiàn)PN 和PAN 結(jié)構(gòu)的特征融合部分,以及檢測(cè)部分。網(wǎng)絡(luò)共有161 層,主干網(wǎng)絡(luò)的卷積層共有72 層。在輸入圖片608×608 的尺寸下,網(wǎng)絡(luò)的計(jì)算量為128.46 BFLOPS。與YOLOv3 主干網(wǎng)絡(luò)只使用Darknet53 相比其主干網(wǎng)絡(luò)用了CSP 結(jié)構(gòu)的Darknet53,CSP 結(jié)構(gòu)能夠把特征層映射到非相鄰的層,這樣計(jì)算量將會(huì)減小而且準(zhǔn)確度可以保持不變。在特征融合層上采用的FPN 和PAN 結(jié)構(gòu),不僅通過(guò)FPN 使得頂層19×19、38×38、76×76 三個(gè)特征圖上經(jīng)過(guò)采樣的特征融合,還以PAN 結(jié)構(gòu)使得特征通過(guò)自底向上的特征金字塔融合,采用這兩種結(jié)構(gòu)的優(yōu)勢(shì)使得不僅具有較好的語(yǔ)義信息特征還具有較好的定位特征,最后將兩個(gè)特征金字塔融合后的特征送入檢測(cè)層進(jìn)行預(yù)測(cè)。
物體的紋理對(duì)于物品的分類(lèi)起到重要的作用,但是抓取網(wǎng)絡(luò)與分類(lèi)網(wǎng)絡(luò)不同,效果好的抓取預(yù)測(cè)需要在形狀結(jié)構(gòu)上進(jìn)行分析,所以任何已知的干擾的特征應(yīng)該盡可能的消除。消除物品的紋理特征信息提取目標(biāo)的輪廓信息可以在目標(biāo)圖像送入抓取檢測(cè)網(wǎng)絡(luò)之前采用圖像處理的方法實(shí)現(xiàn),論文采用區(qū)域生長(zhǎng)的方法。區(qū)域生長(zhǎng)的原理是把與所選的生長(zhǎng)點(diǎn)的顏色、灰度或紋理等相關(guān)的信息一致的周?chē)南袼攸c(diǎn)進(jìn)行合并再生長(zhǎng)直至不滿(mǎn)足生長(zhǎng)條件為止。
簡(jiǎn)單的區(qū)域合并算法如下:
(1)在圖像中按順序找出無(wú)歸屬的像素點(diǎn),設(shè)此像素點(diǎn)坐標(biāo)為(a1,b1);
(2)以(a1,b1)為初始點(diǎn)按照8 領(lǐng)域生長(zhǎng)準(zhǔn)則查詢(xún)(a,b)像素,若(a,b)滿(mǎn)足準(zhǔn)則則合并生長(zhǎng)并且把(a,b)送入堆棧;
(3)從堆棧之中抽取某個(gè)像素,并將其設(shè)為(a1,b1)再返回步驟(2);
(4)如果堆棧為空則返回步驟(1);
(5)重復(fù)上述的步驟直至圖像中任何點(diǎn)均有歸屬后算法結(jié)束。
由于YOLOv4 模型默認(rèn)的錨框不能和論文所需檢測(cè)目標(biāo)完好的匹配,不能使檢測(cè)的結(jié)果達(dá)到要求。所以為得到適應(yīng)論文目標(biāo)的錨框,把目標(biāo)的全部錨框尺寸用K-Means 算法進(jìn)行聚類(lèi),以此提升檢測(cè)結(jié)果的精確性。其具體算法如下:
(1)根據(jù)設(shè)置好的k個(gè)類(lèi)錨框作為初始中心,從目標(biāo)的錨框中隨機(jī)抽選k個(gè)作為初始錨框;
(2)從k類(lèi)中依次找出與其錨框滿(mǎn)足閾值要求(論文采用歐式距離計(jì)算)的錨框尺寸并將其歸為同一類(lèi),并且重新計(jì)算每一類(lèi)的中心;
(3)重復(fù)步驟(2)直至沒(méi)有新的聚類(lèi)中心。
具體公式如下:
式中:ak,bk為設(shè)定好的k類(lèi)錨框尺;an,bn為目標(biāo)錨框尺寸數(shù)據(jù);d為聚類(lèi)中心與其他錨框尺寸的歐式距離。
式中:Ak,Bk為重新聚類(lèi)的k類(lèi)錨框尺寸;ai,bi為聚類(lèi)在一類(lèi)的錨框尺寸;m為該類(lèi)別的錨框總個(gè)數(shù)。
YOLOv4 在輸入圖片為608×608 分辨率的情況下默認(rèn)有3 種特征尺度檢測(cè)分別為19×19、38×38、76×76。特征尺寸的大小與檢測(cè)物品的大小成反比,尺寸越大檢測(cè)小物品的能力越好,尺寸越小檢測(cè)大物品的能力越好。論文針對(duì)抓取的物品大都是小型的形狀,對(duì)于原特征網(wǎng)絡(luò)中存在檢測(cè)大物品特征的尺度19×19 將不適合本文的檢測(cè)目標(biāo),并且還會(huì)進(jìn)行多次的卷積和池化計(jì)算,提升網(wǎng)絡(luò)的參數(shù)量的同時(shí)還將增加網(wǎng)絡(luò)復(fù)雜度。為降低計(jì)算量減少計(jì)算的成本以及得到精準(zhǔn)的抓取點(diǎn)檢測(cè)結(jié)果,不進(jìn)行該尺度特征圖的檢測(cè)及其附近層的計(jì)算,以輸出尺度為19×19 的殘差塊為初始到進(jìn)行該尺寸的上采樣層為終點(diǎn)全部進(jìn)行剔除處理,并且在YOLOv4的主干網(wǎng)絡(luò)中的第11 層和第109 層進(jìn)行特征融合,得到能檢測(cè)小型物體的特征尺寸152×152。
論文檢測(cè)出的抓取參數(shù)為具有抓取中心坐標(biāo)的矩形框并附帶角度信息,其角度為物品與水平面的夾角。由于神經(jīng)網(wǎng)絡(luò)對(duì)于分類(lèi)的效果比直接回歸的好,將角度的回歸問(wèn)題轉(zhuǎn)為分類(lèi)問(wèn)題進(jìn)行預(yù)測(cè)。論文將角度以180°劃分為6 類(lèi),設(shè)0°為初始角度類(lèi)別,每類(lèi)角度依次遞增30°,具體的效果如圖1所示。
論文采用的操作系統(tǒng)為64 位Windows7,配置的處理器為Intel Core i7-1165G7,內(nèi)存為16 GB,使用獨(dú)立顯卡NVIDIA GeForce MX450。運(yùn)用pytorch深度學(xué)習(xí)框架,版本為torch1.1.0,在pycharm 編程環(huán)境下進(jìn)行開(kāi)發(fā)。使用GPU 進(jìn)行運(yùn)算加速,cuda 版本為10.0,cudn 版本為v7.5.1。神經(jīng)網(wǎng)絡(luò)需要根據(jù)大量的數(shù)據(jù)學(xué)習(xí)得到目標(biāo)的特征,數(shù)據(jù)集的好壞可以直接影響神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果,對(duì)于訓(xùn)練網(wǎng)絡(luò)中的數(shù)據(jù)集采用目前流行的康奈爾抓取數(shù)據(jù)集,該數(shù)據(jù)集包含280 類(lèi)圖像共1035 張圖像,由于是采取人工標(biāo)注的形式所以其標(biāo)注信息更加準(zhǔn)確,包含物品抓取矩形框以及旋轉(zhuǎn)的角度信息。
圖2 為經(jīng)過(guò)改進(jìn)后的抓取網(wǎng)絡(luò)結(jié)構(gòu)圖,以608×608 的彩色圖像作為原始的輸入圖像,經(jīng)過(guò)圖像處理得到物體的輪廓信息并將此輪廓信息作為網(wǎng)絡(luò)的直接輸入。
圖2 改進(jìn)的YOLOv4 網(wǎng)絡(luò)Fig.2 Improved YOLOv4 network
論文采用的抓取檢測(cè)性能評(píng)價(jià)標(biāo)注有2 個(gè),一個(gè)為預(yù)測(cè)抓取框與真實(shí)框的重合度大小,一個(gè)為預(yù)測(cè)框的角度與真實(shí)抓取角度的差值。
預(yù)測(cè)的抓取框角度θR與真實(shí)的角度θT的絕對(duì)值小于30°。
預(yù)測(cè)的抓取框XR與真實(shí)抓取框XT的相似度大于0.25。
如果滿(mǎn)足以上要求則認(rèn)為預(yù)測(cè)抓取準(zhǔn)確,重合度越高以及角度差越小性能則越優(yōu)越。
將康奈爾數(shù)據(jù)集其中的10 類(lèi)物品按6∶2∶2 的比例分為訓(xùn)練集、驗(yàn)證集以及測(cè)試集,這10 類(lèi)物品生活中是常見(jiàn)的具有代表性的物品分別是香蕉、檸檬、湯勺、帽子、杯子、文具筆、紙方盒、鍋鏟、刷子、剪刀。調(diào)整超參數(shù),令eopch 為150 即使得數(shù)據(jù)重復(fù)迭代150 次。Batchsize 為10,非極大的閾值為0.6。設(shè)定初始學(xué)習(xí)率為0.01,根據(jù)YOLOv4 內(nèi)的余弦退火函數(shù)學(xué)習(xí)率會(huì)在初始時(shí)以較慢的速度減少,中途會(huì)增加下降速率,最后又會(huì)變成一個(gè)較慢下降的學(xué)習(xí)率
式中:ηt代表當(dāng)前的學(xué)習(xí)率;i代表第幾次的索引值;分別表示為最大的和最小的學(xué)習(xí)率;Ti代表第幾次的總的epoch 數(shù);Tcur則是當(dāng)前執(zhí)行了多少數(shù)目的epoch。
網(wǎng)絡(luò)采用的損失由三大部分組成,分別為los1真實(shí)抓取框與預(yù)測(cè)框的長(zhǎng)、寬以及中心點(diǎn)損失,los2置信度的損失,los3 角度分類(lèi)的損失。對(duì)于連續(xù)的變量的損失,一般采用交叉熵的形式,簡(jiǎn)單的連續(xù)的變量的損失計(jì)算方法為均方差計(jì)算。論文為得到預(yù)測(cè)結(jié)果的精準(zhǔn)度、置信度和分類(lèi)的損失用由交叉損失函數(shù)進(jìn)行計(jì)算,抓取框的損失則由YOLOv4 中的CIOU 損失函數(shù)相較于在IOU 和DIOU 基礎(chǔ)上增加邊界框的距離信息GIOU 損失函數(shù),其在GIOU 損失的基礎(chǔ)上還考慮了錨框的寬高尺度的信息。
式中:D為目標(biāo)框與預(yù)測(cè)框中心的距離;Dc為最小外接矩形的對(duì)角線(xiàn)長(zhǎng)度;wgt、hgt、w、h分別代表真實(shí)框與預(yù)測(cè)框的寬和高。
由于原始的YOLOv4的分類(lèi)層為80,論文由于設(shè)備的限制只訓(xùn)練了10 類(lèi)物品,所以在預(yù)測(cè)層上的張量維度進(jìn)行修改,原來(lái)的網(wǎng)絡(luò)輸出維度為3×(80+5),論文需修改預(yù)測(cè)層維度為3×(10+5+8),其中的8 表示8 類(lèi)角度。
為測(cè)試采取的輪廓圖像、K-Means 自適應(yīng)數(shù)據(jù)集錨框以及增加小尺度特征檢測(cè)方法對(duì)抓取檢測(cè)是否比原YOLOv4 有效,分別只輸入輪廓信息進(jìn)行訓(xùn)練,只使用K-Means 聚類(lèi)錨框訓(xùn)練,以及只增加小尺度檢測(cè)層。各個(gè)網(wǎng)絡(luò)訓(xùn)練完畢后,再將測(cè)試集的待抓取預(yù)測(cè)物體送入這3 個(gè)網(wǎng)絡(luò)中,根據(jù)成功抓取所需要的預(yù)測(cè)結(jié)果和真實(shí)值中角度以及抓取框的限制條件,最終得出抓取預(yù)測(cè)的平均成功率。
4.4.1 網(wǎng)絡(luò)訓(xùn)練損失
圖3 表明訓(xùn)練的損失值和迭代次數(shù)的關(guān)系,從中可以看出損失值在第一次迭代前的數(shù)值為756.8,并且隨著epoch 的增加數(shù)值迅速下降,之后在epoch 為10 以后則以緩慢的速度變化。損失值雖然不是連續(xù)不斷的下降,在某些迭代的時(shí)候有數(shù)值的波動(dòng),但是總體呈現(xiàn)下降的收斂趨勢(shì),最終損失值趨于1 以下,表明網(wǎng)絡(luò)的訓(xùn)練達(dá)到預(yù)期的效果。
圖3 網(wǎng)絡(luò)訓(xùn)練損失圖Fig.3 Network training loss
4.4.2 抓取檢測(cè)平均準(zhǔn)確率
根據(jù)表1 的結(jié)果顯示改進(jìn)的3 種方法與原始網(wǎng)絡(luò)相比都具有抓取檢測(cè)準(zhǔn)確率提升的效果。輸入為圖像輪廓信息較原始網(wǎng)絡(luò)提升的最多增加1.6%,其次是采用增加小尺度特征的網(wǎng)絡(luò)較原始網(wǎng)絡(luò)提升了1.3%,最后為使用K-Means 聚類(lèi)的方法令錨框的大小與數(shù)據(jù)相適應(yīng)的方法性能提升0.4%。
表1 不同方法抓取檢測(cè)的平均成功率Tab.1 Average success rate of grab detection by different methods
經(jīng)過(guò)測(cè)試了解到以上的3 種方法均能提高抓取預(yù)測(cè)成功率,為得到最佳的檢測(cè)性能,將上述3個(gè)改進(jìn)的部分全部融合在一個(gè)YOLOv4 網(wǎng)絡(luò),經(jīng)過(guò)訓(xùn)練后得出的抓取檢測(cè)結(jié)果和原始的YOLOv4 檢測(cè)結(jié)果進(jìn)行比較。
由表2 可知經(jīng)過(guò)改進(jìn)的YOLOv4 較原始網(wǎng)絡(luò)對(duì)小目標(biāo)物品的檢測(cè)準(zhǔn)確度提高了5.5%,因?yàn)楦倪M(jìn)的方法中將原始網(wǎng)絡(luò)中的第11 層和第109 層進(jìn)行特征融合,新增加了一個(gè)152×152 的特征檢測(cè)層,使其增加了對(duì)小目標(biāo)物體檢測(cè)的能力。
表2 改進(jìn)前后小目標(biāo)物品抓取檢測(cè)的平均成功率Tab.2 Average success rate of small target capture detection before and after improvement
從表3 得出融合3 種方法的改良YOLOv4 網(wǎng)絡(luò)比原始YOLOv4 網(wǎng)絡(luò)抓取檢測(cè)的平均成功率要高出4.3%,可知改進(jìn)后的YOLOv4 較原始有較大的提升。
表3 融合方法與原始網(wǎng)絡(luò)的抓取平均成功率Tab.3 Average capture success rate of fusion method and original network
4.4.3 抓取檢測(cè)的實(shí)際效果展示
為更形象地展示出基于YOLOv4 改良后的檢測(cè)效果,羅列了10 種物品的在改進(jìn)后和原始網(wǎng)絡(luò)的實(shí)際抓取預(yù)測(cè)圖像效果對(duì)比。圖4、圖5 中分別為原始網(wǎng)絡(luò)抓取預(yù)測(cè)和改進(jìn)后網(wǎng)絡(luò)抓取預(yù)測(cè)的實(shí)際效果圖??梢钥闯鼋?jīng)過(guò)改進(jìn)后的YOLOv4 網(wǎng)絡(luò)的抓取預(yù)測(cè)效果在抓取框的預(yù)測(cè)上比原始的網(wǎng)絡(luò)要好,對(duì)于抓取框的傾斜角度的預(yù)測(cè)上總體也優(yōu)于原始的網(wǎng)絡(luò)。
圖4 原始網(wǎng)絡(luò)的實(shí)際抓取檢測(cè)效果Fig.4 Actual grab detection effect of original network
圖5 改進(jìn)后網(wǎng)絡(luò)的實(shí)際抓取檢測(cè)效果Fig.5 Actual grab detection effect of improved network
對(duì)于物品的抓取預(yù)測(cè),論文提出一種基于YOLOv4的改進(jìn)方法,對(duì)其輸入的圖像進(jìn)行輪廓處理降低原圖像中紋理對(duì)抓取預(yù)測(cè)的影響和使用KMeans 方法對(duì)數(shù)據(jù)的實(shí)際尺寸進(jìn)行錨框長(zhǎng)寬的設(shè)計(jì)以此得到最佳的錨框比例,以及通過(guò)增加小尺度特征檢測(cè)可以增強(qiáng)對(duì)小目標(biāo)的檢測(cè)能力。經(jīng)過(guò)實(shí)驗(yàn)數(shù)據(jù)研究表明改進(jìn)后的YOLOv4 在抓取框和角度的預(yù)測(cè)上要優(yōu)于原始的YOLOv4。表明本文的改進(jìn)方法對(duì)物體抓取的研究是有實(shí)際參考價(jià)值的。