高 楊 楊魯江 高 平
(浙江中控技術(shù)股份有限公司)
目前,目標(biāo)檢測(cè)算法有兩個(gè)研究方向:一是基于手工特征的傳統(tǒng)目標(biāo)檢測(cè)算法[1],另一個(gè)是基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法[2]。2012年之前,大多是通過先驗(yàn)知識(shí)設(shè)計(jì)的人工特征進(jìn)行目標(biāo)檢測(cè)研究,隨后深度學(xué)習(xí)技術(shù)被應(yīng)用到目標(biāo)檢測(cè)算法中,算法性能較之前有了很大提升。
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征,能夠?qū)W習(xí)圖像更深層次的特征和語義信息,對(duì)圖像像素分布進(jìn)行很好的描述。 因其對(duì)于圖像特征強(qiáng)大的學(xué)習(xí)能力,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法漸漸取代了傳統(tǒng)目標(biāo)檢測(cè)算法成為目標(biāo)檢測(cè)領(lǐng)域的主流方法。 基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為兩個(gè)研究方向:一是先生成可能包含待檢測(cè)物體的候選框,然后進(jìn)行細(xì)粒度物體檢測(cè)的兩步式目標(biāo)檢測(cè)算法;另一個(gè)是直接在網(wǎng)絡(luò)中提取特征來預(yù)測(cè)物體分類和位置的一步式目標(biāo)檢測(cè)算法。 實(shí)際場(chǎng)景的目標(biāo)檢測(cè)對(duì)檢測(cè)速度有較高的要求,兩步式目標(biāo)檢測(cè)算法可以保證不錯(cuò)的檢測(cè)精度,但不能滿足實(shí)時(shí)需求,因此一般采用一步式目標(biāo)檢測(cè)算法進(jìn)行目標(biāo)檢測(cè)。 一步式目標(biāo)檢測(cè)算法就是運(yùn)用回歸思想直接在網(wǎng)絡(luò)中提取特征來預(yù)測(cè)物體分類和位置,主要包括YOLO系列和SSD系列[3]。 YOLO的提出使得目標(biāo)檢測(cè)在工業(yè)應(yīng)用上有了很大的進(jìn)步,包括巡檢機(jī)器人、工業(yè)零件計(jì)數(shù)、工業(yè)缺陷檢測(cè)及人臉識(shí)別等。
筆者基于YOLOv3[4]設(shè)計(jì)合適的網(wǎng)絡(luò)結(jié)構(gòu),比較Darknet-19和Darknet-53,提取各自的優(yōu)點(diǎn)組合成更好的特征提取網(wǎng)絡(luò),加強(qiáng)目標(biāo)提取能力。 采用合適的分類損失函數(shù)和回歸損失函數(shù)對(duì)損失函數(shù)進(jìn)行提升,并采用效果較好的損失函數(shù)使整個(gè)目標(biāo)檢測(cè)算法在保證檢測(cè)精度的前提下有更快的檢測(cè)速度。
YOLO將回歸思想運(yùn)用到目標(biāo)檢測(cè)算法上,是一個(gè)端到端的目標(biāo)檢測(cè)模型[5],不 像R-CNN[6]系列目標(biāo)檢測(cè)算法需要先生成目標(biāo)候選區(qū)域,再進(jìn)行目標(biāo)分類。 對(duì)于輸入的圖像數(shù)據(jù),YOLO只需“看”一次就能得到圖像的目標(biāo)類別和位置信息,加快了目標(biāo)檢測(cè)速度。 YOLO也存在明顯不足,即檢測(cè)精度相較于兩步式目標(biāo)檢測(cè)算法有一定的下降,物體的定位也不夠準(zhǔn)確,對(duì)于小目標(biāo)和密集目標(biāo)檢測(cè)都不夠優(yōu)秀。
YOLOv2 在YOLO 的基礎(chǔ)上做了很大的改進(jìn)[7]。 網(wǎng)絡(luò)結(jié)構(gòu)使用Darknet-19,精度比VGGNet[8]好, 浮點(diǎn)運(yùn)算量減少約1/5, 進(jìn)一步提升了速度。YOLOv2使用了批歸一化, 通過均衡輸入數(shù)據(jù)分布,標(biāo)準(zhǔn)化輸出層,有助于緩解梯度消失和梯度爆炸問題,使得mAP(mean Average Precision)明顯提升。 YOLOv2借鑒了RPN網(wǎng)絡(luò)錨框[9]的思想,在每個(gè)網(wǎng)格中設(shè)置錨框, 使得召回率明顯提升,運(yùn)用聚類思想對(duì)訓(xùn)練集中標(biāo)注的邊框進(jìn)行分析,可以獲得更好的錨框尺寸。 YOLOv2還增加了一個(gè)passthrough層來重組高層低分辨率特征圖與低層高分辨率特征圖。 雖然YOLOv2采取了一些手段來增強(qiáng)對(duì)小目標(biāo)的檢測(cè)能力,整體效果有限提升, 但其在COCO數(shù)據(jù)集上的表現(xiàn)效果不如SSD512。
YOLOv3在YOLOv2的基礎(chǔ)上提出了一些改進(jìn)策略, 主要包括新的網(wǎng)絡(luò)結(jié)構(gòu)和借鑒FPN的思路,增強(qiáng)了對(duì)小目標(biāo)檢測(cè)的能力。
如圖1 所示,YOLOv3 使用的網(wǎng)絡(luò)結(jié)構(gòu)在Darknet-19的基礎(chǔ)上繼續(xù)改進(jìn), 提出了Darknet-53, 其中引入了殘差網(wǎng)絡(luò)中的跨層加和操作,使網(wǎng)絡(luò)達(dá)到更深的層次。 整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)中只有卷積層,沒有了池化層和全連接層。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv2引入passthrough層以增強(qiáng)模型對(duì)小目標(biāo)的檢測(cè)能力,但效果并不明顯,經(jīng)分析該方法仍在一個(gè)尺度上檢測(cè),對(duì)于小目標(biāo)還是沒有合適的感受野。
YOLOv3則借鑒FPN的思想引入多尺度預(yù)測(cè)。從圖1可以看到Y(jié)OLOv3使用了32倍、16倍和8倍降采樣3個(gè)尺度預(yù)測(cè), 極大地提升了對(duì)小目標(biāo)的檢測(cè)能力, 使其總體檢測(cè)性能較YOLOv2有了較大的提升。
YOLO系列的損失函數(shù)大致分為回歸損失、置信度誤差損失和分類損失。 3個(gè)系列也存在一定的差異, 主要是具體損失函數(shù)選擇有所區(qū)別。YOLO是沒有錨框的, 對(duì)于回歸損失是非常粗暴的,3個(gè)部分都使用了平方差損失函數(shù),YOLO損失函數(shù)對(duì)于目標(biāo)坐標(biāo)的預(yù)測(cè)更加重視,賦予了較大的權(quán)重,對(duì)于沒有目標(biāo)的邊框置信度預(yù)測(cè)賦予較小的權(quán)重。
YOLOv2總體的損失函數(shù)和YOLO的沒有太大的差異, 主要差別就在于坐標(biāo)損失函數(shù)的計(jì)算, 坐標(biāo)x,y的誤差由相對(duì)于輸入圖像的偏移坐標(biāo)誤差的均方改為相對(duì)于網(wǎng)格的偏移坐標(biāo)誤差的均方,YOLOv2的長(zhǎng)寬放縮因子采用取對(duì)數(shù)的方法。
YOLOv3的損失函數(shù)是在YOLOv2的基礎(chǔ)上進(jìn)行一些改變,運(yùn)用Sigmoid[10]函數(shù)使得每個(gè)類別的分類更加獨(dú)立,減少類別之間的影響。 分類損失不再采用平方差損失函數(shù),而是采用了二分類的交叉熵?fù)p失函數(shù),可避免Sigmoid函數(shù)后損失函數(shù)學(xué)習(xí)率降低的問題,加快收斂速度。 YOLOv3的損失函數(shù)可以分為4個(gè)部分:中心坐標(biāo)誤差、寬高坐標(biāo)誤差、置信度誤差和分類誤差,這4個(gè)部分對(duì)整個(gè)網(wǎng)絡(luò)損失函數(shù)的影響不同,所以分配了不同的權(quán)重,λcoord是中心坐標(biāo)誤差和寬高坐標(biāo)誤差的權(quán)重,λobj是含目標(biāo)的置信度的權(quán)重,λnoobj是不含目標(biāo)的置信度的權(quán)重,λcls是分類誤差的權(quán)重,其計(jì)算式如下:
經(jīng)過不斷發(fā)展,YOLO系列對(duì)于目標(biāo)檢測(cè)的效果越來越好, 工業(yè)應(yīng)用越來越廣闊。 筆者以YOLOv3為基礎(chǔ)進(jìn)行改進(jìn), 以滿足實(shí)際場(chǎng)景的目標(biāo)檢測(cè):采用合適的網(wǎng)絡(luò)結(jié)構(gòu)保證目標(biāo)檢測(cè)精度且不犧牲檢測(cè)速度, 針對(duì)YOLOv3的召回率不足和定位精度不夠的問題,采用優(yōu)秀的損失函數(shù)提升召回率和定位精度。
YOLOv3 的 網(wǎng) 絡(luò) 結(jié) 構(gòu) 是Darknet-53,Darknet-53的精度比Darknet-19要高, 但同時(shí)也犧牲了目標(biāo)檢測(cè)速度,這也是目標(biāo)檢測(cè)算法中常見的問題之一,目標(biāo)檢測(cè)精度的提升常常會(huì)犧牲掉檢測(cè)速度,反之亦然。 對(duì)于目標(biāo)檢測(cè)的實(shí)際場(chǎng)景,目標(biāo)檢測(cè)速度的要求是嚴(yán)格的,本項(xiàng)目中的目標(biāo)種類相對(duì)較少, 所以選擇以網(wǎng)絡(luò)結(jié)構(gòu)Darkneto-19為基礎(chǔ),進(jìn)行一些修改來適應(yīng)實(shí)際場(chǎng)景的目標(biāo)檢測(cè)。
Darknet-19網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)思路與VGGNet相似,主要由3×3、1×1的卷積層和2×2的最大池化層組成。 Darknet-19中用兩個(gè)卷積層和兩個(gè)最大池化層實(shí)現(xiàn)了4倍的降采樣, 筆者簡(jiǎn)化了這一過程(圖2),將第1個(gè)卷積層的步長(zhǎng)設(shè)為2用作降采樣,再加上1個(gè)最大池化層就實(shí)現(xiàn)了4倍的降采樣,相比于原來的網(wǎng)絡(luò)舍棄了1個(gè)卷積層和1個(gè)最大池化層,減少了一些參數(shù)量,用卷積層實(shí)現(xiàn)降采樣和最大池化沒有區(qū)別,而且可以讓網(wǎng)絡(luò)自己選擇拋棄掉一些信息,池化不能保證拋棄的點(diǎn)不包含所需要的信息,尤其是在網(wǎng)絡(luò)前幾層包含的信息量足夠多的情況下。 后面的網(wǎng)絡(luò)與原網(wǎng)絡(luò)相似,Darknet-19和Darknet-53最后得到的特征圖與輸入圖片相比都進(jìn)行了32倍的降采樣, 因此放棄passthrough層的設(shè)計(jì),參照Darknet-53的多尺度預(yù)測(cè),在Darknet-19實(shí)現(xiàn)多尺度預(yù)測(cè),增強(qiáng)模型的綜合檢測(cè)能力。
圖2 改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)
損失函數(shù)的設(shè)計(jì)主要有兩點(diǎn): 一是針對(duì)YOLOv3的召回率不足;二是針對(duì)YOLOv3的定位不夠精確。 總的來說,就是對(duì)分類損失和回歸損失分別做一些改進(jìn),提升改進(jìn)模型的性能。
2.2.1 分類損失
分類損失中,用Focalloss代替YOLOv3的二分類交叉熵?fù)p失函數(shù)。
Focalloss是2017年何凱明團(tuán)隊(duì)提出的損失函數(shù),當(dāng)時(shí)用于Retinanet的訓(xùn)練[11]。 Focalloss的提出主要是為了提升一步式目標(biāo)檢測(cè)算法的準(zhǔn)確度,他們認(rèn)為一步式目標(biāo)檢測(cè)算法的準(zhǔn)確度往往不如兩步式目標(biāo)檢測(cè)算法的主要原因是樣本的類別不平衡。
樣本的類別不平衡主要可以分為兩個(gè)方面:一是正、負(fù)樣本不平衡;二是難分和易分樣本不平衡,負(fù)樣本數(shù)量多,占總損失中的大部分,而負(fù)樣本大多是容易分類的,使得模型的優(yōu)化方向不符合期待, 易分樣本會(huì)使模型收斂速度加快,但這不一定是好的模型,需要把難分樣本訓(xùn)練好。
Focalloss的引入可以很好地緩解樣本類別不平衡,該損失函數(shù)是在交叉熵?fù)p失函數(shù)的基礎(chǔ)上進(jìn)行改進(jìn)的,引入兩個(gè)新參數(shù)γ和α,具體形式為:
其中,LFl是Focalloss損失函數(shù); 參數(shù)y′表示樣本屬于正確類別的概率; 參數(shù)γ對(duì)損失函數(shù)有縮放作用,可以減少易分類樣本的損失,使模型更關(guān)注困難的、錯(cuò)分的樣本,保證模型不會(huì)因?yàn)樘嘁追诸悩颖径a(chǎn)生偏移; 參數(shù)α則是一個(gè)平衡因子,主要負(fù)責(zé)平衡正、負(fù)樣本本身的數(shù)量比例不均。
將Focalloss應(yīng)用到一步式目標(biāo)檢測(cè)算法,通過試驗(yàn)使得一步式目標(biāo)檢測(cè)算法的檢測(cè)精度可以和兩步式目標(biāo)檢測(cè)算法相媲美,而且還保留了一步式目標(biāo)檢測(cè)算法的檢測(cè)速度優(yōu)勢(shì)。
提出YOLOv3的學(xué)者也嘗試使用Focalloss,但試驗(yàn)發(fā)現(xiàn)對(duì)于目標(biāo)檢測(cè)精度的提升不明顯,甚至略有下降,對(duì)于召回率有一定的提升。 后來發(fā)現(xiàn)可能是沒有用對(duì)地方, 經(jīng)驗(yàn)證,YOLOv3使用Focalloss后在Pascal VOC上的mAP可以增加一個(gè)點(diǎn)左右,效果已經(jīng)很明顯了。
而對(duì)于實(shí)際場(chǎng)景的目標(biāo)檢測(cè),由于一些目標(biāo)會(huì)使前景與后景區(qū)分不明顯, 所以Focalloss對(duì)于這些目標(biāo)檢測(cè)應(yīng)用會(huì)有很好的效果。
2.2.2 回歸損失
目標(biāo)檢測(cè)算法中用于邊框回歸的損失函數(shù)有很多, 從L1損失函數(shù)到Faster R-CNN的Smooth L1損失函數(shù),再到Y(jié)OLO的均方差損失函數(shù),它們對(duì)邊框回歸都有不錯(cuò)的效果, 但是YOLO系列的定位精度一直不高。 YOLO系列采用的均方差損失函數(shù)主要有兩方面的不足:一是均方差損失函數(shù)對(duì)于邊界框4個(gè)點(diǎn)坐標(biāo)的預(yù)測(cè)是獨(dú)立的, 與正常情況不符; 二是均方差損失函數(shù)對(duì)于4個(gè)坐標(biāo)沒有實(shí)現(xiàn)正則化。 因此,有了很多對(duì)于邊框回歸損失函數(shù)的研究,不再將損失函數(shù)局限在“距離”的研究上,檢測(cè)框本身就是一個(gè)矩形框。 目標(biāo)檢測(cè)任務(wù)試圖獲得更準(zhǔn)確的預(yù)測(cè)框即較大的IoU值, 所以將IoU通過某種映射直接作為損失函數(shù)提出來。 2016年,曠視科技提出了IoUloss(LossIoU=-ln(IoU),不再將各個(gè)坐標(biāo)做獨(dú)立預(yù)測(cè),而是將其看成一個(gè)整體,使得到的預(yù)測(cè)框更加準(zhǔn)確,訓(xùn)練可以更快收斂。 但是IoUloss還是存在一定的局限性,該損失函數(shù)只能適應(yīng)很少的目標(biāo),當(dāng)時(shí)提出來主要運(yùn)用在人臉檢測(cè)上。 如果兩個(gè)框不重疊,那么IoU=0,對(duì)應(yīng)的損失函數(shù)值為0,沒有了梯度反傳,致使損失函數(shù)無法對(duì)其進(jìn)一步優(yōu)化,而且無法反映出兩個(gè)框到底距離多遠(yuǎn)。
2019年,斯坦福大學(xué)提出損失函數(shù)GIoUloss[12]解決IoUloss存在的問題(IoUloss無法辨別不同方式的對(duì)齊,如方向不一致等)。 檢測(cè)框和標(biāo)定框的空間位置關(guān)系如圖3所示, 當(dāng)兩個(gè)框是水平平移相交或是垂直方向相交,對(duì)應(yīng)的重合度有著很好的效果,當(dāng)存在第3種情況時(shí),重合度效果不好導(dǎo)致最終的回歸效果不理想,GIoUloss可以很好地解決這類問題。
圖3 檢測(cè)框和標(biāo)定框的空間位置關(guān)系
為了驗(yàn)證GIoUloss的優(yōu)點(diǎn),將其與L1、L2損失函數(shù)和IoUloss作對(duì)比,具體如圖4所示,圖4a表示兩個(gè)矩形框的兩個(gè)頂點(diǎn)坐標(biāo)計(jì)算L2范數(shù)距離、IoU和GIoU的結(jié)果,可見3個(gè)L2范數(shù)在距離相同的情況下,第3個(gè)的IoU顯然比前兩個(gè)要高,從主觀上來說也是第3個(gè)的效果最好。 圖4b表示矩形框的中點(diǎn)坐標(biāo)和長(zhǎng)寬信息計(jì)算L1范數(shù)距離、IoU和GIoU的結(jié)果, 可見3個(gè)L1范數(shù)在距離相同的情況下,也是第3個(gè)的效果最好。 根據(jù)上述對(duì)比結(jié)果提出GIoUloss。
圖4 范數(shù)、IoU和GIoU結(jié)果對(duì)比
GIoU的計(jì)算比較容易理解,對(duì)于兩個(gè)矩形框A、B,可以算出其最小凸集C,計(jì)算最小凸集C去掉A、B并集后的面積與C自身面積的比值, 用IoU減去比值就可以得出GIoU:
這樣設(shè)計(jì)后,GIoU有很多不錯(cuò)的性質(zhì),GIoU可以作為一個(gè)距離,具有非負(fù)性,用于損失函數(shù)就十分方便。 IoU的范圍是0~1,而GIoU的范圍則是-1~1,擁有了對(duì)稱的區(qū)間值。 GIoU中引入了最小凸集, 使得兩個(gè)框不重合時(shí)依然可以進(jìn)行優(yōu)化。 總的來說,GIoUloss有著IoUloss的所有優(yōu)點(diǎn),而且克服了IoUloss的缺點(diǎn)。
e. 計(jì)算最終的損失值,LGIoU=1-GIoU。
因此,GIoUloss作為邊框回歸損失函數(shù)可以取得良好的效果。 將YOLOv3中的均方差損失函數(shù)替換為GIoUloss, 有效提升了模型的邊框回歸性能。
訓(xùn)練過程主要在PascalVOC數(shù)據(jù)集[13]進(jìn)行訓(xùn)練測(cè)試, 這一部分主要是獲得改進(jìn)算法在PascalVOC數(shù)據(jù)集上的結(jié)果,將改進(jìn)算法和YOLOv3、YOLOv2進(jìn)行對(duì)比, 隨后在自己制作的煙火數(shù)據(jù)集上驗(yàn)證改進(jìn)算法在這種實(shí)際場(chǎng)景中的效果。
在PascalVOC數(shù)據(jù)集訓(xùn)練前,要先獲得Darknet-19在ImageNet數(shù)據(jù)集上的預(yù)訓(xùn)練模型的參數(shù),再用改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行fine tuning,隨后進(jìn)行PascalVOC數(shù)據(jù)集的訓(xùn)練。
訓(xùn)練參數(shù)設(shè)置為:輸入圖片像素為416×416;為了保證最后特征圖的尺寸, 圖像飽和度范圍saturation設(shè)為1.5,圖像曝光度exposure設(shè)為1.5,圖像色調(diào)范圍hue設(shè)為0.1,類別20,置信度閾值0.3;動(dòng)量設(shè)為0.9,權(quán)重衰減0.000 5,將Batch Size設(shè)為16; 采用批量隨機(jī)梯度下降法進(jìn)行模型優(yōu)化,設(shè)置初始學(xué)習(xí)率0.001,在迭代次數(shù)達(dá)到40 000次時(shí)學(xué)習(xí)率衰減10倍, 迭代次數(shù)達(dá)到45 000次時(shí)學(xué)習(xí)率再衰減10倍。
在煙火數(shù)據(jù)集上進(jìn)行訓(xùn)練階段, 將用PascalVOC數(shù)據(jù)集訓(xùn)練得到的模型作為煙火預(yù)訓(xùn)練模型,將輸入圖片的尺寸轉(zhuǎn)化為416×416;考慮內(nèi)存原因,Batch Size設(shè)為8;其余參數(shù)與上述訓(xùn)練過程相似;學(xué)習(xí)率變化也進(jìn)行修改,在迭代次數(shù)達(dá)到10 000次時(shí)學(xué)習(xí)率衰減10倍, 在迭代次數(shù)達(dá)到20 000次時(shí)學(xué)習(xí)率再衰減10倍。 學(xué)習(xí)率衰減主要是保證模型一開始在較大的學(xué)習(xí)率下可以進(jìn)行快速的梯度下降,保證訓(xùn)練速度,動(dòng)態(tài)調(diào)整學(xué)習(xí)率可以使損失函數(shù)在小范圍內(nèi)周旋,獲得滿意的值。
2.4.1 PascalVOC數(shù)據(jù)集試驗(yàn)結(jié)果
為了驗(yàn)證改進(jìn)算法的有效性, 用PascalVOC數(shù)據(jù)集對(duì)改進(jìn)算法進(jìn)行訓(xùn)練和測(cè)試。 將改進(jìn)算法與YOLOv3、YOLOv2比較, 評(píng)價(jià)指標(biāo)采用mAP和FPS,mAP是各個(gè)類別AP的平均值,AP表示精確率和召回率曲線下的面積,F(xiàn)PS表示每秒傳輸幀數(shù)。 試驗(yàn)結(jié)果見表1。 可以看出,改進(jìn)算法在PascalVOC數(shù)據(jù)集上的檢測(cè)精度比YOLOv3的降低了1.4%, 主要原因是網(wǎng)絡(luò)結(jié)構(gòu)不同,Darknet-53比本項(xiàng)目網(wǎng)絡(luò)結(jié)構(gòu)在檢測(cè)精度上表現(xiàn)更好,但本項(xiàng)目網(wǎng)絡(luò)結(jié)構(gòu)模型內(nèi)存比Darknet-53更小且有更快的檢測(cè)速度, 可以用于實(shí)際場(chǎng)景的目標(biāo)檢測(cè)。
表1 算法在PascalVOC數(shù)據(jù)集的試驗(yàn)結(jié)果
2.4.2 煙火數(shù)據(jù)集試驗(yàn)結(jié)果
對(duì)于煙火目標(biāo)檢測(cè)的評(píng)價(jià)指標(biāo),主要采用精確率和召回率。 分別用YOLOv3和改進(jìn)算法在數(shù)據(jù)集上進(jìn)行訓(xùn)練和測(cè)試, 評(píng)價(jià)指標(biāo)采用精確率、召回率和FPS,試驗(yàn)結(jié)果見表2。 可以看出,改進(jìn)算法在針對(duì)煙火目標(biāo)檢測(cè)時(shí)有更好的效果,精確率比YOLOv3提高了2.2%,召回率比YOLOv3提高了4.5%。 精確率提升是因?yàn)楸卷?xiàng)目只用于兩個(gè)目標(biāo)的檢測(cè),改進(jìn)算法更適合兩個(gè)目標(biāo)的檢測(cè)。 召回率的提升對(duì)于煙火實(shí)際場(chǎng)景的目標(biāo)檢測(cè)更有意義。
表2 煙火目標(biāo)試驗(yàn)結(jié)果對(duì)比
2.4.3 試驗(yàn)效果展示
在兩個(gè)數(shù)據(jù)集上驗(yàn)證后,改進(jìn)算法都取得了不錯(cuò)的效果, 在PascalVOC數(shù)據(jù)集上的試驗(yàn)效果如圖5所示, 自己制作的煙火數(shù)據(jù)集上的試驗(yàn)效果如圖6所示。
圖5 改進(jìn)算法在PascalVOC數(shù)據(jù)集的應(yīng)用效果
圖6 改進(jìn)算法在煙火數(shù)據(jù)集的應(yīng)用效果
基于YOLOv3 改進(jìn)的目標(biāo)檢測(cè)算法,以YOLOv3為基礎(chǔ), 改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)適應(yīng)實(shí)際場(chǎng)景目標(biāo)檢測(cè),并且使浮點(diǎn)數(shù)運(yùn)算更少,有效提升了檢測(cè)速度;選取更合適的分類損失函數(shù)和回歸損失函數(shù), 使得模型整體性能與YOLOv3相似且檢測(cè)速度更快;通過兩個(gè)數(shù)據(jù)集的試驗(yàn)驗(yàn)證了改進(jìn)檢測(cè)算法在實(shí)際場(chǎng)景有著更好的檢出率,而且檢測(cè)的實(shí)時(shí)性也能夠滿足要求,在煙火這種實(shí)際場(chǎng)景檢測(cè)中有不錯(cuò)的效果。
對(duì)于工作中遇到的目標(biāo)檢測(cè)方面的問題,可以采用筆者方法改善,對(duì)于流程圖中的一些物體識(shí)別會(huì)起到很好的預(yù)研工作,為流程圖的轉(zhuǎn)化工作提供一種可行方法,未來對(duì)視頻分析也會(huì)有很好的引導(dǎo)作用。