はじめに
YOLOv12は、GitHubユーザーのsunsmarterjieによって開発されたオープンソースプロジェクトで、リアルタイムのターゲット検出技術に焦点を当てています。このプロジェクトは、フレームワークのYOLO(You Only Look Once)シリーズに基づいており、従来の畳み込みニューラルネットワーク(CNN)のパフォーマンスを最適化するための注意メカニズムの導入だけでなく、改善された精度の検出だけでなく、高い推論速度を維持しています。 YOLOv12は、監視システム、自動運転や画像解析など、さまざまなシナリオのために、ナノ、スモール、ミディアム、ラージ、エクストララージモデルサイズを提供するために、さまざまなコンピューティングパワーとアプリケーションの要件を満たす、Medium、Large、Extra-Largeのモデルサイズを提供し、異なる計算能力とアプリケーションの要件を満たします。このプロジェクトはGNU AGPL-3.0でライセンスされており、ユーザーはコードを無料でダウンロードし、必要に応じてカスタマイズすることができる。開発チームにはバッファロー大学や中国科学院の研究者が参加しており、技術文書やインストールガイドも詳細で、ユーザーはすぐに使い始めることができる。
機能一覧
- 効率的なリアルタイム・ターゲット検出T4GPUの場合、YOLOv12-Nは40.6% mAPを達成し、推論レイテンシはわずか1.64msです。
- マルチモデルの選択低電力デバイスから高性能サーバーまで、幅広いハードウェア環境に対応する5つのモデル(Nano~Extra-Large)を用意しています。
- アテンション・メカニズムの最適化エリアアテンションとR-ELANモジュールの導入により、検出精度の向上と計算量の削減を実現。
- モデル輸出ONNXまたはTensorRTフォーマットへのトレーニングモデルのエクスポートをサポート。
- カスタマイズされたデータセットのトレーニングユーザは、特定のターゲット検出タスクに適した独自のデータセットでモデルをトレーニングすることができます。
- 視覚化サポート: : 試験結果の表示と性能評価を容易にする監督ツールの統合。
ヘルプの使用
設置プロセス
YOLOv12は現在スタンドアロンのPyPIパッケージを持っておらず、GitHubのソースからインストールする必要がある。以下はLinux用の詳細なインストール手順である(WindowsやMacユーザーは環境設定を調整する必要がある):
- 環境を整える
- Python 3.11以降がシステムにインストールされていることを確認してください。
- Gitをインストールする:
sudo apt install git
(Ubuntuの例)。 - オプション:NVIDIA GPUドライバとCUDA(推奨バージョン11.8以上)をインストールし、トレーニングと推論を高速化する。
- クローン倉庫
ターミナルで以下のコマンドを実行して、YOLOv12リポジトリをローカルにダウンロードする:git clone https://github.com/sunsmarterjie/yolov12.git cd yolov12
- 仮想環境の構築
Condaまたはvenvを使用して、別々のPython環境を作成し、依存関係の衝突を避ける:conda create -n yolov12 python=3.11 conda yolov12 をアクティブにする
- 依存関係のインストール
PyTorch、flash-attn、supervisionなど、プロジェクトに必要な依存関係をインストールします:wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl pip install flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl pip install -r requirements.txt pip install -e .
- インストールの確認
以下のコマンドを実行し、環境が正しく設定されていることを確認する:python -c "from ultralytics import YOLO; print('YOLOv12のインストールに成功しました')"
使用方法
カスタムモデルのトレーニング
YOLOv12は、シーンに特化したターゲット検出タスクに適した独自のデータセットでの学習をサポートする。操作手順は以下の通り:
- データセットの準備
- データはYOLO形式(画像とラベルフォルダーを含み、ラベルは.txtファイルで、ターゲットカテゴリーとバウンディングボックスの座標でラベル付けされている)でなければならない。
- 確立
data.yaml
ファイルで、トレーニングセット、検証セットのパス、カテゴリ名を指定します。例train: ./dataset/train/images val: ./dataset/val/images nc: 2 # カテゴリの数 names: ['cat', 'dog'] # カテゴリ名
- モデルをロードしてトレーニングする
Pythonスクリプトを使用して、事前にトレーニングされたモデルをロードし、トレーニングを開始します:from ultralytics import YOLO model = YOLO('yolov12s.pt') # optional n/s/m/l/x モデル 結果 = model.train(data='path/to/data.yaml', epochs=250, imgsz=640)
時代
トレーニングの回数は250回以上を推奨する。イムグズ
デフォルトは640x640です。
- トレーニング結果を見る
トレーニング終了後、結果は走行/探知/トレーニング
フォルダに、モデルの重み (ベスト
)や難読化行列など。以下のコードを実行すると、混同行列が表示されます:from IPython.display import Image Image(filename='runs/detect/train/confusion_matrix.png', width=600)
推論とテスト
学習されたモデルは、画像やビデオ内のターゲット検出に使用することができる:
- 単一画像検出
model = YOLO('path/to/best.pt') 結果 = model('test.jpg') results.show() # テスト結果を表示 results.save() # 結果をruns/detect/predictに保存する
- ビデオ検出
コマンドラインを使ってビデオファイルを処理する:python app.py --source 'video.mp4' --model 'path/to/best.pt'
- パフォーマンス評価
検証セットは、mAPのようなメトリクスを得るために評価される:結果 = model.val(data='path/to/data.yaml') print(results.box.map) #出力 mAP@0.5:0.95
モデル輸出
本番環境で使用可能な形式にモデルをエクスポートします:
model.export(format='onnx', half=True) #をONNXとしてエクスポート。
エクスポートされたモデルは、エッジデバイスやサーバーに配置することができる。
注目の機能操作
- アテンション・メカニズムの最適化
YOLOv12の "エリア・アテンション "モジュールは、手動で設定する必要はなく、学習と推論中に自動的に特徴抽出を最適化し、小さなターゲットの検出を向上させます。ユーザーは適切なモデルサイズ(例:低消費電力デバイス用のNano)を選択するだけで、この機能による精度向上を享受できます。 - リアルタイム検出
推論は、CUDA対応GPU上で実行すると非常に高速です。例えば、T4 GPU上でYOLOv12-Nモデルを実行すると、単一画像の検出がわずか1.64 msで行われ、ユーザーは監視ツールを使用して検出フレームと信頼度をリアルタイムで視覚化できます:results = model('image.jpg') results.plot() # 注釈付き画像の表示
- マルチシーン・アダプテーション
モデルサイズと学習データを調整することで、YOLOv12はさまざまなタスクに簡単に適応できる。例えば、監視システムにおける歩行者の検出や、自律走行における車両や交通標識の認識などである。