曾碧卿,楊 睿,,李一嫻,張雅蓉
(1.華南師范大學(xué) 軟件學(xué)院,廣東 佛山 528225;2.季華實(shí)驗(yàn)室,廣東 佛山 528200)
多孔零件是工業(yè)生產(chǎn)中的一種關(guān)鍵零件,比如軸承、螺母和法蘭盤等等,此類零件中的圓孔往往承擔(dān)著重要的連接與固定功能,因此,判斷一個(gè)零件中的圓孔的尺寸與位置是否符合生產(chǎn)規(guī)格是至關(guān)重要的事情。
最初在工業(yè)生產(chǎn)中采用人工的方法測(cè)量零件中圓孔的半徑以及圓心位置,這種方法簡(jiǎn)單但是低效,而且隨著工作時(shí)間的增加,工人因疲勞而誤檢的概率也在逐步增大。隨著技術(shù)的發(fā)展,超聲波測(cè)量[1]、電磁測(cè)量[2]和激光測(cè)量[3]開(kāi)始大量應(yīng)用,聲波測(cè)量和激光測(cè)量都是通過(guò)接受反射信號(hào)的方法實(shí)現(xiàn)對(duì)零件的測(cè)距,但是超聲波測(cè)量容易受到距離變化和干擾聲波的影響,而激光測(cè)量容易受光照和零件姿態(tài)的影響,而電磁測(cè)量在長(zhǎng)時(shí)間使用的情況下對(duì)人體會(huì)有一定影響,零件測(cè)量的穩(wěn)定性與精度問(wèn)題一直得不到有效的解決。
視覺(jué)測(cè)量是機(jī)器視覺(jué)[4-7]發(fā)展后誕生出的新應(yīng)用,通過(guò)對(duì)待測(cè)量的圖像進(jìn)行分析計(jì)算,得到物體在圖像中的相對(duì)尺寸,然后再根據(jù)空間映射關(guān)系計(jì)算出物體的實(shí)際尺寸。此方法對(duì)環(huán)境的變化有較好的魯棒性,但會(huì)受到圖像的復(fù)雜性影響,因此,如何較好地從復(fù)雜的圖像中尋找到待測(cè)量的圓形是研究的重點(diǎn)。
圓檢測(cè)問(wèn)題作為計(jì)算機(jī)視覺(jué)中的一個(gè)基礎(chǔ)問(wèn)題,在諸多領(lǐng)域都有廣泛的應(yīng)用,比如細(xì)胞識(shí)別、虹膜檢測(cè)、工件檢測(cè)等。傳統(tǒng)的圓檢測(cè)算法通常需要一個(gè)含有待檢測(cè)圓形的圖片作為輸入,而如何排除待檢測(cè)圓以外的干擾物和如何獲取待檢測(cè)圓的清晰輪廓是圓檢測(cè)算法面臨的最大挑戰(zhàn)。
目前,傳統(tǒng)的圓檢測(cè)算法根據(jù)計(jì)算原理的不同主要分為3類[8]:基于Hough變換的方法、基于目標(biāo)函數(shù)優(yōu)化的方法和基于圓弧邊緣的方法。
基于Hough變換的圓檢測(cè)方法是圖像處理與計(jì)算機(jī)視覺(jué)中最常見(jiàn)的一種圓檢測(cè)方法。最初的Hough變換圓檢測(cè)方法[9]由Duba和Hart于1972年提出,該方法的思想是將圓形從圖像空間映射到參數(shù)空間,圖像中點(diǎn)每個(gè)邊緣點(diǎn)都用滿足某種參數(shù)形式的曲線描述,然后對(duì)所有參數(shù)進(jìn)行累加,處于峰值的邊緣點(diǎn)即為預(yù)測(cè)出的檢測(cè)圓。Chung等人[10]提出了隨機(jī)Hough變換圓檢測(cè)方法,算法在邊緣點(diǎn)的選取上進(jìn)行了優(yōu)化,隨機(jī)選取部分像素點(diǎn)進(jìn)行映射。Yao和Yi[11]提出了CACD圓檢測(cè)算法,該算法按照?qǐng)A弧的曲率對(duì)圓弧進(jìn)行分組,然后根據(jù)曲率估算圓半徑,曲率估算能避免所有點(diǎn)的累加操作和不同尺度的半徑之間的差異,從而實(shí)現(xiàn)更快、更精準(zhǔn)的圓檢測(cè)。
基于目標(biāo)函數(shù)優(yōu)化的方法擬合圓形最早由Gander等人[12]提出,運(yùn)用最小二乘法直接估計(jì)出圓形類目標(biāo)的參數(shù),但該方法的精確度有限。之后,Zelniker等人[13]采用基于卷積的最大似然估計(jì)方法找到圖像中圓形參數(shù)的最優(yōu)預(yù)測(cè)值,并采用相位編碼內(nèi)核進(jìn)行進(jìn)一步的亞像素精度的優(yōu)化。Halif等人[14]提出了一種數(shù)值穩(wěn)定的非迭代算法,該算法基于最小二乘化,即使對(duì)于分散和帶噪音的數(shù)據(jù),也能保持穩(wěn)定的求解。
基于圓弧邊緣的方法中的典型代表有EDCircle[15]算法,該算法首先利用無(wú)參數(shù)邊緣繪制算法對(duì)給定圖像進(jìn)行邊緣分割,然后將邊緣分割成線段再轉(zhuǎn)換為圓弧,使用兩種啟發(fā)式算法將圓弧拼接在一起,檢測(cè)出候選圓和近圓橢圓,最后通過(guò)亥姆霍茲原理的反向驗(yàn)證步驟對(duì)候選對(duì)象進(jìn)行驗(yàn)證。
以上傳統(tǒng)的圓檢測(cè)算法在對(duì)簡(jiǎn)單圓形圖像時(shí)往往有較好的表現(xiàn),但面對(duì)實(shí)際復(fù)雜的應(yīng)用場(chǎng)景如零件圓檢測(cè)會(huì)受到很大挑戰(zhàn),對(duì)此諸多學(xué)者在零件圓檢測(cè)方面進(jìn)行了研究。王福榮提出的多圓孔零件視覺(jué)測(cè)量系統(tǒng)[16]對(duì)LP圖像金字塔進(jìn)行改進(jìn)以獲得精細(xì)邊緣,然后在快速隨機(jī)Hough變換方法中采用優(yōu)化和缺陷邊緣篩除,構(gòu)建了一個(gè)高精度的零件圓視覺(jué)測(cè)量系統(tǒng)。李晨曦[17]設(shè)計(jì)了一個(gè)圓環(huán)零件的光學(xué)檢測(cè)系統(tǒng),使用迭代優(yōu)化將最小二乘法中的期望偏差值由非線性問(wèn)題近似為線性問(wèn)題,實(shí)現(xiàn)了對(duì)圓心的快速精確定位,同時(shí)還結(jié)合了缺陷方法實(shí)現(xiàn)對(duì)圓環(huán)形零件的表面缺陷檢測(cè)。近年來(lái),深度學(xué)習(xí)依靠其強(qiáng)大的學(xué)習(xí)能力為諸多研究領(lǐng)域打開(kāi)了新的突破口。因此,針對(duì)圓檢測(cè)任務(wù),該文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的多階段圓檢測(cè)方法,對(duì)零件中的圓進(jìn)行由粗到精的檢測(cè),排除障礙物獲取目標(biāo)圓的位置以及輪廓信息,最后利用傳統(tǒng)圓檢測(cè)方法對(duì)圓參數(shù)進(jìn)行檢測(cè),得到目標(biāo)圓的圓心坐標(biāo)與半徑,以滿足零件圓檢測(cè)的需求。
該方法將圓檢測(cè)流程分為3步(如圖1):粗檢測(cè)、細(xì)檢測(cè)和圓參數(shù)檢測(cè)。粗檢測(cè)階段目的在于尋找零件圖片中的含有目標(biāo)圓的感興趣區(qū)域,細(xì)檢測(cè)階段在感興趣區(qū)域中獲取圓的輪廓掩膜信息,圓參數(shù)檢測(cè)階段負(fù)責(zé)計(jì)算出圓的圓心坐標(biāo)與半徑并映射回原圖中。

