YOLOv5、YOLOv8の公開元であるUltralytics社から、2024年9月にYOLOv11が、2025年2月にYOLOv12公開されました。
公式によると、YOLOv11はv8と同様に構成され、最先端の精度、スピード、効率によって処理遅延を削減しつつ精度を向上させたモデルとなっています。
一方で、YOLOv12は今までのYOLOとは物体検出におけるメカニズムが変更されました。従来がCNNによる「入力画像を局所的に捉え特徴を抽出する」仕組みであったのに対し、YOLOv12では新たに"Attention機構"による「画像全体を捉え重要な部分に注目する」仕組みを導入したとのことです。
※YOLO=You Only Look Once(見るのは一度だけ)
※CNN=Convolutional Neural Network(畳み込みニューラルネットワーク)
引用:https://github.com/sunsmarterjie/yolov12
ここでは、WindowsにYOLOv11及びYOLOv12の環境を構築し、動かしてみた内容をまとめました。
さらに今回は、GPUとしてGeForce RTX 4090を搭載したPCを使っているので、過去のGPUと比較してどの程度処理速度が変化したのかも比較してみました。
また、公式のドキュメントには環境構築方法や各モードについての詳細が記載されていますので、こちらもご参照ください。
Ultralytics YOLO Docs:https://docs.ultralytics.com/
Ultralytics社が提供するYOLOはpip、conda、Dockerを含む様々なインストール方法を提供しています。
今回は、YOLOv8のときと同様に、Pythonのvenv仮想環境のもとpipによる環境構築を行いました。
・必要な環境
Windows or Linux or Docker
Python >= 3.8
PyTorch >= 1.8
・今回構築した環境
OS | Windows11 Pro |
---|---|
GPU | NVIDIA GeForce RTX 4090 |
CUDA | 12.6 |
cuDNN | 9.8.0 for CUDA 12.6 |
Python | 3.12.9 |
PyTorch | 2.7.0+cu126 |
YOLOv12はUltralytics社のYOLOv11環境上で実行できるため、今回の環境構築はYOLOv11の分だけ行います。
YOLOv11のインストールはYOLOv8のときと変わっておらず、Python、PyTorchの環境が整っていれば、あとはultralyticsパッケージをインストールするだけで準備完了となります。
もちろんPython以外にも、前述の通りDocker、Anacondaで利用することもできます。
ultralytics パッケージ:https://pypi.org/project/ultralytics/
【コマンド】
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
pip install ultralytics
インストール完了後、動作確認のために元々用意されているMS COCOモデルで画像を検出してみました。
コマンドを実行すると、modelで指定している"yolo11n.pt"ファイルが自動でダウンロードされ、処理が開始されます。
【コマンド】
yolo predict model='model\yolo11n.pt' source='https://ultralytics.com/images/bus.jpg'
![]() |
YOLOv11、v12ではモデルサイズが異なるn, s, m, l, xの5パターンのモデルが用意されています。
パターンによって検出精度や処理速度が異なるので、目的に沿ったモデルを選択する必要があります。
今回は学習の処理時間比較ため、処理速度と精度がかけ離れたnモデル、xモデルの2種類に対し、独自データによるモデル作成を行いました。
YOLOでは、学習用の画像と併せてアノテーション情報(YOLO形式テキストファイル)が必要となります。
また、これらデータセットの設定ファイルとしてyamlファイルを準備します。
yamlファイルにはクラス名、訓練セット、検証セットのパスなど、データセットの構造を記述しておきます。
・学習時パラメータ
画像数:(train)110枚+(test)55枚
クラス数:4
batch_size=16 ※32だと途中停止
image sizes=640
epoch=200 ※デフォルトは100
上記以外のパラメータ詳細はこちらで確認できます。
https://docs.ultralytics.com/ja/modes/train/#train-settings
同じ学習データ、パラメータを用いても、モデルのパターンによって学習時間は大きく変動します。
下記はYOLOv11とYOLOv12のn、xモデルに対し、同じ学習データ・パラメータのもと学習したときの処理時間です。
学習時間(epoch=200) | 1epochの処理時間 | |
---|---|---|
YOLO11n | 6分52秒 | 2.06秒 |
YOLO11x | 18分5秒 | 5.43秒 |
YOLO12n | 7分49秒 | 2.35秒 |
YOLO12x | 53分31秒 | 16.06秒 |
yolo11nとyolo12nはそれほど処理時間は変わりませんが、yolo11xとyolo12xとでは処理時間が約3倍と大きく差があります。
また、それぞれnモデルよりxモデルの方が学習にかかる時間は長くなります。
YOLOv11とYOLOv12とで、まったく同じ動画(4K動画、2K動画)をMS COCOモデルで検出したときの処理速度を比較してみました。
2K動画、4K動画のどちらの場合も処理速度はほぼ同等となりました。
検出数にもよるので一概には言えませんが、4K動画を処理するのであれば、動画の長さの約4.5倍の時間で処理できます。
補足情報
Ultralytics社のYOLO環境では、画像1枚につき1つのYOLO形式のテキストファイルでアノテーション情報が出力されます。
ただし、テキストファイルでの出力はオプション"save_txt"、"save_conf"で設定する必要があるので、注意してください。
GPUの異なるPC上にUltralytics社のYOLO環境を構築したうえで、まったく同じ動画・画像をMS COCOモデルで検出したときの処理速度を比較してみました。
4K静止画、4K動画、2K動画に対しての処理時間は下記のグラフのようになりました。
4K静止画、4K動画ではRTX3090の処理が最も速く、2K動画の処理はRTX2080が速いという結果になりました。
2K動画についてはRTX3090もほぼ同等の速さで処理できます。
また、GPUに関係なく、最も処理に時間がかかるのは4K静止画で、2K動画は4K動画の2~3倍の速度で処理できることがわかります。
リアルタイム検出を行うのであれば、2K動画で処理した方がいいと考えられます。
▼この記事を書いたひと
R&Dセンター 野原 佐知世
R&Dの画像処理、ディープラーニングを担当。360°パノラマ、機械学習などシステム、画像処理を中心に活動しています。
●富士見事務所 TEL : 052-228-8744(交通部営業課) FAX : 052-323-3337(交通部共通)
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711 地図
PoCのお問い合わせ:交通部営業課
技術的なお問い合わせ:R&Dセンター