YOLOv8でセグメンテーション(インスタンスセグメンテーション)を行ってみました。
YOLOの最新版であるYOLOv8には日本語のドキュメントもあります。
ドキュメントとGoogle Colaboratoryのノートブックを読みながらYOLOv8を実行してみました。
セグメンテーション
Google Colaboratoryにて実行しました。
ランタイム->ランタイムのタイプを変更->T4 GPUを選択
from google.colab import drive
drive.mount('/content/drive')
!mkdir "/content/drive/MyDrive/yolov8"
%pip install ultralytics
import ultralytics
ultralytics.checks()
セグメンテーション(結果はyolov8/runs/segmentに保存される)
%cd "/content/drive/MyDrive/yolov8"
!yolo predict model=yolov8n-seg.pt source='https://ultralytics.com/images/zidane.jpg'
この画像が出力されました。
1本のネクタイが2本と認識されていることがわかります。
学習&セグメンテーション
次に、COCO128-segデータセットを用いて、事前学習済みモデルの学習を行いました。
学習(結果はyolov8/runs/segmentに保存される)
%cd "/content/drive/MyDrive/yolov8"
!yolo train data=coco128-seg.yaml model=yolov8n-seg.pt epochs=100 imgsz=640
学習結果を用いて、もう一度セグメンテーションを行います。
%cd "/content/drive/MyDrive/yolov8"
!yolo predict model="/content/drive/MyDrive/yolov8/runs/segment/train/weights/best.pt" source='https://ultralytics.com/images/zidane.jpg'
この画像が出力されました。
1本のネクタイを1本と認識することができました。
また、学習前に比べて、スコアが上がったことがわかります。
YOLOv8で物体検出を行ってみた記事も、よければご覧ください。