圖1 圓檢測(cè)方法流程
在粗檢測(cè)環(huán)節(jié),采用YOLOv5作為目標(biāo)檢測(cè)模型,數(shù)據(jù)集采用自行構(gòu)建的零件圖片數(shù)據(jù)集。該環(huán)節(jié)的任務(wù)是對(duì)含有多圓零件圖片中的圓進(jìn)行檢測(cè),獲得裁剪后含有單個(gè)圓的圖片,將多圓檢測(cè)任務(wù)簡(jiǎn)化為單圓檢測(cè),為后續(xù)細(xì)檢測(cè)做準(zhǔn)備,排除干擾物并保留感興趣區(qū)域。
在細(xì)檢測(cè)環(huán)節(jié),采用BiSeNet[18]作為語(yǔ)義分割模型,數(shù)據(jù)集采用粗檢測(cè)獲得的輸出結(jié)果構(gòu)建的語(yǔ)義分割數(shù)據(jù)集,其中訓(xùn)練集采用目標(biāo)檢測(cè)訓(xùn)練集輸出的結(jié)果,驗(yàn)證集則采用目標(biāo)檢測(cè)驗(yàn)證集輸出的結(jié)果。通過(guò)細(xì)檢測(cè)環(huán)節(jié),粗檢測(cè)得到的含有單個(gè)圓的圖片被預(yù)測(cè)為含有圓形輪廓的掩膜圖,圓檢測(cè)的任務(wù)得到極大的簡(jiǎn)化。
在圓參數(shù)檢測(cè)環(huán)節(jié),采用經(jīng)典的Hough變換圓檢測(cè)方法,在半徑的閾值范圍選擇上設(shè)計(jì)了自適應(yīng)變化模塊使得半徑閾值范圍更加貼近真實(shí)值,大大降低了計(jì)算量,同時(shí)對(duì)邊緣點(diǎn)采樣進(jìn)行分區(qū),避免了采樣點(diǎn)選取過(guò)近而受不規(guī)則圓的影響。最終圓參數(shù)檢測(cè)環(huán)節(jié)得到單個(gè)圓圖形的半徑與圓心坐標(biāo),通過(guò)裁剪與縮放關(guān)系重新映射回原來(lái)的大圖中,得到整張大圖中所有待檢測(cè)圓的半徑與圓心坐標(biāo)。
粗檢測(cè)階段的目的是獲得目標(biāo)圓的大概區(qū)域位置,而多孔零件圖片中往往含有類圓干擾物與非目標(biāo)圓,因此,該文采用目標(biāo)檢測(cè)方法實(shí)現(xiàn)對(duì)圓的粗檢測(cè),目標(biāo)檢測(cè)通過(guò)訓(xùn)練學(xué)習(xí)可以對(duì)目標(biāo)的種類和位置進(jìn)行預(yù)測(cè),以排除干擾物,準(zhǔn)確地獲取目標(biāo)圓的區(qū)域圖片。
粗檢測(cè)階段的目標(biāo)檢測(cè)模型采用YOLOv5,YOLOv5是YOLO系列目標(biāo)檢測(cè)算法[19-22]的新一代模型,采用one-stage結(jié)構(gòu),在圖像輸入時(shí)進(jìn)行了Mosica數(shù)據(jù)增強(qiáng)操作并且在推理時(shí)采用自適應(yīng)縮放操作,推理速度提升約37%;在推理結(jié)構(gòu)中,YOLOv5將CSP模塊[23]同時(shí)應(yīng)用于Backbone層和Neck層,增強(qiáng)了網(wǎng)絡(luò)對(duì)特征的融合能力;輸出層中采用了CIOU_Loss作為邊界框預(yù)測(cè)的損失函數(shù),CIOU_Loss將邊界框回歸函數(shù)中3個(gè)重要幾何因素:重疊面積、中心點(diǎn)距離,長(zhǎng)寬比全部納入考慮,提高了邊界框的速度和精度信息。
最新版本的YOLOv5模型提供了4個(gè)網(wǎng)絡(luò)深度和寬度不同,但結(jié)構(gòu)大體相同的模型,考慮到粗檢測(cè)的主要任務(wù)是檢測(cè)出含有目標(biāo)圓的感興趣區(qū)域而對(duì)精度要求不高,因此選擇參數(shù)量最小的YOLOv5s模型以加快預(yù)測(cè)速度。該文選擇修改模型的骨干網(wǎng)絡(luò),使用更為輕量級(jí)的MobileNet v3[24]網(wǎng)絡(luò)替換原模型中的骨干網(wǎng)絡(luò)DarkNet53,在犧牲部分精確度的情況下提高預(yù)測(cè)速度,改進(jìn)后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。MobileNet v3是2019年提出的一種輕量化網(wǎng)絡(luò)結(jié)構(gòu),在先前版本的基礎(chǔ)上加入了神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索和h-swish激活函數(shù),并引入SE通道注意力機(jī)制,性能和速度表現(xiàn)優(yōu)異。由于骨干網(wǎng)絡(luò)中的DarkNet53主要起特征提取的作用,因此只選擇MobileNet v3的特征提取部分進(jìn)行修改,調(diào)整網(wǎng)絡(luò)中的降采樣操作使其輸出通道與YOLOv5網(wǎng)絡(luò)相匹配。

