版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第九章基于深度學習的目標檢測窮究于理·成就于工0203實例:基于深度學習的目標檢測網絡YOLOv4基于深度學習的目標檢測網絡的發展01目標檢測概述目錄窮究于理·成就于工01目標檢測概述目標檢測概述
在計算機視覺眾多的技術領域中,目標檢測(ObjectDetection)是一項非常基礎的任務,圖像分割、物體追蹤、關鍵點檢測等通常都要依賴于目標檢測。目標檢測的目的在于輸入圖像中往往有很多物體,目的是判斷出物體出現的位置與類別,是計算機視覺中非常核心的一個任務。
在目標檢測時,由于每張圖像中物體的數量、大小及姿態各有不同,也就是非結構化的輸出,這是與圖像分類非常不同的一點,并且物體時常會有遮擋截斷,所以物體檢測技術也極富挑戰性,從誕生以來始終是研究學者最為關注的焦點領域之一。目標檢測示意圖在利用深度學習做物體檢測之前,傳統算法對于目標檢測通常分為3個階段:區域選取、特征提取和特征分類目標檢測概述首先選取圖像中可能出現物體的位置,由于物體位置、大小都不固定,因此傳統算法通常使用滑動窗口(SlidingWindows)算法,但這種算法會存在大量的冗余框,并且計算復雜度高區域選取在得到物體位置后,通常使用人工精心設計的提取器進行特征提取,如SIFT和HOG等。由于提取器包含的參數較少,并且人工設計的魯棒性較低,因此特征提取的質量并不高。特征提取對上一步得到的特征進行分類,通常使用如SVM、AdaBoost的分類器。特征分類深度學習目標檢測深度學習技術近年來發展迅猛,神經網絡的大量參數可以提取出魯棒性和語義性更好的特征,并且分類器性能也更優越,從此便拉開了深度學習做目標檢測的序幕。基于深度學習的目標檢測通常需要在一張圖像中檢測出物體出現的位置及對應的類比,要求檢測器輸出5個值:物體類別class、目標檢測框(boundingbox)左上角x軸坐標、boundingbox左上角y軸坐標、boundingbox右下角x軸坐標、boundingbox右下角y軸坐標,如圖所示。基于深度學習的目標檢測器輸出深度學習目標檢測早期的深度學習目標檢測模型一個窗口只能預測一個目標,把窗口輸入到分類網絡中,最終得到一個預測概率,這個概率偏向哪個類別則把窗口內的目標預測為相應的類別,例如在圖中回歸得到的行人概率更大,則認為這個目標為人,如圖所示。窗口回歸示意圖深度學習目標檢測后期針對深度學習目標檢測框架提出的錨框(AnchorBox)是學習目標檢測過程中最重要且最難理解的一個概念。這個概念最初是在FasterRCNN中提出,此后在SSD、YOLOv2、YOLOv3等優秀的目標識別模型中得到了廣泛的應用。AnchorBox就是在圖像上預設好的不同大小,不同長寬比的參照框。AnchorBox跟傳統目標檢測中使用的“SlidingWindows”差不多,只不過并不是固定死的,在輸入圖像中采樣的時候,每個黑色方框代表圖像特征提取過程中某個特征圖上的特征,以每一個box為中心生成多個大小和寬高比不同的boundingbox,這些邊界框就是AnchorBox。錨框的工作原理
02基于深度學習的目標檢測網絡的發展目標檢測網絡的發展由于深度卷積網絡能夠學習圖像的魯棒性和高層次特征表示,一個自然的問題是能否將其應用到目標檢測中。R.Girshick等人在2014年率先打破僵局,提出了基于卷積(CNN)特征的區域(RCNN)用于目標檢測。基于卷積神經網絡兩階段深度學習目標檢測的代表性框架RCNN的基本原理為:首先通過選擇性搜索提取一組對象建議(對象候選框)兩階段檢測單階段深度學習目標檢測的代表性框架YOLO由R.Joseph等人于2015年提出。它是深度學習時代[20]的第一個單級檢測器單階段檢測兩階段檢測的發展2014年,K.He等人提出了空間金字塔池化網絡(SpatialPyramidPoolingNetworks,SPPNet)。
2015年,R.Girshick提出了FastRCNN檢測器,這是對RCNN和SPPNet的進一步改進。FastRCNN使能夠在相同的網絡配置下同時訓練檢測器和邊界框回歸器。2015年,S.Ren等人提出了FasterRCNN檢測器2017年,T.-Y.Lin等人基于FasterRCNN提出了特征金字塔網絡(FPN)。單階段檢測的發展單階段深度學習目標檢測的代表性框架YOLO由R.Joseph等人于2015年提出。它是深度學習時代的第一個單級檢測器。但是YOLO的定位精度有所下降,特別是對于一些小目標。SSD由W.Liu等人于2015年提出。這是深度學習時代的第二款單級探測器。SSD的主要貢獻是引入了多參考和多分辨率檢測技術,這大大提高了單級檢測器的檢測精度,特別是對于一些小目標。單級檢測器速度快、結構簡單,但多年來一直落后于兩級檢測器的精度。T.-Y.Lin等人發現了背后的原因,并在2017年提出了RetinaNet。深度學習目標檢測數據集的發展1.PASCAL可視化對象類(VisualObjectClasses,VOC)挑戰(2005—2012年)是早期計算機視覺界最重要的比賽之一。PASCALVOC中包含多種任務,包括圖像分類、目標檢測、語義分割和動作檢測。兩種版本的Pascal-VOC主要用于對象檢測:VOC07和VOC12,前者由5ktr.images+12kannotatedobjects組成,后者由11ktr.Images+27kannotatedobjects組成。這兩個數據集中注釋了生活中常見的20類對象(Person:person;Animal:bird,cat,cow,dog,horse,sheep;Vehicle:airplane,bicycle,boat,bus,car,motor-bike,train;Indoor:bottle,chair,diningtable,pottedplant,sofa,tv/monitor)。近年來,隨著ILSVRC、MS-COCO等大型數據集的發布,VOC逐漸淡出人們的視野,成為大多數新型檢測器的試驗臺。2.ImageNet大規模視覺識別挑戰(LargeScaleVisualRecognitionChallenge,ILSVRC)推動了通用目標檢測技術的發展。ILSVRC檢測數據集包含200類視覺對象。它的圖像與對象實例的數量比VOC大兩個數量級。3.MS-COCO是目前最具挑戰性的目標檢測數據集。它的對象類別比ILSVRC少,但是對象實例多。例如,MS-COCO-17包含來自80個類別的164k圖像和897k帶注釋的對象。4.繼MS-COCO之后,開放圖像檢測(OID)技術在2018年迎來了前所未有的挑戰。在開放圖像中有兩個任務,即標準目標檢測、視覺關系檢測,檢測特定關系中成對的目標。對于目標檢測任務,數據集由1,910k張圖像和15,440k個帶注釋的邊界框組成,這些邊界框位于600個對象類別上。03實例:基于深度學習的目標檢測網絡YOLOv4YOLOv4簡介YOLOv4是一個結合了大量前人研究技術,加以組合并進行適當創新的基于深度學習的目標檢測框架,實現了速度和精度的完美平衡,是一種代表性的基于深度學習的單階段目標檢測框架。有許多技巧可以提高卷積神經網絡(CNN)的準確性,但是某些技巧僅適合在某些模型上運行,或者僅在某些問題上運行,或者僅在小型數據集上運行。針對上述問題YOLOv4在YOLOv3的基礎上所使用的調優手段包括:跨階段部分連接(CSP),自對抗訓練(SAT),Mish激活函數,馬賽克數據增強,
DropBlock正則化,
CIoULoss等。YOLOv4開發了一個高效、強大的目標檢測模型。它可使用1080Ti或2080Ti
GPU來訓練一個快速和準確的目標檢測器。驗證了在檢測器訓練過程中,最先進的Bag-of-Freebies和Bag-of-Specials的目標檢測方法的影響。修改了最先進的方法,包括CBN、PAN、SAM等。使其更有效,更適合于單GPU訓練。YOLOv4網絡結構與工作原理YOLOv4為一種基于深度學習由卷積神經網絡構成的目標檢測網絡,網絡整體由三部分組成,分別為特征提取主干(Backbone)、檢測頸部(Neck)、檢測頭部(Head)。其基本構架如圖所示。YOLOv4網絡結構與工作原理
特征提取主干(Backbone)的作用在于提取檢測圖像中目標的多尺度特征。由一系列的CBM塊,跨階段部分連接(CSP)組成。其中,CBM由基本的單層卷積層conv、批歸一化層BatchNormalization和一個Mish激活函數層組成。
跨階段部分連接(CSP)由CBM+殘差單元(ResUnit)+拼接(Concat)組成。使用跨階段部分連接(CSP)能夠有效提升提取特征的表征能力。跨階段部分連接(CSP)包含兩個特征提取分路:下分路為CBM、ResUnit、CBM,上分路為一個CBM子模塊,上下分路輸出進行拼接操作(Concat),ResUnit中的CBL模塊由基本的單層卷積層Conv、批歸一化層BatchNormalization和一個Leakyrelu激活函數層組成。CSP結構如圖所示。YOLOv4網絡結構與工作原理檢測頸部(Neck)的作用在于混合和組合圖像特征的網絡層,復用與融合各層提取特征,并將圖像特征傳遞到檢測頭部(Head)。檢測頸部(Neck)包含之前提到的CBL、空間金字塔(SPP)以及上采樣三個子模塊。其中,空間金字塔(SPP)主要是用來解決不同尺寸的特征圖如何進入全連接層的,其基本原理為對任意尺寸的特征圖直接進行固定尺寸的池化,來得到固定數量的特征。SPP基本工作原理如圖所示。YOLOv4網絡結構與工作原理以3個尺寸的池化為例,對特征圖進行一個最大值池化,即一張特征圖得取其最大值,得到1d(d是特征圖的維度)個特征;對特征圖進行網格劃分為2×2的網格,然后對每個網格進行最大值池化,那么得到4d個特征;同樣,對特征圖進行網格劃分為4×4個網格,對每個網格進行最大值池化,得到16d個特征。接著將每個池化得到的特征通過拼接與卷積聚合起來即得到固定長度的特征個數(特征圖的維度是固定的),接著就可以輸入到全連接層中進行訓練網絡了。用到這里是為了增加感受野。同時需要注意到,檢測頸部(Neck)中的上采樣操作上采樣(Upsample)僅擴大特征圖大小(YOLOv4中上采樣為原來的2倍),不改變通道數。YOLOv4網絡結構最后一部分,檢測頭部(Head)的作用在于輸出3個尺度的檢測結果,得到最終的目標檢測與分類框(boundingbox)。檢測頭部(Head)包含YOLOv4網絡最后一層的conv層,以及模型輸出進行解碼操作。
YOLOv4是一個結合了大量前人研究技術,加以組合并進行適當創新的基于深度學習的目標檢測框架,實現了速度和精度的完美平衡,是一種代表性的基于深度學習的單階段目標檢測框架。有許多技巧可以提高卷積神經網絡(CNN)的準確性,但是某些技巧僅適合在某些模型上運行,或者僅在某些問題上運行,或者僅在小型數據集上運行。針對上述問題YOLOv4在YOLOv3的基礎上所使用的調優手段包括:跨階段部分連接(CSP),自對抗訓練(SAT),Mish激活函數,馬賽克數據增強,
DropBlock正則化,
CIoULoss等。YOLOv4開發了一個高效、強大的目標檢測模型。它可使用1080Ti或2080Ti
GPU來訓練一個快速和準確的目標檢測器。驗證了在檢測器訓練過程中,最先進的Bag-of-Freebies和Bag-of-Specials的目標檢測方法的影響。修改了最先進的方法,包括CBN、PAN、SAM等。使其更有效,更適合于單GPU訓練。YOLOv4簡介YOLOv4網絡的訓練與測試
YOLOv4網絡作為為一個典型的基于深度學習的目標檢測網絡,遵循端到端(Endtoend)的訓練與測試方式。即通過加載數據集在損失函數的指導下對網絡進行訓練,收斂后獲得最優模型,最后進行測試。訓練與測試的流程如右圖所示。用于訓練與測試YOLOv4的數據集包括訓練集與測試集。網絡的訓練與測試采用MSCOCOobjectdetection數據集,該數據集數據集是微軟構建的一個數據集,其包含檢測(detection),分割(segmentation),關鍵點檢測(keypoints)等任務。與PASCALCOCO數據集相比,COCO中的圖片包含了自然圖片以及生活中常見的目標圖片,背景比較復雜,目標數量比較多,目標尺寸更小,因此COCO數據集上的任務更難,對于檢測任務來說,現在衡量一個模型好壞的標準更加傾向于使用COCO數據集上的檢測結果。MS
COCO
objectdetection數據集總共包含91個類別,其中,訓練集:165482張,驗證集:81208張,測試集:81434張,并均帶有標簽。YOLOv4網絡的訓練與測試YOLOv4的訓練細節,加載訓練集之后,訓練該網絡采用隨機梯度下降(SGD)優化器,在損失函數的指導下訓練該網絡,YOLOv4采用CIoULoss以指導網絡訓練,采用的損失函數如式所示。
式中,Lciou為損失函數值;IoU為預測檢測框與真實檢測框的交并比;p為兩個檢測框之間的歐氏距離;表示兩個檢測框的閉包區域的對角線的距離;與為兩個檢測框的中心點;為權重系數;用以衡量兩個檢測框相對比例的一致性。在MSCOCOobjectdetection訓練集上進行訓練,訓練過程中數據集增廣方式使用了CutMix數據增強。默認超參數如下:訓練批次為500,采用步進衰減學習率調度策略,初始學習率0.01,在40萬步和45萬步時學習率分別乘以衰減因子0.1,動量衰減和權重衰減分別設為0.9和0.0005。經歷500epochs后得到最優檢測模型進行測試YOLOv4網絡的訓練與測試
首先導入需要的python庫,然后定義項目路徑(PROJECT_PATH)、數據路徑(DATA_PATH)、YOLO類型(MODEL_TYPE)、卷積類型(CONV_TYPE)、注意力機制類型(ATTENTION)。
然后進行訓練相關參數設置,比如數據集為VOC、訓練圖像尺寸大小為416像素、使用數據增強技術進行訓練、訓練批量大小為1、在訓練過程中使用多尺度訓練、訓練輪數為50次等。這些參數會被用于訓練YOLO目標檢測模型,具體的訓練過程會根據這些參數進行配置。
設置完訓練參數后,驗證參數同理,設置測試圖像大小、批處理大小等參數,這些參數根據具體的應用場景和需求進行設置,用于控制模型的行為和輸出結果。
完成上面一系列參數的設置后,緊接著用三個字典變量定義了該模型要用到的數據集,這里給出了三種數據集以及各自數據集中的類別數量和類別列表。第一種Customer_DATA是用戶自定義數據集,第二種是VOC_DATA,包括20種物體,第三種是COCO_DATA,包括80種物體。這些字典變量存儲了不同數據集中物體類別的信息,以便在目標檢測任務中使用。根據具體的數據集和應用場景,可以通過訪問這些變量來獲取相應數據集的類別數量和類別列表。這樣可以方便地進行模型訓練、評估和預測等操作。YOLOv4網絡的訓練與測試
配置完相關參數后,就可以對模型進行訓練,下圖是YOLOv4的訓練代碼流程圖。首先導入需要用到的一系列所需的庫和模塊,例如日志記錄(logging)、GPU選擇(utils.gpu)、模型構建(model.build_model.Build_Model)、損失函數(model.loss.yolo_loss.YoloV4Loss)等,還導入了其他輔助函數和工具庫;導入所需庫和模塊之后,定義了一個detection_collate函數,該函數用于處理目標檢測數據集的批量樣本,將圖像和目標標簽分別存儲到imgs和targets列表中,并返回批量化后的圖像和標簽;然后定義類“Trainer”,用于訓練目標檢測模型,類中包含初始化函數,用于設置訓練器的各項參數和屬性、定義函數"__load_resume_weights"以從檢查點文件中加載權重、定義函數"__save_model_weights"以在不同的epoch中保存模型權重、定義函數"train"以開始訓練過程等;然后是一個訓練器(Trainer)的入口函數,用于設置訓練的參數并調用訓練函數進行目標檢測模型的訓練。YOLOv4網絡的訓練與測試YOLOv4的測試。下圖是YOLOv4的測試代碼流程圖。首先導入一系列所需要的庫和模塊,例如GPU選擇(utils.gpu)、模型構建(model.build_model.Build_Model)、工具函數(utils.tools)、日志記錄(logging)等;然后定義類“Detection”,用于執行物體檢測任務,類中包含初始化函數,用于設置檢測過程中的各項參數和屬性、定義了“__load_model_weights()”函數,其作用是加載模型的權重文件,并將權重應用到模型中、定義函數“Video_detection()”,用于進行視頻檢測,它使用OpenCV庫來讀取視頻,并在每一幀上進行目標檢測和可視化;然后是一個入口函數,使用了命令行參數解析器argparse來解析用戶傳入的參數;接下來,創建一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保險AI算力安全與合規性研究
- 2026湖北民族大學第二批人才引進17人筆試模擬試題及答案詳解
- 2026江西省人力資源有限公司上饒分公司勞務外包人員招聘10人筆試模擬試題及答案詳解
- 2026年8月哈爾濱啟航勞務派遣有限公司派遣到哈爾濱工業大學航天學院控制與仿真中心招聘1人筆試參考題庫及答案詳解
- 2026年8月商城縣建筑工程質量指導站招募2名見習人員筆試參考題庫及答案詳解
- 2026年酒泉市蘭天科技開發公司招聘筆試備考題庫及答案詳解
- 2026四川宜賓市南溪區增量政策性崗位招募40人筆試參考題庫及答案詳解
- 醫療醫生病例質量與患者滿意度績效考核表
- 銅陵市文化產業投資集團有限責任公司公開招聘急需緊缺人才5名考試備考試題及答案詳解
- 2026西安醫學院第三附屬醫院公開招聘工作人員14人筆試參考題庫及答案詳解
- 2026年農村經濟經管服務崗事業單位招聘考試參考題庫(含答案)
- 2026年處方審核規范化培訓試題及答案
- 2026 年高中秋季新生開學軍訓“堅定信念追逐青春理想”
- 礦山運輸安全措施培訓課件
- 2026年福建中共廈門市委網信辦非公黨建工作指導員招聘2人筆試題庫及答案詳解(歷年真題)
- 2026年數學建模C題 完整題目+建模答案+代碼解析(完整版)
- 1995年74號文轉發省勞動廳河南省深化企業職工養老保險制度改革試行方案的通知
- 2026年軟考-系統架構設計師考試真題及答案
- 2026重慶青年職業技術學院招聘80人備考題庫及一套參考答案詳解
- 測土配方施肥技術實施方案
- 前列腺癌診療中國指南(2026 版)
評論
0/150
提交評論