劉家樂(lè),吳懷宇,+,陳志環(huán)
(1.武漢科技大學(xué) 機(jī)器人與智能系統(tǒng)研究院,湖北 武漢 430081;2.武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,湖北 武漢 430081)
指針式儀表制造成本低,結(jié)構(gòu)簡(jiǎn)單易維護(hù),廣泛用于大規(guī)模工業(yè)上的生產(chǎn)監(jiān)測(cè)。礦廠、變電站、化工企業(yè)的指針式儀表數(shù)量眾多且不固定、多分布在高溫、高壓場(chǎng)所,這種精密器件都需要按時(shí)校準(zhǔn)來(lái)維持自身精確度。傳統(tǒng)的檢測(cè)方法是通過(guò)人工完成,而個(gè)人可能因主觀干擾和危險(xiǎn)環(huán)境而導(dǎo)致誤檢造成巨大經(jīng)濟(jì)損失。到目前為止,國(guó)內(nèi)外學(xué)者對(duì)儀表自動(dòng)檢測(cè)方法已有大量的研究,此外,指針式儀表目標(biāo)多為室外高處的小目標(biāo),提高小目標(biāo)的檢測(cè)效果是目前一大挑戰(zhàn)。
以往的目標(biāo)檢測(cè)采用的大多是Hough變換等進(jìn)行監(jiān)測(cè),而其對(duì)噪聲太敏感、泛化能力弱、復(fù)雜度較高,容易漏檢或多檢導(dǎo)致誤差。隨著深度學(xué)習(xí)的發(fā)展,已經(jīng)有許多學(xué)者利用其解決目標(biāo)檢測(cè)識(shí)別方面類似的問(wèn)題,且已經(jīng)取得不錯(cuò)的成效。目前,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法已經(jīng)取得的突破大致可分為兩類。一種是基于區(qū)域推薦的Two Stage算法,如:Fast RCNN[1]、Faster RCNN[2],它們通常具有高精度,但通常實(shí)時(shí)性不足。另一種是基于回歸方法的One Stage算法,如YOLO[3]、SSD[4]、YOLOv3[5],其將檢測(cè)問(wèn)題作為回歸問(wèn)題來(lái)解決并直接預(yù)測(cè)目標(biāo)位置和類別,這些方法通常速度快但準(zhǔn)確度低。
Laroca R等[6]利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)儀表圖像進(jìn)行分析,但精確度不夠;He P等[7]使用Mask RCNN來(lái)分割自然場(chǎng)景儀表盤,但實(shí)時(shí)性不高;Wang L等[8]使用YOLOv2對(duì)儀表進(jìn)行定位,但對(duì)小目標(biāo)的檢測(cè)效果有待提升。計(jì)算機(jī)內(nèi)置的內(nèi)存單元與計(jì)算單元有限,盡管目前利用深度學(xué)習(xí)實(shí)現(xiàn)指針式儀表檢測(cè)算法越來(lái)越多,但這些方法網(wǎng)絡(luò)規(guī)模大,實(shí)時(shí)性和準(zhǔn)確性仍有待提高,難以在算力有限的計(jì)算機(jī)上完成對(duì)指針式儀表的實(shí)時(shí)高效檢測(cè),因此不能滿足工業(yè)上的實(shí)際工作[9]需要。
針對(duì)以上問(wèn)題,本文首先對(duì)工業(yè)上的指針式儀表的數(shù)據(jù)集進(jìn)行采集與制作,然后對(duì)YOLOv3算法的系統(tǒng)模型框架結(jié)構(gòu)、損失函數(shù)、先驗(yàn)框聚類[10]進(jìn)行設(shè)計(jì)與改進(jìn),通過(guò)常用的評(píng)估指標(biāo)來(lái)對(duì)不同算法與改進(jìn)版YOLOv3進(jìn)行對(duì)比實(shí)驗(yàn)。最后對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,結(jié)果表明改進(jìn)的YOLOv3算法,針對(duì)工業(yè)中的半盤、整盤式指針式儀表檢測(cè)有較高的精度與速度,對(duì)小目標(biāo)檢測(cè)效果大幅提升,能夠滿足工業(yè)上指針式儀表檢測(cè)的實(shí)際需要。
YOLOv3借鑒了圖像金字塔FPN(feature pyramid networks)的思想,在3種不同的規(guī)模的特征圖下進(jìn)行預(yù)測(cè),大尺寸特征圖用來(lái)檢測(cè)小目標(biāo),小尺寸特征圖用來(lái)檢測(cè)大目標(biāo),而中間特征層則適合檢測(cè)中等目標(biāo)。通過(guò)聚類選取先驗(yàn)框,對(duì)不同大小目標(biāo)的檢測(cè)識(shí)別都能很好兼顧。圖1為YOLOv3的自上而下檢測(cè)的FPN結(jié)構(gòu)圖。
圖1 YOLOv3的圖像金字塔結(jié)構(gòu)
框架上,YOLOv3參考SSD和ResNet網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計(jì)了分類網(wǎng)絡(luò)基礎(chǔ)模型DarkNet-53,相較于YOLOv2的DarkNet-19,DarkNet-53擴(kuò)充為更大的網(wǎng)絡(luò),共使用52層卷積層,且每個(gè)卷積層后都有歸一化操作(batch normalization)來(lái)防止過(guò)擬合;考慮到網(wǎng)絡(luò)復(fù)雜度與檢測(cè)準(zhǔn)確率,所以與常用的特征提取網(wǎng)絡(luò)VGG-16相比,DarkNet-53降低了模型運(yùn)算量,同時(shí)為了避免網(wǎng)絡(luò)層數(shù)的加深模型在訓(xùn)練過(guò)程中產(chǎn)生梯度爆炸的現(xiàn)象,使用了殘差學(xué)習(xí)的思想,在網(wǎng)絡(luò)中添加了大量的殘差塊。
YOLOv3使用多標(biāo)簽分類,這與先前版本中使用的互斥標(biāo)簽不同,它使用邏輯分類器來(lái)計(jì)算特定標(biāo)簽對(duì)象的可能性。所以對(duì)于分類損失,其模型摒棄了Softmax函數(shù)作為最終分類器,它使用每個(gè)標(biāo)簽的二進(jìn)制交叉熵?fù)p失,即常用的Logistic損失函數(shù)來(lái)作分類損失的損失函數(shù),而非YOLOv2中使用的一般均方誤差。表1為檢測(cè)網(wǎng)絡(luò)性能比較對(duì)比表,其中mAP為平均類別精度,F(xiàn)PS為幀率。
表1 檢測(cè)網(wǎng)絡(luò)性能比較對(duì)比
由表1可以看出,YOLOv3各指標(biāo)在檢測(cè)算法中表現(xiàn)較為均衡,且在精確度和速度性能上均取得了良好的效果。
盡管YOLOv3在目標(biāo)檢測(cè)領(lǐng)域已經(jīng)取得不錯(cuò)的效果,但是對(duì)于本文工業(yè)上的指針式儀表數(shù)據(jù)集上來(lái)說(shuō),其對(duì)小目標(biāo)的檢測(cè)效果不太理想,且檢測(cè)速度仍難以應(yīng)對(duì)龐大數(shù)據(jù)量的檢測(cè)任務(wù),故需要對(duì)YOLOv3算法做適當(dāng)改進(jìn),以更好適應(yīng)實(shí)際工業(yè)應(yīng)用中的指針式儀表的檢測(cè)任務(wù)。
為了應(yīng)對(duì)工業(yè)上的指針式儀表檢測(cè)問(wèn)題,本文主要對(duì)YOLOv3算法做如下3個(gè)改進(jìn)。
(1)改進(jìn)Kmeans聚類。使用最新的Mini Batch Kmeans來(lái)加速聚類時(shí)間,來(lái)應(yīng)對(duì)大量數(shù)據(jù)集的錨框Anchors選擇,主要作用是更快尋找到更合適的預(yù)測(cè)矩形框來(lái)檢測(cè)儀表圖像;
(2)改進(jìn)YOLOv3框架。使用輕量級(jí)框架MobileNet加速YOLOv3的訓(xùn)練時(shí)間,保證精確度的同時(shí)大幅度提高實(shí)時(shí)性;
(3)設(shè)計(jì)更合理?yè)p失函數(shù)。使用設(shè)計(jì)好的損失函數(shù)進(jìn)行訓(xùn)練,減小損失率,提升系統(tǒng)對(duì)小目標(biāo)儀表盤的檢測(cè)效果。圖2為改進(jìn)YOLOv3的檢測(cè)流程。
圖2 改進(jìn)版YOLOv3檢測(cè)結(jié)構(gòu)
SSD與Faster RCNN中邊界框尺寸都是通過(guò)主觀選擇的,這種方式會(huì)因數(shù)據(jù)集大小類別不同而產(chǎn)生較大誤差,故YOLOv3采用Kmeans聚類來(lái)自動(dòng)選取邊界框的尺寸與數(shù)量,圖3為Kmeans聚類例圖,聚類中心用X表示,橫縱坐標(biāo)分別為樣本的序號(hào)和特征的分布情況。
圖3 Kmeans聚類
如圖3所示,傳統(tǒng)的Kmeans流程都是隨機(jī)初始化K個(gè)聚類中心,然后將樣本點(diǎn)分配到最近的中心,分開(kāi)成K個(gè)類別,再更新中心點(diǎn),如此循環(huán)直到K個(gè)中心點(diǎn)不再變化或達(dá)到迭代閾值。因?yàn)殡S機(jī)初始化K個(gè)聚類中心會(huì)導(dǎo)致聚類結(jié)果準(zhǔn)確度不穩(wěn)定,所以使用Kmeans++初始化可以彌補(bǔ)Kmeans在初始化中心點(diǎn)的選擇上的不足,只預(yù)先選取一個(gè)中心點(diǎn),再計(jì)算每個(gè)點(diǎn)到與其最近的中心點(diǎn)的距離的概率,隨機(jī)選擇一個(gè)點(diǎn)作為中心點(diǎn)加入集合中,重復(fù)步驟直到選定K個(gè)中心點(diǎn)。隨著數(shù)據(jù)集的大小進(jìn)入萬(wàn)級(jí)百萬(wàn)級(jí),日常目標(biāo)檢測(cè)所需要的精度越來(lái)越高,傳統(tǒng)聚類耗時(shí)費(fèi)資源且效果有限,而在聚類環(huán)節(jié)耗費(fèi)的時(shí)間可以用更加效率的Mini Batch彌補(bǔ)。具體步驟為:
(1)隨機(jī)拆分訓(xùn)練集為n份,首先抽取第一份訓(xùn)練集,使用Kmeans++初始化構(gòu)建出K個(gè)聚簇點(diǎn)的模型;
(2)繼續(xù)抽取訓(xùn)練集中的下一份樣本的數(shù)據(jù),并將其添加到模型中,且分配給距離最近的聚簇中心;
(3)更新聚簇的中心點(diǎn)坐標(biāo)(每次更新都只用抽取出來(lái)的部分?jǐn)?shù)據(jù)集)。
Mini Batch Kmeans模型能在保持聚類準(zhǔn)確性情況下大幅度降低計(jì)算時(shí)間。它采用分小批量的方法劃分?jǐn)?shù)據(jù)子集,以此減少計(jì)算時(shí)間,同時(shí)仍試圖優(yōu)化目標(biāo)函數(shù),采用這些隨機(jī)選取的數(shù)據(jù)進(jìn)行訓(xùn)練,極大減少了計(jì)算與Kmeans算法收斂的時(shí)間,這適用于當(dāng)數(shù)據(jù)量與類別數(shù)非常大時(shí)做聚類,選用通過(guò)Kmeans++初始化之后的Mini Batch Kmeans算法能在提升精度的情況下加速聚類時(shí)間。
隨著卷積神經(jīng)網(wǎng)絡(luò)的層數(shù)加深,實(shí)際工程中所消耗的計(jì)算資源越來(lái)越大,大量的參數(shù)導(dǎo)致網(wǎng)絡(luò)訓(xùn)練與檢測(cè)速度緩慢,為了解決這個(gè)問(wèn)題,最好辦法就是對(duì)模型進(jìn)行壓縮,在不損失網(wǎng)絡(luò)性能情況下提高運(yùn)行速度與檢測(cè)速度,因此,本文選用輕量級(jí)網(wǎng)絡(luò)MobileNet代替YOLOv3中使用的Darknet-53網(wǎng)絡(luò)。
MobileNet的主要優(yōu)點(diǎn)是深度可分離卷積 (depthwise separable convolution),它將常用的標(biāo)準(zhǔn)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分解,變成深度卷積和1×1的逐點(diǎn)卷積,首先用深度卷積針對(duì)每個(gè)單輸入進(jìn)行單濾波器濾波,后用逐點(diǎn)卷積的方式結(jié)合深度卷積的輸出,這種分解方式能大幅減少計(jì)算量,減小模型的大小。MobileNet在計(jì)算量,權(quán)重內(nèi)存和精確度方面找到了非常合適的平衡點(diǎn)。表2為相同輸入分辨率數(shù)據(jù)集情況下,YOLOv3框架MobileNet與DarkeNet-53間在ImageNet數(shù)據(jù)集上的性能比較。
由表2可以看出,在相同條件下,YOLOv3使用MobileNet框架在參數(shù)數(shù)量上較DarkNet-53框架減小3倍;浮點(diǎn)數(shù)運(yùn)算量上MobileNet僅需150億次,將運(yùn)算量較DarkNet-53減小了4倍以上。從計(jì)算量和參數(shù)量來(lái)說(shuō)MobileNet具有絕對(duì)優(yōu)勢(shì),能有效加快訓(xùn)練速度,縮短訓(xùn)練時(shí)間。
表2 YOLOv3各框架之間的性能比較
圖4所示是改進(jìn)后的MobileNet的框架圖,共有27層卷積層,每個(gè)卷積層后都接有Batch Norm歸一化和激活函數(shù),抽出其中的第9層、14層、24層的特征圖出來(lái)進(jìn)行后續(xù)訓(xùn)練檢測(cè)操作。這里選用ELU代替原來(lái)的Relu激活函數(shù),函數(shù)在左側(cè)的負(fù)值賦予非零的斜率,不僅能避免或緩解梯度消失和梯度爆炸,而且能極大程度加速訓(xùn)練過(guò)程,使收斂速度加快,對(duì)儀表圖像的噪聲有更佳的魯棒性。
圖4 MobileNet框架
損失函數(shù)作為衡量預(yù)測(cè)值與真實(shí)值之間的誤差的指標(biāo),對(duì)于網(wǎng)絡(luò)模型檢測(cè)效果的好壞起著至關(guān)重要作用,一般來(lái)說(shuō),損失函數(shù)下降速率越快,損失值越小,系統(tǒng)模型越好。對(duì)于YOLOv3來(lái)說(shuō),損失函數(shù)共分為:f1邊界框的預(yù)測(cè)(bounding box prediction)、f2置信度計(jì)算(confidence prediction)、f3類別預(yù)測(cè)(class prediction)這3個(gè)部分,其總損失為
Loss=f1+f2+f3
(1)
其中,各部分損失為
(2)
上述公式中各參數(shù)信息詳見(jiàn)文獻(xiàn)[5]所示。對(duì)于式(2)中邊界框的預(yù)測(cè)f1采用的是真實(shí)值坐標(biāo)與預(yù)測(cè)值坐標(biāo)誤差的平方;而置信度計(jì)算f2與類別預(yù)測(cè)f3均采用的是交叉熵?fù)p失函數(shù)。對(duì)于邊界框的坐標(biāo)預(yù)測(cè)來(lái)說(shuō),自由場(chǎng)景下采集到的圖像可能尺寸大小不一,使YOLOv3檢測(cè)小目標(biāo)的效果會(huì)受到影響,因此,本文對(duì)于坐標(biāo)誤差的寬高部分損失函數(shù)的改進(jìn):采用了預(yù)測(cè)值和真實(shí)值的平方和作為損失。這是由于較大目標(biāo)的誤差相對(duì)較小目標(biāo)的誤差對(duì)最終的損失值影響更小,若損失函數(shù)不變,則損失函數(shù)難以下降,對(duì)小目標(biāo)檢測(cè)結(jié)果較差。根據(jù)本文模型的指針式儀表,為了更好擬合數(shù)據(jù),設(shè)計(jì)邊界框預(yù)測(cè)損失函數(shù)如式(3)所示
(3)
最后本文在坐標(biāo)誤差后加入激活函數(shù)tanh來(lái)減小預(yù)測(cè)框過(guò)大而產(chǎn)生的誤差,使預(yù)測(cè)框更加精確的檢測(cè)出儀表圓盤。最終總損失函數(shù)如式(4)所示
(4)
根據(jù)以上問(wèn)題,本文選擇精確率均值A(chǔ)P(average precision),每秒檢測(cè)幀數(shù)FPS(frames per second)、平均IOU(交并比)作為模型評(píng)價(jià)指標(biāo),其中AP和FPS為檢測(cè)環(huán)節(jié)精度效率的評(píng)價(jià)指標(biāo),平均IOU為評(píng)價(jià)邊界框聚類準(zhǔn)度指標(biāo)
(5)
式中:TP(true positive)指的是正樣本,F(xiàn)P(false positive)指的是被判定為正樣本,但實(shí)際上是負(fù)樣本的樣本數(shù),其中TP與FP相加結(jié)果為總樣本數(shù)M,AP是針對(duì)單一類別預(yù)測(cè),目前為止使用頻率最高,效果最優(yōu)的評(píng)價(jià)標(biāo)準(zhǔn)和度量指標(biāo)之一
(6)
幀率FPS(frames per second),即是每秒鐘內(nèi)最大可以處理的圖片數(shù)量。式(6)中S為測(cè)試總時(shí)間,一般以秒為單位,F(xiàn)為該S秒單位時(shí)間內(nèi)系統(tǒng)檢測(cè)的圖片數(shù)量。一般顯卡的內(nèi)存越大,一次性處理的圖片數(shù)量越大,則處理一張圖片所需要消耗的檢測(cè)時(shí)間越短,速度越快
(7)
平均IOU是評(píng)價(jià)真實(shí)框Ground Truth與預(yù)測(cè)邊框差異性的指標(biāo),其中P為預(yù)測(cè)框大小、G為真實(shí)框大小。其式(7)可以理解為神經(jīng)網(wǎng)絡(luò)計(jì)算出的框與標(biāo)記框的重合程度,即是檢測(cè)結(jié)果與真實(shí)框的交集比上其并集。IOU的值越高,預(yù)測(cè)邊界框的位置越準(zhǔn)。
根據(jù)以上3點(diǎn)改進(jìn),下面將進(jìn)行實(shí)驗(yàn)。
本文將根據(jù)實(shí)驗(yàn)的軟硬件開(kāi)發(fā)環(huán)境,對(duì)工業(yè)上指針式儀表數(shù)據(jù)集進(jìn)行制作,包括變電站、化工廠等場(chǎng)景實(shí)地拍攝,并對(duì)訓(xùn)練集進(jìn)行聚類,得到合適的先驗(yàn)框輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過(guò)不同算法的對(duì)比實(shí)驗(yàn),得出結(jié)論。
實(shí)驗(yàn)環(huán)境配置如下:AMD Ryzen 5 2600 Six-Core Processor 處理器,NVIDIA GeForce GTX 1060 5 GB獨(dú)立顯卡,CUDA版本為9.0,Python版本為3.6,基于Tensorflow/Keras框架,操作系統(tǒng)為Windows 10,網(wǎng)絡(luò)具體參數(shù)配置見(jiàn)表3。
表3 網(wǎng)絡(luò)參數(shù)配置說(shuō)明
針對(duì)本文的研究環(huán)境范圍主要是工業(yè)應(yīng)用,如變電站、化工廠等,而指針式儀表一般在比較隱蔽的高處,像電線桿上和相關(guān)管道處,且表盤多因環(huán)境原因模糊不清,因此,數(shù)據(jù)集的搜集非常不便。本文利用python網(wǎng)絡(luò)爬蟲(chóng)技術(shù)從網(wǎng)絡(luò)爬取指針式儀表的數(shù)據(jù)集400張,實(shí)地拍攝儀表盤圖像照片300余張,用數(shù)據(jù)增強(qiáng)(data augmentation)手段擴(kuò)充數(shù)據(jù)集至1000張圖片,輸入到神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。樣本劃分具體是:訓(xùn)練集、交叉驗(yàn)證集、測(cè)試集之間的比例為6∶2∶2。
圖5是標(biāo)定數(shù)據(jù)集中真實(shí)框的分布,橫縱坐標(biāo)分別為各先驗(yàn)框坐標(biāo)的分布情況。
圖5 真實(shí)框Ground Truth分布
3.3.1 Mini Batch Kmeans聚類結(jié)果
圖6為Mini Batch Kmeans算法的聚類結(jié)果圖,橫縱坐標(biāo)分別為先驗(yàn)框選取的個(gè)數(shù)和平均IOU的大小。
圖6 Mini Batch Kmeans聚類結(jié)果
圖6中Mini Batch Kmeans算法平均IOU值明顯大于Kmeans,且聚類損耗時(shí)間短;鑒于增加候選框數(shù)量會(huì)影響系統(tǒng)模型的檢測(cè)速度,本文最終選擇9個(gè)聚類中心。經(jīng)過(guò)測(cè)驗(yàn)得到此時(shí)的精確度為81.97%,相對(duì)于普通的Kmeans算法提高了4.1%。這種對(duì)時(shí)間優(yōu)化的思路還廣泛應(yīng)用于梯度下降、深度網(wǎng)絡(luò)等。
3.3.2 網(wǎng)絡(luò)訓(xùn)練及其測(cè)試
為更好檢測(cè)大中小目標(biāo),在YOLOv3的網(wǎng)絡(luò)中,將圖片共分為3個(gè)不同尺寸的特征圖。每個(gè)特征圖設(shè)置有3個(gè)錨框Anchor boxes,因此會(huì)獲得9個(gè)Anchor boxes來(lái)進(jìn)行預(yù)測(cè)。根據(jù)預(yù)測(cè)的邊界框和實(shí)際邊界框之間的IOU進(jìn)行非極大抑制。根據(jù)反復(fù)實(shí)驗(yàn),減小學(xué)習(xí)率和增大迭代次數(shù)并不能有效減小損失值,故本次實(shí)驗(yàn)迭代次數(shù)定為1000次。圖7為改進(jìn)版YOLOv3與原版的損失函數(shù)對(duì)比曲線圖。
圖7 訓(xùn)練損失函數(shù)對(duì)比
圖7中輸入圖像分辨率為416×416,虛線為YOLOv3損失曲線,實(shí)線為改進(jìn)版YOLOv3曲線。培訓(xùn)結(jié)束后,整合培訓(xùn)過(guò)程中的數(shù)據(jù),由原版loss曲線可看出曲線前期震蕩較大,至900次迭代后趨于穩(wěn)定不再變化;由改進(jìn)版loss曲線圖可知在400次迭代epoch之前損失急速下降,隨著學(xué)習(xí)率的不斷減小,損失持續(xù)小范圍下降,后期迭代loss基本不再變化;最終改進(jìn)版YOLOv3損失值降為2.8,較原版損失率降低30%。
3.3.3 不同圖像分辨率的性能比較
根據(jù)多尺度訓(xùn)練方式,YOLOv3在不同的圖像分辨率下都有很好的檢測(cè)效果,魯棒性較好。為了驗(yàn)證YOLOv3和改進(jìn)YOLOv3的在不同圖像分辨率下的檢測(cè)效果,本文選出低、中、高{320,416,608}這3種不同分辨率下的圖像進(jìn)行算法檢測(cè)性能評(píng)估。由圖8可以看出改進(jìn)版的YOLOv3在不同分辨率大小上的檢測(cè)效果情況,左柱狀圖為YOLOv3效果圖,右柱狀圖為改進(jìn)版本YOLOv3效果圖。
由圖8可知,在不同分辨率輸入下改進(jìn)版本YOLOv3均比原版YOLOv3的檢測(cè)效果好。由此可得本文所提改進(jìn)算法能夠適應(yīng)不同分辨率大小的圖像,且精確度較原版有一定幅度提高。
圖8 兩種算法的圖像分辨率敏感性分析
為體現(xiàn)各不同檢測(cè)算法在指針式儀表數(shù)據(jù)集上的檢測(cè)效果,本文選取中分辨率的情況下,對(duì)原版YOLOv3與改進(jìn)版本的YOLOv3以及SSD、Mask RCNN在本數(shù)據(jù)集上進(jìn)行指標(biāo)評(píng)估對(duì)比,得出實(shí)驗(yàn)結(jié)果指標(biāo)對(duì)比表格。
通過(guò)表4可知YOLOv3的精確度(AP)為90.6%,精度方面比Mask RCNN低2%,比SSD高2%;實(shí)時(shí)性方面,YOLOv3幀率是Mask RCNN的20倍,較SSD提高16%,且小目標(biāo)檢出率達(dá)到81%;綜合來(lái)看,YOLOv3綜合性能最好,效果最優(yōu);而改進(jìn)版YOLOv3在精度方面高于Mask RCNN,且在視頻檢測(cè)方面的幀率(FPS)上每秒處理24幀圖像,較原版YOLOv3提升了66.7%,且小目標(biāo)檢出率提升了7.4%,每百?gòu)垐D的小目標(biāo)檢出為87張,體現(xiàn)出本模型優(yōu)越的性能,因此綜合來(lái)看,本文提出的改進(jìn)版YOLOv3算法能夠在工業(yè)上指針式儀表檢測(cè)任務(wù)中,比原版算法更好,更符合工業(yè)環(huán)境下的檢測(cè)需求。
表4 IOU閾值為0.5時(shí)各算法的評(píng)估結(jié)果對(duì)比
本文選取以上4種算法進(jìn)行實(shí)際的檢測(cè)指針式儀表,以更直觀感受各算法的優(yōu)劣和效果,比較各算法使用的性能。
其中圖9為近處的半盤式(即刻度區(qū)約占表盤一半)指針式儀表,圖10為經(jīng)過(guò)局部放大后的遠(yuǎn)處整盤式(即刻度區(qū)覆蓋整個(gè)儀表表盤)指針式儀表圖像;圖(a)~圖(d)分別為SSD、Mask RCNN、YOLOv3、改進(jìn)YOLOv3的檢測(cè)效果圖像,圖像上附有各算法識(shí)別概率大小和儀表預(yù)測(cè)框的定位情況。
由圖9、圖10可知,各算法都能準(zhǔn)確預(yù)測(cè),框出不同的指針式儀表表盤,但SSD準(zhǔn)確率不高,對(duì)表盤的檢測(cè)框偏差較大;Mask RCNN通過(guò)實(shí)例分割進(jìn)行儀表盤預(yù)測(cè)較為精準(zhǔn),但失去了一些邊界信息;原版YOLOv3對(duì)遠(yuǎn)處儀表盤的小目標(biāo)檢測(cè)準(zhǔn)確率低;而改進(jìn)版YOLOv3可以精確檢測(cè)出近處的半盤式儀表,也能快速準(zhǔn)確地檢測(cè)小目標(biāo)的整盤式儀表。通過(guò)實(shí)驗(yàn)結(jié)果可看出,本文提出的改進(jìn)版YOLOv3的準(zhǔn)確性、實(shí)時(shí)性和損失率基本已達(dá)到預(yù)期效果,并驗(yàn)證了這些思路和方法的可行性,能夠?yàn)楣I(yè)上的指針式儀表檢測(cè)問(wèn)題提供更優(yōu)秀的方案。
圖9 近處的半盤式指針式儀表(5 m)
圖10 遠(yuǎn)處的整盤式指針式儀表(10 m 局部放大)
本文提出一種基于改進(jìn)YOLOv3的工業(yè)指針式儀表檢測(cè)識(shí)別方法。本算法通過(guò)Mini Batch Kmeans聚類算法對(duì)數(shù)據(jù)集聚類找出更合適樣本的先驗(yàn)框,并設(shè)計(jì)新?lián)p失函數(shù)與使用輕量級(jí)網(wǎng)絡(luò)MobileNet模型框架來(lái)進(jìn)行多尺度訓(xùn)練、預(yù)測(cè)。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的YOLOv3算法在保證較高準(zhǔn)確率的同時(shí)能夠有快速的檢測(cè)速率,能夠較好檢測(cè)出半盤式、整盤式等不同的指針式儀表表盤,且訓(xùn)練耗時(shí)短,對(duì)小目標(biāo)檢測(cè)定位效果提升明顯,該方法具有較好的魯棒性和實(shí)用性,能夠滿足在算力有限的計(jì)算機(jī)上完成指針式儀表的自動(dòng)檢測(cè)任務(wù),也將為未來(lái)的指針式儀表指針提取及讀數(shù)工作提供思路。