圖2 改進(jìn)后的YOLOv5結(jié)構(gòu)
細(xì)檢測(cè)階段的主要任務(wù)是對(duì)單圓圖片中圓的輪廓進(jìn)行預(yù)測(cè),由于上一步粗檢測(cè)任務(wù)將多圓檢測(cè)問(wèn)題簡(jiǎn)化為單圓檢測(cè)問(wèn)題,大大降低了檢測(cè)難度,但細(xì)檢測(cè)階段的圖片仍然存在著陰影以及干擾物等問(wèn)題,該文采用語(yǔ)義分割方法檢測(cè)圓輪廓。語(yǔ)義分割是計(jì)算機(jī)視覺(jué)中的一個(gè)流行方向,其目的是將圖像分割成具有一定語(yǔ)義的區(qū)域,并預(yù)測(cè)出每一塊分割區(qū)域的語(yǔ)義類別。由于需要對(duì)輸入圖片進(jìn)行逐像素的分類,計(jì)算量巨大,目前主流的實(shí)時(shí)語(yǔ)義分割模型多數(shù)都以犧牲精度的代價(jià)換取速度,比如將原圖進(jìn)行裁剪以限制輸入圖片的大小,從而降低計(jì)算復(fù)雜度,但這種做法會(huì)造成空間細(xì)節(jié)的損失,導(dǎo)致度量和可視化的精度下降。
該文采用輕量級(jí)實(shí)時(shí)語(yǔ)義分割模型BiSeNet[18]作為細(xì)檢測(cè)模型。BiSeNet含有2個(gè)分支,分別是空間分支和上下文分支,前者使用較多的通道數(shù)和較淺的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)保留豐富的空間信息生成高分辨率特征,后者使用較深的網(wǎng)絡(luò)結(jié)構(gòu)和較少的通道數(shù)快速降采樣增加感受野。最后使用1個(gè)特征融合模塊將2個(gè)分支輸出的特征進(jìn)行融合,整體網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
空間分支的結(jié)構(gòu)較為簡(jiǎn)單,只包含3個(gè)相同的卷積層,每層由1個(gè)步長(zhǎng)為2的卷積核,批處理歸一化層和ReLU激活函數(shù)組成,輸出特征圖的尺寸為原圖的1/8,為預(yù)測(cè)提供了豐富的空間信息。

