探索 YOLO11:更快、更智能、更高效
在人工智能這個不斷進化的世界中,有一件事我們可以肯定:模型不斷變得更好、更快、更智能。就在你以為 YOLO 系列已經達到頂峰時,Ultralytics 推出了最新升級——YOLO11。沒錯,不是 YOLOv11——他們通過去掉“v”變得簡約了。這就像 YOLO 同時理了個發并得到了晉升。
但在這個名字簡化的背后,是性能的顯著飛躍。YOLO11 通過顯著減少參數,帶來了更快的處理速度和提高的效率。它擁有比 YOLOv10 快 2% 的推理時間,使其成為實時應用的絕佳選擇。
更值得一提的是,YOLO11m 在 COCO 數據集上實現了更高的平均精度均值(mAP)得分,同時比 YOLOv8m 少用了 22% 的參數,使其在不犧牲性能的情況下計算更輕量。這種速度和精度的結合,使 YOLO11 成為任何計算機視覺任務的強大工具。
那么,YOLO11 與它的前輩們有何不同呢?讓我們探索它的架構,看看這個模型是如何從僅僅快速變為超高效,使其成為實時目標檢測的超級英雄。
YOLO11 架構
() 骨干網絡:YOLO11 的大腦
YOLO11 的骨干就像模型的大腦。它使用先進的神經網絡,如 EfficientNet 或 CSPNet,來捕捉圖像中的重要細節。想象一下,這就像一個人掃描一個場景并捕捉重要線索——無論是物體的紋理還是形狀——幫助模型更清晰地“看”圖像。這種改進增強了 YOLO11 識別物體的能力,即使是在棘手或雜亂的環境中。
(2) 頸部:視覺與行動之間的橋梁
YOLO11 的頸部將大腦(骨干)與系統的其余部分連接起來,收集和組合來自圖像不同部分的信息。類似于我們如何聚焦于近處和遠處的物體,頸部幫助模型檢測不同大小的物體,無論是像路標這樣的小物體,還是像公共汽車這樣的大物體。
(3) 檢測頭:YOLO11 的眼睛
檢測頭是 YOLO11 理解圖像的地方,識別出圖像中存在哪些物體、它們的位置,甚至它們的具體細節(如身體關節或物體邊緣)。這一步驟過程使 YOLO11 非常快速。這個版本中的特別改進還使其更擅長發現小物體,這些是以前版本可能會錯過的。
(4) 錨框:塑造目標檢測
錨框就像模板,幫助模型識別不同大小和形狀的物體。YOLO11 改進了這些模板,使其更好地適應它檢測的物體,提高了識別常見和不尋常形狀的準確性。
(5) 損失函數:YOLO11 的學習教練
損失函數就像 YOLO11 的教練,幫助它從錯誤中學習。這些函數指導模型專注于它掙扎的領域——比如檢測稀有物體或找到物品的精確位置。隨著 YOLO11 繼續在圖像上進行“訓練”,它在識別困難物體方面變得越來越好。
YOLO11 的新特性
以下是 YOLO11 帶來的一些突出特性:
(1) 增強的特征提取:在挑戰性情況下更好的檢測
YOLO11 的設計使其能夠捕捉圖像中的復雜模式,使其在困難環境中識別物體的能力更強——無論是光線不足還是雜亂的場景。
(2) 更少參數的更高 mAP
YOLO11 實現了更高的平均精度均值(mAP)——這是衡量它檢測物體能力的關鍵指標——同時比 YOLOv8 少用了 22% 的參數。簡單來說,它更快、更高效,同時不犧牲準確性。
(3) 更快的處理速度
YOLO11 提供了比 YOLOv10 快 2% 的處理速度,使其成為自動駕駛、機器人或實時視頻分析等實時應用的理想選擇。
(4) 資源效率:用更少的資源做更多的事情
盡管處理更復雜的任務,YOLO11 旨在使用更少的計算資源,使其適合大規模項目和處理能力有限的系統。
(5) 改進的訓練過程
YOLO11 中的訓練過程更加流暢,使其能夠更有效地適應各種任務。無論您是在小數據集上工作還是在大型項目上,YOLO11 都能適應問題的規模。
(6) 部署的靈活性
YOLO11 旨在在云服務器和智能手機或物聯網設備等邊緣設備上高效運行。這種靈活性使其非常適合需要在不同環境中工作的應用。
(7) 適用于多樣化應用的多功能性
從自動駕駛和醫療成像到智能零售和工業自動化,YOLO11 的多功能性意味著它可以應用于廣泛的領域,成為計算機視覺挑戰的解決方案。
實現
(1) 檢測:
%pip install ultralytics
from ultralytics import YOLO
from PIL import Image
import requests
model=YOLO('yolo11n.pt')
image = Image.open("/content/DOG.png")
result = model.predict(image, conf=0.25)[0]
CLI 命令:
!yolo task = detect mode=predict model=yolo11n.pt conf=0.25 source="/content/DOG.png" save=True
自定義訓練
無論是使用自定義圖像還是從 Roboflow 下載:
from roboflow import Roboflow
rf = Roboflow(api_key="ROBOFLOW_API_KEY")
project = rf.workspace("project-fish-eqo9c").project("fish-species-identification")
version = project.version(3)
dataset = version.download("yolov11")
使用 CLI 進行訓練:
!yolo task=detect mode=train model=yolo11s.pt data="/content/Fish-Species-Identification--3/data.yaml" epochs=10 imgsz=640 plots=True
(2) 分割:
from ultralytics import YOLO
model = YOLO("yolo11n-seg.pt")
seg_results = model("/content/yogapose.jpg")
seg_results[0].show()
(3) 姿態:
from ultralytics import YOLO
model = YOLO("yolo11n-pose.pt")
pose_results = model("/content/yogapose.jpg")
pose_results[0].show()
(4) 分類:
from ultralytics import YOLO
model = YOLO("yolo11n-cls.pt")
classi_results = model("/content/cocoimage1.jpg")
classi_results[0].show()
(5) 定向目標檢測:
from ultralytics import YOLO
model = YOLO("yolo11n-obb.pt")
obb_results = model("/content/vecteezy_busy-traffic-on-the-highway_6434705.mp4", save=True)
進一步改進
雖然 YOLO11 帶來了顯著的進步,但重要的是要認識到可能需要進一步增強或針對特定任務的微調的領域:
(1) 通過微調改進目標分類
盡管 YOLO11 在許多一般任務中表現出色,但其目標分類能力在針對特定任務進行微調時可以進一步提高。例如,在醫學成像或工業檢查等專業領域,調整模型以專注于利基數據集可以顯著提高其準確性和精度。
示例:在醫療保健中,對 YOLO11 進行微調以識別醫學掃描中特定的異常,如疾病的早期跡象,可以產生更適合該領域的更準確分類。
(2) 定向目標檢測:空中或網格視圖
YOLO11 在空中或網格視圖等場景中表現出色,這些場景中的物體通常以特定方式定向,如衛星圖像或無人機鏡頭。然而,在更傳統的日常視頻源中——如監控或交通攝像頭——由于其針對特定角度和方向的優化,它可能表現出降低的效率。這意味著雖然它在某些專業應用中非常有能力,但在處理典型真實世界視頻中物體的多樣化方向時可能不夠有效。
示例:在標準安全攝像頭的零售環境中,YOLO11 可能需要額外的調整來處理各種物體視角。
結論
YOLO11 代表了實時目標檢測的重大飛躍,通過更快的處理速度、更少的參數和提高的準確性,推動了界限。它的多功能性使其能夠在從自動駕駛到工業自動化的廣泛計算機視覺任務中表現出色。然而,與任何尖端技術一樣,針對特定任務的微調對于在專業應用中解鎖其全部潛力至關重要。雖然它在像空中目標檢測這樣的場景中蓬勃發展,但其在傳統視頻中的表現可能需要額外的優化。
最終,YOLO11 的輕量級架構、增強的速度和靈活性使其成為跨各行各業的開發者和研究人員的強大工具。隨著計算機視覺的不斷發展,YOLO11 為實時檢測和分類的可能性設定了新的基準。
參考資料:
- Github 代碼:https://github.com/NandiniLReddy/yolo11Review
- Ultralytics 博客文章:https://www.ultralytics.com/blog/ultralytics-yolo11-has-arrived-redefine-whats-possible-in-ai
- Roboflow 博客姿態:https://blog.roboflow.com/yolov11-how-to-train-custom-data/
- Ultralytics Github:https://github.com/ultralytics/ultralytics