周勝安 - 黃耿生 - 張譯勻 - 高東發(fā) -
(1. 廣東行政職業(yè)學(xué)院人工智能學(xué)院,廣東 廣州 510800;2. 廣東外貿(mào)外語大學(xué)計算機科學(xué)學(xué)院,廣東 廣州 510665)
基于機器視覺自動檢測具有較強的可執(zhí)行性和非接觸工作模式的優(yōu)勢[1]。左興健等[2]研制了一套實用的獼猴桃自動分級設(shè)備,該設(shè)備包括單行定位輸送系統(tǒng)、圖像采集系統(tǒng)、分級執(zhí)行系統(tǒng)和控制系統(tǒng),通過多特征提取和融合分級的方法對獼猴桃實現(xiàn)了自動分級。項輝宇等[3-4]使用基于圖像處理方法對蘋果的大小、顏色和缺陷進行了檢測,該類方法主要是基于水果形狀、邊緣、紋理等普通特征來定位缺陷目標(biāo)。高輝等[5]采用自動亮度校正技術(shù)和加權(quán)矢量機相結(jié)合,進一步提高了水果缺陷檢測準(zhǔn)確率和檢測速度,但該方法需要進行光照系統(tǒng)的配置,成本較大。薛勇等[6]采用GoogLeNet深度遷移模型對蘋果缺陷進行檢測,獲得了較好的泛化能力與魯棒性,但該卷積網(wǎng)絡(luò)模型復(fù)雜、參數(shù)多且檢測效率低。夏雪等[7]構(gòu)建了用于蘋果檢測的輕量級無錨點深度學(xué)習(xí)網(wǎng)絡(luò)模型M-CenterNet,該方法通過改進輕量級的MobileNetV3網(wǎng)絡(luò),結(jié)合關(guān)鍵點預(yù)測的目標(biāo)檢測網(wǎng)絡(luò)(CenterNet),為非結(jié)構(gòu)環(huán)境下果園作業(yè)平臺的輕量化果實目標(biāo)檢測模型研究提供了新的思路。但該方法適應(yīng)用于檢測目標(biāo)具有大小適中、外形和顏色較相近的特征,如場景中蘋果目標(biāo)的檢測。
針對水果中存在復(fù)雜多樣的缺陷塊,為提高缺陷的檢測準(zhǔn)確度,文章擬設(shè)計一種實時的MO-CenterNet水果缺陷檢測方法,先采用MobileNet[8]的高效架構(gòu)代替CenterNet原有的Hourglass[9]編碼解碼全卷積網(wǎng)絡(luò),再用可形變卷積改造為深度的可形變卷積,擴大模型的感受野,增加小型缺陷塊的檢測目標(biāo)數(shù),并對CenterNet的檢測頭進行預(yù)測優(yōu)化,通過位置閥值過濾非缺陷塊預(yù)測目標(biāo),旨在為滿足農(nóng)產(chǎn)品自動化處理系統(tǒng)對于輕量化水果缺陷檢測模型的需求提供依據(jù)。
基于深度學(xué)習(xí)的目標(biāo)檢測包括目標(biāo)分類和目標(biāo)定位2個任務(wù)。按其算法可以分為兩類:① 基于Region Proposal的R-CNN系算法如Fast R-CNN、Mask-RCNN等的Two-stage算法,即先用算法產(chǎn)生目標(biāo)候選框,即目標(biāo)位置,再對候選框進行分類與回歸。Two-stage detectors對每個框重新計算圖像特征并進行分類。后處理,即非極大值抑制(NMS),通過計算錨點(Bbox)間的IOU來刪除同個目標(biāo)的重復(fù)檢測框[10-11],Two-stage detectors這種預(yù)測目標(biāo)后處理很難區(qū)分和訓(xùn)練,因此現(xiàn)有檢測器大多不是端到端可訓(xùn)練的。② Yolo、SSD、RetinaNet、CornerNet和CenterNet這類的One-stage算法。One stage detectors在圖像上滑動復(fù)雜排列的可能Bbox,然后直接對框進行分類,而不會指定框中內(nèi)容[12-16]。
如圖1(a)所示,YOLO方法先通過卷積網(wǎng)絡(luò)進行特征提取,生成S×S的feature maps(7×7),特征圖上的每個點映射在原圖上為一個方格。對于一個真實的目標(biāo)框其中心點所落的網(wǎng)格負(fù)責(zé)預(yù)測此目標(biāo),每個bounding box除了要回歸自身的位置(x,y,w,h)外,還要附帶預(yù)測一個confidence值,每個網(wǎng)格要預(yù)測B個bounding box,網(wǎng)絡(luò)預(yù)測后的Bbox通過NMS進行過濾,得到最終的檢測框。
如圖1(b)所示,CornerNet方法的原圖經(jīng)過卷積網(wǎng)絡(luò)得到128×128大小的輸出,然后經(jīng)特征提取網(wǎng)絡(luò)Hourglass network提取特征,Hourglass module后會有兩個輸出分支模塊,分別表示左上角點預(yù)測分支和右下角點預(yù)測分支,每個分支模塊經(jīng)過Corner pooling層后輸出3個信息:Heatmaps、Embeddings和Offsets。Heatmaps用來預(yù)測角點位置信息,一個支路預(yù)測左上角,一個支路預(yù)測右下角,Embeddings用來對預(yù)測的角點進行分組,即找到屬于同一個目標(biāo)的左上角角點和右下角角點,同一個預(yù)測框的一對角點的角距離最短。Offsets用來調(diào)整角點位置,使得獲得的邊界框更緊密。
CenterNet是基于CornerNet的改進。如圖1(c)所示,與Corenet不同的是,CenterNet預(yù)測的是目標(biāo)的中心點,而不再是CornerNet中的2個角點,然后再預(yù)測目標(biāo)框的寬和高來生成預(yù)測框。
與CornetNet一樣,CenterNet也是采用熱力圖(heatmap)來實現(xiàn),均引入了預(yù)測點的高斯分布區(qū)域計算真實預(yù)測值,同損失函數(shù)一樣。此外,CenterNet也不包含corner pooling等操作,因為一般目標(biāo)框的中心點落在目標(biāo)上的概率比較大,因此常規(guī)的池化操作能夠提取到有效的特征。
CenterNet網(wǎng)絡(luò)模型是通過目標(biāo)中心點來呈現(xiàn)目標(biāo),如水果缺陷塊中心,然后在中心點位置回歸出缺陷塊的大小,如圖2所示,因些目標(biāo)檢測問題變成了一個缺陷塊的關(guān)鍵點估計問題。CenterNet網(wǎng)絡(luò)先將水果圖像傳入全卷積網(wǎng)絡(luò),得到一個熱力圖,然后取熱力圖峰值點看作是缺陷塊的可選中心點,同時通過該點的位置來預(yù)測目標(biāo)的寬高信息。
由圖2可知,CenterNet骨干網(wǎng)絡(luò)由于采用全卷積網(wǎng)絡(luò)將水果圖下采樣得到4倍的熱力圖,由于不需要提前設(shè)定預(yù)定區(qū)域,大大提高了計算速度。將水果熱力圖的通道數(shù)初始值設(shè)置為要檢測的缺陷區(qū)域種類數(shù)。取熱力圖的前100個峰值作為網(wǎng)絡(luò)提取的待檢測缺陷塊目標(biāo)中心點,然后設(shè)定一個閾值進行篩選得到最終的目標(biāo)中心點。CenterNet中所有的上采樣前都有deformable卷積,4倍的下采樣feature map使得網(wǎng)絡(luò)不需要多尺度預(yù)測和特征金字塔的感受野也能更精確地檢測缺陷塊。
圖1 YOLO、CenterNet和CornerNet目標(biāo)檢測Figure 1 Target detection of YOLO, CenterNet and CornerNet
CenterNet盡管不需要NMS,但是所有檢測缺陷塊的中心點是由熱力圖的峰值得到,因此會出現(xiàn)一個十分耗時的非極大值抑制過程,此外,CenterNet未采用分組卷積,進一步延遲了缺陷塊的檢測時間,很難應(yīng)用到實際場景中進行實時檢測。
針對CenterNet的骨干網(wǎng)絡(luò)無法滿足在移動設(shè)備上的應(yīng)用需求,Xiao等[17-19]研究了更輕的模型設(shè)計來獲得更快的速度。輕量化模型設(shè)計主要思想在于設(shè)計更高效的卷積計算方式,從而使網(wǎng)絡(luò)參數(shù)減少的同時,不損失網(wǎng)絡(luò)性能。假設(shè)H×W為輸出feature map的空間大小,C1為輸入通道數(shù),H1×W1為卷積核大小,C2為輸出通道數(shù),標(biāo)準(zhǔn)卷積的計算量與輸出特征圖的空間大小、卷積核的大小和輸入輸出通道的數(shù)量呈正比。當(dāng)在空間域和通道域進行卷積時,需要H1×W1×C1×C2計算量。通過分解該卷積,可以加速卷積神經(jīng)網(wǎng)絡(luò)的計算,分組卷積將輸入特征圖按通道數(shù)分成g組,則每組輸入特征圖的尺寸為H×W×(C1/g),對應(yīng)的卷積核尺寸為Hi×Wi×(C1/g),每組輸出特征圖尺寸為H×W×(C2/g)。將g組結(jié)果拼接(concat),得到最終尺寸為H×W×C2的輸出特征圖,分組卷積層的參數(shù)量為H1×W1×C1×C2/g,計算量為原計算量的1/g。
為了進一步降低卷積計算量,采用深度可分離卷積,假設(shè)輸入特征圖尺寸為DF×DF×M,卷積核尺寸為DK×DK×M,輸出特征圖尺寸為DF×DF×N,標(biāo)準(zhǔn)卷積層的參數(shù)量為DK×DK×M×N。將深度卷積和逐點卷積兩者合起來就是深度可分離卷積。深度卷積負(fù)責(zé)濾波,尺寸為(DK,DK,1),共M個,作用在輸入的每個通道上;逐點卷積負(fù)責(zé)轉(zhuǎn)換通道,尺寸為(1,1,M),共N個,作用在深度卷積的輸出特征映射上。深度卷積參數(shù)量為DK×DK×1×N,逐點卷積參數(shù)量為1×1×M×N,所以深度可分離卷積參數(shù)量是標(biāo)準(zhǔn)卷積的1/N+1/(DK)2。針對卷積計算特點,對分類算法進行優(yōu)化,具有代表性的有ResNet、ShuffleNet和MobileNet。如ResNet中使用的帶有bottleneck架構(gòu)的殘差單元是與其他未采用殘差單元模型進行比較,具有更好的識別準(zhǔn)確率。ShuffleNet在分組卷積中對通多次卷積,在組間的順序進行“shuffles”,提高精度。MobileNetV3采用類似ResNet2中帶有bottleneck架構(gòu)殘差單元的模塊架構(gòu),用深度可分離卷積代替conv3×3,是殘差單元的改進版本。MobileNetV3為了在保留高維特征的前提下減小延時,將平均池化前的層移除并用1×1卷積來計算特征圖。特征生成層被移除后,先前用于瓶頸映射的層也不再需要,將減少10 ms的開銷,在提速15%的同時減小了30 ms的操作數(shù)[20]。
文中受到 MobileNet 網(wǎng)絡(luò)模型和CenterNet目標(biāo)檢測的啟發(fā),在盡可能減小網(wǎng)絡(luò)計算量并保持較高的識別率的原則下,設(shè)計一個基于改進的CenterNet網(wǎng)絡(luò)模型MO-CenterNet,其網(wǎng)絡(luò)框架如圖3所示,第1部分是圖片輸入,第2部分是骨干網(wǎng)絡(luò),用于圖像特征提取,第3部分是圖像的熱力圖,第4部分是檢測頭,包括目標(biāo)中心點位置、目標(biāo)高度、寬度和目標(biāo)中心高斯分布。與原CenterNet網(wǎng)絡(luò)相比,① 采用MobileNetV3(Bneck)模塊單元作為骨干網(wǎng)絡(luò)快速提取圖像的特征,并盡量保證精度;② 對原有的檢測頭進行優(yōu)化,檢測頭的所有普通卷積替換為depth-wise卷積,并將可形變卷積改造為深度的可形變卷積。
圖3中每層圖絡(luò)的設(shè)計如表1所示。
由表1可知,Conv2d/s1/s2代表深度卷積,卷積步距為1/2。卷積核3×3代表卷積核大小為3×3。Bneck表示采用Mobilenet V3中的block塊,由4部分組成:① 膨脹,由1×1卷積將原來的feature map膨脹;② 深度可分離卷積,由3×3卷積核逐層卷積每層特征,經(jīng)1×1卷積融合成新的feature map;③ SE(Squeeze and Excitation,)結(jié)構(gòu)的輕量級注意力模塊,獲取新的feature map后,利用SE的注意力機制獲取空間權(quán)重來優(yōu)化性能;④ Residual,利用殘差結(jié)構(gòu)做殘差。
圖3 MO-CenterNet的網(wǎng)絡(luò)框架圖Figure 3 MO-CenterNet network framework diagram
表1 MO-CenterNet網(wǎng)絡(luò)層Table 1 MO-CenterNetnetwork layer
在MO-CenterNet網(wǎng)絡(luò)中,先將輸入水果特征圖通過一個標(biāo)準(zhǔn)卷積層,然后在通過第0~10個改進后的Conv/s操作后,經(jīng)第11層的池化和全連接層提取特征。為了更好地提取特征和使網(wǎng)絡(luò)快速收斂,Conv/s操作卷積層處理后的輸出均要經(jīng)過BN層和ReLU非線性激活函數(shù)處理,從而增加復(fù)雜缺陷塊的表達能力。
假設(shè)輸入圖像
I∈RW×H×3,
(1)
式中:
R、H——圖像的寬和高。
熱點圖(keypoint heatmap):
(2)
式中:
R——輸出對應(yīng)原圖的步長;
C——目標(biāo)檢測中對應(yīng)檢測點數(shù)量(蘋果檢測中C為3,代表有蘋果不同大小的3個缺陷類別)。
P[(x1+x2)/2,(y1+y2)/2]。
(3)
(4)
式中:
σp——一個與目標(biāo)大小(即W和H)相關(guān)的標(biāo)準(zhǔn)差。
與CenterNet的損失函數(shù)類似,MO-CenterNet的損失函數(shù)如式(5)所示。
Ldet=Lk+λsizeLsize+λoffLoff,(λsize=0.1,λoff=1),
(5)
式中:
LK——關(guān)鍵點的熱點圖;
Lsize——目標(biāo)長寬預(yù)測;
Loff——目標(biāo)中心點偏移值;
λsize、λoff——試驗設(shè)置參數(shù)。
(6)
式中:
N——圖像的關(guān)鍵點數(shù)量;
α、β——超參數(shù)(用來均衡難易樣本和正負(fù)樣本);
xyc——所有關(guān)鍵點熱點圖上的所有坐標(biāo)點;
C——目標(biāo)類別(每個類別一張heatmap);
Yxyc——標(biāo)注真實值。
(7)
式中:
p——圖片中目標(biāo)中心點坐標(biāo);
第一,現(xiàn)場巡檢。這種巡檢形式是最為傳統(tǒng)的一種作業(yè)方式,也是現(xiàn)階段使用最為普遍的一種方式。在現(xiàn)場巡檢中,相關(guān)巡檢人員需要利用船舶定期或不定期的對相應(yīng)海域的航標(biāo)進行檢查與維護,對于航標(biāo)故障進行預(yù)防以及排除。在現(xiàn)場巡檢中,相關(guān)巡檢人員要對航標(biāo)燈、航標(biāo)標(biāo)體結(jié)構(gòu)進行檢查維護,并對航標(biāo)的結(jié)構(gòu)、設(shè)備、附屬設(shè)施等進行故障排查與保養(yǎng)。同時,還要完成對航標(biāo)位置等的測定。在現(xiàn)場巡檢中,由于需要相關(guān)巡檢人員深入實際的海域進行作業(yè),所以受到天氣條件、海況等的威脅較大,危險程度相對較高。
圖4 關(guān)鍵點熱點圖值Figure 4 Keypoint heatmap value
R——縮放尺度;
(8)
式中:
Sk——真實尺寸。
蘋果缺陷檢測中,采用λsize,λoff=1所使用的backbone都有3個head layer,分別產(chǎn)生[1,4,128,128],[1,2,128,128],[1,2,128,128],即每個坐標(biāo)點產(chǎn)生C+4個數(shù)據(jù),分別為類別以及長、寬、偏置。
文中算法通過keras實現(xiàn),操作系統(tǒng)為Ubuntu18.04.1, CPU I5 2.9 GHz,顯卡1080ti,內(nèi)存32 G。為進一步證明改進MO-CenterNet目標(biāo)檢測效果,采用隨機拍攝的1 000個蘋果圖片。
由于樣品源數(shù)量有限,為了擴充樣本數(shù)據(jù)規(guī)模,防止算法過擬合,對其訓(xùn)練樣本進行數(shù)據(jù)增強(如圖5),將圖像縮放至512×512的分辨率,再將圖像隨機旋轉(zhuǎn)-30°~30°,分別以0.8~1.2的隨機縮放因子對圖像進行縮放,并對其中50%的隨機圖像進行水平鏡像,即相當(dāng)于將整個樣品數(shù)據(jù)量進行了成倍的擴充。
圖5 數(shù)據(jù)增強效果圖Figure 5 Effect of data enhancement
將蘋果數(shù)據(jù)集按8∶2分為訓(xùn)練集與測試集(見表2),從經(jīng)過處理的訓(xùn)練集中隨機抽出20%的圖片為驗證集。訓(xùn)練集數(shù)據(jù)輸入模型訓(xùn)練前,為了使訓(xùn)練出的模型泛化性更高,使用圖像增強技術(shù)對數(shù)據(jù)集進行鏡像、縮放和旋轉(zhuǎn)處理。
模型訓(xùn)練分為兩次:第1次訓(xùn)練學(xué)習(xí)率為0.000 1,輪次100次,每輪次迭代次數(shù)100,共迭代10 000次,每次迭代訓(xùn)練樣本數(shù)為20;第2次訓(xùn)練使用減少學(xué)習(xí)率和提前終止,初始學(xué)習(xí)率為0.000 01,最大輪次為50次,每輪次迭代次數(shù)150,最大迭代次數(shù)7 500,每次迭代訓(xùn)練樣本數(shù)為5。
表2 蘋果缺陷數(shù)據(jù)集信息表
由圖6可知,經(jīng)第1、2次訓(xùn)練后,改進MO-CenterNet算法損失值均趨于穩(wěn)定。
在數(shù)據(jù)集的測試集中隨機抽取兩張圖片,并將圖片輸入已建立好的模型中,得到對應(yīng)的框坐標(biāo)和類別。為了更好地體現(xiàn)小的缺陷塊結(jié)果,將3類缺陷的score初始值設(shè)置為0.25,IOU的初始值設(shè)置為0.70,檢測結(jié)果如圖7 所示。由圖7可知,該模型能分別檢測出≥4 mm、2~4 mm和≤2 mm 3種缺陷,其中檢測出最顯著的缺陷概率為0.997。
圖6 迭代訓(xùn)練損失值Figure 6 Iterative training loss
為了提高2~4 mm和≤2 mm兩類小缺陷塊,采用基于位置特點的距離約束進行檢測優(yōu)化,結(jié)果如圖8所示。
由圖8可知,當(dāng)score值為0.30時,原本要保留的很多候選點被過濾了,如圖8(a)中的紅點。當(dāng)≤2 mm,2~4 mm缺陷的score值為0.15時,出現(xiàn)了更多候選點,如圖8(b)所示;再通過距離約束篩選,獲得更精確的≤2 mm,2~4 mm缺陷檢測點如圖8(c)所示,框外部分的檢測點被過濾。
圖7 檢測結(jié)果Figure 7 Test results
為評估MO-CenterNet檢測的性能,使用蘋果缺陷數(shù)據(jù)集作為測試數(shù)據(jù),采用缺陷檢測平均值、檢測速度和參數(shù)量作為評價指標(biāo)對模型進行評估,結(jié)果如表3所示。
圖8 檢測優(yōu)化過程Figure 8 Detection optimization process
表3 缺陷數(shù)據(jù)集各類別缺陷檢測平均值
由表3可知,改進的MO-CenterNet算法的AP50值相比于CenterNet_ResNet18的提高了3%,比CenterNet_Shuffler的提高了9%,速度相比于CenterNet_ResNet18、CenterNet_Shuffler分別快23%,14%。MO-CenterNet模型所使用的參數(shù)量也是最低的。
提出了一種新的基于機器視覺的水果缺陷檢測方法MO-Centernet。該方法通過使用MobileNetV3針對移動端優(yōu)化的輕量化神經(jīng)網(wǎng)絡(luò)模替代原有CenterNet骨干網(wǎng)絡(luò)檢測模塊,并對Centern的檢測頭進行了輕量化改進,解決了深度卷積計算速度慢的問題,提高了網(wǎng)絡(luò)的特征提取速度。此外,對于多個候選區(qū)域采用了距離約束進行篩選,進一步提高了網(wǎng)絡(luò)對于蘋果缺陷的檢測速率。由于水果種類繁多,形狀和缺陷要求不一,加上采集大量復(fù)雜的數(shù)據(jù)存在一些難度,自制的蘋果數(shù)據(jù)圖像集種類較為單一。為進一步增強檢測模型的泛化性能,后續(xù)將針對類問題進行克服改善,以適用其在不同水果種類檢測的適應(yīng)性。