• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于改進(jìn)YOLOv4算法的零件識別與定位*

      2021-11-03 07:26:32陳賽旋崔國華朱新龍
      關(guān)鍵詞:矩形框集上邊界

      楊 琳,陳賽旋,崔國華,朱新龍

      (上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院,上海 201620)

      0 引言

      深度學(xué)習(xí)憑借著計算機(jī)硬件技術(shù)的不斷革新已成為機(jī)器視覺中熱門的研究方向,其中基于深度學(xué)習(xí)的零件識別與定位是備受關(guān)注的研究內(nèi)容之一。傳統(tǒng)零件識別與定位主要是基于模板匹配(Template Matching)算法[1],待識別零件必須以固定大小和角度等要求擺放在相對簡單的環(huán)境之中,無法滿足在相對復(fù)雜環(huán)境中對零件進(jìn)行實時且精準(zhǔn)的識別與定位要求。而深度學(xué)習(xí)相比傳統(tǒng)算法有更優(yōu)的識別能力、計算速度和檢測精度[2]。

      近年來,各國研究者致力于降低目標(biāo)檢測算法的訓(xùn)練成本,提高算法精度并縮減推理時間,如2015年,Girshick等人受何愷明提出的空間金字塔池化網(wǎng)絡(luò)(Spatial Pyramid Pooling Networks:SPPnet)[3]啟發(fā),將計算速度慢且內(nèi)存占用大的R-CNN(Region-based Convolutional Neural Networks)[4]改進(jìn)為結(jié)構(gòu)更精巧的Fast R-CNN[5],大幅提高了計算速度;2016年,Redmon J等提出了YOLO目標(biāo)檢測算法[6],將檢測問題視為回歸問題,網(wǎng)絡(luò)框架簡單,識別速度快;同年, Liu W等提出了比YOLO精度更高的SSD(Single shot detection)[7],但這個精度優(yōu)勢很快就被YOLOv2[8]打破。

      為了提高工業(yè)生產(chǎn)中多角度無序零件識別準(zhǔn)確率和定位精準(zhǔn)性,在原有YOLOv4[9]基礎(chǔ)上設(shè)計了一種針對性的零件識別與定位高效網(wǎng)絡(luò),首先,在優(yōu)化算法上使用AdaBelief[10]代替原有SGDM[11];其次,在預(yù)測邊界框計算方法中加入Canny邊緣檢測[12]和Sklansky算法[13],使用凸包和最小外接矩形框代替原有預(yù)測邊界框;最后,在制作的零件數(shù)據(jù)集上進(jìn)行基于改進(jìn)YOLOv4的零件識別與定位實驗。實驗結(jié)果表明,該基于改進(jìn)YOLOv4算法的零件識別與定位方法提高了收斂速度和識別精度,可提供精準(zhǔn)的零件凸包和最小外接矩形框,以及最小外接矩形框四個角點的坐標(biāo),可為工業(yè)智能制造中諸如分揀機(jī)器人的抓取檢測等工序提供更精準(zhǔn)的定位依據(jù)。

      1 YOLOv4目標(biāo)檢測算法

      2020年4月, Redmon J等接棒YOLOv3[14],在原有基礎(chǔ)上,通過排列組合各種先進(jìn)卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化技巧的方式進(jìn)行優(yōu)化驗證實驗,總結(jié)出了在帕累托曲線上達(dá)到速度與精度最優(yōu)平衡的YOLOv4,相比YOLOv3,在MS COCO數(shù)據(jù)集上平均精度(Average Precision:AP)提高了10%,檢測幀率(Frames Per Second:FPS)提高了12%,是目前最強(qiáng)大的目標(biāo)檢測算法之一。

      其中,YOLOv4的骨干網(wǎng)絡(luò)采用CSP Dark-net53,顯著地增強(qiáng)了感受域的大小,使用PANet(Path Aggregation Network)特征融合網(wǎng)絡(luò),且連接方式修改為更優(yōu)的相乘,頭部則仍延續(xù)了YOLOv3的一步法(One-Stage),無需生成候選區(qū)域。另外,YOLOv4還使用了許多優(yōu)化技巧,如馬賽克(Mosaic)數(shù)據(jù)增強(qiáng),自對抗訓(xùn)練數(shù)據(jù)增強(qiáng)(SAT),隨機(jī)丟棄特征圖特征塊(DropBlock)正則化法,跨階段局部網(wǎng)絡(luò)(CSPNet)等。

      2 改進(jìn)的YOLOv4目標(biāo)檢測算法

      2.1 改進(jìn)優(yōu)化算法

      YOLOv4使用的優(yōu)化算法為較為傳統(tǒng)的帶動量梯度下降法(SGDM),改進(jìn)自1951年Herbert Robbins提出的隨機(jī)梯度下降法(SGD)[15],收斂速度較慢,容易陷入局部最小點,但近年發(fā)展迅速的自適應(yīng)學(xué)習(xí)率法如Adam[16]等相比梯度下降法仍存在泛化能力較差,檢測精度不穩(wěn)定等問題。

      針對以上問題,對YOLOv4進(jìn)行優(yōu)化算法改進(jìn)對比實驗,實驗中,分別使用AdaBelief、Adam和前期Adam[16]后期SGDM三種方法,并與原始SGDM進(jìn)行對比。其中,AdaBelief為可根據(jù)當(dāng)前梯度與其指數(shù)移動平均值(EMA)的差值來調(diào)整步長的高效自適應(yīng)學(xué)習(xí)率法。

      優(yōu)化算法對比實驗中,統(tǒng)一在VOC2007標(biāo)準(zhǔn)數(shù)據(jù)集上進(jìn)行訓(xùn)練和檢測,并根據(jù)訓(xùn)練時的收斂速度和檢測時的識別精度對實驗進(jìn)行評價。VOC2007是衡量目標(biāo)檢測算法識別能力的小規(guī)模標(biāo)準(zhǔn)數(shù)據(jù)集,共包含20個種類,共計9963張圖像,訓(xùn)練集5011張圖像,測試集4952張圖像,其中訓(xùn)練集在訓(xùn)練時會按9:1的比例分為訓(xùn)練數(shù)據(jù)和驗證數(shù)據(jù),在訓(xùn)練數(shù)據(jù)上可得到訓(xùn)練損失(tain loss),體現(xiàn)訓(xùn)練的擬合能力,loss值越低表示訓(xùn)練擬合能力越好,反之越差,在驗證數(shù)據(jù)上可得到驗證損失(val loss),體現(xiàn)未知數(shù)據(jù)的擬合能力,即算法的泛化能力,loss值越低表示泛化能力越好,反之越差。

      實驗參數(shù)設(shè)置為:學(xué)習(xí)率(Learning_rate)為0.001,每批次送入網(wǎng)絡(luò)的圖像數(shù)量(Batch_size)為64,訓(xùn)練期數(shù)(epoch)為100,輸入圖片分辨率(Input_shape)為416×416,不同優(yōu)化算法的參數(shù)為:SGDM的動量(Momentum)為0.9,Adam的權(quán)重衰減 (Weight_decay)為0.000 5,AdaBelief的指數(shù)衰減率(Betas1,2)分別為0.9和0.999。

      具體實驗過程為:首先在VOC2007訓(xùn)練集上分4次訓(xùn)練使用原始SGDM、Adam、SGDM切換Adam和AdaBelief優(yōu)化算法的YOLOv4,其中Adam切換SGDM為前期使用Adam迭代至50epoch,加快loss下降速度,然后切換為SGDM對網(wǎng)絡(luò)參數(shù)進(jìn)行數(shù)值調(diào)優(yōu);其次在每次訓(xùn)練結(jié)束后,保存訓(xùn)練過程的數(shù)據(jù),并從數(shù)據(jù)中分別提取出tain loss和val loss在訓(xùn)練時每個epoch的數(shù)值;最后,將提出來的數(shù)據(jù)進(jìn)行整合,分別繪制成tain loss和val loss隨epoch下降的曲線圖。

      如圖1所示,使用AdaBelief的YOLOv4在訓(xùn)練時loss下降速度和最終收斂效果均有所提升,表明選擇AdaBelief作為優(yōu)化算法可以提升網(wǎng)絡(luò)的擬合能力和泛化能力。

      (a) tain loss

      (b) val loss圖1 loss下降圖

      將訓(xùn)練好的權(quán)重載入網(wǎng)絡(luò),在VOC2007測試集上使用訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行測試,并采用通用的目標(biāo)檢測評價指標(biāo)平均精確度均值(mAP:Mean Average Precision)評價4種不同優(yōu)化算法對YOLOv4識別精度的影響。mAP為各類別AP(Average Precision)的平均值,表示網(wǎng)絡(luò)在測試集上的綜合識別能力,AP為以準(zhǔn)確率(Precision)為縱軸,召回率(Recall)為橫軸的“P-R圖”中“P-R曲線”下的面積,表示網(wǎng)絡(luò)在測試集中某一種類別的識別精度。

      優(yōu)化算法對比實驗的具體測試結(jié)果如表1所示。

      表1 優(yōu)化算法識別精度表

      如表1所示,在VOC2007測試集上使用SGDM的測試mAP為80.06%,而使用AdaBelief的測試mAP達(dá)84.23%,相比SGDM提高了4.17%,且比使用Adam和Adam切換SGDM的mAP均更高。實驗結(jié)果表明,使用AdaBelief的YOLOv4在VOC2007標(biāo)準(zhǔn)數(shù)據(jù)集上收斂速度更快,收斂效果更好,mAP更高。

      2.2 改進(jìn)預(yù)測邊界框

      YOLOv4的預(yù)測邊界框計算方法為:先通過交并比(Intersection-over-Union: IoU)閾值,一般設(shè)置為0.5,篩選掉置信度低的邊界框,得到置信度最高的預(yù)測邊界框中心坐標(biāo)(bx,by)和邊界框的寬bw和長bh,然后根據(jù)中心坐標(biāo)和邊界框長寬計算出預(yù)測邊界框左上和右下兩個點的坐標(biāo),具體公式如下:

      (1)

      當(dāng)要定位的零件形狀較長,如不同角度的軸類零件,YOLOv4所得的預(yù)測邊界框無法很好的表示部分零件實際形狀,僅僅使用預(yù)測邊界框左上和右下兩個點的坐標(biāo)作為零件定位,可能會導(dǎo)致后續(xù)要求定位精準(zhǔn)性的工序出現(xiàn)較大的誤差。

      針對以上問題,在不影響零件檢測速度的前提下,選擇使用Canny邊緣檢測和Sklansky算法對YOLOv4預(yù)測邊界框計算方法進(jìn)行改進(jìn)。

      圖2為齒輪軸檢測示例圖,圖2a為YOLOv4檢測原始檢測結(jié)果圖,圖中有與齒輪軸實際形狀重合率較低且無法精準(zhǔn)表示齒輪軸實際形狀的正矩形預(yù)測邊界框,齒輪軸的分類標(biāo)簽gear-shaft和相應(yīng)的置信度0.99,輸出的定位坐標(biāo)為預(yù)測邊界框左上點A(87,108)和右下點B(451,380),圖2b為改進(jìn)YOLOv4檢測結(jié)果圖,圖中有齒輪軸的凸包、最小外接矩形框以及齒輪軸的分類標(biāo)簽gear-shaft,凸包為可以表示齒輪軸真實形狀的凸多邊形,同時可以得到凸包上每個角點的坐標(biāo),但通常凸包的角點有幾十個,最小外接矩形框為更加通用的定位結(jié)果,且與齒輪軸的重合率遠(yuǎn)高于原始預(yù)測邊界框,同時可以得到最小外接矩形框4個角點的坐標(biāo),輸出的坐標(biāo)分別為A′(119,382),B′(60,281),C′(393,85),和D′(453,186)。

      (a) 改進(jìn)前 (b) 改進(jìn)后圖2 齒輪軸檢測示例圖

      圖3為具體改進(jìn)過程示例圖。①根據(jù)原始預(yù)測邊界框?qū)D像裁剪為單獨的零件圖,如圖3a所示,簡化后續(xù)圖像分割的計算量,以保持YOLOv4實時檢測速度的優(yōu)勢;②使用高斯模糊對零件圖進(jìn)行圖像預(yù)處理,通過計算每個像素點與鄰近像素點的加權(quán)和,并使用加權(quán)和作為新的像素點來降低零件圖中的噪聲,取點范圍為高斯核尺寸,尺寸越大,高斯模糊的效果越強(qiáng),但會因此增加計算量,經(jīng)過實驗對比,如圖3b所示,選擇9×9大小的高斯核函數(shù)零件預(yù)處理效果最佳;③使用Canny邊緣檢測對預(yù)處理后的零件圖進(jìn)行輪廓提取,該方法是基于邊緣梯度方向的非極大值抑制對零件圖進(jìn)行分割,其中雙閾值的選取系數(shù)Th和Tl分別選取90和30,并將低于Tl的點置零,高于Th的點標(biāo)記為邊緣點,處于中間的點根據(jù)鄰近的像素點狀態(tài)估計該點是否屬于邊緣,最終得到的輪廓如圖3c所示;④由于Canny邊緣檢測所得輪廓的輪廓點不連續(xù),存在大量短輪廓,為解決上述問題需對輪廓圖進(jìn)行圖像膨脹與腐蝕處理,其中圖像膨脹是對每個像素點鄰近范圍內(nèi)的像素點置為該范圍內(nèi)的像素最大值,以此填補輪廓中的間斷部分,并將短輪廓與大輪廓相連,圖像腐蝕的原理則與膨脹相反,是將每個像素點鄰近范圍內(nèi)的像素點置為該范圍內(nèi)的像素最小值,以此去除因圖像膨脹產(chǎn)生的多余部分,經(jīng)過試驗對比,如圖3d所示,選擇17×17的卷積核對零件輪廓圖進(jìn)行膨脹與腐蝕效果最佳;⑤計算經(jīng)過圖像處理后的輪廓所包含的坐標(biāo)數(shù)量,取坐標(biāo)數(shù)量最多的輪廓為主輪廓,根據(jù)主輪廓點集,使用Sklansky算法計算凸包,如圖3e所示,得到包含零件幾何形狀的凸多邊形;⑥根據(jù)多邊形與其最小外接矩形必有一條共線邊的幾何原理和旋轉(zhuǎn)卡尺算法(Rotating Calipers),枚舉凸多邊形(即凸包)每一條邊組成的外接矩形框,計算外接矩形框的面積,其中面積最小的外接矩形框,如圖3f所示,為零件的最小外接矩形框;最終,使用凸包和最小外接矩形框代替原始預(yù)測邊界框,作為改進(jìn)的零件定位結(jié)果。

      (a)裁剪(b)預(yù)處理 (c)分割

      (d)膨脹腐蝕 (e)凸包 (f)最小外接矩形框圖3 預(yù)測邊界框改進(jìn)過程示例圖

      3 實驗與分析

      設(shè)計的實驗步驟流程如圖4所示。

      圖4 實驗流程圖

      3.1 實驗環(huán)境

      所有實驗在同一工作站中進(jìn)行,具體配置如表2所示。

      表2 實驗環(huán)境

      3.2 實驗參數(shù)

      為充分利用工作站硬件,加快訓(xùn)練速度,根據(jù)數(shù)據(jù)集和實驗環(huán)境的情況,實驗參數(shù)設(shè)置為:每批次送入網(wǎng)絡(luò)的圖像數(shù)量(Batch_size)為64,輸入圖片分辨率(Input_shape)為416×416,訓(xùn)練期數(shù)(epoch)為100,學(xué)習(xí)率(Learning_rate)為0.001,AdaBelief的指數(shù)衰減率(Betas1,2)分別為0.9和0.999。

      3.3 零件數(shù)據(jù)集

      零件數(shù)據(jù)集制作過程為:①使用相機(jī)采集螺母、螺絲、齒輪、齒輪軸等共6種常見零件,共計1224張,采集過程中各種零件通過不同角度且雜亂無序的方式擺放;②使用OpenCV對采集的1224張零件圖像進(jìn)行圖像壓縮,并使用旋轉(zhuǎn)、平移、縮放、翻轉(zhuǎn)等方式對進(jìn)行圖像增強(qiáng),擴(kuò)充數(shù)據(jù),再將處理后的圖像根據(jù)質(zhì)量進(jìn)行篩選,得到共計2448張圖像的零件圖像集;③使用“l(fā)abelImg”圖像標(biāo)注工具對零件圖像集進(jìn)行人工標(biāo)注,根據(jù)自定義的零件標(biāo)簽,對圖像集中所有零件手動標(biāo)注矩形標(biāo)注框;最終,制作成包含6種類別,共計2448張圖像的零件數(shù)據(jù)集,并根據(jù)8:2的比例將零件數(shù)據(jù)集分為零件訓(xùn)練集1958張和零件測試集490張,表3為數(shù)據(jù)集中零件種類與數(shù)量的詳細(xì)情況。

      表3 零件數(shù)據(jù)集種類與數(shù)量表

      3.4 評價指標(biāo)

      使用常用的目標(biāo)檢測評價指標(biāo)對改進(jìn)YOLOv4的零件識別與定位方法進(jìn)行評價:準(zhǔn)確率(Precision)、召回率(Recall)以及準(zhǔn)確率與召回率綜合指標(biāo)(Precision和Recall 的加權(quán)調(diào)和平均F-Measure,α=1時:F1-Measure),具體公式如下:

      (2)

      (3)

      (4)

      樣例總數(shù)TP+FP+TN+FN

      (5)

      其中,TP表示真正例(True Positive),F(xiàn)P表示假正例(False Positive),TN表示真負(fù)例(True Negative),F(xiàn)N表示假負(fù)例(False Negative),Precision是真正例(TP)在所有預(yù)測正例(TP+FP)中的比例,Recall是真正例(TP)在所有真實正例(TP+FN)中的比例,F(xiàn)1-Measure是Precision和Recall權(quán)重參數(shù)α=1時的綜合評價指標(biāo),F(xiàn)1越大,所評價的網(wǎng)絡(luò)分類能力越強(qiáng),反之,F(xiàn)1越小,分類能力越弱。

      3.5 零件識別與定位實驗

      零件識別與定位實驗中,首先在零件訓(xùn)練集上訓(xùn)練優(yōu)化算法改進(jìn)為AdaBelief,定位結(jié)果改進(jìn)為凸包和最小外接矩形框的YOLOv4,然后使用訓(xùn)練得到的權(quán)重文件配置網(wǎng)絡(luò),并在零件測試集上使用訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行零件識別與定位實驗。

      圖5為檢測過程示例圖。

      (a)零件測試圖 (b)YOLOv4原始檢測圖

      (c)Canny邊緣檢測 (d)圖像膨脹與腐蝕

      (e)凸包 (f)最小外接矩形框圖5 檢測過程示例圖

      將基于改進(jìn)YOLOv4的零件識別與定位實驗結(jié)果與未改進(jìn)的實驗結(jié)果進(jìn)行對比,圖6為改進(jìn)前后零件檢測示例圖,相比圖6a中未改進(jìn)的YOLOv4檢測所得的預(yù)測邊界框,圖6b中改進(jìn)YOLOv4檢測所得的零件凸包和最小外接矩形框與零件實際形狀重合度更高,更能表示零件實際形狀,同時可以輸出相應(yīng)零件最小外接矩形框的4個角點坐標(biāo),其中圖6c和圖6d是側(cè)視角度的零件識別與定位對比示例圖,改進(jìn)的網(wǎng)絡(luò)仍能有效的對零件進(jìn)行識別與定位。

      (a)改進(jìn)前 (b)改進(jìn)后

      (c)改進(jìn)前 (d)改進(jìn)后圖6 檢測結(jié)果示例圖

      圖7為改進(jìn)前后6種類別零件,共計490張測試圖像的具體檢測結(jié)果,經(jīng)過計算,改進(jìn)前真正例(TP)為1353個,改進(jìn)后為1352個,數(shù)量幾乎不變,但齒輪軸(gear-shaft)、齒輪(gear1和gear2)、螺母(Nut)和螺絲(Screw)這4類零件的假正例(FP)數(shù)量均有不同程度的降低,且假正例(FP)的總數(shù)也由152個降至96個。

      (a) 改進(jìn)前

      (b) 改進(jìn)后圖7 檢測結(jié)果數(shù)據(jù)圖

      如表4所示,訓(xùn)練好的改進(jìn)網(wǎng)絡(luò)在零件測試集上的測試Precision達(dá)93.37%,相比改進(jìn)前Precision 為89.90%,提高了3.47%,改進(jìn)前后Recall變化不大,Precision和Recall的綜合指標(biāo)F1由94.32%提升至96.16%。

      表4 檢測數(shù)據(jù)表

      最終,通過在零件數(shù)據(jù)集上的零件識別與定位實驗表明,改進(jìn)后的YOLOv4在零件識別準(zhǔn)確率和零件定位精準(zhǔn)性上相比于原始YOLOv4有較大的提高,針對常見種類的多角度無序零件具有較強(qiáng)的綜合識別能力。

      4 結(jié)束語

      針對多角度無序零件識別與定位這一任務(wù),提出了基于改進(jìn)YOLOv4的零件識別與定位方法。改進(jìn)內(nèi)容包括優(yōu)化算法和預(yù)測邊界框兩方面,首先使用AdaBelief優(yōu)化算法代替原有的SGDM優(yōu)化算法,提高網(wǎng)絡(luò)收斂速度和識別精度;其次在預(yù)測邊界框計算方法中加入Canny邊緣檢測和Sklansky算法,使用Canny邊緣檢測進(jìn)行圖像分割得到零件輪廓點,根據(jù)輪廓點使用Sklansky算法計算凸包,再根據(jù)凸包計算最小外接矩形框,將正矩形定位框改進(jìn)為更能表示零件實際形狀的凸包和最小外接矩形框,提高網(wǎng)絡(luò)定位精確性。

      根據(jù)多種聯(lián)合評價指標(biāo)對實驗結(jié)果進(jìn)行分析,改進(jìn)YOLOv4在零件數(shù)據(jù)集上零件識別準(zhǔn)確率與定位精準(zhǔn)性均有所提升,最小外接矩形框的角點坐標(biāo)可為工業(yè)制造領(lǐng)域中零件自動化分揀、上下料等后續(xù)工序提供依據(jù),但設(shè)計的網(wǎng)絡(luò)存在對密集堆疊的小零件識別能力較弱的缺點,后續(xù)研究可針對這一問題進(jìn)一步改進(jìn)。

      猜你喜歡
      矩形框集上邊界
      拓展閱讀的邊界
      Cookie-Cutter集上的Gibbs測度
      鏈完備偏序集上廣義向量均衡問題解映射的保序性
      多模態(tài)卷積神經(jīng)網(wǎng)絡(luò)的物體抓取檢測
      一種汽車式起重機(jī)防傾翻方法的研究
      論中立的幫助行為之可罰邊界
      復(fù)扇形指標(biāo)集上的分布混沌
      PowerPoint 2013圖片裁剪技巧兩則
      “偽翻譯”:“翻譯”之邊界行走者
      幾道導(dǎo)數(shù)題引發(fā)的解題思考
      昌吉市| 西乌珠穆沁旗| 雅安市| 宁晋县| 南涧| 曲周县| 阆中市| 长兴县| 阜新| 苍南县| 闽侯县| 台江县| 大埔区| 长海县| 武平县| 涟水县| 萨迦县| 晋城| 修水县| 邢台市| 临漳县| 五寨县| 昌邑市| 隆回县| 襄垣县| 保康县| 龙江县| 四川省| 乌审旗| 沙雅县| 普洱| 广南县| 环江| 中方县| 大埔县| 淮安市| 丰城市| 岑溪市| 孝感市| 和硕县| 南京市|