はじめに
物体検出でお馴染みのYOLOシリーズの最新版「YOLOv8」について、動かしながら試していきます。YOLOv8は2023年1月に公開された最新バージョンであり、速度と精度の面で限界を押し広げています。Google colabで簡単に最新の物体検出モデルを実装することができますので、ぜひ最後までご覧ください。
YOLOv8とは
YOLOv8は2023年1月に公開された最新バージョンであり、既存のオブジェクト検出器を上回り、速度と精度の面で限界を押し広げています。物体検出だけでなく、セグメンテーションタスクや画像分類タスクでも利用することができます。
YOLOv8のベンチマーク結果は以下となっています。
詳細は以下のリンクよりご覧ください。
なお、ライセンスは「GNU General Public License v3.0」となっています。
YOLOv8の導入
早速YOLOv8を使って動かしていきましょう。
ここからはGoogle colabを使用して実装していきます。
まずは「ランタイムのタイプを変更」→「ハードウェアアクセラレータ」をGPUに変更して、GPUが使えるようにしましょう。
GPUの設定が終わったら、Googleドライブをマウントします。
from google.colab import drive
drive.mount('/content/drive')
%cd ./drive/MyDrive
公式よりcloneしてきます。
!git clone https://github.com/ultralytics/ultralytics
%cd ultralytics
次に必要なライブラリをインポートします。
!pip install -r requirements.txt
以上で準備完了です。
YOLOv8を使えるようになりました。
サンプル画像で試してみる
ここからは推論デモを試してみましょう。まずは学習済みモデルを取得します。
冒頭紹介した通り、いくつかの学習済みモデルがあります。ここでは、最も精度が高い「yolov8x.pt」
を使うことにします。
from ultralytics import YOLO
model = YOLO("yolov8x.pt")
次に推論を実施します。サンプル画像が用意されていますので、この画像を指定しましょう。引数に「save=True」
を取ることで、画像を保存することができます。
results = model("https://ultralytics.com/images/bus.jpg",save=True)
実行すると「ultralytics/runs/detect/predict」
のフォルダ内に結果が保存されます。
高精度で検出できていることがわかります。
動画で推論
入力ソースは画像の他に、動画やWebカメラ、スクリーンショットにも対応しています。
ここでは動画の推論の例を紹介します。
results = model('sample.mp4',save=True)
結果は以下の動画のようになります。
セグメンテーション
最後にセグメンテーションモデルも試してみます。
「task=’segment’」
とすることで、物体検出と同様に推論することができます。
model = YOLO("yolov8n-seg.pt")
results = model('bus.jpg',save=True,task='segment')
動画の推論結果は以下のようになります。
まとめ
最後までご覧いただきありがとうございました。
2023年1月に公開されたYOLOシリーズの最新バージョンである「YOLOv8」について、動かしながら試してみました。精度・推論速度ともに向上しており、非常に使いやすいものになっています。
ますます物体検出の活用の幅がさらに広がりそうですね。
ブログではYOLOv8による学習及び推論の方法をまとめていますので、ぜひ合わせてご覧ください。