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

YOLOv8をCLIで動かしてみた

Posted at

概要

オープンソース物体認識のデファクトスタンダート・You Only Look Once(以降,YOLO)の正規第8版.YOLACTやYOLO-Xなどの派生系もあるので正規と表記した.これまでGithubリポジトリとして提供されてきたYOLOシリーズだが,このYOLOv8はPYPIパッケージとして提供されている.物体認識から派生して領域認識や個体認識も実行できる.

公式のGithubはこちら

Githubトップページにはコマンドによる推論とPythonの学習プログラムが記載されている.

  • コマンド側のDocsはこちら:推論以外にも学習用コマンドや評価用コマンドも用意されている
  • Python側のDocsはこちら:学習以外に評価サンプルや推論サンプルも用意されている

インストール

このコマンドでインストールが可能.公式のインストールガイドはこちら

pip install ultralytics

要件はこの通り.

  • Python≥3.7
  • torch>=1.7

テスト

今回はコマンドを学習,推論,検証を実行してみる.

環境はGoogle ColabでURLはこちらである.

ただし,このままではNotImplementedError: A UTF-8 locale is required. Got ANSI_X3.4-1968というエラーが出るので,このコメントを参考にしてはじめに下記コードを打ち込む.

import locale
locale.getpreferredencoding = lambda: "UTF-8"

基本的な文法としてはこの通り

yolo TASK MODE ARGS
  • yolo:コマンド名
  • TASK:オブション引数でdetect,segment,classifyから選択する.与えなければモデルタイプから自動で判定してくれる
  • MODE:train,val,predict,export,trackから選択する.今回はtrain,val,predictを実行する
  • ARGS:その他の引数.公式DocsのConfigurationを参考にして必要なものを与える.今回は最低限の構成で実行する.

なお,実行するとコンソール出力の最後の方にResults saved to HOGEという出力がある.HOGEはディレクトリを指しておりHOGE以下ににコマンドの実行結果(モデルファイルなど)が格納されている.

今回は一貫して最低限動くことを確認するところまでをみていく.

  1. 学習
    学習コマンドはこの通り.

    !yolo train data=coco128.yaml model=yolov8n.pt epochs=2
    
    • data:データファイルへのパス.ローカルになければ対応したものをダウンロードしてきてくれる.ultralytics/ultralytics/datasetsにダウンロード可能なデータファイルがある
    • model:モデルファイルへのパス.pt形式の重みファイルかyaml形式のモデルファイルを与える.
    • epochs:エポック数.デフォルトが100で,与えずに実行すると時間がかかるため,テスト用に2にしている

    出力はruns/detect/train/に保存される.重みファイルや学習データの推論の様子や検証データの推論の様子といった学習結果だけでなく,混同行列やROCカーブなどの精度評価が揃っている.

  2. 推論
    推論コマンドはこの通り.

    !yolo predict model="./runs/detect/train/weights/best.pt" source='https://ultralytics.com/images/bus.jpg'
    
    • model:重みファイルへのパス.ここでは上のコマンドで学習済みのモデルを与えてみた
    • source:ソースディレクトリ,ソースファイルへのパス.画像と動画の両方に対応している.ここではultralyticsで用意しているバスの画像をダウンロードして使っている

    出力はruns/detect/predict/に画像や動画にアノテーションしたものが保存される.

  3. 検証

    !yolo val model="./runs/detect/train/weights/best.pt" data=coco128.yaml
    
    • model:重みファイルへのパス.ここでは上のコマンドで学習済みのモデルを与えてみた
    • data:データファイルへのパス.ローカルになければ対応したものをダウンロードしてきてくれる.今回は学習データに合わせてcoco128にしてみた.

    出力はruns/detect/predict/に保存される.揃っているデータは検証データの推論の様子や混同行列,ROCカーブなどで.実は学習時に検証も走っているのでオーバーラップしている.なお,学習コマンドtrainにオプションval=Falseをつけると学習時には検証されない.

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