使用 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():
    # 載入 COCO 預訓練的 YOLO26n 模型
    model = YOLO("yolo26n.pt")

    # 在範例資料集上訓練模型 50 個 epoch
    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)
This post is licensed under CC BY-NC-SA 4.0 by the author.