物体検出でお馴染みのYOLOシリーズの「YOLOv6」について、動かしながら試していきます。
2023年1月に公開された最新バージョンであるYOLOv6(v3.0)は、YOLOv7やYOLOv8の性能を上回っています。
Google colabを使用して簡単に最新の物体検出モデルを実装することができますので、ぜひ最後までご覧ください。
今回の内容
・YOLOv6とYOLOv6(v3.0)の概要
・Google colabを使用してYOLOv6(v3.0)の導入
・チュートリアルの推論
YOLOv6とは
YOLOv6は2022年9月に公開されました。
性能をあまり落とさずに推論速度を向上させるため、ポストトレーニング量子化(PTQ)や量子化考慮学習(QAT)などの手法が用いられています。
YOLOv6(v3.0)
YOLOv6(v3.0)は2023年1月に公開されました。
YOLOv6をベースに、アンカーベースとアンカーフリーの両方の利点を享受するためのアンカー補助学習(AAT)や小型モデルの性能を向上させるために、新たな自己蒸留手法といった改良が加えられています。
こうした改良により、YOLOv7やYOLOv8の性能を上回っています。
詳細は以下のリンクからご確認ください。
YOLOv8のベンチマーク結果は以下となっています。
物体検出モデル
なお、YOLOv6のライセンスは「GNU General Public License v3.0」となっています。
YOLOv6(v3.0)の導入
早速YOLOv6(v3.0)を使って動かしていきましょう。
ここからはGoogle colabを使用して実装していきます。
まずはGPUを使用できるように設定をします。
「ランタイムのタイプを変更」→「ハードウェアアクセラレータ」をGPUに変更
GPUの設定が終わったら、Googleドライブをマウントします。
from google.colab import drive
drive.mount('/content/drive')
%cd ./drive/MyDrive
公式よりcloneしてきます。
!git clone https://github.com/meituan/YOLOv6
%cd YOLOv6
次に必要なライブラリをインポートします。
ここではpipでインストールすることにします。
!pip install -r requirements.txt
以上で準備完了です。
YOLOv6(v3.0)を使えるようになりました。
学習済みモデルを使った推論デモ
サンプル画像で試してみる
ここからは推論デモを試してみましょう。
まずは学習済みモデルを取得します。
冒頭紹介した通り、いくつかの学習済みモデルがあります。
ここでは、最も精度が高い「yolov6-L6.pt」を使うことにします。
下記の通り実行してモデルをダウンロードしましょう。
!wget https://github.com/meituan/YOLOv6/releases/download/0.3.0/yolov6l6.pt
次に推論を実施します。
サンプル画像が用意されていますので、この画像を指定しましょう。
引数「–source」に画像のパスを指定します。
!python tools/infer.py --weights yolov6l6.pt --img 1280 1280 --source data/images/image2.jpg
実行すると「runs/inference/exp」のフォルダ内に結果が保存されます。
中身を確認してみると、高精度で検出できていることがわかります。
簡単に物体検出を実装することができました。
任意の動画で試してみる
動画でも試してみましょう。
同様に推論デモを実行します。
!python tools/infer.py --weights yolov6l6.pt --img 1280 1280 --source data/sample.mp4
任意の動画で推論デモを簡単に実行することができました。
まとめ
最後までご覧いただきありがとうございました。
2023年1月に公開された最新バージョンであるYOLOv6(v3.0)について、動かしながら試してみました。
精度・推論速度ともに向上しており、非常に使いやすいものになっています。
物体検出の活用の幅がさらに広がりそうですね。