圖3 改進(jìn)后的BiSeNet網(wǎng)絡(luò)結(jié)構(gòu)
語(yǔ)義分支采用輕量級(jí)網(wǎng)絡(luò)ResNet18[25]作為骨干網(wǎng)絡(luò),一共進(jìn)行了32倍降采樣。為進(jìn)一步提升特征表達(dá)能力,該文在原語(yǔ)義分支的輸入前增加了1個(gè)根模塊,根模塊擁有2個(gè)分支,1個(gè)分支由1個(gè)1×1卷積塊和1個(gè)步長(zhǎng)為2的卷積塊組成,另1個(gè)分支由1個(gè)步長(zhǎng)為2的最大池化層組成,這2個(gè)分支采用不同的下采樣方式來(lái)縮小特征的表示,且具有高效的計(jì)算效率。
圖像經(jīng)過(guò)根模塊的特征提取后輸出進(jìn)入到原結(jié)構(gòu)的語(yǔ)義分支中,經(jīng)過(guò)1個(gè)ResNet18骨干網(wǎng)絡(luò)進(jìn)行32倍下采樣,其中16倍下采樣和32倍下采樣的結(jié)果被提取出來(lái)分別輸入到兩個(gè)相同的注意力優(yōu)化模塊(Attention Refinement Module,ARM)中。注意力優(yōu)化模塊由1個(gè)平均池化層,1個(gè)1×1卷積塊,1個(gè)批處理歸一化層和1個(gè)Sigmoid激活函數(shù)組成。注意力優(yōu)化模塊使用全局平均池化來(lái)獲取全局語(yǔ)義信息,然后計(jì)算1個(gè)注意力向量來(lái)進(jìn)行特征學(xué)習(xí),通過(guò)該模塊能夠精細(xì)化語(yǔ)義分支中各個(gè)階段的結(jié)果。最后,32倍下采樣的結(jié)果經(jīng)過(guò)最大池化層后與2個(gè)注意力優(yōu)化模塊的輸出串聯(lián)作為語(yǔ)義分支的輸出。
BiSeNet網(wǎng)絡(luò)的尾端采用1個(gè)特征融合模塊(Feature Fusion Module,FFM)對(duì)空間分支和語(yǔ)義分支的輸出進(jìn)行融合,其中空間分支的輸出是低層級(jí)的,包含了空間中絕大多數(shù)的細(xì)節(jié)信息,而語(yǔ)義分支的輸出是高層級(jí)的,富含編碼語(yǔ)境信息。2個(gè)分支的輸出通過(guò)1個(gè)連接層進(jìn)行連接,然后通過(guò)批歸一化層平衡特征的尺度,再進(jìn)入全局池化層池化為特征向量,通過(guò)權(quán)重向量的加權(quán)后實(shí)現(xiàn)對(duì)特征的選擇與結(jié)合。
BiSeNet采用1個(gè)主損失函數(shù)監(jiān)督整個(gè)雙分支網(wǎng)絡(luò)的輸出,2個(gè)輔助損失函數(shù)監(jiān)督上下文分支的輸出,所有損失函數(shù)均使用Softmax損失,定義如下:
(1)
總損失函數(shù)使用參數(shù)α平衡主損失函數(shù)和輔助損失函數(shù)的權(quán)重,文中α值取1,使得連接損失在模型優(yōu)化時(shí)快速收斂,總損失函數(shù)定義如下:
(2)
其中,lp是連接損失的主要損失,li是第i階段的輔助損失,其對(duì)應(yīng)Xception網(wǎng)絡(luò)第i層的輸出特征Xi,K在文中取3,表示對(duì)應(yīng)第2和第3層的網(wǎng)絡(luò)輸出,輔助損失只在訓(xùn)練階段中使用。
細(xì)檢測(cè)階段輸出的結(jié)果為輪廓掩膜圖像,排除了對(duì)圓參數(shù)檢測(cè)造成影響的干擾物與表面紋理,傳統(tǒng)的圓檢測(cè)算法也能有較好的效果,因此該文采用改進(jìn)的隨機(jī)Hough圓檢測(cè)方法對(duì)細(xì)檢測(cè)階段的結(jié)果進(jìn)行圓參數(shù)檢測(cè)。隨機(jī)Hough變換圓檢測(cè)方法[10]針對(duì)Hough變換圓檢測(cè)方法計(jì)算量大的特點(diǎn),采用隨機(jī)采樣的方式對(duì)邊緣像素點(diǎn)進(jìn)行篩選。在平面直角坐標(biāo)系中圓的標(biāo)準(zhǔn)方程為:
(x-a)2+(y-b)2=r2
(3)
方程中含有圓參數(shù)的3個(gè)未知數(shù)(a,b,r),通過(guò)在圓邊緣上隨機(jī)采樣3個(gè)點(diǎn),將3個(gè)點(diǎn)的坐標(biāo)分別代入3個(gè)圓方程:
(4)
即可求解得到圓的參數(shù)。因此,隨機(jī)Hough變換在每次循環(huán)中隨機(jī)采樣3個(gè)邊緣點(diǎn),計(jì)算出對(duì)應(yīng)的圓參數(shù)后計(jì)算邊緣其他點(diǎn)到圓心的距離,并將距離與計(jì)算所得半徑進(jìn)行比較,判斷是否滿足閾值誤差,若滿足誤差則視為候選圓,而后將圓心與邊緣上其他點(diǎn)進(jìn)行距離計(jì)算,若滿足誤差范圍的邊緣點(diǎn)個(gè)數(shù)累積到預(yù)定值時(shí),則可確定該圓為真實(shí)圓。若沒(méi)有滿足閾值誤差,則需重新采樣迭代以計(jì)算出所有的真實(shí)圓,或者重復(fù)操作次數(shù)累積達(dá)到了預(yù)定值。
由于語(yǔ)義分割得到的結(jié)果圓不一定為標(biāo)準(zhǔn)圓,存在著邊緣出現(xiàn)凹凸不平的狀況,若此時(shí)對(duì)邊緣點(diǎn)進(jìn)行隨機(jī)采樣,可能會(huì)出現(xiàn)3個(gè)采樣點(diǎn)集中在不規(guī)則圓弧上的情況,導(dǎo)致預(yù)測(cè)的圓與真實(shí)圓相差較大。因此,該文將圓邊緣點(diǎn)的采樣區(qū)域劃分為4個(gè)部分,如圖4所示。每次采樣時(shí)都從4個(gè)采樣區(qū)中隨機(jī)選擇3個(gè)采樣區(qū)進(jìn)行采樣,采樣區(qū)域范圍如下式:
(5)
該方法保證不會(huì)同時(shí)采樣3個(gè)相距較近的點(diǎn),當(dāng)圓的某一段圓弧凹凸不平時(shí),分區(qū)域采樣可使得采樣的邊緣點(diǎn)不會(huì)都出自這段圓弧,減少了由于不規(guī)則圓弧導(dǎo)致的采樣誤差,從而提升算法對(duì)不規(guī)則圓的檢測(cè)能力。而且由于分區(qū)域采樣法篩去了許多不合理的采樣情況,整體算法的運(yùn)算速率也有所提升。

