Yolo-Z:改進的YOLOv5用于小目標檢測(附原論文下載)
一、前言
隨著自動駕駛汽車和自動駕駛賽車越來越受歡迎,對更快、更準確的檢測器的需求也在增加。
雖然我們的肉眼幾乎可以立即提取上下文信息,即使是在很遠的地方,但圖像分辨率和計算資源的限制使得檢測較小的對象(即在輸入圖像中占據(jù)小像素區(qū)域的對象)對機器來說是一項真正具有挑戰(zhàn)性的任務和廣闊的研究領域。
本研究探討了如何修改流行的YOLOv5目標檢測器以提高其在檢測較小對象方面的性能,特別是在自主賽車中的應用。為了實現(xiàn)這一點,研究者研究了替換模型的某些結(jié)構(gòu)元素(以及它們的連接和其他參數(shù))如何影響性能和推理時間。為此,研究者提出了一系列不同尺度的模型,將其命名為“YOLO-Z”,當以50%的IoU檢測較小的物體時,這些模型的mAP提升高達6.9%,而代價與原始YOLOv5相比,推理時間增加了 3ms。
研究者們的目標是為未來的研究提供有關調(diào)整流行檢測器(例如YOLOv5)以解決特定任務的潛力的信息,并提供有關特定更改如何影響小物體檢測的見解。這些發(fā)現(xiàn)應用于更廣泛的自動駕駛汽車環(huán)境,可以增加此類系統(tǒng)可用的環(huán)境信息量。
二、背景
檢測圖像中的小物體具有挑戰(zhàn)性,主要是由于模型可用的分辨率和上下文信息有限。許多實現(xiàn)目標檢測的系統(tǒng)都以實時速度執(zhí)行此操作,從而對計算資源提出了特定要求,尤其是在處理要在捕獲圖像的同一設備上進行時。許多自動駕駛車輛系統(tǒng)就是這種情況,其中車輛本身實時捕獲和處理圖像,通常是為了通知其下一步行動。在這種情況下,檢測較小的物體意味著檢測距離汽車較遠的物體,從而可以更早地檢測到這些物體,有效地擴大了車輛的檢測范圍。這一特定領域的改進將更好地為系統(tǒng)提供信息,使其能夠做出更穩(wěn)健和可行的決策。由于目標檢測器的性質(zhì),較小對象的細節(jié)在其卷積主干的每一層處理時失去了意義。在本研究中,“小物體”是指在輸入圖像中占據(jù)小像素區(qū)域的物體。
目前,已經(jīng)有很多研究者努力改進對較小物體的檢測[如An Evaluation of Deep Learning Methods for Small Object Detection],但許多都圍繞著圖像的特定區(qū)域進行處理或集中在two-stages檢測器周圍,這些檢測器以實現(xiàn)以推理時間為代價獲得更好的性能,使其不太適合實時應用程序。這也是為此類應用開發(fā)了如此多的單級檢測器的原因。增加輸入圖像分辨率是繞過此問題的另一種明顯方法,但會導致處理時間顯著增加。
三、新思路
已經(jīng)投入了一些努力來開發(fā)將處理導向輸入圖像的某些區(qū)域的系統(tǒng),這使我們能夠調(diào)整分辨率,從而繞過定義對象的像素較少的限制。然而,這種方法更適合對時間不敏感的系統(tǒng),因為它們需要多次通過不同規(guī)模的網(wǎng)絡。這種更加關注特定尺度的想法仍然可以激發(fā)我們處理某些特征圖的方式。此外,通過查看如何處理特征圖而不是僅僅修改主干可以學到很多東西。不同類型的特征金字塔網(wǎng)絡(FPN)可以不同地聚合特征圖,以不同方式增強主干。這種技術(shù)被證明是相當有效的。
YOLOv5框架
YOLOv5為其模型提供了四種不同的尺度,S、M、L和X,分別代表Small、Medium、Large和Xlarge。這些比例中的每一個都將不同的乘數(shù)應用于模型的深度和寬度,這意味著模型的整體結(jié)構(gòu)保持不變,但每個模型的大小和復雜性都會按比例縮放。
在實驗中,我們在所有尺度上分別對模型結(jié)構(gòu)進行更改,并將每個模型視為不同的模型,以評估其效果。為了設置基線,我們訓練并測試了YOLOv5四個未修改版本。然后,分別測試了對這些網(wǎng)絡的更改,以便根據(jù)我們的基線結(jié)果分別觀察它們的影響。在進入下一階段時,那些似乎對提高準確性或推理時間沒有貢獻的技術(shù)和結(jié)構(gòu)被過濾掉了。然后,嘗試了所選技術(shù)的組合。重復這個過程,觀察某些技術(shù)是相互補充還是相互削弱,并逐漸增加更復雜的組合。
Proposed architectural changes
YOLOv5使用yaml文件來指示解析器如何構(gòu)建模型。我們使用此設置編寫自己的高級指令,說明如何構(gòu)建模型的不同構(gòu)建塊以及使用哪些參數(shù),從而修改其結(jié)構(gòu)。為了實現(xiàn)新結(jié)構(gòu),我們安排并為每個構(gòu)建塊或?qū)犹峁﹨?shù),并在必要時指示解析器如何構(gòu)建它。用我們的話來說,我們利用了YOLOv5提供的基礎和實驗網(wǎng)絡塊,同時在需要的地方實現(xiàn)了額外的塊來模擬所需的結(jié)構(gòu)。
其中,neck的修改:
在這項工作中,將當前的Pan-Net[Path aggregation network for instance segmentation]簡化為FPN,并將其替換為biFPN[EfficientDet: Scalable and Efficient Object Detection]。在這兩種情況下,neck都保留了類似的功能,但復雜性有所不同,因此實現(xiàn)它們所需的層數(shù)和連接數(shù)也有所不同。
其他修改可見論文。
可以在包含性和排他性的結(jié)構(gòu)方面實現(xiàn)如何支持較小的特征圖的示例
四、實驗分析
Results of applying individual architectural changes to YOLOv5 at each scale
YOLOv5和YOLO-Z的比較
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。