王慧勇, 殷 明
(合肥工業(yè)大學 數學學院,安徽 合肥 230601)
計算機視覺領域包含如下幾個基本的視覺任務:圖像分類、目標檢測、語義分割和實例分割等。圖像分類識別給定圖像中對象的語義類別;目標檢測不僅可以識別對象類別,還可以通過邊界框預測每個對象的位置;語義分割則是逐個像素的分類器,以便為每個像素分配特定的類別標簽,不能區(qū)分相同類別的多個對象;實例分割識別不同的對象,并為每個對象分配一個單獨的像素級分類標簽。其中,目標檢測負責在數字圖像中檢測特定類(例如人、動物或汽車)目標。目標檢測作為計算機視覺的基本問題之一,是許多其他計算機視覺任務的基礎,如實例分割、圖像字幕、目標跟蹤等。從應用角度來看,目標檢測可以分為通用目標檢測和特定場景下的目標檢測2個研究主題。通用目標檢測需要識別不同類型的目標來模擬人類的視覺和認知;特定場景下的目標檢測應用在特定的應用場景下,如行人檢測、人臉檢測、文本檢測等。
普遍認為,目標檢測的發(fā)展大致經歷了2個階段:傳統(tǒng)的目標檢測階段和基于深度學習的檢測階段。傳統(tǒng)的目標檢測算法大多是基于手工特征構建的。由于當時缺乏有效的圖像表示,只能設計復雜的特征表示和各種加速技術來充分利用有限的計算資源。
與傳統(tǒng)檢測算法使用的基于手工設計的特征描述相比,深度卷積神經網絡從原始像素到高級語義信息生成分層的特征表示形式,這些特征表示形式是從訓練數據中自動獲取的。深度卷積神經網絡可以使用更大的數據集獲得更好的特征表示,而傳統(tǒng)方法的學習能力是固定的,并且在更多數據可用時無法提高,如文獻[1]利用深度神經網絡有效實現了分類任務。
當前,基于深度學習的對象檢測框架主要可以分為雙階段檢測算法和單階段檢測算法2個系列。雙階段算法代表性的有r-cnn[2]、faster r-cnn[3]、mask r-cnn[4]等;單階段算法代表性的包括yolo[5]、ssd[6]、focal loss[7]、yolov3[8]等,最新的高效算法有EfficientDet[9]等。目標檢測可以應用到自動駕駛、機器人視覺、視頻監(jiān)控、無人機場景分析等領域,因此具有學術價值和商業(yè)價值,現階段仍是計算機視覺領域熱門研究方向之一。
現階段高性能的目標檢測算法均基于深度神經網絡。深度神經網絡本質是一個參數量很多的非線性函數。算法優(yōu)化不斷更新所有參數,使得度量預測值和真實值距離的損失函數盡量小,優(yōu)化的范圍是特定數據集,優(yōu)化目標就將訓練數據的平均誤差最小化。
梯度下降算法是機器學習中使用非常廣泛的優(yōu)化算法,但是其各種變體都多少存在不足。如隨機梯度下降每次只使用一個樣本更新參數,優(yōu)化的波動性比較大;Adagrad[10]需要計算梯度序列平方和做分式的分母,學習率會不斷衰減到一個非常小的值;Adam[11]雖然目前很流行,但在很多領域不適用;AMSGrad[12]做到了低測試損失,但是沒有帶來訓練精度的提高。
另外,數據集包含數據的廣泛性直接影響算法在現實中的表現?,F實中任意特定的數據集是有限的,因此需要擴充數據集,使得模型泛化性更好。數據增強算法主要分為基于基本圖像處理技術和基于深度學習的數據增強算法。前者主要包括幾何變換,如平移、翻轉等,后者一般是通過建模轉化為一個離散搜索問題,包括Population Based Augmentation[13]、Fast AutoAugment[14]等,接著使用搜索算法來尋找最佳策略,這種方案一般需要大量的計算資源。
本文在以上模型基礎上作出改進,使得模型優(yōu)化速度快,精度提高,同時泛化性更好。
傳統(tǒng)目標檢測方法流程大體是首先進行區(qū)域選擇,然后進行特征提取,最后進行分類。
(1) 區(qū)域選擇。最初使用滑動窗口方法遍歷,這樣可以包含目標所有可能出現的位置。缺點是冗余窗口太多,效率比較低下。
(2) 特征提取。由于目標的姿態(tài)、光照強弱不同等外部因素,很難設計一個通用的特征。此階段常用的特征有SIFT[15]、HOG[16]等。
(3) 分類。使用分類器把提取的特征分類,主要有支持向量機等算法。
傳統(tǒng)算法提取特征基本是針對某一類對象專門設計的人工選定特征,不能很好地表達其他類別的目標,現階段不能滿足對性能和速度的要求。
目前高性能目標檢測算法是基于深度學習的,基本可以分為單階段檢測和雙個階段檢測2個類別。單階段檢測算法在一個步驟內完成分類和定位任務。雙階段目標檢測算法首先產生候選區(qū)域,然后對候選區(qū)域進行分類回歸得到類別和感興趣類別物體的具體位置。近幾年很多網絡設計技巧使得單階段檢測方法可以達到類似雙階段算法的準確率。
1.2.1 單階段目標檢測算法
單階段檢測算法在一個步驟內產生位置坐標和類別概率。具有代表性的有yolo、ssd、focal loss、yolov3,最新的EfficientDet等。
yolo采用一個卷積網絡來實現檢測,訓練和預測都做到了端到端。主要貢獻是算法比較簡潔且速度快,做到實時檢測;不足是每個單元格僅僅預測2個邊界框,而且屬于一個類別,對于小物體檢測效果欠佳。ssd結合yolo中的回歸思想和faster r-cnn中的anchor box機制,取整個特征提取過程中不同分辨率的特征圖均做預測,作了6個尺度的預測,損失也是每個尺度損失之和,從而提高算法的檢測精度;不足是需要人工設置默認檢測框的初始尺度和長寬比,另外在小目標上的表現有待提高。
focal loss針對訓練過程中正負樣本不均衡問題,在交叉熵損失函數基礎上進行修改。減少易分類樣本的損失,重點關注難訓練的樣本,在一定程度上克服了單階段檢測器對于正負樣本不平衡時難以訓練的問題。
yolov3使用3種不同尺度的特征圖來預測邊界框,并且結合殘差結構提出更健壯的特性提取器。利用多尺度特征進行對象檢測,yolov3檢測效率高,檢測流程簡單,背景誤檢率低。但是相比于RCNN系列,識別物體位置精準性差,召回率低。
EfficientDet設計加權雙向特征金字塔網絡BiFPN優(yōu)化多尺度特征融合問題,采用復合系數一致地縮放骨干網絡、BiFPN網絡、分類/檢測框網絡和分辨率。在與精度相當的算法相比較時,參數量小1/4~1/8,浮點計算量小1/9.7~1/28,GPU下加速1.4~3.2倍,CPU下加速3.4~8.1倍;與當時最好的SOTA方法比較,EfficientDet-d7模型規(guī)模明顯更小;在相同硬件條件下GPU計算延遲更小,CPU計算延遲更小,做到了在大范圍約束條件下同時滿足高精度和高效率。
1.2.2 雙階段目標檢測算法
雙階段目標檢測算法分2個階段處理檢測問題。第1個階段是產生候選區(qū)域,產生可能包含目標的初始邊界框,為后續(xù)目標定位服務。第2個階段對初始邊界框分類和位置修正。具有代表性的算法有r-cnn、faster r-cnn、mask r-cnn等。
r-cnn首先使用區(qū)域生成算法生成2 000個候選區(qū)域,之后使用預訓練好的AlexNet網絡進行特征提取,對每個類別分別訓練一個SVM分類器來判斷上面提取到的候選區(qū)域的特征是否屬于該類。它首次把卷積神經網絡成功用于目標檢測任務,缺點是訓練分為多個步驟,比較繁瑣,訓練和測試比較耗時,訓練占存儲空間。
faster r-cnn提出了區(qū)域建議網絡,實現了快速生成候選區(qū)域,同時增加分支可以完成目標檢測和語義分割。它提高了檢測精度和速度,真正實現端到端,不足是無法達到實時檢測,對每個候選區(qū)域分類的計算量偏大。
mask r-cnn為faster r-cnn添加并行的掩模分支做到同時實例分割、定位和分類。主干網絡使用特征金字塔網絡提取特征,由于加入了掩模分支,帶來損失值改變,間接增強了主干網絡的效果。
最新的EfficientDet算法通過改進FPN[17]多尺度融合方法并提出根據參數一致的縮放模型,結果非常吸引人。在資源限制條件下,其效率始終比現有技術高出一個數量級。該算法包括參數量不同的EfficientDet-d0到EfficientDet-d7,模型體積逐漸變大,精度逐漸提高,速度逐漸變慢。EfficientDet-d0和yolov性能相似,浮點計算量(floating point operation,FLOPs)是其1/28。對比focal loss和mask-rcnn,EfficientDet-d1實現了接近的性能,但參數量和FLOPs分別是它們的1/8和1/25。EfficientDet-d7取得了目前單尺度單模型最好的效果,同時參數量和FLOPs分別是先前最好方案的1/4和1/9。
本文在EfficientDet基礎上做出改進,使得檢測效果更加好,效率更高。受限于實驗環(huán)境,本文主要研究其中參數量和浮點計算量最小的EfficientDet-d0。
梯度下降法簡單來說就是一種尋找目標函數最小化的方法。具體是沿著目標函數J(θ),參數θ∈Rd,梯度相反方向-θJ(θ)來更新參數到達目標函數的(局部)極小值點,包括全量梯度下降(batch gradient descent, BGD)、隨機梯度下降(stochastic gradient descent, SGD)、小批量梯度下降(mini-batch gradient descent)、基于動量(Momentum)SGD[18]、Adagrad、Adam,AMSGrad、AdamW[19]和AdaMod[20]等。
全量梯度下降優(yōu)點在于每次更新都會朝著正確的方向進行,最后能夠保證收斂于極值點;其缺點是每次學習時間過長,并且不能投入新數據實時更新模型。隨機梯度下降每次隨機選擇一個樣本更新模型參數,每次的訓練速度快,但是準確度下降,優(yōu)化方向有波動。小批量梯度下降每次隨機選擇n個訓練樣本,降低了收斂波動性使得收斂更穩(wěn)定,可以使用矩陣運算進行高效計算,但是選擇一個合理的學習速率很難。
基于動量的SGD可以加速優(yōu)化損失函數并減小震蕩,不足是盲目地沿著坡下降,不具備將要上坡時就知道需要減速這類先驗知識;Adagrad對每個參數自適應不同的學習速率、低頻特征作較大更新,高頻特征作較小更新,但是需要計算梯度序列平方和做分式的分母,學習率不斷衰減到一個非常小的值;Adam對每一個參數都計算自適應的學習率,更新規(guī)則中還引入了歷史梯度指數衰減平均值。雖然Adam算法目前成為主流的優(yōu)化算法,不過在計算機視覺的對象識別、自然語言處理中的機器翻譯等很多領域里的最佳成果仍是使用基于動量的SGD得到的;AMSGrad指出使用歷史梯度平方的指數移動平均是Adam泛化能力差的原因之一,于是更新規(guī)則使用歷史梯度平方最大值,實驗表明比Adam收斂得快,但最終的訓練精確度和訓練損失與之表現一致。
AdamW觀察到L2正則化對于Adam并非有效甚至不利于優(yōu)化損失函數,Adam泛化能力沒有基于動量的SGD強,其中一個因素是權重衰減。實驗表明,分離出權重衰減項提高了Adam的泛化性能。
具體地,對于標準的SGD,權重衰減Weight Decay等同于L2正則化。本文提出了一個簡單但是很少有人注意的事實,即現行的所有深度學習框架在處理權重衰減的時候均采用了L2正則的方法,但實際上,L2正則在自適應梯度方法中,如Adam,與權重衰減并不等價。
例如基于動量的SGD優(yōu)化算法,即
vt=γvt-1+ηgt,
θt+1=θt-vt
(1)
其中:η為學習率;θ為權重參數;gt=θJ(θ),J(θ)為目標函數。網絡權重θt更新后乘以衰減率wt,衰減率wt略微小于1,即
θt+1=wtθt
(2)
權重衰減也可以理解為二范數正則化,它取決于添加到損失函數的權重衰減率wt,即
(3)
因此,AdamW從梯度更新中分離出權重衰減項,具體是在參數更新后添加權重衰減項實現?;趧恿康腟GD結合權重衰減更新如下:
vt=γvt-1+ηgt,
θt+1=θt-vt-ηwtθt
(4)
其中,第2個等式中ηwtθt為解耦后的權重衰減。
類似地,Adam結合權重衰減更新方式如下:
mt=β1mt-1+(1-β1)gt,
(5)
實驗表明,分離出權重衰減項提高了Adam的泛化性能,使其在圖像分類任務上性能得到提高。另外,它使學習率和權重衰減的選擇沒有聯(lián)系,這使得更好的超參數優(yōu)化成為可能。
AdamW在圖像分類數據集上通過實驗驗證,帶解耦權重衰減的Adam優(yōu)化算法的泛化性能始終優(yōu)于帶L2正則化的Adam。本文認為這樣的結果必須在更廣泛的任務中進行驗證,尤其是正則化比較重要的任務中。因為帶解耦權重衰減的Adam沒有在目標檢測數據集上進行實驗驗證其有效性,EfficientDet使用的是基于動量的SGD優(yōu)化器,所以模型訓練效率不高。本文為了提高收斂效率,使用AdamW作為優(yōu)化算法的一部分,加快網絡收斂速度。
另外,AdaMod發(fā)現網絡早期訓練階段存在的極大學習率會妨礙性能并導致不收斂,于是在Adam基礎上加入新的超參數描述記憶,這種長期記憶解決了自適應學習率的異常過大數值,并且不需要warmup模式,對初始超參數不敏感,訓練曲線更平滑。
AdaMod保持了自適應學習率自身的指數長期平均值,并在整個訓練過程中用該值修剪任何過高的適應率,從而提高了優(yōu)化器的收斂性,無需進行預熱,并且降低了對學習率的敏感性。記憶的程度由一個新的參數β3控制。該種長期記憶和從中的裁剪(限制大小)解決了許多自適應優(yōu)化器(Adam)的主要問題,即缺乏長期記憶可能會導致不收斂,優(yōu)化器由于自適應學習率而達到局部最優(yōu)。
具體來說,在Adam中添加新參數β3操作如下:
st=β3st-1+(1-β3)ηt
(6)
其中:ηt為Adam在第t步計算得到的學習率;st為當前步驟平滑值。新參數β3就是記憶長短的度量。當β3=0.9時,記憶平均范圍為10個周期;當β3=0.999時,記憶平均范圍為1 000個周期。根據β3得到平滑值st和之前s0,s1,…,st-1的關系:
st=(1-β3)[st-1+β3st-2+
(7)
顯然,當β3=0時,AdaMod完全等價于Adam。
計算出當前平滑值st后,在它和當前Adam計算得到的學習率ηt中選出一個最小值,即
(8)
從而有效避免了學習率過大的情況。該項操作可以看作是逐個控制學習率的大小,從而使輸出受到當前平滑值的限制。
實驗表明,AdaMod不需要warmup模式。同時實驗例證了SGDM和Adam的訓練結果均依賴于初始學習率的選擇,AdaMod即使學習率相差2個數量級,也能收斂于同一結果,說明對學習率超參數不敏感。通過長期記憶和從中裁剪在整個訓練過程中提高了穩(wěn)定性,通常在最終結果上優(yōu)于Adam,訓練曲線更平滑。然而它也有局限性,盡管AdaMod勝過Adam,但是在更長的訓練周期下,基于動量的SGD優(yōu)化算法仍然可以勝過AdaMod。
考慮到AdamW實驗驗證的帶解耦權重衰減的Adam優(yōu)化算法的泛化性能始終好于帶L2正則化的Adam,同時結合AdaMod不需要warmup、對初始學習率不敏感和訓練曲線更平滑的優(yōu)點及較長訓練周期下不如基于動量的SGD。本文采取訓練前期使用AdaMod訓練,后期使用AdamW優(yōu)化器訓練的優(yōu)化方案,具體見實驗部分。
深度學習在計算機視覺任務許多方面都表現出良好的性能,然而嚴重依賴大量數據增加可靠性同時避免過擬合。許多應用領域無法利用大量數據,如醫(yī)學圖像分析。數據增強技術可以提高訓練數據集的大小和質量,從而可以使用它們構建更好的深度學習模型。具體通過數據增強實現數據更復雜的表征,從而減小驗證集和訓練集以及最終測試集的差距,使網絡更好地學習遷移數據集上的數據分布。
數據增強算法主要分為基于基本圖像處理技術和基于深度學習2類?;诨緢D像處理的數據增強主要包括幾何變換、翻轉、色彩空間、裁剪、旋轉、平移、噪聲、色彩空間轉換等;此外基本增強還包括基于濾波器核的圖像增強、隨機擦除增強、混合圖像等?;谏疃葘W習的數據增強算法主要包括特征空間增強,基于生成式對抗網絡(generative adversarial networks,GAN)的數據增強、神經風格轉換等。
基于深度學習的數據增強一般建模為一個離散搜索問題,需要創(chuàng)建一個數據增強策略的搜索空間,該搜索空間中的一個策略包含許多子策略,為每個小批量(mini-batch)中的每張圖像隨機選擇一個子策略。每個子策略由2個操作組成,每個操作都是類似平移、旋轉或剪切的圖像處理函數,以及應用這些函數的概率和幅度(magnitude)。一般地,此類方法需要消耗大量的計算資源,如Population Based Augmentation、Fast AutoAugment等。對于普通用戶而言在計算資源這一方面難以滿足。
相反地,基本圖像處理技術的數據增強方法實現簡單,增加的計算量很少。考慮到大部分數據增強沒有考慮不同樣本不同類之間的關聯(lián),同時mixup[21]現階段使用在目標檢測任務上比較少?,F有目標檢測算法往往是在特定公開數據集上進行訓練和評估,這些都屬于高質量的圖像,實際場景中,目標通常會受光照強度、遮擋等因素影響。為了增加實際復雜場景下的檢測精度,本文采用混合圖像里面表現較好的mixup,屬于混合圖像。
文獻[21]提出了一種和數據本身無關的線性插值方案,即
(9)
圖1 兩圖混合示例
Positive和Negative代表模型的判斷結果,True和False評價模型的判斷結果是否正確。真正例(true positive, TP):被判定為正樣本,事實上也是正樣本;假正例(false positive, FP):被判定為正樣本,但事實上是負樣本;真負例(true negative, TN):被判定為負樣本,事實上也是負樣本;假負例(false negative, FN):被判定為負樣本,但事實上是正樣本。以識別大雁和飛機分類系統(tǒng)舉例,假定系統(tǒng)目的是識別飛機,TP就是飛機的圖片被正確識別為飛機,FN就是飛機的圖片系統(tǒng)錯誤地分類成大雁。
精確率Precision為:
(10)
精確率就是所有被識別出來的飛機中,真正的飛機所占的比例。
召回率Recall為:
(11)
召回率就是被正確識別出來的飛機個數與測試集中所有真實飛機的個數的比值。
準確率Accuracy為:
(12)
下面介紹矩形框交并比(intersection-over-union, IoU)。二維平面上2個矩形框記做A和B,S代表面積。IoU的定義為2個矩形框面積的交集和并集的比值,即
(13)
交并比范圍為0~1。
對于目標檢測來說,當預測框與真實框的IoU值大于某個閾值時,該預測框才被認定為真樣例,反之就是假樣例。本文先固定IoU閾值為0.5。
檢測網絡輸出預測框的類別、置信度得分、檢測框(預測框)的大小和位置。設置不同的置信度閾值,會得到不同數量的檢測框。閾值高,得到檢測框數量少;閾值低,得到檢測框數量多。
下面首先選定某一個需要檢測的類別,定義精確率Precision和召回率Recall。
(1) 計算精確率Precision。固定好IoU閾值,設置預測框置信度閾值會得到一組檢測框,數量為TP+FP。根據IoU閾值劃分檢測框,大于IoU閾值的檢測框劃分為TP;否則劃分為FP。根據公式在類別內計算精確率Precision。
(2) 計算召回率Recall。因為TP+FN是所有的人工標注值(已知的檢測框的數量),根據公式計算即可。召回率也是在特定的類別中計算的。
(3) Precision-Recall曲線。設置不同的預測框置信度閾值會得到一組精確率Precision和召回率Recall,以召回率Recall為橫軸,以精確率Precision為縱軸得到的曲線就是Precision-Recall曲線。需要注意的是對于檢測系統(tǒng)來說,每個需要檢測的類別都會得到一條Precision-Recall曲線。
某個類別的平均精度(average precision,AP)就是該類別Precision-Recall曲線下面的面積。假定最開始選定的IoU閾值為0.50,記作AP50,最開始選定的IoU閾值為0.75,記作AP75,現在比較通用的計算方法為AP根據10個IoU閾值(0.50、0.55、0.60、0.65、0.70、0.75、0.80、0.85、0.90、0.95)計算出對應AP取均值就是最終這個類別的AP值。
特定數據集下的均值平均精度(mean average precision, mAP)是目標檢測系統(tǒng)中需要檢測此數據集包含的各個類別獲得的AP的平均值。則AP50得到mAP50,AP75得到mAP75,或者10個IoU閾值計算出的AP得到mAP。
在目標檢測方面,過去10 a中已經發(fā)布了許多著名的數據集和基準測試,包括MS COCO檢測挑戰(zhàn)賽數據集[22]、PASCAL VOC挑戰(zhàn)賽數據集[23-24](VOC2007、VOC2012)等通用目標檢測數據集。
PASCAL VOC挑戰(zhàn)賽是早期計算機視覺界最重要的比賽之一。PASCAL VOC中包含多種任務,包括圖像分類、目標檢測、語義分割和動作檢測。2種版本的PASCAL VOC主要用于對象檢測,即VOC07和VOC12,前者由5×103訓練圖像加上12×103標注的物體組成,后者由11×103訓練圖像加上27×103標注的物體組成。這2個數據集中標注了生活中常見的20類對象。
MS-COCO是目前最具挑戰(zhàn)性的目標檢測數據集。如MS-COCO-17包含來自80個類別的164×103圖像和897×103帶注釋的對象。MS-COCO包含更多的小對象(面積小于圖像的1%)和比VOC和ILSVRC更密集的定位對象。與VOC相比,MS-COCO最大的進步是除了邊框標注外,每個對象都進一步使用實例分割進行標記,以幫助精確定位。
受限于計算資源,本文使用VOC07+12數據集,在VOC2007和VOC2012的train+val集(16 551張)上訓練,在VOC2007的test集(4 952張)上測試。只在EfficientDet-d0上作實驗驗證,基礎網絡是efficientnet[25]提出的efficientnet-b0。
本文具體訓練策略如下:因為AdaMod無需預熱,所以訓練前期使用AdaMod訓練200個epoch;后期用AdamW優(yōu)化器訓練了60個epoch;260個epoch后加入mixup圖像增強訓練至480個epoch后,不再采用mixup作收斂訓練至500個epoch,此時損失趨于穩(wěn)定,并且在達到600個epoch并沒有大的提升。
超參數設置如下:前180個epoch學習率為0.001,后面的為1×10-4,權重衰減5×10-6,動量參數為0.9。損失函數選用focal loss,使用Pytorch1.3.0框架。
訓練260個批次后模型在VOC07測試集上mAP為57.7%,500個epoch mAP達到71.7%,此時損失趨于穩(wěn)定,并且在之后達到600個epoch并沒有大的提升。IOU閾值為0.5時mAP和各類AP見表1所列。
表1 epoch 260、epoch 500的AP和mAP結果 單位:%
檢測速度方面,VOC07測試集共有4 952張圖片,單個NVIDIA GeForce GTX 1070檢測所有圖像需要182.3 s,每張圖片平均檢測用時0.036 s,平均每秒檢測圖片數目(frames per second,FPS)為27.2,基本達到實時檢測的效果。
綜合FPS、模型參數量和模型浮點運算次數, faster rcnn和r-fcn[26]的參數量、浮點運算量很大,同時做不到實時檢測。yolo、ssd、yolov2[27]雖然做到了實時檢測,但是參數量和浮點運算量依然比較大。tiny-yolo做到了較小的參數量和浮點運算量,但是均值平均精度mAP比較差。pelee[28]和dsod-small[29]綜合3個方面比較好。本文使用的EfficientDet-d0參數量只有3.9 M,是最少的。
綜合來說EfficientDet-d0是目前較小檢測算法里面綜合性能較好的,見表2所列。表2中其他算法選定圖像輸入大小、基礎網絡后得到的FPS、參數量、浮點運算量和mAP分別來源于對應文獻的計算結果和Tiny-DSOD[30]總結。
表2 不同檢測算法FPS、模型參數量、浮點計算量和PASCAL VOC2007測試集mAP對比
本文首先分析傳統(tǒng)的和基于深度學習的具有代表性的目標檢測算法各自優(yōu)勢;接著概括梯度下降法各種變體優(yōu)化算法對應的優(yōu)缺點,根據以上總結選擇結合使用AdaMod和AdamW優(yōu)化器作為本文的神經網絡優(yōu)化策略;此外考慮到深度神經網絡性能表現和數據集有較大聯(lián)系,本文羅列并分析現階段主流的數據增強方法并結合實際分析其可行性,選擇使用基本圖像處理技術中混合圖像做數據增強;最后通過VOC07+12數據集上的實驗結果,驗證本文應用的優(yōu)化策略和數據增強方案有利于網絡收斂得更快更好,并且泛化性能得到提高,做到了速度、精度和泛化性能兼?zhèn)洹?/p>