YOLO(You Only Look Once,你只看一次)是一系列開創(chuàng)性的實時目標檢測模型,它們徹底改變了計算機視覺領域。由Joseph Redmon開發(fā),后續(xù)版本由不同研究人員迭代,YOLO模型以其在圖像中檢測對象的高速度和準確性而聞名。以下是對每個YOLO版本的詳細查看:
1. YOLOv1
發(fā)布時間:2016年
主要貢獻:
- 統(tǒng)一檢測:YOLOv1引入了一種新方法,將目標檢測框架作為一個單一的回歸問題,直接從圖像像素到邊界框坐標和類別概率。
- 網(wǎng)格系統(tǒng):圖像被劃分為S x S的網(wǎng)格,每個網(wǎng)格單元預測B個邊界框及其置信度分數(shù)。
- 速度:YOLOv1比之前的檢測系統(tǒng)(如R-CNN和Faster R-CNN)快得多,實現(xiàn)了每秒45幀(fps)的實時性能,快速版本達到155 fps。
限制:
- 定位誤差:YOLOv1在精確定位較小對象時存在困難。
- 泛化:它傾向于對新出現(xiàn)或頻率較低的對象泛化能力較差。
2. YOLOv2(YOLO9000)
發(fā)布時間:2017年
主要貢獻:
- 批量歸一化:實施批量歸一化以歸一化每層的輸入,改善了收斂性和正則化。
- 高分辨率分類器:在高分辨率圖像上訓練模型,從而提高了性能。
- 錨框:采用錨框(Faster R-CNN引入的一種技術)來預測邊界框,提高了定位精度。
- YOLO9000:模型在COCO數(shù)據(jù)集和超過9000個類別的自定義數(shù)據(jù)集上進行訓練,因此得名YOLO9000,允許檢測廣泛范圍的對象類別。
改進:
- 與YOLOv1相比,平均精度均值(mAP)更好。
- 提高了速度和準確性的平衡。
3. YOLOv3
發(fā)布時間:2018年
主要貢獻:
- 特征金字塔網(wǎng)絡(FPN):YOLOv3使用FPN在三個不同的尺度上檢測對象,提高了對小對象的檢測。
- Darknet-53主干網(wǎng)絡:引入了新的主干網(wǎng)絡Darknet-53,它更深、更高效,結(jié)合了殘差連接。
- 多標簽分類:每個邊界框可以預測多個類別標簽,這有助于處理對象可能屬于多個類別的情況。
改進:
- YOLOv3在保持實時速度的同時顯著提高了準確性。
- 在檢測小對象和處理復雜圖像方面取得了顯著改進。
4. YOLOv4
發(fā)布時間:2020年
主要貢獻:
- 免費工具包(BoF)和特殊工具包(BoS):引入了一系列增強功能,分為BoF(在不增加推理時間的情況下提高準確性的技術)和BoS(略微增加推理時間但顯著提高準確性的技術)。
- CSPDarknet53主干網(wǎng)絡:使用了CSPDarknet53,它結(jié)合了跨階段部分連接,提高了學習效率并減少了計算負載。
- 數(shù)據(jù)增強技術:采用了如Mosaic和Self-Adversarial Training等技術來增強模型的魯棒性和泛化能力。
改進:
- mAP和FPS顯著增加,使其成為發(fā)布時最快、最準確的模型之一。
- 提高了檢測小對象和大對象的能力。
5. YOLOv5
發(fā)布時間:2020年(由Ultralytics發(fā)布,不是Joseph Redmon的官方續(xù)作)
主要貢獻:
- PyTorch實現(xiàn):YOLOv5使用PyTorch開發(fā),使其更易于訪問和修改。
- 預訓練模型:為不同用例提供了各種預訓練模型(小到大),促進了遷移學習。
- 自學習邊界框錨:通過在訓練期間自動調(diào)整錨框來增強學習過程。
改進:
- 保持實時檢測能力,提高了準確性。
- 簡化了部署和集成到各種應用程序中。
6. YOLOv6
發(fā)布時間:2022年
YOLOv6在前身YOLOv5的基礎上引入了幾項創(chuàng)新和改進,專注于提高性能、效率和適用性,以適應各種現(xiàn)實世界場景。以下是關鍵的新功能和改進:
主要貢獻:
- 工業(yè)適用性:YOLOv6專門針對工業(yè)應用設計,優(yōu)化了邊緣設備上的實時性能,這些設備的計算資源可能有限。
- 增強架構:YOLOv6包括改進的主干和頸部設計,提高了特征提取和表示能力。這導致更好的檢測精度和性能。
- 無錨檢測:YOLOv6的一個重要創(chuàng)新是探索無錨檢測方法。這通過去除錨生成和匹配的需求來簡化訓練過程,可能導致更快的訓練時間和某些數(shù)據(jù)集上的性能改進。
- 高級訓練技術:YOLOv6采用了高級訓練技術,如復雜的數(shù)據(jù)增強策略和優(yōu)化的訓練時間表。這些技術提高了模型在不同條件和數(shù)據(jù)集下的魯棒性和泛化能力。
- 改進的損失函數(shù):模型使用經(jīng)過改進的損失函數(shù),在訓練期間提供更準確的梯度,幫助模型更好地學習對象及其位置的表示。這些損失函數(shù)旨在更有效地處理目標檢測任務的復雜性。
改進:
- 性能提升:與YOLOv5相比,YOLOv6在平均精度均值(mAP)方面顯示出顯著改進。這是通過架構優(yōu)化和增強的訓練方法實現(xiàn)的,使YOLOv6能夠更準確地檢測對象。
- 效率和速度:YOLOv6旨在比YOLOv5更具計算效率。它在保持或提高準確性的同時實現(xiàn)了更高的檢測速度,使其更適合實時應用,特別是在邊緣設備上。
- 減少模型大小和計算成本:與YOLOv5相比,YOLOv6以更少的參數(shù)和更低的計算要求實現(xiàn)了更好的性能。這種模型大小和計算成本的減少使YOLOv6在資源受限的環(huán)境中部署更有效。
- 多功能性和適應性:與YOLOv5相比,YOLOv6具有更廣泛的多功能性和適應性,能夠處理各種大小和復雜性的對象,這得益于其改進的特征提取機制和無錨檢測方法。
- 針對邊緣設備的優(yōu)化:對YOLOv6的特別關注包括模型量化和剪枝等技術。這些優(yōu)化使YOLOv6更適合在計算能力有限的設備上部署,提高了其在工業(yè)應用中的實用性。
- 延遲減少:通過一致的雙重分配消除了對非最大抑制(NMS)的需求,與YOLOv5相比,YOLOv6顯著減少了端到端延遲,提高了實時性能。
7. YOLOv7
發(fā)布年份:2022年
YOLOv7是YOLO(你只看一次)系列目標檢測模型的延續(xù),以其實時性能和準確性而聞名。這一迭代帶來了幾個值得注意的進步,增強了架構設計和性能效率。
主要貢獻:
(1)高效層聚合網(wǎng)絡(ELAN):
- YOLOv7引入了一種名為高效層聚合網(wǎng)絡(ELAN)的新架構設計,顯著提高了網(wǎng)絡學習和有效表示特征的能力。
- ELAN結(jié)構增強了梯度流,并加強了在不同層捕獲不同特征的能力。
(2)擴展高效層聚合網(wǎng)絡(E-ELAN):在ELAN的基礎上,擴展版本E-ELAN通過提高參數(shù)利用率和計算效率進一步優(yōu)化了網(wǎng)絡。這允許更深的網(wǎng)絡具有更好的性能指標。
(3)動態(tài)頭部:YOLOv7以動態(tài)頭部模塊為特色,該模塊在訓練期間自適應地調(diào)整網(wǎng)絡的重點。這種機制有助于更好地處理各種大小的對象,并提高了檢測精度,特別是對于較小的對象。
(4)輔助和引導損失:模型采用了輔助和引導損失的組合來促進更好的學習。輔助損失在訓練的早期階段引導網(wǎng)絡,而引導損失確保了準確的最終預測。
(5)標簽分配策略:YOLOv7引入了一種新的標簽分配策略來優(yōu)化訓練過程。這種策略確保使用了最相關和最有信息量的標簽,從而提高了準確性和魯棒性。
改進:
- 性能提升:與YOLOv6相比,YOLOv7實現(xiàn)了更高的平均精度均值(mAP)。性能提升歸因于YOLOv7中實施的架構改進和新穎的訓練策略。
- 計算效率:盡管網(wǎng)絡的復雜性和深度增加,YOLOv7旨在更具計算效率。它以更少的計算資源實現(xiàn)了更好的性能,使其適合在資源受限的環(huán)境中部署。
- 改進的訓練技術:YOLOv7利用高級訓練技術,如動態(tài)頭部模塊和高效層聚合,來增強學習過程。這些技術導致更快的收斂和在不同數(shù)據(jù)集上更好的泛化。
- 更好地處理對象尺度變化:動態(tài)頭部和改進的標簽分配策略使YOLOv7能夠更好地檢測不同尺度的對象,特別是以前版本難以檢測的小型對象。
- 增強的主干和頸部設計:— YOLOv7的主干和頸部組件經(jīng)過改進,以提高特征提取和表示。這導致在廣泛的情境中更準確、更強大的目標檢測。
8. YOLOv8
發(fā)布年份:2023年,由Ultralytics發(fā)布。
主要貢獻和改進:
- C2f構建塊:YOLOv8引入了C2f(連接到融合)構建塊,改進了
- 特征提取和融合,增強了模型處理復雜目標檢測任務的能力。
- 增強的網(wǎng)絡架構:網(wǎng)絡架構經(jīng)過改進,以實現(xiàn)更好的性能和效率,專注于以更低的計算成本實現(xiàn)更高的準確性。
- 改進的訓練策略:結(jié)合了先進的訓練策略,包括更好的增強技術和優(yōu)化算法,有助于提高模型的魯棒性和準確性。
- 與Ultralytics Hub集成:YOLOv8與Ultralytics Hub集成,這是一個管理和部署模型的平臺,簡化了用戶的工作流程,并促進了更容易的模型管理。
9.YOLOv8.1
發(fā)布年份:2024年1月,由Ultralytics發(fā)布。
- YOLOv8 OBB模型:引入了定向邊界框模型,提高了檢測角度對象的準確性。
- 分割增強:高級分割功能,用于更精確的圖像分析。
- 性能優(yōu)化:專注于YOLOv8框架的速度和效率的改進。
10. YOLOv9
發(fā)布年份:2024年2月
關鍵特性:
(1)可編程梯度信息(PGI):
- YOLOv9引入了PGI,這是一個旨在通過輔助可逆分支生成可靠梯度的概念。這有助于保持執(zhí)行目標任務所需的深度特征的關鍵特征。
- PGI允許靈活選擇適合特定任務的損失函數(shù),克服了與傳統(tǒng)深度監(jiān)督過程相關的限制。
(2)通用ELAN(GELAN):YOLOv9中的GELAN架構平衡了參數(shù)數(shù)量、計算復雜性、準確性和推理速度。它允許用戶為不同的推理設備選擇合適的計算塊,提高了多功能性和性能。
(3)性能提升:
- 與以前的模型相比,YOLOv9在各種指標上實現(xiàn)了卓越的性能。在準確性、參數(shù)效率和計算要求方面,它優(yōu)于YOLOv8和其他最先進的模型。
- 例如,與YOLOv8-X相比,YOLOv9-E實現(xiàn)了1.7%更高的平均精度(AP),參數(shù)減少了16%,計算成本降低了27%。
(4)多功能性和應用:
- PGI和GELAN的集成允許YOLOv9有效地應用于輕量級和深度神經(jīng)網(wǎng)絡架構,使其適合廣泛的現(xiàn)實世界應用。
- YOLOv9的設計支持傳統(tǒng)和深度卷積,為模型部署和優(yōu)化提供了靈活性。
(5)實驗驗證:在MS COCO數(shù)據(jù)集上進行的廣泛實驗驗證了YOLOv9的頂級性能。它顯著超過了現(xiàn)有的實時目標檢測器,展示了在速度、準確性和資源效率方面的改進。
貢獻:
- 理論見解:YOLOv9的開發(fā)包括對深度神經(jīng)網(wǎng)絡架構的理論分析,特別關注可逆函數(shù)。這一分析有助于解決以前無法解釋的現(xiàn)象,并指導了PGI和輔助可逆分支的設計。
- 增強的輕量級模型:PGI有效地解決了深度監(jiān)督的限制,使輕量級模型實現(xiàn)了高準確性,使其適合日常使用。
- 效率和速度:使用傳統(tǒng)卷積的GELAN設計,確保了與基于深度卷積的設計相比,參數(shù)使用效率和計算速度更高。
總之,YOLOv9代表了YOLO系列的重大進步,結(jié)合了PGI和GELAN等創(chuàng)新概念,提供了一個強大、多功能且高效的目標檢測模型,適用于廣泛的應用。
11. YOLOv10
發(fā)布年份:2024年5月
YOLOv10代表了實時目標檢測領域的重大進步,建立在其在YOLO(你只看一次)系列中的前輩奠定的堅實基礎上。這一迭代引入了幾個關鍵創(chuàng)新和改進,旨在提高性能和效率。以下是YOLOv10的主要亮點:
關鍵特性:
- 無NMS訓練:YOLOv10通過使用一致的雙重分配消除了其后處理階段對非最大抑制(NMS)的需求。這種方法不僅顯著減少了端到端延遲,還保持了競爭性能水平。
- 整體模型設計:YOLOv10的設計策略專注于效率和準確性之間的平衡。模型的各個組成部分都經(jīng)過優(yōu)化,以減少計算開銷,同時提高能力。這包括全面的架構調(diào)整,導致更少的參數(shù)和更低的延遲。
- 性能提升:在各種模型規(guī)模(N、S、M、L、X)中,YOLOv10在平均精度(AP)方面取得了改進,同時顯著減少了參數(shù)和計算要求。例如,與前身YOLOv8-N相比,YOLOv10-N實現(xiàn)了1.2%的AP改進,參數(shù)減少了28%,計算成本降低了23%。
- 效率增益:YOLOv10在準確性和計算成本之間展現(xiàn)了優(yōu)越的權衡。例如,與YOLOv6–3.0-S相比,YOLOv10-S實現(xiàn)了1.5 AP改進,并大幅減少了參數(shù)和FLOPs(每秒浮點運算次數(shù))。
- 延遲減少:通過消除NMS和優(yōu)化模型架構,YOLOv10實現(xiàn)了顯著的延遲減少。例如,與YOLOv9-C相比,YOLOv10-S的延遲降低了46%,展示了模型在實時應用中的效率。
- 比較性能:YOLOv10在速度和準確性方面一致優(yōu)于其他最先進的模型,如RT-DETR和以前的YOLO版本。它比RT-DETR-R18快1.8倍,同時保持類似的AP性能,并且在參數(shù)和FLOPs方面也大幅減少。
12. YOLOX
發(fā)布年份:2021年
主要貢獻和改進:
- 無錨設計:YOLOX采用無錨機制,簡化了模型架構和訓練過程。
- 分離的頭部:分離的頭部將分類和定位任務分開,提高了整體性能。
- 高級增強技術:使用Mosaic和MixUp等技術來增強模型的泛化能力和魯棒性。
- 性能提升:與以前的YOLO版本相比,YOLOX實現(xiàn)了更高的準確性和效率,使其與其他最先進的模型競爭。
13. YOLOR
發(fā)布年份:2021年
主要貢獻和改進:
- 統(tǒng)一網(wǎng)絡:YOLOR(你只學習一次表示)將顯性和隱性知識整合到統(tǒng)一網(wǎng)絡中,增強了模型的學習能力。
- 知識蒸餾:利用知識蒸餾來提高輕量級模型的性能。
- 改進的主干:在主干中結(jié)合了CSPNet,增強了特征提取和表示。
- 多功能性:在各種任務中表現(xiàn)出色,包括目標檢測、實例分割和關鍵點檢測。
14. PaddleYOLO
發(fā)布年份:2022年8月,作為PaddlePaddle深度學習平臺的一部分開發(fā)。
主要貢獻和改進:
- 針對PaddlePaddle優(yōu)化:PaddleYOLO針對PaddlePaddle框架進行了優(yōu)化,確保了高效的訓練和推理。
- 全面模型:包括各種YOLO模型(YOLOv3、YOLOv4等),針對PaddlePaddle進行了特定優(yōu)化。
- 易用性:提供用戶友好的API和廣泛的文檔,使開發(fā)者易于訪問。
- 高性能:通過在PaddlePaddle平臺上提供高準確性和快速推理時間,與其他YOLO實現(xiàn)競爭。
15. MMYOLO
發(fā)布年份:2022年9月,是MMDetection框架的一部分,被研究社區(qū)廣泛使用。
主要貢獻和改進:
- 模塊化設計:MMYOLO受益于MMDetection的模塊化設計,允許輕松定制和擴展。
- 與MMDetection集成:與MMDetection框架內(nèi)的其他模型和工具無縫集成,促進了全面的實驗。
- 最新技術:結(jié)合了目標檢測的最新進展,包括高級增強方法和損失函數(shù)。
- 研究導向:旨在具有高度靈活性和可配置性,非常適合研究目的和開發(fā)新技術。
這些模型代表了YOLO家族和目標檢測框架的重要進步,每個模型都貢獻了獨特的功能和改進,以滿足特定需求和平臺。
結(jié)論
每個YOLO版本都對目標檢測領域做出了重要貢獻(不要搞錯,一些最新版本還支持對象分割、定向邊界框等),不斷推動實時計算機視覺應用的可能性的邊界。從YOLOv1到Y(jié)OLOv10的發(fā)展顯示了模型架構、訓練技術和性能優(yōu)化方面的顯著演變,鞏固了YOLO作為目標檢測的領先方法的地位。
注意:由于對模型架構的理解有限,我省略了一些YOLO版本,如GOLD-YOLO、DAMO-YOLO、YOLO Air、Scaled YOLOv4、deepstream YOLO等。