圖4 圓的分區(qū)域采樣
經(jīng)過(guò)改進(jìn)的隨機(jī)Hough變換圓檢測(cè)方法,得到經(jīng)預(yù)測(cè)的圓心坐標(biāo)與圓半徑,為將裁剪縮放后的圓映射回原圖中,該文使用以下公式對(duì)圓參數(shù)進(jìn)行映射:
(6)
其中,w為原圖的尺寸大小,θ為原圖與檢測(cè)結(jié)果圖的縮放系數(shù),圓檢測(cè)結(jié)果(Xc,Yc,rc)代入縮放系數(shù)后放大到原圖中的比例再加上剪裁的偏移量(Xd,Yd)即可得到檢測(cè)圓在原圖中的參數(shù)(X0,Y0,r0)。
針對(duì)零件圓檢測(cè)的場(chǎng)景需要構(gòu)建多孔零件圖片數(shù)據(jù)集,由于含有圓孔的零件樣式種類繁多,且成本較高,因此該文從互聯(lián)網(wǎng)中搜集多孔零件圖片構(gòu)建粗檢測(cè)數(shù)據(jù)集,對(duì)于每張多圓零件圖片都要求平面垂直于拍攝方向,使得待測(cè)圓孔為正圓,背景多為白色與實(shí)際生產(chǎn)檢測(cè)場(chǎng)景相匹配,如圖5所示。
粗檢測(cè)數(shù)據(jù)集預(yù)處理步驟如下:
(1)將在網(wǎng)絡(luò)中搜集的128張零件圖片統(tǒng)一裁剪成604×604分辨率,對(duì)于小于604×604分辨率的圖片采用白色背景填充;
(2)使用LabelImg軟件進(jìn)行目標(biāo)檢測(cè)標(biāo)簽的標(biāo)注,標(biāo)注規(guī)則是使每個(gè)圓處于標(biāo)簽框的中心位置,標(biāo)簽框的寬度大約為圓直徑的3/2到5/4之間;
(3)使用數(shù)據(jù)增強(qiáng)方法對(duì)標(biāo)注后的圖片通過(guò)縮放、旋轉(zhuǎn)和拼接等手段進(jìn)行擴(kuò)充,最終得到由864張帶標(biāo)簽圖片組成的粗檢測(cè)數(shù)據(jù)集。

