這是使用 YOLOv7-seg(PyTorch)進行實例分割(instance segmentation)的主控台/終端機流程,支援 Windows 11 與 Ubuntu Linux 24.04。實例分割不只找出物件位置,還會描出每一個物件的實際輪廓,因此同一類別的兩個物件也能分開。核心引擎為 WongKinYiu/yolov7 的 u7/seg 分支(GPL),各資料集的設定由 coco.yaml、yolov7-seg.yaml 與 hyp.scratch-high.yaml 控制。內附兩組附有訓練好權重的範例資料集:nucleus(細胞核,預設)與 CT(肝臟電腦斷層)。推論可以直接執行,用 CPU 也跑得起來;訓練則實際上需要 NVIDIA GPU。標註使用內附的網頁工具,以 Labelme JSON(多邊形)模式進行。

 

Image-Segmentation-YOLOv7-Pytorch-GPL-Python-1.png

Image-Segmentation-YOLOv7-Pytorch-GPL-Python-1-2.png

 

[資料夾結構]

  • CLAUDE.md / AGENT.md:程式規格書(內容相同)。
  • CHANGELOG.md:變更紀錄。
  • copyright.txt:版權聲明。
  • 2207.02696.pdf:YOLOv7 的參考論文。
  • data/{dataset}/:label.names、coco.yaml、yolov7-seg.yaml、hyp.scratch-high.yaml、由步驟 5 產生的 train.txt 與 val.txt 影像清單,以及 train/ 與 val/(各自有 images/、annotations/、labels/)與 test/images/。
  • model/{dataset}/:best.pt(訓練好的權重,訓練時會被覆蓋)、logs/(TensorBoard 紀錄)、output/(標註後的結果影像)。
  • src/:核心引擎(segment/、models/、utils/),以及包裝程式、啟動腳本與本說明文件。
  • src/annotation/:內附的 aiohttp 標註伺服器,由步驟 3 啟動。
  • tool/tools.py:共用函式。
  • venv/:Python 虛擬環境,由步驟 1 建立。

[執行環境需求]

  • 作業系統:Windows 11 或 Ubuntu Linux 24.04。
  • Python 3 與 pip。
  • 推論可在 CPU 執行;訓練則實際上需要 NVIDIA GPU。
  • 攝影機推論(步驟 10)需要桌面環境與攝影機。
  • 相依套件記錄於 src/requirements.txt,由步驟 1 自動安裝。

[操作步驟及說明]

步驟 1:建立虛擬環境

刪除舊的 venv/,重新建立虛擬環境並安裝 src/requirements.txt。若電腦有 NVIDIA 顯示卡,請改用 GPU 版的腳本,它會換成 CUDA 12.8(cu128)版的 torch,需要驅動程式的 CUDA 版本在 12.8 以上(可用 nvidia-smi 確認)。

 

Windows 11(CPU):src\01_venv_create.bat

Windows 11(GPU):src\01_venv_create_gpu.bat

Ubuntu 24.04(CPU):bash src/01_venv_create.sh

Ubuntu 24.04(GPU):bash src/01_venv_create_gpu.sh

 

步驟 2:啟用虛擬環境

啟用剛才建立的虛擬環境。Linux 請使用 source 的方式執行,否則環境變數不會套用到目前的終端機。

 

Windows 11:src\02_venv_activate.bat

Ubuntu 24.04:source src/02_venv_activate.sh

 

步驟 3:標註影像(使用自己的資料才需要)

啟動標註網頁工具(連接埠 8801),以 Labelme JSON(多邊形)模式畫出物件輪廓。可用 --dataset 與 --split train|val|test 指定要標註的資料集與分割。

 

Windows 11:src\03_annotation.bat

Ubuntu 24.04:bash src/03_annotation.sh

 

步驟 4:將標註轉成 YOLO-seg 格式(使用自己的資料才需要)

把 Labelme 的多邊形標註轉成 YOLO-seg 的標註 txt,train 與 val 都會處理。

 

Windows 11:src\04_convert_yolo_format.bat

Ubuntu 24.04:bash src/04_convert_yolo_format.sh

 

步驟 5:建立影像清單(使用自己的資料才需要)

產生訓練時要讀取的 train.txt 與 val.txt 影像清單。

 

Windows 11:src\05_prepare.bat

Ubuntu 24.04:bash src/05_prepare.sh

 

步驟 6:訓練模型(選用)

訓練 YOLOv7-seg。請注意這一步會覆蓋 model/{dataset}/best.pt,若想保留內附的權重,請先自行備份。

 

Windows 11:src\06_train.bat

Ubuntu 24.04:bash src/06_train.sh

 

步驟 7:觀察訓練過程(選用)

以連接埠 6066 啟動 TensorBoard,讀取 model/{dataset}/logs/。按 Ctrl+C 可停止。

 

Windows 11:src\07_tensorboard.bat

Ubuntu 24.04:bash src/07_tensorboard.sh

 

步驟 8:對單一影像推論

對一張影像做分割,預設使用 test 資料夾的第一張影像,門檻值為 0.5,結果會存到 model/{dataset}/output/。

 

Windows 11:src\08_inference.bat

Ubuntu 24.04:bash src/08_inference.sh

 

步驟 9:對整個資料夾推論並統計

一次處理整個資料夾,並依檔名前綴統計漏檢(underkill)、誤檢(overkill)與正確的比例。

 

Windows 11:src\09_inference_folder_1.bat

Ubuntu 24.04:bash src/09_inference_folder_1.sh

 

步驟 10:對攝影機畫面推論(選用)

以視窗顯示攝影機的即時分割結果,需要桌面環境。

 

Windows 11:src\10_inference_webcam.bat

Ubuntu 24.04:bash src/10_inference_webcam.sh

 

步驟 11:清除虛擬環境(選用)

不再需要時,可刪除 venv/ 資料夾以釋放磁碟空間。

 

Windows 11:src\99_venv_clear.bat

Ubuntu 24.04:bash src/99_venv_clear.sh

 

[使用自己的資料集]

  • 要切換到內附的第二組資料集,在任何指令後面加上 --dataset CT 即可。
  • 使用自己的資料時,先執行 03_annotation 畫出多邊形標註。
  • 修改 label.names,並複製與調整 coco.yaml 與 yolov7-seg.yaml 以符合自己的類別。
  • 依序執行 04_convert_yolo_format、05_prepare、06_train(可用 07_tensorboard 觀察),最後以步驟 8、9 做推論。

[GPU 設定]

  • PyPI 預設的 torch 套件在 Windows 上只支援 CPU。若要使用 NVIDIA GPU,請安裝與驅動程式 CUDA 版本相符的 torch(可用 nvidia-smi 查看)。
  • 最簡單的做法是直接執行 01_venv_create_gpu。
  • 若要手動安裝,以 CUDA 12.8 的驅動程式為例:

pip uninstall -y torch torchvision

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128

啟動腳本會自動偵測 CUDA。

 

[參考資料]

 

這個 SDK 內建於 MYAI Studio 人工智慧開發工具。

 

單獨購買價格:5,000元,永久授權,單一 SDK 授權,單機授權,一次下載,一年電子郵件範例諮詢服務。如果是軟體客製化問題,請購買我們的客製化顧問服務點數。