【画像解析】YOLOv8を使って手軽に物体検出してみる

YOLOとは物体検出のアルゴリズムの1つで、これまで数多くのバージョンアップを重ね物体検出の精度と速度を高めてきました。そしてこの度YOLOv8がリリースされました。YOLOv8は速度、精度面で限界を押し上げているようです。

本来物体検出のようなAIモデルを利用する場合にはそれなりのスペック(主にGPU)のマシンが必要です。しかし、Google Colaboratory等Cloud環境を使えば、手軽に機械学習モデルやAIモデルを実行することができます。

なので今回はGoogle Colaboratory環境でYOLOv8を試してみようと思います。

準備

環境

Google ColaboratoryはGoogleアカウントがあれば無料でも利用できるので、使ったことがない方も以下URLからアクセスして試してみてください。

https://colab.research.google.com/

新規Notebookを作成したら、まずはGPUが使えるように設定します。「ランタイム」タブから「ランタイムのタイプを変更」を選択します。

「ランタイム」タブから「ランタイムのタイプを変更」を選択

そして、ハードウェア アクセラレータに「GPU」を指定します。これで環境設定は完了です。

ハードウェア アクセラレータに「GPU」を指定

事前準備

今回分析結果等はGoogle Driveに格納します。なので、まずはGoogle Driveをマウントします。

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

続いてYOLOv8をインストールします。YOLOv8のインストール方法にはpipからのインストールとGitHubからのインストールの2通りあります。今回はGitHubからインストールします。

#GitHubからクローン
!git clone https://github.com/ultralytics/ultralytics
%cd ultralytics

#必要なパッケージをインストール
!pip install -r requirements.txt

YOLOv8実行

ここまでできたら、実際にYOLOv8を試してみます。まずはモデルを読み込みます。今回は学習済みモデルのうち「yolov8x」を利用します。

モデルは他に「yolov8n」「yolov8s」「yolov8m」「yolov8l」があります。

from ultralytics import YOLO
model = YOLO("yolov8x.pt") 

画像で試す

まずはサンプルとして用意されている以下の画像で試してみます。

sample.jpg
#save=Trueとすることで結果を保存
results = model("https://ultralytics.com/images/bus.jpg",save=True) 

実行するとGoogle Drive上の[ultralytics] > [runs] > [detect] > [predict]に結果のファイルが格納されます。

samole.jpg(物体検知後)

右上のbicycleを検出できてるのすごいですね(目視でも見つけられませんでした..)サンプルなので検出精度がより高いというのもあるかもしれませんが、なかなか期待できそうです。

動画で試す

今度は動画で試してみます。以下の動画で検証してみます。なお、この動画は用意されたサンプルではありません。

コード自体は画像の場合と変わりません。iPhoneで撮影された動画なので拡張子が.movです。

results = model('/content/drive/MyDrive/movie/1619_960x540.mov',save=True) 

後ろの人はピントが合っていないですが、ちゃんと検知できています。

まとめ

Google ColaboratoryでYOLOv8を使ってみました。簡単に使えるうえ精度もかなり良さそうなので、物体検知をやってみたい方は是非試してみてください。

ではでは👋