圖5 粗檢測(cè)數(shù)據(jù)集圖片
該文使用粗檢測(cè)階段的輸出結(jié)果構(gòu)建細(xì)數(shù)據(jù)集,如圖6所示。

(a) (b)圖6 細(xì)檢測(cè)數(shù)據(jù)集圖片(a)和標(biāo)簽(b)
細(xì)檢測(cè)數(shù)據(jù)集預(yù)處理步驟如下:
(1)從正確預(yù)測(cè)的目標(biāo)檢測(cè)結(jié)果圖片中隨機(jī)篩選出680張圖片,統(tǒng)計(jì)圖片分辨率分布,發(fā)現(xiàn)分辨率處于100到150像素之間的圖片占總圖片60%左右;
(2)將所有圖片縮放裁剪成128×128分辨率的圖片,長(zhǎng)方形圖片則使用灰色背景填充;
(3)使用LabelImg軟件對(duì)圖片進(jìn)行標(biāo)注,全部使用圓形標(biāo)簽標(biāo)注;
(4)使用數(shù)據(jù)增強(qiáng)技術(shù)對(duì)標(biāo)注后的圖片進(jìn)行擴(kuò)充,使用翻轉(zhuǎn)、裁剪、縮放、調(diào)整對(duì)比度等方法,得到帶標(biāo)簽圖片4 080張組成的細(xì)檢測(cè)數(shù)據(jù)集,其中訓(xùn)練集和驗(yàn)證集比例為4∶1。
對(duì)于粗檢測(cè)結(jié)果的評(píng)價(jià),該文使用主流的目標(biāo)檢測(cè)評(píng)價(jià)標(biāo)準(zhǔn),即準(zhǔn)確率(precision)和運(yùn)行時(shí)間來(lái)比較2個(gè)不同骨干網(wǎng)絡(luò)模型的性能。準(zhǔn)確率定義如下:
(7)
其中,TPs、FPs和FNs分別代表真陽(yáng)性檢測(cè)率、假陽(yáng)性檢測(cè)率和假陰性檢測(cè)率。若檢測(cè)到的圓與真實(shí)圓的交并比大于閾值TIoU則被視為真陽(yáng)性檢測(cè),否則為假陽(yáng)性檢測(cè),沒(méi)有被檢測(cè)到的圓被視為假陰性。
為證明改進(jìn)的網(wǎng)絡(luò)對(duì)圓目標(biāo)語(yǔ)義分割的有效性,該文采用平均像素精度(Mean Pixel Accuracy)和平均交并比(Mean Intersection over Union,MIoU)來(lái)評(píng)價(jià)網(wǎng)絡(luò)的性能,由于文中預(yù)測(cè)類別只有1個(gè),因此MIoU與IoU值相等。
平均像素精度定義如下:
(8)
平均交并比定義如下:
(9)
對(duì)于圓檢測(cè)結(jié)果,該文采用流行的圓檢測(cè)計(jì)算方法,分別為:(1)準(zhǔn)確率(Precision,P);(2)召回率(Recall,R);(3)F值(F-measure,F1);(4)單張圖片處理時(shí)間(Time)。召回率和F值的計(jì)算公式見(jiàn)公式(10)和(11),該文選擇α值為1時(shí)的F值作為綜合準(zhǔn)確率和召回率的評(píng)價(jià)指標(biāo),簡(jiǎn)稱F1。實(shí)驗(yàn)共設(shè)置了4個(gè)交并比閾值TIoU,分別為0.7、0.8、0.9和0.95。
(10)
(11)
實(shí)驗(yàn)在win10上進(jìn)行,使用PyCharm開(kāi)發(fā)工具和深度學(xué)習(xí)框架Pytorch搭建和訓(xùn)練模型。粗檢測(cè)模型YOLOv5使用在數(shù)據(jù)集Pascal-VOC上預(yù)訓(xùn)練好的模型進(jìn)行訓(xùn)練,訓(xùn)練批處理大小為4,初始學(xué)習(xí)率為0.005,權(quán)重衰減為0.000 5,學(xué)習(xí)周期數(shù)為300。細(xì)檢測(cè)模型BiSeNet使用預(yù)訓(xùn)練好的ResNet18權(quán)重文件作為主干網(wǎng)絡(luò)權(quán)重,訓(xùn)練批處理大小為4,初始學(xué)習(xí)率為0.000 1,權(quán)重衰減為0.000 1,學(xué)習(xí)周期數(shù)為800。
為驗(yàn)證對(duì)YOLOv5模型改進(jìn)的有效性,該文將以DarkNet53為骨干網(wǎng)絡(luò)的原YOLOv5模型和以MobileNet v3為骨干網(wǎng)絡(luò)的改進(jìn)后的YOLOv5模型在粗檢測(cè)測(cè)試集上進(jìn)行對(duì)比,采用相同的訓(xùn)練參數(shù)進(jìn)行訓(xùn)練,實(shí)驗(yàn)結(jié)果如表1所示。

