物体検出でお馴染みのYOLOシリーズの最新版「YOLOv8」について、動かしながら試していきます。
YOLOv8は2023年1月に公開された最新バージョンであり、速度と精度の面で限界を押し広げています。
Google colabを使用して簡単に最新の物体検出モデルを実装することができますので、ぜひ最後までご覧ください。
今回の内容
・YOLOv8の概要
・Google colabを使用してYOLOv8の導入
・物体検出の実装
・セグメンテーションの実装
YOLOv8とは
YOLOv8は2023年1月に公開された最新バージョンであり、既存のオブジェクト検出器を上回り、速度と精度の面で限界を押し広げています。
物体検出だけでなく、セグメンテーションタスクや画像分類タスクでも利用することができます。
YOLOv8のベンチマーク結果は以下となっています。
物体検出モデル
セグメンテーションモデル
なお、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でインストールすることにします。
!pip install -r requirements.txt
以上で準備完了です。
YOLOv8を使えるようになりました。
物体検出の実装
まずは物体検出の実装を紹介します。
サンプル画像として用意されている「bus.jpg」を使用します。
from ultralytics import YOLO
model = YOLO("yolov8x.pt")
results = model("bus.jpg",save=True)
実行すると「ultralytics/runs/detect/predict」のフォルダ内に結果が保存されます。
中身を確認してみると、高精度で検出できていることがわかります。
セグメンテーションの実装
次にセグメンテーションの実装を紹介します。
まずはセグメンテーション用の学習済みモデルをダウンロードします。
model = YOLO("yolov8n-seg.pt")
「task=’segment’」とすることで、物体検出と同様に推論することができます。
results = model('bus.jpg',save=True,task='segment')
実行すると「ultralytics/runs/segment/predict」のフォルダ内に結果が保存されます。
任意の動画で試してみる
動画でも試してみましょう。
「bus.jpg」がある場所に動画を保存して、同様に推論デモを実行します。
results = model('sample.mp4',save=True,task='segment')
任意の動画で推論デモを簡単に実行することができました。
まとめ
最後までご覧いただきありがとうございました。
2023年1月に公開された物体検出でお馴染みのYOLOシリーズの最新バージョンである「YOLOv8」について、動かしながら試してみました。
精度・推論速度ともに向上しており、非常に使いやすいものになっています。
物体検出の活用の幅がさらに広がりそうですね。