陳連凱 李邦昱 齊亮



摘 要:針對復雜水面環境下的船舶目標檢測問題,運用融合圖像顯著性的YOLOv3船舶目標檢測改進算法以提高檢測能力。該算法基于Darknet-53網絡模型,根據水上船舶特點,融合非極大值抑制算法Soft-NMS和顯著性檢測算法FT思想,進一步優化最終檢測以達到更準確的效果。用Soft-NMS算法替換原有NMS算法,使得算法對小目標和重疊目標檢測效果明顯提升。融入FT算法對船舶圖像局部細節作進一步細化,使得包圍盒回歸更加準確。在建立的數據集上進行訓練與測試,實驗結果表明,改進方法比原始方法準確率提高4%,達97%,檢測速度提高10幀/s,達30幀/s,表明改進算法有效提高了船舶目標檢測精度,且加快了檢測速度。
關鍵詞:船舶目標檢測;YOLOv3;Soft-NMS;顯著性檢測
DOI:10. 11907/rjdk. 201157
中圖分類號:TP312文獻標識碼:A 文章編號:1672-7800(2020)010-0146-06
Abstract:Aiming at the problem of ship target detection in a complex water surface environment, we employ an improved YOLOv3 ship target detection algorithm that incorporates image saliency based on the Darknet-53 network model. This method is based on the characteristics of watercraft, combining the non-maximum suppression algorithm Soft-NMS (Soft Non-Maximum Suppression) and the significance detection algorithm FT (frequency-tuned salient region) to further optimize the final detection to achieve a more accurate effect. The Soft-NMS algorithm is used to replace the original NMS algorithm, so that the algorithm can significantly improve the detection effect of small targets and overlapping targets. The FT algorithm is incorporated to further refine the local details of the ship image, making the regression of the bounding box more accurate. Training and testing on the data set established in this article, the experimental results show that the accuracy of the improved method is 4% higher than the original method, reaching 97%, and the detection speed is increased by 10 frames/s to 30 frames/s. It shows that the improved algorithm effectively improves the accuracy of ship target detection and speeds up the detection speed.
Key Words: ship target detection; YOLOv3; Soft-NMS; salient region detection
0 引言
隨著計算機視覺與機器視覺的快速發展,深度學習算法在目標檢測、識別和跟蹤領域取得了良好效果[1]。Krizhevsk等[2]提出圖像分類算法,該算法是基于深度卷積神經網絡(Deep Convolutional Neural Network,DCNN)的算法,極大提高了目標檢測率與識別率;Szegedy等[3]將已有目標檢測的一分為二方法直接合二為一,轉為目標回歸方法,使用回歸器對圖像中的目標進行預測評估;Erhan等[4]采用深度卷積神經網絡對目標的包圍盒進行回歸預測,每個包圍盒所包含類別無關對象的置信度會被對應給出;劉學平等[5]提出一種嵌入SENet結構的改進YOLOv3目標識別算法,減少了假正例數量,得到 90.39%的查準率和 93.25%的查全率;Liu等[6]提出多尺度檢測方法SSD (Single Shot Multibox Detector,SSD),根據目標尺寸大小自主選擇不同的預測器,預測邊界框位置中的對象類別與偏移量,同時應用于網絡最后階段的多特征映射,達到了多尺度的預測效果;谷東亮等[7]調整Faster R-CNN所采用的網絡結構,在區域生成網絡的第一個全連接層后增加了一個Dropout層,使得船舶檢測準確率達90.4%。
內河及海上復雜環境、船舶運動導致的船舶晃動、多條船舶相會導致船舶重疊、反復無常的天氣變化、船舶遠小近大的客觀成像因素差異等問題,使得船舶檢測識別率受到極大影響。
針對以上問題,本文運用融合圖像顯著性的YOLOv3船舶目標檢測算法,該算法是基于Darknet-53網絡模型。本文采用的目標檢測模型以YOLOv3網絡為基礎,首先通過大量卷積層提取目標深度特征,然后對YOLOv3 模型結構進行調整與改進,通過改進的非極大值抑制Soft-NMS和利用圖像顯著性FT算法提取特征與卷積深度特征進行張量操作和特征融合,提高目標檢測精度,尤其是小目標與重疊目標檢測能力。
1 YOLOv3算法
1.1 邊界框預測
使用K-means聚類方法得到YOLOv3的包圍盒(Anchor Box)[8]。各邊界框(Bounding Box)的實際坐標位置分別為[tx]、[ty]、[tw]、[th]。一幅圖像通常會被劃分成[N×N]個單元格,用[cx]和[cy]表示圖像左上角單元格的偏移量。先前得到邊界框的寬和高分別用[pw]和[ph]表示,按照式(1)即可預測出邊界框實際位置[9]。
其中,邊界框中心點坐標為[bx]、[by];邊界框寬和高的坐標為[bw]、[bh];Logistic函數用[σ()]表示,坐標歸一化范圍為0-1。
如式(2)所示,YOLOv3 網絡使用邏輯回歸計算預測每個邊界框的分數,即置信度,如果先驗邊界框和真實邊界框的重疊度是所有邊界框中最高的,則該置信度為1。閾值用于控制重疊部分的舍棄與否,低于則被舍棄。目標預測的損失是先驗邊界框沒有分配真實對象所造成,但不會影響分類預測[10]。
式(2)中,[confidence]表示預測邊界框和真實邊界框的分數;[Pr(Object)]用于判斷單元格里是否存在目標對象;[IOUtruthpred]表示預測邊界框與真實邊界框的交并比。YOLOv3網絡是通過相乘單元格類別概率和單元格中含有的目標和適度確定各類別置信分數,如式(3)所示。
式(3)中,[PrClassi|Object]表示某一類別在單元格出現的概率;[PrClassi]表示單元格與待檢測目標匹配度。
1.2 Logistic分類器
YOLOv3使用多個Logistic分類器代替Softmax 分類器,其使用多標簽分類預測邊界框可能包含的類別,僅給每個對象分配一個先驗框[11]。使用二值交叉熵損失函數(Binary Cross-Entropy Loss)計算改進后的分類損失,交叉熵損失函數如式(4)、式(5)所示。
眾多結構與參數構成了龐大的目標檢測結構,其中[x,y]、[(w,h)]、[class]和 [confidence]是重要組成部分。在YOLOv3網絡中,其它部分使用的損失函數是二值交叉熵,而[(w,h)]的損失函數仍然使用總方誤差。
總方誤差損失函數如式(6)、式(7)所示。
其中,[yi]表示網絡預測值,[yi]表示標注值。
1.3 多尺度預測
YOLOv3網絡可以預測3種不同尺度的邊界框,其主要原理是利用高層特征進行上采樣、低層特征進行自頂而下提取不同尺度下的特征[12]。在基本特征提取器中增加了卷積層,使用最后的卷積層預測一個三維張量編碼,即為邊界框、框中目標和分類預測。如果每個尺寸的神經網絡都預測了3個邊界框,則得到的張量S如式(8)所示。
其中,4個邊界框的偏移量用[4]表示,[1]表示1個目標預測,[classes]表示預測類別個數。
1.4 特征提取
YOLOv3網絡使用一個全新的網絡進行特征提取,對比YOLO系列網絡之前的版本,此網絡汲取了YOLOv2網絡結構與Res Net網絡結構的優點,被稱作為Darknet-53。
YOLOv3網絡第一次檢測結果是13×13的特征圖,其被多次卷積而來,通過對13×13的特征圖進行上采樣處理進而獲得26×26的特征圖,接著使用獲得的26×26特征圖與原網絡26×26的特征圖融合形成新特征圖,并通過多次卷積計算得到第二次檢測結果;然后對26×26的特征圖進行上采樣處理以獲得52×52的特征圖和原網絡52×52的特征圖融合形成的新特征圖,之后通過多次卷積得到第三次檢測結果[13]。最終檢測識別結果通過對上述3次獲得的結果圖進行非極大值抑制操作而獲得。
2 融合圖像顯著性的YOLOv3船舶目標檢測模型
本文采用的目標檢測模型以YOLOv3為基礎框架,針對水上船舶的特點,結合了非極大值抑制算法Soft-NMS(Soft Non-Maximum Suppression)和顯著性檢測算法FT (frequency-tuned Salient Region),進一步優化最終檢測以達到更準確的效果。用Soft-NMS算法替換原有NMS算法,提高本文算法對小目標和重疊目標的檢測效果。融入FT算法對船舶圖像局部細節作進一步細化,使得包圍盒回歸更加準確。具體流程如圖1所示。
2.1 圖像顯著性檢測
圖像中能夠吸引人注意的區域,往往含有較大信息量[14]。在看一幅圖像時,人們的關注點往往是圖像中感興趣的區域,而其它剩余的不感興趣區域則被認為是無關部分。顯著區域指圖像中某些內容最能夠表現出來的關鍵區域。常用圖像顯著性分析方法主要原理是根據人的注意力機制分析圖像。認知科學家根據實際情況及經驗,提出多種數學模型,已達到模擬人注意力機制的效果[15]。
根據頻率可將圖像劃分為低頻部分和高頻部分:圖像低頻部分反映了圖像整體信息;圖像高頻部分反映了圖像局部詳細信息。顯著區域檢測使用了低頻部分的更多信息[16]。本文使用基于低頻的FT(frequency-tuned Salient Region)算法,FT方法利用高斯平滑舍去背景區域最高頻部分,以突出目標區域,像素顯著性計算公式如式(9)所示。
其中,[Iμ]為圖像平均特征,后一項為像素p在高斯平滑后的Lab顏色特征,||.||為一種范式,即計算Lab顏色空間的歐氏距離。
對于圖像目標整體及突出的局部信息,本文采用顯著性檢測算法,將已檢測到的目標區域提取對應的顯著性特征圖,使之融合YOLOv3網絡的Darknet-53提取特征,加強船舶圖像語義信息,提升目標預測框預測分數,使得包圍盒回歸更為準確,進而提高檢測準確率,如圖2所示。
2.2 Soft-NMS
利用檢測邊框確定特定類別的目標,并得出置信度,以達到檢測識別目標之目的。目標的傳統檢測流程采用滑動窗口,這種窗口是多尺度的,需根據每個目標類別的前景分數及背景分數計算每個目標特征。當相鄰窗口得分比較接近時,會導致檢測結果假陽性錯誤:錯誤的肯定。為了解決此類問題,采用非極大值抑制方法對目標檢測結果進行再處理,進而得到正確檢測結果。非最大抑制算法有效且高效地減少了目標檢測結果的假陽性[17]。
圖3中,檢測算法原本應該輸出兩個框,但是傳統NMS算法可能會將重疊和小目標的船舶過濾掉,導致只檢測出一只船舶,因此目標召回率較低。
傳統非極大值抑制算法原理是:在檢測到的圖片中生成所需檢測框B和檢測框對應分數S,對選擇得分最高的檢測M,將其從檢測幀B中刪除,并將其存儲在最終檢測結果集D中。同時,大于設定重疊閾值[Nt]的部分:集合B中任何與檢測框M的重疊部分會被移除。非極大值抑制算法中將相鄰檢測框的分數均強制歸零,這就是最大問題所在[18]。此時,如果重疊區域出現目標,則存在目標漏檢情況,甚至導致檢測失敗,從而降低了算法平均檢測率AP(Average Precision)。
如圖4所示,本文在YOLOv3網絡中加入Soft-NMS算法。該算法是在非極大值抑制算法上作出改進,設置了衰減函數,使得重疊部分相鄰檢測框的分數不會置零。如果檢測框與M重疊部分較大,則得分低;如果檢測框與M重疊部分較小,則此部分原始得分不會發生改變。在標準數據集PASCAL VOC 2016 和 MS-COCO 2018等標準數據集上,加入Soft-NMS的目標檢測算法在目標有重疊部分時檢測平均準確率顯著提升。
傳統NMS方法可通過分數重置函數(Rescoring Function)表達,如式(10)所示。
通過NMS設置的硬閾值判斷相鄰檢測框是否應被保留。若檢測框[bi]與檢測框M高度重疊,易出現漏檢情況;若檢測框[bi]中所包含的目標是不同于檢測框M中的目標,則即使在檢測閾值較低情況下,該目標也不會被漏檢;若檢測框[bi]中不包含任何目標,則在衰減過后,會產生假陽性效果并且檢測框[bi]的得分會很高。通過較低的NMS重疊閾值設置,以達到移除所有相鄰檢測框的效果,這種做法顯然不是最優解,并且極易出現誤檢、漏檢等情況,尤其是在目標高度重疊的部分[19]。
Soft-NMS中的分數重置函數:衰減與檢測框M有重疊相鄰檢測框的分數,重疊度越高,越容易導致錯誤結果,也越嚴重地造成分數衰減。如此,需對NMS的分數重置函數作出必要改進,如式(11)所示。
其中,閾值[Nt]用于規定重疊度范圍,使相鄰檢測框與M的重疊度大于[Nt]的檢測框在檢測分數上呈線性衰減。此時,極大地衰減與M相鄰越近的檢測框,而遠離M的檢測框則反之[20]。
使用權重函數乘以當前檢測框得分,此權重函數與最高得分檢測框M有重疊的相鄰檢測框分數會出現衰減,檢測框與M框重疊度越高,衰減程度越嚴重。因此,選用高斯函數為權重函數,改變其檢測框刪除規則。高斯權重函數如式(12)所示。
如圖4所示,權重函數f(iou(M,bi))是基于檢測框的重疊程度。算法中每一步的復雜度用[O(N)]表示,表示圖片中有N個檢測框,Soft-NMS算法復雜度為[O(N2)],與傳統NMS算法有一定相同之處。
如圖5所示,相對于傳統NMS算法,Soft- NMS 算法能夠提高模型檢測與分類效果,且不增加額外計算量。Soft-NMS對重疊和小目標有較好檢測效果,能很好地融入本文算法,降低漏檢率,加快運算速度。
3 訓練
算法檢測速率快慢、準確率高低取決于數據集是否兼具數量與質量。由于目前沒有公共的開源船舶數據庫,因此將小組成員制作的船舶數據集作為訓練數據集。小組成員經過省內多地實地考察,最終選擇長江作為數據采集地。采集20 000張船舶目標圖片,選取6 000張多目標圖片與3 000張單目標圖片,利用LabelImg工具進行標注,記錄船舶圖像左上右下位置及類別,生成xml格式[21],本文將船舶類別分為3類,分別為“xunluochuan、kechuan、huochuan”。
本文實驗仿真環境:ThinkStation,內存為128GB,GPU處理器為RTX2080Ti,軟件環境為Python3.7.3、VS2015、Opencv3.4.2、JetBrains PyCharm 2019.1.2、Anaconda3.4.1、CUDA10.0、CUDNNv7.1, TensorFlow1.2.1。
本文選擇的特征提取網絡為Darknet-53,權重初始值是在通用目標訓練集上訓練而來,具有一定普適性。本文選取的訓練圖片為5 000張,測試圖片為2 000張,學習率為0.001,Momentum設置為0.9,Weight Decay設置為0.000 5。
4 實驗結果與分析
考慮到算法的合理性、有效性及魯棒性,本文算法訓練迭代次數設置為50 200次。由圖6可知,當訓練次數在30 000次左右時,平均損失函數值在一個數值0.0 920上下浮動,并趨于穩定,表明訓練過程收斂,達到了良好效果。
召回率與準確率曲線衡量一個分類器的重要性能指標,實驗設定IOU的閾值為0.5,對3類船舶進行檢測。圖7—圖9是本文算法訓練的召回率與準確率關系曲線,可以看出,準確率有振蕩出現,表明正樣本被判斷為正例在變多,但負樣本被判斷為正例也在變多。本文3種船舶的PR曲線、高點AP(Average Precision)值、PR曲線下圍面積,整體趨于良好表現,體現出本文算法的良好性能。
實驗結果根據本文建立的訓練集和測試集而得,圖10和表1是本文方法實驗結果。分析可知,本文方法明顯優于熱門的深度學習算法Faster R-CNN、YOLOv3(You Only Look Once v3),檢測速率得到一定程度提高,每秒大約檢測30張圖片;通過傳統深度學習算法能夠很好地進行船舶圖像目標檢測,但相對而言,目標檢測速度較慢,每秒鐘只能檢測大約13張圖片;本文方法是對算法YOLOv3的改進,在水上船舶檢測中顯著減少了算法訓練和檢測時間,提高了準確率。改進的YOLOv3深度網絡經過訓練后進行測試并驗證,比較Faster R-CNN和 YOLOv3算法在相同訓練集與測試集上進行訓練、測試與驗證,發現改進的YOLOv3算法準確率可提高到97%,主要原因是本文算法加入了圖像顯著性FT算法與Soft-NNS,提高了算法對預測邊界框與真實框的預測率。
5 結語
本文提出了一種改進的船舶目標檢測算法,在YOLOv3深度模型中利用Soft-NMS替換原有NMS,減小了重疊目標漏檢率;利用顯著性檢測FT算法,突出感興趣區域,使背景區域與目標區域有顯著差別,從而加強YOLOv3邊框回歸的可靠性。從實驗結果可知,本文方法兼具穩定、快速與準確等優點,能夠應對復雜的水面環境,發揮出算法在檢測、速度上的最大優勢。
本文算法主要依賴于高性能計算能力的硬件設備和高質量訓練數據,如何輕量化網絡模型,考慮訓練集的圖像視頻幀之間的關系,實現更加高效、多尺度的水面船舶目標檢測,是進一步研究的問題。
參考文獻:
[1] 王春艷,劉正熙. 結合深度學習的多目標跟蹤算法[J]. 現代計算機(專業版),2019(6):55-59.
[2] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C]. NIPS2012:Proceedings of the 25th International Conference on Neural Information Processing Systems,2012: 1097-1105.
[3] SZEGEDY C, TOSHEV A, ERHAN D. Deep neural networks for object detection[C].? Proceedings of the 2013 International Conference on Neural Information Processing Systems.Cambridge, MA: MIT Press, 2013: 2553-2561.
[4] ERHAN D, SZEGEDY C, TOSHEV A , et al.Scalable object detection using deep neural networks[C]. CVPR 2014: Proceedings? of? the 2014? IEEE Conference on Computer Vision and Pattern Recognition,2014: 2155-2162.
[5] 劉學平,李玙乾,劉勵,等. 嵌入SENet結構的改進YOLOV3目標識別算法[J]. 計算機工程,2019,45(11):243-248.
[6] LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]. Proceedings of the 2016 European Conference on Computer Vision, 2016: 21-37.
[7] 谷東亮,徐曉剛,金鑫. 基于Faster R-CNN的海上船舶識別算法[J]. 圖像與信號處理,2018,7(3): 136-141.
[8] 葛雯,史正偉. 改進YOLOV3算法在行人識別中的應用[J]. 計算機工程與應用,2019,55(20):128-133.
[9] 呂鑠,蔡烜,馮瑞. 基于改進損失函數的YOLOv3網絡[J]. 計算機系統應用,2019,28(2):1-7.
[10] 李慧欣. 艦船視覺系統海空多目標識別與跟蹤技術研究[D].? 哈爾濱:哈爾濱工程大學,2019.
[11] 周龍,韋素媛,崔忠馬,等. 基于深度學習的復雜背景雷達圖像多目標檢測[J]. 系統工程與電子技術,2019,41(6):1258-1264.
[12] 王璽坤,姜宏旭,林珂玉. 基于改進型YOLO算法的遙感圖像艦船檢測[J/OL]. 北京航空航天大學學報:1-10. 2019-12-27. https://kns.cnki.net/KCMS/detail/11.2625.v.20191024.1126.003.html.
[13] 魏宏彬,張端金,杜廣明,等. 基于改進型YOLO v3的蔬菜識別算法[J/OL]. 鄭州大學學報(工學版):1-6. 2020-03-04. https://kns.cnki.net/KCMS/detail/41.1339.T.20191219.1601.005.html.
[14] 張守東,楊明,胡太. 基于多特征融合的顯著性目標檢測算法[J]. 計算機科學與探索,2019,13(5):834-845.
[15] 李鑫,陳雷霆,蔡洪斌,等. 基于雙層多尺度神經網絡的顯著性對象檢測算法[J]. 微電子學與計算機,2018,35(11):1-7.
[16] 李平娜,吳清. 改進的頻域協調顯著性檢測及應用[J]. 現代計算機(專業版),2017,34(8):77-80.
[17] 趙文清,嚴海,邵緒強. 改進的非極大值抑制算法的目標檢測[J]. 中國圖象圖形學報,2018,23(11):1676-1685.
[18] 張海玉,陳久紅. 一種基于深度學習的夜間車流量檢測方法[J]. 軟件導刊,2019,18(9):33-37.
[19] HE K M,ZHANG X Y,REN S Q,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015,37(9): 1904-1916.
[20] 張銀松,趙銀娣,袁慕策. 基于改進Faster-RCNN模型的粘蟲板圖像昆蟲識別與計數[J]. 中國農業大學學報,2019,24(5):115-122.
[21] 譚俊. 一個改進的YOLOv3目標識別算法研究[D]. 武漢:華中科技大學,2018.
(責任編輯:孫 娟)