11
12

yolo v8でもすみっコぐらしたちをリアルタイムに物体検出してみる

Last updated at Posted at 2023-10-09

はじめに

いつの間にやらYolo v8まで出てしまっているので、
Yolo v5で使ったすみっコぐらし学習データを使ってYolo v8のオリジナルデータ検出に挑戦したいと思います。
v5のときと基本やることは変わらないですね。むしろインストールがさらに楽になってます。

開発環境

windows 10 ノートPC(GPUなし): 画像整理編集、物体検知実施
Google Colabo : モデル学習

学習データ

前回作成したyolo v5の学習に用いたすみっコぐらし学習データを利用します。
幸いにもデータ形式は依然と変わっていないようです。
今は学習データ作成にはRoboflowを使うのがよい?

GoogleColabでの学習実施

学習前準備

以前同様GoogleのMyドライブ直下に「sumikko」フォルダを作成して学習データを丸ごと転送しておきます。

この時点ではこんなフォルダ構成

sumikko
 | - dataset.yaml
 | - train 学習用画像(100枚ほど)
 |      | - classes.txt クラスラベルの一覧
 |      | - IMG_・・・.jpg 画像ファイル
 |      | - IMG_・・・.txt ラベリング情報
 |      | - IMG_・・・.jpg 
 |      | - IMG_・・・.txt 
 |    ・・・
 | - val 検証用画像(10枚ほど)
        | - classes.txt クラスラベルの一覧
        | - IMG_・・・.jpg 
        | - IMG_・・・.txt
     ・・・

GoogleColabに接続して新規でNotebookを作成する。
学習するのでGPUをONにしておく。

MyDriveのマウント

データセットを読み込むためにMydriveをマウントします。

from google.colab import drive
drive.mount('/content/drive')

GoogleColabでYOLOインストール

#pipからyolo v8をインストール
!pip install ultralytics

wandbのインストール

学習結果をリアルタイムで確認するためのツールとなります。
yolo v8でも現在対応しているようです。

使用するには以下のサイトへの登録が必要です。
https://wandb.ai/site
個人で使う分には無料のようです。

!pip install wandb

Yoloモデルのトレーニング時に、登録したアカウントに学習データをリアルタイムで連携しているようです。
上記サイトにログインすることで学習状況が見られます。

学習の実施

※wandbを利用する場合は実行時にアカウント情報を入力する必要があります。
すべてのセル実行等では途中で止まりますのでご注意ください。

!yolo detect train data='/content/drive/MyDrive/sumikko/dataset.yaml' model=yolov8s.pt epochs=300 imgsz=640

wandbによる学習推移確認

以下は最終結果ですが、このようなグラフがwandbのダッシュボードでリアルタイムに更新されていきます。

metrics
image.png

train/val
image.png

結果をドライブに移動

結果をドライブに移動しておく。

!cp -rf /content/runs/detect/train /content/drive/MyDrive/sumikko/result/

ローカルPC側の準備

前回同様にpipで環境構築していく。

Python環境の準備

64bit版のPythonをインストール
https://www.python.org/

# 先に仮想環境を作成(任意のフォルダに移動しておく)
PS C:\yolo_pj> python -m venv yolo_v8
PS C:\yolo_pj> .\yolo_v8\Scripts\activate

yolov8のインストール

Pytorch等必要資材もまとめてインストールされるみたいでs。

(yolo_v8) PS C:\yolo_pj> pip install ultralytics

モデルの移植

学習時に以下のパスに学習結果を保存していたので
/content/drive/MyDrive/sumikko/results
モデルの場所は以下となります。{name}は学習時に指定したnameとなります。
/content/drive/MyDrive/sumikko/results/{name}/weight/best.pt

モデルをダウンロードしてyolov5フォルダの直下に配置します。
今回は以下の場所
C:\yolo_pj\yolo_v8

すみっコ検出確認

物体検出実行

source=0でカメラ番号を指定、show=Trueにすると画像も併せて表示されます
(show=TrueにしないとDetect結果だけプロンプトに流れます)
confで表示の閾値を指定できます

(yolo_v8) PS C:\yolo_pj> cd yolo_v8
(yolo_v8) PS C:\yolo_pj\yolo_v8> yolo detect predict model=best.pt  source=0 show=True conf=0.25

検出結果

yolo v5と同様にv8でも作成したデータで検知できました。
image.png

以上です。お疲れさまでした。

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12