2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonAdvent Calendar 2023

Day 12

自作データセットを用いてYOLOv8で分類を行った2

Last updated at Posted at 2023-12-10

前回の続きです。
自作データセットを用いてYOLOv8で分類を行いました。
今回はmnist2560データセットを用いて学習を行います。
mnistは、手書き数字の画像データベースです。
YOLOの最新版であるYOLOv8には日本語のドキュメントもあります。

ドキュメントとGoogle Colaboratoryのノートブックを読みながらYOLOv8を実行してみました。

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()

学習

mnist2560データセットを用いて、ゼロから学習を行いました。
mnist2560データセットは2560枚の画像から成るデータセットです。

学習(結果はyolov8/runs/classifyに保存される)

%cd "/content/drive/MyDrive/yolov8"
!yolo train data=mnist2560 model=yolov8n-cls.yaml epochs=100 imgsz=64

mnistは以下のサイトから入手することもできます。

mnistの画像の大きさは28 × 28 pxです。

分類

学習結果を用いて、分類を行います。
分類に用いる自作データセット(手書き数字の画像)を、yolov8/testディレクトリに移動しました。
自作データセットは、28 × 28 pxと140 × 140 pxの2種類作成しました。

28 × 28 pxの画像

分類(結果はyolov8/runs/classifyに保存される)

%cd "/content/drive/MyDrive/yolov8"
!yolo predict model="/content/drive/MyDrive/yolov8/runs/classify/train/weights/best.pt" source="/content/drive/MyDrive/yolov8/test"

IMG_0017.PNGIMG_0018.PNGIMG_0019.PNGIMG_0020.PNGIMG_0021.PNGIMG_0022.PNGIMG_0023.PNGIMG_0024.PNGIMG_0025.PNGIMG_0026.PNG

これらの画像が出力されました。
画像が小さく、結果が画像に入りきっていません。
結果を以下に示します。

0    0 0.80, 7 0.13, 5 0.02, 2 0.01, 8 0.01
1    1 0.98, 9 0.01, 7 0.01, 8 0.00, 6 0.00
2    0 0.53, 2 0.22, 3 0.14, 6 0.07, 8 0.01
3    3 0.93, 8 0.05, 5 0.03, 2 0.00, 7 0.00
4    4 0.48, 9 0.46, 8 0.03, 7 0.01, 2 0.01
5    5 0.93, 8 0.04, 7 0.01, 3 0.01, 9 0.01
6    6 0.87, 8 0.07, 3 0.03, 2 0.01, 5 0.01
7    7 1.00, 9 0.00, 5 0.00, 4 0.00, 8 0.00
8    8 0.85, 3 0.13, 5 0.01, 9 0.00, 7 0.00
9    9 0.87, 7 0.08, 8 0.04, 4 0.01, 1 0.00

全ての数字で正しく分類できており、スコアが1でした。

140 × 140 pxの画像

分類(結果はyolov8/runs/classifyに保存される)

%cd "/content/drive/MyDrive/yolov8"
!yolo predict model="/content/drive/MyDrive/yolov8/runs/classify/train/weights/best.pt" source="/content/drive/MyDrive/yolov8/test"

IMG_0028.PNGIMG_0029.PNGIMG_0030.PNGIMG_0031.PNGIMG_0032.PNG
IMG_0033.PNGIMG_0034.PNGIMG_0035.PNGIMG_0036.PNGIMG_0037.PNG

これらの画像が出力されました。
結果を以下に示します。

0    0 1.00, 6 0.00, 9 0.00, 5 0.00, 2 0.00
1    1 1.00, 4 0.00, 8 0.00, 6 0.00, 7 0.00
2    2 1.00, 5 0.00, 3 0.00, 7 0.00, 9 0.00
3    3 1.00, 5 0.00, 9 0.00, 7 0.00, 6 0.00
4    4 1.00, 6 0.00, 7 0.00, 2 0.00, 0 0.00
5    5 1.00, 3 0.00, 9 0.00, 6 0.00, 2 0.00
6    6 1.00, 2 0.00, 5 0.00, 3 0.00, 0 0.00
7    7 1.00, 8 0.00, 1 0.00, 9 0.00, 4 0.00
8    8 1.00, 9 0.00, 6 0.00, 3 0.00, 2 0.00
9    9 1.00, 6 0.00, 0 0.00, 4 0.00, 5 0.00

全ての数字で正しく分類できており、スコアが1でした。
28 × 28 pxの画像でも、140 × 140 pxの画像でも、正しく分類することができました。
学習に用いるデータセットをmnist160からmnist2560に変えたことで、モデルの精度が上がりました。

YOLOv8で物体検出を行ってみた記事、YOLOv8でセグメンテーションを行ってみた記事も、よければご覧ください。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?