使用 YOLO26 進行物件偵測

📢 本文由 gemini-3-flash-preview 翻譯

安裝與建立環境

官方安裝參考: Installing conda - conda documentation

下載連結: Download anaconda

可以下載 Miniconda 然後再視需求安裝環境

建立一個執行環境

1
conda create -n env_name python=3.13 -y

啟用執行環境

1
conda activate env_name

安裝 PyTorch

如果是 CPU 版本,直接使用指令:

1
pip install torch torchvision torchaudio

GPU 版本需要到官網下載,造訪 https://pytorch.org/get-started/locally/ 查看安裝指令。

關於 CUDA 版本,可以使用指令查看:

1
nvidia-smi

安裝完成後檢查是否可用:

1
2
3
import torch
print(f"顯示卡是否可用: {torch.cuda.is_available()}")
print(f"目前顯示卡: {torch.cuda.get_device_name(0)}")

標註圖片

少量本地標註可以直接使用 labelImg,使用 pip 安裝:

1
pip install labelImg

接著使用指令開啟 GUI 視窗:

1
labelImg

請注意選擇圖片路徑與標註儲存位置,並將目前的資料格式切換為 YOLO。

使用 W 按鍵來建立新標註 (大寫字母 W)。

訓練模型

YOLO26 官方文件: Ultralytics YOLO26

安裝 YOLO:

1
pip install ultralytics

訓練模型程式碼:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from ultralytics import YOLO

def main():
    # Load a COCO-pretrained YOLO26n model
    model = YOLO("yolo26n.pt")

    # Train the model on the data example dataset for 50 epochs
    results = model.train(data="data.yaml", epochs=50, imgsz=640, device=0)

if __name__ == '__main__':
    main()

資料說明文件 data.yaml

1
2
3
4
5
6
7
path: ../my_dataset  # 資料集根目錄的相對路徑
train: images/train  # 訓練集位置
val: images/val      # 驗證集位置

names:
  0: name1            # 類別0:name1
  1: name2            # 類別1:name2

訓練產出

訓練完成後,在 runs/detect 資料夾中會產生一些檔案。

其中 weights/ 資料夾內是模型檔案:

  • best.pt:精度最高的權重
  • last.pt:最後一次訓練的權重

圖表:

  • results.png:整合了訓練損失 (Loss) 與精度指標 (mAP)
    • 如果曲線持續上升,代表模型仍在學習;如果趨於平緩,則代表訓練已達標(收斂)。
  • confusion_matrix.png:混淆矩陣,展示了模型將物件誤認為背景或辨識錯誤的機率
    • 對角線越亮,代表辨識越精準。
  • Box*_curve.png:分別代表精確率 (Precision)、召回率 (Recall) 以及兩者的平衡曲線。
  • labels.jpg:所有標註框的統計圖,顯示標框的大小分佈與類別比例。

圖片標註:

  • train_batch*.jpg:模型訓練時實際使用的圖片。
  • val_batch*_labels.jpg:標註用於驗證的圖片。
  • val_batch*_pred.jpg:模型的預測結果。

其他檔案:

  • args.yaml:本次訓練的所有參數設定,方便下次復現。
  • results.csvresults.png 圖片的原始資料表。

使用模型

1
2
3
4
# 載入模型
model = YOLO('runs/detect/train/weights/best.pt')

results = model.predict(source='new_chicken_video.mp4', save=True)

修改模型

在 conda 對應環境內,執行下列指令找出 YOLO 的安裝位置:

1
python -c "import ultralytics.nn.tasks as t; print(t.__file__)"

但此方法在更新函式庫後會失效,可以將官方原始碼下載到本地。

下載地址: ultralytics/ultralytics

接著在專案根目錄內,使用 pip 本地載入函式庫:

1
pip install -e .

這樣更改就會同步了。

This post is licensed under CC BY-NC-SA 4.0 by the author.

訪問統計

自 2025-02-08 起的訪問統計

使用 Hugo 建立 | 主題 StackJimmy 設計 | 修改自 yexca