表1 粗檢測(cè)實(shí)驗(yàn)結(jié)果對(duì)比
經(jīng)過(guò)實(shí)驗(yàn)結(jié)果得知,以MobileNet v3為骨干網(wǎng)絡(luò)的模型在預(yù)測(cè)速度上比原模型提高了約26%,證明了替換輕量級(jí)骨干網(wǎng)絡(luò)對(duì)速度提升有較好的效果,更加適用于對(duì)速度有要求的實(shí)時(shí)預(yù)測(cè)場(chǎng)景。同時(shí)注意到,使用更輕量級(jí)的MobileNet v3網(wǎng)絡(luò)后,檢測(cè)準(zhǔn)確率比模型更復(fù)雜,參數(shù)更多的DarkNet53高0.6百分點(diǎn),這種情況的發(fā)生可能是由于訓(xùn)練樣本較小,在更加復(fù)雜的網(wǎng)絡(luò)上訓(xùn)練發(fā)生了過(guò)擬合現(xiàn)象導(dǎo)致其準(zhǔn)確率不如相對(duì)簡(jiǎn)單的網(wǎng)絡(luò)模型。
為驗(yàn)證語(yǔ)義分割網(wǎng)絡(luò)改進(jìn)的有效性,該文使用改進(jìn)的BiSeNet模型與2種主流的語(yǔ)義分割網(wǎng)絡(luò)在細(xì)檢測(cè)數(shù)據(jù)集上進(jìn)行對(duì)比,采用相同的訓(xùn)練參數(shù)進(jìn)行訓(xùn)練,實(shí)驗(yàn)對(duì)比結(jié)果如表2所示。

表2 細(xì)檢測(cè)實(shí)驗(yàn)結(jié)果對(duì)比
通過(guò)表2可以看出,BiSeNet作為輕量級(jí)語(yǔ)義分割網(wǎng)絡(luò)在運(yùn)行時(shí)間上比其他兩個(gè)網(wǎng)絡(luò)擁有較大的優(yōu)勢(shì)。這是由于BiSeNet的主干網(wǎng)絡(luò)為ResNet18,屬于淺層網(wǎng)絡(luò),而Deeplabv3[26]的主干網(wǎng)絡(luò)為ResNet50,OCNet[27]的主干網(wǎng)絡(luò)為ResNet101,其網(wǎng)絡(luò)深度都高于BiSeNet,因此其運(yùn)行時(shí)間也幾乎是BiSeNet的2倍,因此文中方法更加符合實(shí)時(shí)檢測(cè)的需求。
在檢測(cè)精度上,普通的BiSeNet網(wǎng)絡(luò)的像素精度與交并比均低于Deeplabv3和OCNet,這與網(wǎng)絡(luò)的深度呈正相關(guān),越深的網(wǎng)絡(luò)含有越多的參數(shù),對(duì)特征的擬合能力也更好。改進(jìn)的BiSeNet網(wǎng)絡(luò)的像素精度比原網(wǎng)絡(luò)提高2.55百分點(diǎn),交并比提高2.38百分點(diǎn),對(duì)其他兩種網(wǎng)絡(luò)在檢測(cè)精度上也有提升,而運(yùn)行速度幾乎沒(méi)有變化,證明了根模塊的加入有效地提升了網(wǎng)絡(luò)對(duì)特征的提取能力,同時(shí)沒(méi)有對(duì)運(yùn)算速度造成較大影響,證明了所涉及的模型的有效性。
為綜合驗(yàn)證文中方法的圓檢測(cè)能力,將文中方法與以下3個(gè)傳統(tǒng)的圓檢測(cè)方法進(jìn)行對(duì)比:EDCircle[15]算法、CACD[11]算法和ASLS[28]算法。實(shí)驗(yàn)結(jié)果如表3所示,其中無(wú)分區(qū)指在圓參數(shù)檢測(cè)階段沒(méi)有使用分區(qū)域采樣的策略,有分區(qū)指在圓參數(shù)檢測(cè)階段中使用的分區(qū)域采樣策略。
從表3可以看出,當(dāng)交并比閾值為0.7時(shí),幾個(gè)圓檢測(cè)算法都有較好的表現(xiàn),準(zhǔn)確率都超過(guò)了90%,EDCircles和ASLS的準(zhǔn)確率都接近98%,而文中方法準(zhǔn)確率接近99.9%,說(shuō)明在低閾值要求下文中方法可以準(zhǔn)確檢測(cè)出所有圓的參數(shù)。當(dāng)交并比閾值升高時(shí),EDCircles和ASLS依然保持著較高的精確度和召回率,而CACD的精度率出現(xiàn)了較大的下降,閾值=0.9時(shí)的精確率比閾值=0.8時(shí)下降了約10%,文中方法在閾值=0.9時(shí)依然保持著96.83%的高精確率。最后,當(dāng)閾值=0.95時(shí),其他3種方法都出現(xiàn)了顯著的下降,CACD的精確率甚至只有55.25%,而文中方法依然能保持接近80%的精確率,說(shuō)明其在高精度的圓檢測(cè)中依然能有較好的表現(xiàn)。

