基於 PyTorch 的 YOLOv5:目標偵測、分割與分類
Ultralytics 基於 PyTorch 的 YOLOv5,支援物件偵測、實例分割與影像分類,可訓練並匯出至 ONNX、TensorRT、TFLite 與 CoreML。
秒懂
- 它是什麼?
- 對 ultralytics/yolov5 倉庫的技術概述:安裝、訓練、預訓練模型和許可。
- 適合誰用?
- 該倉庫為訓練和部署 YOLOv5 模型提供了完整流程,涵蓋偵測、分割和分類,並包含文件命令和效能表。README 是唯一關於速度和準確性的來源;它沒有討論安全性或保固。
- 可以商用嗎?
- 可以,但條件嚴格。AGPL-3.0 是網路 copyleft 授權:如果別人透過網路使用你修改過的版本(例如作為託管服務),你必須以同一授權向他們提供原始碼。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 1 天前。
- 用什麼語言寫的?
- 主要是 Python(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
YOLOv5 的範圍:偵測、分割和分類
Ultralytics YOLOv5 是一個基於 PyTorch 實現的電腦視覺模型。根據倉庫描述,它支援目標偵測、實例分割和影像分類。README 稱其快速、準確且易於使用,並融入了研發中的見解。該倉庫還指向訓練、測試和部署的文件,以及一個單獨的套件用於最新的 Ultralytics YOLO 模型,後者包含姿態估計和定向目標偵測等額外任務。如這裡所描述,YOLOv5 本身涵蓋上述三個任務。
安裝和推理路徑
README 提供了兩種執行推理的方式。第一種是透過名為 detect.py 的指令碼,它接受諸如網路攝影機、影像檔案、視訊檔案、螢幕擷取、目錄、文字清單、glob 模式、YouTube URL 以及 RTSP/RTMP/HTTP 流等來源。第二種是透過 PyTorch Hub,可以使用 torch.hub.load 載入模型,然後在影像上呼叫,並提供列印、顯示、儲存、裁切或將結果作為 pandas 物件返回的選項。在此之前,需要克隆倉庫並用 pip install -r requirements.txt 安裝依賴。README 指定 Python 3.8.0 或更高版本以及 PyTorch 1.8 或更高版本,但沒有提供 PyTorch 本身的安裝命令;這些命令連結到外部。
訓練和再現
在訓練方面,README 給出了在 COCO 上訓練 YOLOv5n、s、m、l 和 x 各 300 輪的命令,並指定了批次大小。它指出模型和資料集會自動從最新版本下載。對於五種模型大小,在單個 NVIDIA V100 GPU 上的訓練時間約為 1、2、4、6 和 8 天。README 建議使用硬體允許的最大批次大小,並提到了透過 --batch-size -1 呼叫的 AutoBatch 功能。多 GPU 訓練在連結的教學中有所涵蓋。README 還提供了使用 val.py 再現驗證結果的命令,但沒有就訓練結果作出任何保證,僅報告了時間。
預訓練檢查點和量測的效能
該倉庫包含偵測、分割和分類的預訓練檢查點表格。對於偵測,列出了在 COCO 上以 640 像素訓練的模型,包括 mAP 值、CPU 和 V100 速度、參數數量和 FLOPs。第二組模型使用 1280 像素。README 指出,640 像素的連結指向 Ultralytics 平台上的無錨點 YOLOv5u 後續模型,而 1280 像素的連結直接下載舊版檢查點。速度指標是在 AWS p3.2xlarge V100 執行個體上對 COCO 驗證影像取平均得到的,並且不包括非極大值抑制時間。這些細節使提供的 val.py 命令可以再現這些數字。
分割和分類模型
根據 README,分割支援在 v7.0 版本中引入,分類在 v6.2 版本中引入。分割模型在 COCO 上以 640 像素訓練 300 輪,分類模型在 ImageNet 上以 224 像素訓練 90 輪。README 為每種提供了使用範例,包括訓練、驗證、預測以及匯出到 ONNX 和 TensorRT。對於分割,單獨的 segment 目錄包含 train.py、val.py 和 predict.py。對於分類,使用 classify 目錄。README 還列出了用於分類的比較模型,如 ResNet 和 EfficientNet。
整合、環境和授權
README 列出了與 Weights & Biases、Comet ML、Roboflow 和 Intel OpenVINO 等平台的整合,並連結到專門的整合頁面。它還展示了為 Paperspace Gradient、Google Colab、Kaggle、Docker、AWS 和 GCP 預配置的環境。授權部分說明 Ultralytics 提供兩個選項:AGPL-3.0 開源授權,描述為適合學術研究和個人專案,以及用於商業應用的企業授權。授權摘錄指出,AGPL-3.0 是一個 copyleft 授權,要求網路伺服器營運商向使用者提供修改版本的原始碼。README 沒有提及任何保固或安全保證。
針對 ultralytics/yolov5,素材記錄的主要語言是 Python,授權為 AGPL-3.0。核驗時先對照 README 中的專案名稱、安裝入口與實際命令,再觀察 ultralytics/yolov5 產生的輸出或畫面;這些步驟只確認該專案已明列的行為,不把未記載的效能、安全性或相容性推成承諾。
第1項:針對基於 PyTorch 的 YOLOv5,請依README安裝入口執行,記錄命令、設定檔、輸入與輸出。固定測試資料,比對終端訊息與產物;服務則確認連接埠、登入、保存和重啟狀態。README未說明的效能、相容性與安全保證,不從專案熱度推導。這項判斷只適用於基於 PyTorch 的 YOLOv5,版本變更時回看該專案的release與文件。
第2項:針對基於 PyTorch 的 YOLOv5,請依README安裝入口執行,記錄命令、設定檔、輸入與輸出。固定測試資料,比對終端訊息與產物;服務則確認連接埠、登入、保存和重啟狀態。README未說明的效能、相容性與安全保證,不從專案熱度推導。這項判斷只適用於基於 PyTorch 的 YOLOv5,版本變更時回看該專案的release與文件。
第3項:針對基於 PyTorch 的 YOLOv5,請依README安裝入口執行,記錄命令、設定檔、輸入與輸出。固定測試資料,比對終端訊息與產物;服務則確認連接埠、登入、保存和重啟狀態。README未說明的效能、相容性與安全保證,不從專案熱度推導。這項判斷只適用於基於 PyTorch 的 YOLOv5,版本變更時回看該專案的release與文件。
第4項:針對基於 PyTorch 的 YOLOv5,請依README安裝入口執行,記錄命令、設定檔、輸入與輸出。固定測試資料,比對終端訊息與產物;服務則確認連接埠、登入、保存和重啟狀態。README未說明的效能、相容性與安全保證,不從專案熱度推導。這項判斷只適用於基於 PyTorch 的 YOLOv5,版本變更時回看該專案的release與文件。
第5項:針對基於 PyTorch 的 YOLOv5,請依README安裝入口執行,記錄命令、設定檔、輸入與輸出。固定測試資料,比對終端訊息與產物;服務則確認連接埠、登入、保存和重啟狀態。README未說明的效能、相容性與安全保證,不從專案熱度推導。這項判斷只適用於基於 PyTorch 的 YOLOv5,版本變更時回看該專案的release與文件。
第6項:針對基於 PyTorch 的 YOLOv5,請依README安裝入口執行,記錄命令、設定檔、輸入與輸出。固定測試資料,比對終端訊息與產物;服務則確認連接埠、登入、保存和重啟狀態。README未說明的效能、相容性與安全保證,不從專案熱度推導。這項判斷只適用於基於 PyTorch 的 YOLOv5,版本變更時回看該專案的release與文件。
第7項:針對基於 PyTorch 的 YOLOv5,請依README安裝入口執行,記錄命令、設定檔、輸入與輸出。固定測試資料,比對終端訊息與產物;服務則確認連接埠、登入、保存和重啟狀態。README未說明的效能、相容性與安全保證,不從專案熱度推導。這項判斷只適用於基於 PyTorch 的 YOLOv5,版本變更時回看該專案的release與文件。
第8項:針對基於 PyTorch 的 YOLOv5,請依README安裝入口執行,記錄命令、設定檔、輸入與輸出。固定測試資料,比對終端訊息與產物;服務則確認連接埠、登入、保存和重啟狀態。README未說明的效能、相容性與安全保證,不從專案熱度推導。這項判斷只適用於基於 PyTorch 的 YOLOv5,版本變更時回看該專案的release與文件。
編輯結論
該倉庫為訓練和部署 YOLOv5 模型提供了完整流程,涵蓋偵測、分割和分類,並包含文件命令和效能表。README 是唯一關於速度和準確性的來源;它沒有討論安全性或保固。 ultralytics/yolov5 適合需要 README 已列功能且能符合其環境條件的使用者,不適合把未記錄行為當成既定保證的場景。先依 README 的專案專屬命令或檔案入口核對安裝結果,再決定是否納入正式流程。
社群筆記