• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于YOLOv3的船舶目標檢測算法

      2020-04-16 09:15:04王炳德楊柳濤
      中國航海 2020年1期
      關(guān)鍵詞:先驗類別損失

      王炳德, 楊柳濤

      (上海船舶運輸科學(xué)研究所 航運技術(shù)與安全國家重點實驗室, 上海 200135)

      隨著海洋資源的不斷勘探開發(fā)和海洋儀器的不斷發(fā)展,海洋目標檢測在監(jiān)測、跟蹤和對抗等諸多領(lǐng)域發(fā)揮著重要作用。隨著我國船舶裝備的快速發(fā)展,對船舶檢測的精度和實時性要求也越來越高。因此,無論在軍事、民用還是在商業(yè)領(lǐng)域,不斷提高船舶檢測的技術(shù)都具有重要意義。

      在深度卷積神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neural Network, DCNN)介入之前,傳統(tǒng)的目標檢測和識別算法都基于原始的手工提取特征方法,其主要流程為區(qū)域選擇、提取特征、分類回歸。其中比較有代表性的可變形組件模型(Deformable Parts Model,DPM)算法[1],其基本思想是先提取DPM人工特征,再用latentSVM分類。DPM算法在目標檢測中大大提高了人工特征的精度,但特征相對復(fù)雜,計算速度較慢。傳統(tǒng)的目標檢測與識別算法不能保證其實時性和泛化性能。

      近年來,隨著大數(shù)據(jù)的日趨深入和計算速度的不斷提高,深度學(xué)習技術(shù)得到快速發(fā)展。KRIZHEVSKY等[2]首先提出深度卷積神經(jīng)網(wǎng)絡(luò)GIRSHICK等[3]結(jié)合深度神經(jīng)網(wǎng)絡(luò)和圖像目標檢測做了一系列卓有成效的工作,從R-CNN(Region-CNN)到Fast R-CNN[4],再到Faster R-CNN[5],奠定了目標檢測算法的經(jīng)典結(jié)構(gòu)。神經(jīng)網(wǎng)絡(luò)作為一種端到端模型,避免人工設(shè)計特征帶來的巨大消耗,隨著模型的不斷深化,準確率也不斷提高。但由于R-CNN系列算法本身結(jié)構(gòu)的限制,其檢測速度遇到瓶頸,難以滿足部分場景實時性的需求。因此,REDMON等[6]提出一種基于回歸方法的YOLO(You Only Look Once)目標檢測算法,在保證一定準確率的前提下,速度得到極大提升。LIU等[7]將YOLO的回歸思想和Faster R-CNN的anchor box機制結(jié)合提出SSD(Single Shot MultiBox Detector)算法,在保持YOLO算法快速特性的同時,也保證了Faster R-CNN的邊框定位效果。隨后,REDMON等[8-9]又對YOLO算法不斷進行改進,先后發(fā)表了YOLO9000等論文,其中YOLOv3具有較高的準確率和良好的檢測速率,能夠滿足船舶目標檢測對精度和實時性的要求。

      目前,YOLOv3算法網(wǎng)絡(luò)模型在目標檢測中的應(yīng)用較為廣泛,考慮到Y(jié)OLOv3算法的優(yōu)點以及船舶目標檢測對高精度與實時性要求的日益迫切,故將YOLOv3算法應(yīng)用到船舶目標檢測方法中,開展基于YOLOv3的船舶目標檢測算法研究。本文主要分析YOLOv3算法的網(wǎng)絡(luò)結(jié)構(gòu)和損失函數(shù),制作船舶目標檢測所需的數(shù)據(jù)集,并對YOLOv3算法進行一些改進和優(yōu)化,通過云服務(wù)器訓(xùn)練算法網(wǎng)絡(luò)模型,最后進行試驗對比,驗證了算法的檢測效果和性能。

      1 YOLOv3算法與改進

      1.1 YOLOv3算法網(wǎng)絡(luò)結(jié)構(gòu)

      YOLO v3是一種深度學(xué)習方法,其使用一種新的深度網(wǎng)絡(luò)來實現(xiàn)特征提取,這個網(wǎng)絡(luò)主要是由一系列的1×1和3×3的卷積層組成,因為網(wǎng)絡(luò)中共有53個卷積層,所以叫做Darknet-53。Darknet-53的結(jié)構(gòu)見圖1左側(cè),右側(cè)為基本的卷積層和殘差塊結(jié)構(gòu)示意。其中殘差塊借鑒了ResNet網(wǎng)絡(luò)的殘差結(jié)構(gòu),在一些層之間設(shè)置快捷鏈路[10],解決了深度網(wǎng)絡(luò)的退化問題,讓網(wǎng)絡(luò)結(jié)構(gòu)可以更深。同時,YOLOv3借鑒了FPN(Feature Pyramid Networks)[11]的特征融合金字塔思想,通過上采樣和特征融合方法,最終輸出3種不同尺度的特征圖(13×13,26×26,52×52)。對于小目標,大尺度特征圖提供分辨率信息,小尺度特征圖提供語義信息;而對于大目標,直接是小尺度特征圖同時提供分辨率和語義信息。利用多尺度特征檢測可增加特征的豐富度,提升大目標和小目標的檢測效果。

      1.2 損失函數(shù)

      損失函數(shù)是決定網(wǎng)絡(luò)效果的重要參數(shù)之一,在模型的訓(xùn)練過程中,不斷調(diào)整網(wǎng)絡(luò)中的參數(shù),優(yōu)化損失函數(shù)Loss的值達到最小,完成模型的訓(xùn)練。YOLOv3的損失函數(shù)主要由邊界框中心點(x,y)的預(yù)測誤差、邊界框的寬高(w,h)預(yù)測誤差、置信度誤差和分類預(yù)測誤差等4部分組成。具體的計算為

      圖1 YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)圖

      (1)

      (2)

      1.3 數(shù)據(jù)集構(gòu)建

      在深度學(xué)習中數(shù)據(jù)集質(zhì)量會直接影響最終檢測的效果,同時還需要足量的樣本來使得網(wǎng)絡(luò)能夠充分學(xué)習待檢測目標的特征,因此建立船舶目標檢測數(shù)據(jù)集見表1。

      表1 船舶目標檢測數(shù)據(jù)集 張

      數(shù)據(jù)集采用PASCAL VOC 數(shù)據(jù)集格式,通過百度圖片、谷歌圖片、爬蟲、截取ImageNet數(shù)據(jù)集等方式,得到4 000張船舶圖像。隨后將圖像尺寸統(tǒng)一縮放為416×416,再通過手工標記、批量修改等方式得到包含邊界框坐標和類別信息的xml文件。最后,根據(jù)相應(yīng)比例將樣本隨機分配給訓(xùn)練集和驗證集,完成數(shù)據(jù)集的構(gòu)建。

      1.4 優(yōu)化策略

      YOLOv3算法在目標檢測領(lǐng)域已經(jīng)取得很好的檢測效果,但對于特定的船舶目標檢測,可進行一些改進和優(yōu)化,以得到更好的檢測效果和性能。

      1.4.1k-means[12]聚類先驗框

      YOLOv3算法使用邊界框來預(yù)測目標物體在圖像中的具體位置,通過預(yù)先給定的9組先驗框,深度網(wǎng)絡(luò)在訓(xùn)練過程中不斷調(diào)整邊界框的尺寸,最終得到目標的檢測框。因此,若一開始就選擇更好的、更有代表性的先驗框,那么網(wǎng)絡(luò)就更容易得到準確的預(yù)測位置。YOLOv3算法本身的先驗框是根據(jù)coco數(shù)據(jù)集中80個類別的數(shù)據(jù)所得到的,對于船舶目標檢測并不完全適用。根據(jù)已經(jīng)構(gòu)建的船舶目標檢測數(shù)據(jù)集,使用k-means聚類算法得到最優(yōu)的先驗框,并分配給3種不同尺寸的特征圖。

      標準的k-means方法用的是歐氏距離,但是這樣會使得大的邊界框擁有更大的誤差。因此,使用目標檢測算法中常用的性能指標交并比(Intersection over Union,IOU)來代替歐氏距離,聚類算法使用的距離公式[13]為

      d(box,centroid)=1-IOU(box,centroid)

      (3)

      IOU的計算公式見圖2,IOU越大代表檢測框和目標越接近、相似度越高,而距離判定(1-IOU)就越近。

      圖2 IOU計算公式

      設(shè)定k=9,總共聚類出9種尺寸的先驗框。聚類結(jié)果見圖3。分為9種不同顏色的類別,9個星星代表每個類別的聚類中心,其坐標即為新的先驗框的寬高維度。

      圖3 聚類結(jié)果

      將得到的先驗框平均分配給不同尺度的特征圖。在最小的13×13特征圖上(有最大的感受野)應(yīng)用較大的先驗框(302,109)、(347,219)、(380,364),適合檢測較大的對象;在中等的26×26特征圖上(中等感受野)應(yīng)用中等的先驗框(158,77)、(187,285)、(278,330),適合檢測中等大小的對象;在較大的52×52特征圖上(較小的感受野)應(yīng)用較小的先驗框(36,44)、(62,144)、(117,231),適合檢測較小的對象。

      1.4.2mixup[14]

      mixup是一種數(shù)據(jù)增強方法,每次隨機取2個樣本點(xi,yi)、(xj,yj)然后按照如下的方式生成1個新的虛擬樣本點為

      (4)

      (5)

      式(4)和式(5)中:λ~Beta(α,α),α∈(0,∞)。mixup為鄰域風險最小化的一種形式,結(jié)合先驗知識,生成特征向量的線性插值來擴展訓(xùn)練分布。mixup在很少的幾行代碼中就可得以實施,并且很少或幾乎沒有計算開銷。在廣泛的評估中,結(jié)果表明:mixup改進了當前最先進的模型在ImageNet、CIFAR、語音和表格數(shù)據(jù)集中的泛化誤差。此外,mixup有助于消除對錯誤標簽的記憶、對抗樣本的敏感性以及對抗訓(xùn)練的不穩(wěn)定性。

      1.4.3 標簽平滑化[15]

      在多類別訓(xùn)練任務(wù)中,對于給定的數(shù)據(jù)集的標簽類別,將正樣本設(shè)為1,負樣本設(shè)為0,是一個one-hot向量:

      (6)

      式(6)中:y為目標的真實類別;i為多類別中的一類。

      這樣會導(dǎo)致模型過于相信預(yù)測的類別,當數(shù)據(jù)出現(xiàn)噪聲的時候,使得訓(xùn)練結(jié)果出現(xiàn)偏差。同時,在數(shù)據(jù)量分布不均衡的時候,過度依賴某一類數(shù)量多的標簽會出現(xiàn)過擬合現(xiàn)象。

      標簽平滑化最早在Inception v2中被提出,是一種正則化的策略。[16]其通過“軟化”傳統(tǒng)的one-hot類型標簽,使得在計算損失值時能夠有效抑制過擬合現(xiàn)象。其將標簽的真實概率分布改為

      (7)

      式(7)中:k為總的分類類別。更新后的分布就相當于往真實分布中加入噪聲ε(為方便計算,ε通常取均勻分布), 減少標簽的真實類別在計算損失值時的權(quán)重,同時增加其他類別在損失函數(shù)中的權(quán)重。最終在訓(xùn)練網(wǎng)絡(luò)時,最小化預(yù)測概率和真實概率的交叉熵,從而得到最優(yōu)的預(yù)測概率分布為

      (8)

      式(8)中:α可取任意實數(shù)。

      因此,在YOLOv3網(wǎng)絡(luò)模型訓(xùn)練時,加入標簽平滑化可在一定程度上抑制過擬合現(xiàn)象,增加網(wǎng)絡(luò)的泛化能力,提升分類效果。

      2 試驗與結(jié)果分析

      2.1 模型訓(xùn)練

      本文的試驗使用谷歌的Colaboratory工具,Colaboratory 是一個 Google 研究項目,旨在幫助傳播機器學(xué)習培訓(xùn)和研究成果。其是一個 Jupyter 筆記本環(huán)境,預(yù)裝了Keras和Pytorch等深度學(xué)習框架,并且完全在云端運行。具體的硬件配置為16 G內(nèi)存,16 G顯存的Tesla T4 GPU,CUDA版本為10.0,并可與谷歌云盤進行數(shù)據(jù)互通,方便訓(xùn)練數(shù)據(jù)的保存和下載。

      試驗選取最常用的3個目標檢測算法Faster R-CNN、SSD以及YOLOv3與改進后的YOLOv3算法進行對比分析,以驗證模型的檢測效果以及優(yōu)化策略的有效性。其中基本的超參數(shù)設(shè)置為:最大訓(xùn)練輪數(shù)為500,初始學(xué)習率和學(xué)習率衰減分別配置為0.000 1 和0.1,動量和批量大小分別為0.9和16.0,最終經(jīng)過訓(xùn)練得到最優(yōu)的網(wǎng)絡(luò)模型用于試驗對比。

      2.2 性能對比

      選取的目標檢測模型的評價指標為:平均精度均值(mean Average Precision,mAP)和每秒檢測幀數(shù)(Frames Per Second,FPS),其中mAP的定義為

      (9)

      (10)

      (11)

      式(9)~式(11)中:Precision為準確率;Recall為召回率[17];TP為真正例;FP為假正例;FN為假負例;AP為某一類的平均精度,而mAP為所有類別的AP再取平均值。通過訓(xùn)練可分別得到4種算法的網(wǎng)絡(luò)模型,并可畫出4種模型的mAP變化曲線見圖4。

      圖4 4種算法的mAP變化曲線

      模型在測試集上的性能見表2,由表2可知:改進后的YOLOv3算法雖然在FPS上稍稍落后于SSD算法,但也達到了30 FPS,滿足實時性要求;而在精度指標mAP上均超過其他算法,達到了89.90%,具有優(yōu)異的檢測性能。

      表2 算法對比結(jié)果

      原始YOLOv3算法(YOLOv3_1)和改進YOLOv3算法(YOLOv3_2)的損失值曲線圖見圖5。由圖5可知:改進后算法的邊界框中心點損失以及寬高損失收斂更快、Loss值更小,k-means聚類先驗框的優(yōu)化策略起到了明顯的作用;比較置信度損失可看出兩種算法的Loss值差距很小,改進算法使用mixup方法生成的虛擬樣本對損失函數(shù)幾乎無影響;而比較分類損失的曲線圖,可看出改進算法的曲線收斂較慢,是因為標簽平滑化方法會輕微的抑制收斂速度,但最終的損失值不變,且可提高最終的mAP值。由總的Loss變化曲線可得出,改進算法的收斂更快、Loss值更低,實現(xiàn)算法性能的優(yōu)化,最終的檢測精度mAP也獲得了提高,見圖6。

      a) 中心點損失

      b) 寬高損失

      c) 置信度損失

      d) 分類損失

      a) 總損失變化

      b) mAP變化

      2.3 檢測結(jié)果

      將待檢測圖像輸入訓(xùn)練所得的網(wǎng)絡(luò)模型,即可完成檢測,4種算法的檢測效果對比見圖7。其中:圖7a中Faster R-CNN算法的檢測結(jié)果很差,出現(xiàn)了明顯的錯檢和漏檢;圖7b和圖7c均檢測到了3個船舶目標,YOLOv3算法的檢測結(jié)果的置信度更高,檢測效果更好,但兩種算法對于小目標的檢測效果不很理想;而圖7d改進算法的檢測結(jié)果中,圖像中的所有船舶目標都能夠被完全檢測出來,并使用相應(yīng)尺度的邊界框準確地標記出來,檢測效果最好,可見優(yōu)化策略提高了YOLOv3算法對于小目標的檢測效果。

      為驗證算法的魯棒性,對海霧環(huán)境下的船舶圖像進行檢測,其檢測效果對比見圖8。其中:圖8a中Faster R-CNN算法未檢測到目標;圖8b中SSD算法檢測到了船舶目標,但檢測框偏大,置信度勉強達到0.45的篩選閾值;圖8c和圖8d中YOLOv3和改進YOLOv3算法均成功檢測到目標,檢測效果良好,而改進算法置信度稍高一點,檢測性能更高。結(jié)果表明算法具有魯棒性。

      a) Faster R-CNN

      b) SSD

      c) YOLOv3

      d) 改進YOLOv3

      a) Faster R-CNN

      b) SSD

      c) YOLOv3

      d) 改進YOLOv3

      驗證改進算法的檢測性能和魯棒性后,可進一步將數(shù)據(jù)集細分為9類:集裝箱船、救生船、郵船、帆船、快艇、小船、散貨船、油船、雜貨船,并重新訓(xùn)練可得到多類別船舶目標檢測模型,其檢測結(jié)果見圖9。

      a) 集裝箱船

      b) 救生船

      c) 郵船

      d) 帆船

      e) 快艇

      f) 小船

      g) 散貨船

      h) 油船

      i) 雜貨船

      3 結(jié)束語

      本文基于YOLOv3算法模型,采用k-means聚類先驗框、mixup、標簽平滑化等優(yōu)化策略對算法進行改進和優(yōu)化,提出一種船舶目標實時檢測的方法。使用自制船舶圖像數(shù)據(jù)集,通過云服務(wù)器訓(xùn)練網(wǎng)絡(luò)模型,并與Faster-RCNN、SSD以及YOLOv3等算法進行對比分析。試驗結(jié)果表明:改進算法的mAP達到了89.90%,優(yōu)于其他算法,具有良好的檢測效果和魯棒性;同時檢測速度達到30 FPS,滿足船舶目標實時檢測的要求。

      猜你喜歡
      先驗類別損失
      少問一句,損失千金
      胖胖損失了多少元
      基于無噪圖像塊先驗的MRI低秩分解去噪算法研究
      玉米抽穗前倒伏怎么辦?怎么減少損失?
      基于自適應(yīng)塊組割先驗的噪聲圖像超分辨率重建
      服務(wù)類別
      新校長(2016年8期)2016-01-10 06:43:59
      基于平滑先驗法的被動聲信號趨勢項消除
      一般自由碰撞的最大動能損失
      先驗的廢話與功能的進路
      論類別股東會
      商事法論集(2014年1期)2014-06-27 01:20:42
      牟定县| 连南| 平安县| 鹿泉市| 无极县| 抚顺市| 曲沃县| 鹿泉市| 正宁县| 遵义县| 河东区| 竹北市| 江津市| 天峨县| 崇明县| 湛江市| 靖宇县| 延边| 外汇| 沅江市| 三门峡市| 贵溪市| 广南县| 辽中县| 额济纳旗| 莱西市| 孝昌县| 池州市| 油尖旺区| 资中县| 阿巴嘎旗| 防城港市| 墨江| 土默特右旗| 宜兰市| 大丰市| 屯门区| 穆棱市| 墨脱县| 曲阳县| 辽中县|