亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于輕量級神經(jīng)網(wǎng)絡的目標檢測研究*

        2022-08-11 08:41:10黃志強張世義
        計算機工程與科學 2022年7期
        關鍵詞:檢測

        黃志強,李 軍,張世義

        (1.重慶交通大學機電與車輛工程學院,重慶 400074;2.重慶交通大學航運與船舶工程學院,重慶 400074)

        1 引言

        目標檢測是計算機視覺的重要組成部分,在機器人導航、安防攝像頭的監(jiān)測、工業(yè)領域的故障診斷、交通道路中車流量統(tǒng)計和圖像中的文字提取等領域中廣泛使用[1]。現(xiàn)有的目標檢測算法由于網(wǎng)絡層數(shù)比較深,雖然在大型硬件設備上能夠很好地檢測出理想環(huán)境中的各類物體,但是將其移植至小型設備時會由于神經(jīng)網(wǎng)絡的參數(shù)量過大,導致設備運行緩慢,檢測精度和檢測速度均大幅降低。

        最初的目標檢測是通過檢測物體的邊緣特征、顏色特征和形狀特征等做出判斷。Razalli等[2]采用HSV色彩空間和支持向量機SVM(Support Vector Machine)相結合的顏色模型來表征緊急車輛警報燈,保證交通系統(tǒng)能對緊急情況做出及時反應,縮減救援時間。Ji等[3]針對傳統(tǒng)的方向梯度直方圖HOG(Histogram of Oriented Gradient)算法提取圖像的HOG特征時無法實現(xiàn)快速準確檢測的情況,提出使用4個大小不同的滑動窗口對其進行優(yōu)化,從而達到較高的準確率。Dubey等[4]提出將SVM作用到基于顏色定位與分類的定向梯度直方圖上,從而實現(xiàn)對某些特征的準確定位與分類。

        傳統(tǒng)的目標檢測算法往往存在時間復雜度高、魯棒性較差等缺點。隨著機器學習技術的快速發(fā)展,實時性好、準確率高的卷積神經(jīng)網(wǎng)絡技術開始廣泛應用在目標檢測中[5]。目前主流的檢測算法有2種。第1種是以R-CNN[6]為代表的兩階段檢測算法,先在圖像上進行選擇性的搜索以獲得最有可能包含目標物體的感興區(qū)域框,之后對不同的感興區(qū)域框做大小調(diào)整,再將調(diào)整后的感興區(qū)域框傳輸至CNN分類器中進行分類檢測,最后通過邊界框(Bounding Box)回歸預測每個已識別區(qū)域的邊界框。主流的兩階段檢測算法有Fast R-CN-N[7]、Faster R-CNN[8]和Mask R-CNN[9]等。第2種是以YOLO[10]為代表的一階段檢測算法,該算法將輸入圖像直接進行簡單的區(qū)域劃分,然后在劃分后的區(qū)域中進行分類和定位,在精度損失能夠接受的情況下,檢測速度遠遠快于兩階段檢測算法。主流的一階段檢測算法有SSD[11]、YOL-O9000[12]、YOLOv3[13]和YOLOv4[14]。

        為了適應小型設備實時檢測與低運算量的要求,本文基于一階段檢測算法中YOLOv4的CSPDarknet53為神經(jīng)網(wǎng)絡的主干框架,提出一種改進的CSPDarknet15目標檢測算法。首先,對原始的通過K-means聚類算法生成錨框(Anchor Box)的方法進行改進,由于K-means聚類算法受選取的初始點影響比較大,改進后的聚類算法先隨機選取一個聚類中心,然后計算每個樣本與該中心的距離值,并將該值作為被選為下一個聚類中心的概率,將整個樣本遍歷完后獲取最合適的錨框。然后,考慮到當神經(jīng)網(wǎng)絡的輸入值過大或過小時,Sigmoid激活函數(shù)會產(chǎn)生梯度消失,而ReLU激活函數(shù)會造成部分神經(jīng)元“死亡”,降低網(wǎng)絡的識別率,因而本文采用在負區(qū)間存在一定梯度值的LeakyReLU激活函數(shù)。同時,考慮到Anchor Box和Bounding Box之間的中心距和寬高比存在一定的相關性,采用LCIoU損失函數(shù)代替原始的LIoU損失函數(shù)。最后,在VOC2007數(shù)據(jù)集上訓練該神經(jīng)網(wǎng)絡。

        2 卷積神經(jīng)網(wǎng)絡模型

        CSPDarknet53神經(jīng)網(wǎng)絡是由Bochkovskiy等[14]在Darknet53神經(jīng)網(wǎng)絡基礎上提出的一種端到端的檢測算法,該算法延續(xù)了殘差模塊的思想[15],在保證網(wǎng)絡有深度的同時能夠降低梯度消失帶來的影響,一次性檢測出物體的類別和位置,大大提高了物體檢測速度。本文提出的算法調(diào)整了CSPDarknet53網(wǎng)絡結構,將原始的53層網(wǎng)絡結構改為15層,前2個模塊采用Darknet網(wǎng)絡模塊,對輸入圖像不斷進行卷積操作,增加通道數(shù),縮小圖像的尺寸;第3~5個模塊采用CSP(Cross Stage Partial)殘差網(wǎng)絡模塊,通過殘差塊與卷積后的邊相連接,提高了目標物體特征的重用性,減少了計算的參數(shù)量;最后1個模塊為卷積層。在對物體進行預測時,分別采用13×13和26×26 2種不同尺度的融合特征圖對目標進行檢測,并且將最后1個模塊與第4個模塊目標物的特征進行融合,提高了網(wǎng)絡的檢測能力。改進的神經(jīng)網(wǎng)絡結構如圖1所示,殘差網(wǎng)絡結構如圖2所示。

        Figure 1 CSPDarknet15 network structure圖1 CSPDarknet15網(wǎng)絡結構

        Figure 2 Residual network structure圖2 殘差網(wǎng)絡結構

        參照Faster R-CNN算法的思想,本文引入Anchor Box對YOLO Head的結果進行相應預測,Anchor Box的大小由聚類算法[16]對訓練集中所有物體的真實邊界框進行聚類獲得。假設網(wǎng)絡的Bounding Box與Anchor Box沒有完全重合,如圖3所示,具有一定的偏差,其偏差大小為tx,ty,tw和th,則Bounding Box的最終表達式如式(1)~式(4)所示:

        bx=σ(tx)+cx

        (1)

        by=σ(ty)+cy

        (2)

        bw=pwetw

        (3)

        bh=pheth

        (4)

        其中,bx,by,bw和bh為Bounding Box的中心坐標、寬度和高度;cx和cy為該單元格相對于初始坐標的位置;pw和ph為Anchor Box的寬度和高高;σ(·)為Sigmoid激活函數(shù)。

        Figure 3 Position coordinate map of Bounding Box and Anchor Box圖3 Bounding Box與Anchor Box的位置坐標圖

        2.1 LIoU損失函數(shù)的改進

        在目標檢測與定位任務中,研究人員常常利用均方誤差MSE(Mean Square Error)損失函數(shù)對Bounding Box進行回歸,而該方法存在對于相同的輸入可能會有不同輸出的問題,并且該函數(shù)對目標的尺寸比較敏感,研究人員通常采用對目標的長和寬進行開根號操作來降低尺寸對MSE損失函數(shù)回歸準確性的影響,但并沒有從根本上解決該問題。

        針對MSE損失函數(shù)的不足,研究人員提出了通過計算Anchor BoxA與Bounding BoxB交并IoU(Intersection over Union)[17]的梯度來微調(diào)Bounding Box的位置,如圖4所示。

        Figure 4 Intersection region of anchor box A and bounding box B圖4 錨框A和邊界框B相交區(qū)域

        其中,A∩B表示Anchor BoxA與Bounding BoxB之間的重疊區(qū)域,如式(5)和式(6)所示,當2個邊界框的重疊度使得LIoU損失函數(shù)的取值大于某個閾值時,則判定當前的Bounding Box有效,當2個邊界框不存在重疊區(qū)域時,LIoU損失函數(shù)取值為1。

        (5)

        LIoU=1-IoU

        (6)

        由于相鄰較遠的無交集的邊界框與相鄰較近的無交集的邊界框的LIoU損失函數(shù)取值相同,這樣就會造成損失函數(shù)失去梯度方向,無法優(yōu)化Bounding Box的位置。同時,考慮到2個邊界框的寬和高存在一定的相似性,本文提出在原損失函數(shù)的基礎上添加懲罰項得到LCIoU損失函數(shù)[18],當2個邊界框距離越遠時,懲罰項取值越大,從而引導損失函數(shù)的梯度下降方向。該損失函數(shù)的計算如式(7)~式(10)所示:

        (7)

        (8)

        (9)

        LCIoU=1-IoU+RCIoU

        (10)

        其中,b和bgt為Bounding Box與Anchor Box之間的中心點位置;ρ(·)用于計算2個中心點之間的歐氏距離;v用來度量長寬比的相似性;c表示能夠同時包含錨框和邊界框的最小閉包區(qū)域的對角線距離;wgt,hgt,w和h分別表示Bounding Box和Anchor Box的寬和高;α為權重函數(shù)。當IoU<0.5時,由于Bounding Box與Anchor Box重疊區(qū)域的減小,LCIoU損失函數(shù)中考慮的邊界框長寬比不再是損失函數(shù)回歸時的主要影響因素,因而α的值設置為0;當IoU>0.5時,為了保持2邊界框長寬比的一致性,加快損失函數(shù)的回歸,通過v來控制權重值α的大小。

        為了驗證LCIoU損失函數(shù)在本文方法中的有效性,對LCIoU損失函數(shù)與LIoU損失函數(shù)作對比實驗,CSP Darknet6分別使用2個損失函數(shù)在VOC2007數(shù)據(jù)集上訓練,實驗結果如表1所示。從表1可知,使用LCIoU損失函數(shù)對物體的檢測精度有了較明顯的提升,從原來的76.94%提升至78.61%,提高了1.67個百分點。

        Table 1 Comparison of mAP using LIoU and LCIoU loss function 表1 使用LIoU和LCIoU損失函數(shù)的mAP對比

        2.2 聚類算法的改進

        本文通過Anchor Box對卷積神經(jīng)網(wǎng)絡的輸出進行預測。Anchor Box是根據(jù)需要識別的物體形狀提前設定固定大小的預測框,Anchor Box的大小和數(shù)量將直接影響到預測時的速度和精度。通常一階段神經(jīng)網(wǎng)絡采用K-means聚類算法來獲得Anchor Box的大小。K-means聚類算法采用歐幾里得距離的平方[19]作為距離度量的標準,如式(11)所示:

        (11)

        其中,x和y表示不同的樣本點,n表示樣本的數(shù)量。K-means算法需要優(yōu)化的問題就是使得簇內(nèi)誤差平方和SSE(within-cluster Sum of Squared Errors)達到最小,如式(12)所示:

        (12)

        其中,W(k,j)表示計算第k個簇內(nèi)所有樣本與聚類中心的誤差平方和,xj表示第j個樣本,yk表示第k個簇的聚類中心。雖然K-means聚類算法收斂速度快,實現(xiàn)簡單,但由于其對初始聚類中心點的選擇較為敏感,不同的初始聚類中心會導致不同的聚類結果,且有可能是局部最優(yōu)解[20]。針對該問題,本文采用K-means++聚類算法[21],先隨機選取一個樣本作為聚類中心,計算每個樣本與其最近的一個聚類中心的距離,將該距離作為被選為下一個聚類中心的概率;然后選取下一個聚類中心,重復以上步驟直到選出K個聚類中心;最后利用這K個聚類中心重新運行標準的K-means聚類算法。由于Anchor Box自身的大小會產(chǎn)生一定的歐氏距離誤差,本文將訓練集中的真實框與Anchor Box之間的IoU作為優(yōu)化的目標函數(shù),目標函數(shù)D的計算如式(3)所示:

        (13)

        本文使用優(yōu)化后的K-means++聚類算法對數(shù)據(jù)集進行聚類分析,取K為6,最終得到Anchor Box的寬和高分別為(17,31),(42,68),(75,152),(133,289),(208,168)和(326,352)。表2展示了用不同聚類算法生成的Anchor Box在VOC2007數(shù)據(jù)集上的不同表現(xiàn),使用優(yōu)化后的K-means++聚類算法的平均精度mAP(mean Average Precision)提升了2.24個百分點,達到了80.76%。

        Table 2 Comparison of mAP using K-means and K-means++ 表2 使用K-means與K-means++的mAP對比

        2.3 激活函數(shù)改進

        激活函數(shù)的出現(xiàn)主要是為了解決數(shù)據(jù)的非線性變換,解決線性模型的表達和分類能力不足的問題。激活函數(shù)將多層神經(jīng)網(wǎng)絡中的線性變化轉(zhuǎn)換為一層神經(jīng)網(wǎng)絡,使得神經(jīng)網(wǎng)絡的多層有了實際意義,使網(wǎng)絡更加強大,還可以實現(xiàn)數(shù)據(jù)歸一化,將輸入的數(shù)據(jù)映射到某個范圍內(nèi),防止數(shù)據(jù)過大。傳統(tǒng)卷積神經(jīng)網(wǎng)絡采用Sigmoid激活函數(shù)[22],在淺層神經(jīng)網(wǎng)絡中能夠防止神經(jīng)元的輸出值發(fā)生“跳躍”,對每個輸出值進行標準化。由于深度神經(jīng)網(wǎng)絡通常具有多個網(wǎng)絡層,隨著神經(jīng)網(wǎng)絡層數(shù)的不斷加深,當輸入的值過大或者過小時,經(jīng)過Sigmoid激活函數(shù)后輸出的結果差異性較小,同時Sigmoid激活函數(shù)在此位置的導數(shù)值趨近于零,容易造成模型求解梯度消失問題。非線性激活函數(shù)ReLU能夠解決梯度消失的問題[23],雖然其在正區(qū)間的梯度始終為1,使得網(wǎng)絡的計算速度和收斂速度大大加快,但當輸入值為負值時,函數(shù)的梯度將變?yōu)?,無法進行反向傳播,造成部分神經(jīng)元“死亡”,降低了網(wǎng)絡的學習能力。針對以上缺點,本文采用LeakyReLU激活函數(shù)[24],在負區(qū)間時函數(shù)也保持著較小的梯度,對于負值的輸入也能有一定的梯度進行反向傳播,從而避免了神經(jīng)元“死亡”問題。Sigmoid激活函數(shù)、ReLU激活函數(shù)和LeakyReLU激活函數(shù)如圖5所示。

        Figure 5 Three activation functions 圖5 3種激活函數(shù)

        為了驗證ReLU和LeakyReLU激活函數(shù)的效果,本文分別使用包含不同激活函數(shù)的神經(jīng)網(wǎng)絡在VOC2007數(shù)據(jù)集上訓練,實驗結果如表3所示,使用LeakyReLU激活函數(shù)的神經(jīng)網(wǎng)絡將檢測精度提高了1.82個百分點,達到了79.54%。

        Table 3 mAP values of different activation functions表3 不同激活函數(shù)的mAP值

        3 實驗

        3.1 實驗環(huán)境及參數(shù)設置

        本次實驗采用的數(shù)據(jù)集為PASCAL VOC2007,包含有9 963幅圖像,每個數(shù)據(jù)集有20種常見的物體,是視覺處理中分類識別和檢測的一個基準數(shù)據(jù)集。該數(shù)據(jù)集中的某些圖像中的物體存在一定的遮擋,可以提高網(wǎng)絡的檢測能力。在訓練過程中,將數(shù)據(jù)集以6∶1∶3的比例隨機劃分為訓練集、驗證集和測試集,epoch設置為16,初始的學習率為0.001,圖像的輸入大小設置為416×416,權重衰減值為0.000 5,總共訓練100個epoch,取消Mosaic數(shù)據(jù)增強方法,其中先凍結50個epoch,以加快訓練速度,同時防止權值被破壞。此外,還對圖像進行反轉(zhuǎn)、平移、調(diào)整對比度,以此增加神經(jīng)網(wǎng)絡的魯棒性。實驗平臺為Windows系統(tǒng),神經(jīng)網(wǎng)絡框架使用Pytor-ch1.2,編程語言為Python3.6,硬件為Intel(R) Core(TM)i7-9750H、CPU@2.60 GHz、24 GB RAM、NVIDIA GeForce GTX1650。

        3.2 實驗結果對比與評價

        將以上3種改進同時加入所有類別的CSPDarknet 15神經(jīng)網(wǎng)絡,單個類別的精度AP(Average Precision)如表4所示。從表4可以看出,改進后CSPDarknet15神經(jīng)網(wǎng)絡的物體識別率最高可達96%,最低為66%,平均檢測精度為83.94%,相較于改進前分別提高了3個百分點、13個百分點和5.69個百分點。

        Table 4 AP comparison before and after improvement表4 改進前后的AP對比

        將本文改進的CSPDarknet15神經(jīng)網(wǎng)絡與典型的Faster R-CNN、SSD和YOLOv3 3種目標檢測算法進行對比,均在本文所選取的VOC2007數(shù)據(jù)集上進行相應測試,同時將mAP和檢測時間作為評價指標。表5展示了本文檢測算法與Faster R-CNN、SSD、YOLOv3和YOLOv4的對比實驗結果。

        Table 5 mAP and detection time of different detection algorithms表5 不同檢測算法的mAP和檢測時間對比結果

        從表5可知,兩階段檢測算法Faster R-CNN的mAP達到70.66%,但由于識別時需要提前生成包含物體的候選區(qū)域框,再從候選區(qū)域框中檢測物體,因而大大增加了計算時間,導致檢測時間較長。一階段檢測算法SSD的檢測速度相對于兩階段檢測算法提升比較明顯,但檢測精度與YOLOv3和YOLOv4相比存在明顯的差距。由于YOLOv3和YOLOv4為了提高物體的檢測精度,不斷增加網(wǎng)絡層數(shù),采用具有多種連接的特征提取金字塔,導致神經(jīng)網(wǎng)絡的參數(shù)量不斷增加,因而識別率提高的同時檢測速度也在不斷降低。本文所使用的神經(jīng)網(wǎng)絡兼顧了物體的檢測精度和檢測速度,將原始的53層神經(jīng)網(wǎng)絡改為15層,避免使用全連接層作為最后的分類層,最終將YOLOv4的參數(shù)量從64 040 001個減少至5 918 006個,檢測時間從7 955 ms降低至3 625 ms,檢測速度提升了54.43%,能夠滿足實時性檢測要求。從圖6中可以看出,本文改進后的算法對車輛和行人的檢測效果優(yōu)于Faster RCNN、SSD、YOLOv3和CSPDarknet15,并且對重疊人群的檢測性能接近YOLOv4的。

        4 結束語

        Figure 6 Detection results of different algorithms圖6 不同算法的檢測結果對比

        針對CSPDarknet53神經(jīng)網(wǎng)絡參數(shù)量巨大,無法適配小型設備的缺點,本文提出一種輕量級CSPDarknet15神經(jīng)網(wǎng)絡;為了不降低物體的識別率,采用K-means++算法對標記的數(shù)據(jù)進行聚類,并利用該聚類算法獲得的聚類中心點作為檢測物體的錨框;為了解決ReLU在負區(qū)間存在偏差的問題,采用在負區(qū)間具有軟飽和性、有較高魯棒性的LeakyReLU激活函數(shù);同時,為了使錨框回歸變得更加穩(wěn)定,在綜合考慮邊界框與錨框之間的距離、重疊率、尺度以及錨框的長寬比后,使用LCIoU損失函數(shù)來計算錨框與邊界框之間的重疊率。在公開的VOC2007數(shù)據(jù)集上進行了實驗,實驗結果表明,輕量級CSPDarknet網(wǎng)絡在該數(shù)據(jù)集上的mAP能夠達到83.94%,一幅圖像的檢測時間從7 955 ms降低至3 625 ms,檢測速度提升54.43%,能夠滿足小型設備的檢測要求。

        猜你喜歡
        檢測
        QC 檢測
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        “幾何圖形”檢測題
        “角”檢測題
        “有理數(shù)的乘除法”檢測題
        “有理數(shù)”檢測題
        “角”檢測題
        “幾何圖形”檢測題
        全免费a级毛片| 中国久久久一级特黄久久久| 潮喷失禁大喷水aⅴ无码| 久久久久亚洲av无码专区网站| 久久这里都是精品一区| 天堂av国产一区二区熟女人妻| 女人18片毛片60分钟| 精品日韩欧美一区二区在线播放| 妞干网中文字幕| 精品日韩一区二区三区av| 中文字幕无线码一区二区| 欧美性开放bbw| 久久精品中文字幕久久| 人妻中文字幕在线一二区| 精品综合久久久久久888蜜芽| 免费无码又爽又刺激网站| 99热这里只有精品久久6| 麻豆精品在线视频观看| 国产精品9999久久久久仙踪林| 四虎国产精品永久在线无码| 日本高清一区二区三区视频| 少妇一区二区三区久久| 免费a级毛片无码| 国产精品美女久久久久久大全| 内射中出后入内射极品女神视频| 欧美日本精品一区二区三区| 全部孕妇毛片| 亚欧同人精品天堂| 久久综合精品国产丝袜长腿| 无码va在线观看| 亚洲国产精品国自产电影| 日韩视频午夜在线观看| 成人欧美一区二区三区在线| 无码国产精品一区二区vr老人| 亚洲国产成人久久综合三区 | 中国丰满熟妇xxxx性| 欧美精品AⅤ在线视频| 亚洲av一区二区在线| 乱码av麻豆丝袜熟女系列| 成人伊人亚洲人综合网站222| 性视频毛茸茸女性一区二区|