表3 圓檢測(cè)方法實(shí)驗(yàn)結(jié)果對(duì)比
通過(guò)對(duì)比實(shí)驗(yàn)的結(jié)果可以看出,文中方法采用的分區(qū)域抽樣策略更好地完成了圓檢測(cè)任務(wù),相比未使用分區(qū)域抽樣策略的方法在精確度和召回率上都有一定的提升,說(shuō)明分區(qū)域抽樣策略在面對(duì)不規(guī)則圓形的檢測(cè)上效果較好。
此外,文中方法的召回率在4種閾值下都高于95%,說(shuō)明即使在較高的閾值要求下,文中方法都能準(zhǔn)確檢測(cè)出所有目標(biāo)圓,具有較強(qiáng)的穩(wěn)定性。其他3種方法雖然在閾值升高的情況下召回率的下降并不明顯,大多維持在80%左右,但精確度仍然與文中方法有較大差距。
在運(yùn)行時(shí)間上,其他3種方法由于需要對(duì)所有類圓輪廓都進(jìn)行預(yù)測(cè),導(dǎo)致時(shí)間成本增加,尤其是ASLS方法在單張圖片上的檢測(cè)時(shí)間大于5 s,無(wú)法達(dá)到實(shí)時(shí)檢測(cè)要求,而使用了分區(qū)域抽樣策略的文中方法處理單張圖片的時(shí)間僅為41 ms,是第二快的EDCircle方法的1/10,也比未使用分區(qū)域抽樣策略的方法快了36 ms。以上實(shí)驗(yàn)結(jié)果說(shuō)明,與傳統(tǒng)圓檢測(cè)方法相比,文中方法能在實(shí)時(shí)檢測(cè)的情況下精確地檢測(cè)出目標(biāo)圓同時(shí)排除干擾物的影響,證明了文中方法的有效性。
該文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的多階段零件圓檢測(cè)方法,首先通過(guò)YOLOv5目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)圖片中的目標(biāo)圓進(jìn)行粗檢測(cè),得到含有單個(gè)目標(biāo)圓圖片的輸出,然后將粗檢測(cè)的輸出結(jié)果輸入到改進(jìn)的BiSeNet網(wǎng)絡(luò)從而對(duì)粗檢測(cè)結(jié)果進(jìn)行細(xì)檢測(cè),獲得圓輪廓掩膜圖,最后使用引入了分區(qū)域采樣策略的隨機(jī)霍夫變換圓檢測(cè)方法進(jìn)行圓參數(shù)檢測(cè),得到目標(biāo)圓的半徑與圓心坐標(biāo)。經(jīng)實(shí)驗(yàn)結(jié)果表明,該方法在零件圓檢測(cè)數(shù)據(jù)集上的精確率與召回率遠(yuǎn)高于所對(duì)比的三種主流圓檢測(cè)方法,同時(shí)運(yùn)行時(shí)間也滿足實(shí)時(shí)檢測(cè)的需求,證明了該方法的有效性。
然而,該方法中各個(gè)階段是相互獨(dú)立且需要人工處理結(jié)果數(shù)據(jù)的,尚未實(shí)現(xiàn)端到端的檢測(cè)。同時(shí),該文還未將遮擋情況考慮進(jìn)來(lái),遮擋情況也是圓檢測(cè)研究中的一個(gè)難點(diǎn),這表明該方法在應(yīng)用上還有擴(kuò)展的空間,也為下一步的研究指明了方向。