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