Ultralytics YOLO27
YOLO27モデルは最終的な研究開発段階にあり、今年後半の公開を予定しています。モデルはまだ利用できず、公開日は決まっていません。このページでは今後公開予定のモデルを紹介します。機能やベンチマークはリリース前に変更される可能性があります。以下のコード例は、モデルとパッケージのサポートがリリースされた後に使用することを想定しており、現在公開中のパッケージでは動作しません。現時点では、モデルの重み、設定、実装コードは公開していません。公開時にいち早く情報を受け取るには、YOLO27のウェイトリストにご登録ください。
概要#
Ultralytics YOLO27はリアルタイムビジョンモデルのファミリーです。検出モデルには相補的な2種類の設計が採用されています。コンパクトなNおよびSモデルには効率化されたCNNアーキテクチャを、大型のMおよびLモデルにはクエリベースのNMSフリーアーキテクチャを採用しています。どちらの設計も同じインターフェースでデプロイできます。NおよびSの検出モデルは、デフォルトでNMSを使用するone-to-manyヘッドを採用しています。nms=Falseを使用すると、NMSフリーのヘッドを選択できます。
YOLO27は、Ultralytics YOLOシリーズにおける次期モデルファミリーであり、YOLO26の後継です。N、S、M、Lの4つのサイズがあり、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、深度推定、分類、姿勢推定、指向性物体検出に対応しています。2つの設計に分かれるのは、物体検出、インスタンスセグメンテーション、姿勢推定です。セマンティックセグメンテーション、深度推定、分類、指向性物体検出にはCNNアーキテクチャが使用されます。
4つの検出スケール全体で、YOLO27はNVIDIA RTX PRO 6000で0.44~1.86 msのレイテンシでCOCOにおいて42.6~60.5 mAPを達成し、より大きな800ピクセル入力ではYOLO27lが最大61.4 mAPを達成します。YOLO27lは、COCOで60 mAPを超えた初のUltralyticsモデルです。また、コンパクトなYOLO27n/sは、ほぼ同じ速度でYOLO26n/sの精度を上回ります。
from ultralytics import YOLO
model = YOLO("yolo27n.pt") # 事前学習済みのYOLO27nモデルを読み込む
results = model("path/to/bus.jpg") # 推論を実行主な機能#
-
デュアルスケール検出 標準的な検出器は、細、中、粗の3つの特徴マップで物体を予測します。YOLO27 NとSは中間の特徴マップを省き、小さい物体向けの細かい特徴マップと大きい物体向けの粗い特徴マップのみで予測します。融合した特徴に固定スケーリングを適用することで、2つのスケールのバランスを保ちます。これにより検出ヘッドの計算量を大幅に削減でき、3スケール設計と同等の信頼性でトレーニングしながら、モデルを高速化できます。
-
小さな物体の検出性能を強化 初期の高解像度特徴ステージを拡張し、より細かなディテールを捉えられるようにします。これを 維持される高精細な予測マップと組み合わせることで、コンパクトなモデルにとって最も難しいカテゴリである小さな物体の位置特定と回帰が改善します。
-
前景アライメントの教師信号 トレーニング中、追加の軽量ブランチが各位置で「物体」と「背景」を判別する方法を学習します。このブランチは、トレーニング中に使用する高密度なone-to-many教師信号と、最終予測を生成するone-to-oneヘッドの間のギャップを埋めるよう設計されています。これにより、YOLO26n/sで0.9/0.8 mAPだった精度差がYOLO27n/sではわずか0.4 mAPに縮まり、デプロイ後のone-to-oneヘッドでもトレーニング時の精度をほぼ維持できます。このブランチはトレーニング中のみ使用され、推論とエクスポート時には削除されるため、デプロイ時のコストはありません。
-
NMSを使用しないクエリベースの検出 大型モデルでは、高密度予測の代わりにTransformerデコーダーを使用し、固定数のオブジェクトクエリを反復的に改善して最終的な検出結果を直接出力するため、非最大値抑制による後処理は不要です。YOLO27mとYOLO27lでは、このデコーダーをUltraViTバックボーンと組み合わせています。UltraViTは最深部のステージで自己注意を使用してグローバルコンテキストを捉え、その後にFPN/PANネックを配置します。
-
シンプルな共通インターフェース どちらのアーキテクチャも、同じ
YOLOPythonインターフェースを通じて使用できます。モデルに応じて適切なトレーニング、検証、予測、エクスポートのパイプラインが自動的に選択されるため、あるYOLO27スケール向けに作成したコードは、他のスケールでも変更なしで動作します。
どのYOLO27を選べばよいですか?#
以下のガイダンスは、YOLO27のリリース後にモデルを選択する際の参考情報です。現在のプロジェクトではYOLO26を使用してください。
- YOLO27n / YOLO27s — エッジデバイス、ドローン、リアルタイム動画向け:ファミリー内で最速のモデルで、デュアルスケール設計により小さな物体の検出性能が向上しています。デバイスごとのデプロイについては、NVIDIA JetsonとRaspberry Piをご覧ください。
- YOLO27m — GPUで精度と速度のバランスを重視する場合に最適です。同等のレイテンシでYOLO26mより精度が向上しており、本番環境でのGPUデプロイにおける標準的な選択肢です。
- YOLO27l — 精度が重要なアプリケーション向け:COCOで60 mAPを超えた初のUltralyticsモデルです。より大きな入力サイズで61.4 mAPを達成しながら、GPUでリアルタイム処理を維持します。
他のモデルファミリーとの比較については、Ultralyticsの全モデルをご覧ください。手元のハードウェアで精度と速度のトレードオフを測定するには、ベンチマークモードをご覧ください。
サポート対象のタスクとモード#
以下の表は、4つのYOLO27モデルスケールで予定されているタスクとモードのサポート状況を示しています。チェックマークはリリース時にサポート予定であることを示し、現在の一般公開状況を示すものではありません。記載されているモデルファイルはすべて未リリースです。
| モデル | ファイル名 | タスク | トレーニング | 検証 | 推論 | エクスポート |
|---|---|---|---|---|---|---|
| YOLO27 | yolo27n.pt yolo27s.pt yolo27m.pt yolo27l.pt | 物体検出 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-seg | yolo27n-seg.pt yolo27s-seg.pt yolo27m-seg.pt yolo27l-seg.pt | インスタンスセグメンテーション | ✅ | ✅ | ✅ | ✅ |
| YOLO27-sem | yolo27n-sem.pt yolo27s-sem.pt yolo27m-sem.pt yolo27l-sem.pt | セマンティックセグメンテーション | ✅ | ✅ | ✅ | ✅ |
| YOLO27-depth | yolo27n-depth.pt yolo27s-depth.pt yolo27m-depth.pt yolo27l-depth.pt | 深度推定 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-cls | yolo27n-cls.pt yolo27s-cls.pt yolo27m-cls.pt yolo27l-cls.pt | 分類 | ✅ | ✅ | ✅ | ✅ |
| YOLO27-pose | yolo27n-pose.pt yolo27s-pose.pt yolo27m-pose.pt yolo27l-pose.pt | 姿勢/キーポイント | ✅ | ✅ | ✅ | ✅ |
| YOLO27-obb | yolo27n-obb.pt yolo27s-obb.pt yolo27m-obb.pt yolo27l-obb.pt | 方向付き物体検出 | ✅ | ✅ | ✅ | ✅ |
YOLO27のDetect、Segment、Pose、OBBモデルはTrackモードにも対応します。このモードはpredictの上に構築され、動画フレーム間で複数の物体を追跡します。
YOLO27の物体検出、インスタンスセグメンテーション、姿勢推定は、1つのインターフェースの下で2つの設計を採用しています。NおよびSスケールではCNNアーキテクチャを使用し、MおよびLスケールではクエリベースのNMSフリーアーキテクチャを使用します。セマンティックセグメンテーション、深度推定、分類、指向性物体検出にはCNNアーキテクチャが使用されます。
性能指標#
検出精度はCOCO検証セットで報告しています。mAP、適合率、再現率の説明については、YOLOの性能指標をご覧ください。COCO以外での精度については、医用画像、リモートセンシング、産業、小売など、実世界の37の検出データセットを対象にマクロmAP50-95を測定するUltralyticsベンチマークをご覧ください。推論速度は、GPUではNVIDIA RTX PRO 6000(TensorRT 11、FP16)、CPUではAMD EPYC 9655(ONNX Runtime、FP32)で測定しています。リリース後は、yolo val model=yolo27n.pt data=coco.yaml imgsz=640 nms=False save_json=Trueを使用して精度の数値を再現できます。 物体検出、インスタンスセグメンテーション、姿勢推定の各表では、NMSフリーヘッドとCOCO評価を使用しています。N/Sの姿勢推定の検証では、矩形バッチ(rect=True)を使用しています。
これらの研究結果は、最終的な研究開発の過程で変更される可能性があります。公開用の重みと再現手順は、リリースに合わせて提供されます。
物体検出ドキュメントでは、COCOで学習した、80種類の事前学習済みクラスを含むこれらのモデルの使用例をご覧いただけます。表では入力サイズに640ピクセルを使用しており、概要ではYOLO27lの800ピクセル入力での結果も報告しています。
| モデル | サイズ (ピクセル) | mAPval50-95 | 速度 CPU ONNX (ms) | 速度 RTX PRO 6000 TensorRT11 (ms) | パラメーター (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLO27n | 640 | 42.6 | 16.1 ± 1.6 | 0.44 ± 0.00 | 3.0 | 7.2 |
| YOLO27s | 640 | 50.1 | 33.2 ± 0.1 | 0.64 ± 0.00 | 11.8 | 28.2 |
| YOLO27m | 640 | 56.4 | 74.8 ± 0.5 | 1.01 ± 0.00 | 24.6 | 64.6 |
| YOLO27l | 640 | 60.5 | 149.6 ± 1.4 | 1.86 ± 0.00 | 72.3 | 166.7 |
パラメーター数とFLOPsの値は、Conv/BatchNormの融合と未使用の検出ブランチの削除を適用した後の融合モデルの値です。物体検出、インスタンスセグメンテーション、姿勢推定の測定では、nms=Falseを使用してNMSフリーヘッドを選択します。N/Sの精度は選択したヘッドによって異なります。FLOPsにはデコーダーの注意行列の乗算が含まれます。事前学習済みチェックポイントには完全な学習アーキテクチャが保持されるため、より大きな値が示される場合があります。
使用例#
このセクションでは、YOLO27のトレーニングと推論の簡単な例を紹介します。 カスタムデータセットについては、最適なトレーニング結果を得るためのヒントとハイパーパラメーター調整ガイドを参照してください。
以下は、物体検出を行うYOLO27のDetectモデルの例です。
PyTorchの事前学習済み*.ptモデルと設定用の*.yamlファイルをYOLO()クラスに渡すと、Pythonでモデルインスタンスを作成できます。
from ultralytics import YOLO
# COCOで事前学習したYOLO27nモデルを読み込む
model = YOLO("yolo27n.pt")
# 'bus.jpg'画像に対してYOLO27nモデルで推論を実行する
results = model("path/to/bus.jpg")
# COCO8サンプルデータセットでモデルを100エポック学習する
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)よくある質問#
- デュアルスケール検出(N/S):中解像度の予測マップを省き、精度を維持しながらヘッドを高速化します
- 小物体検出の強化(N/S):初期の特徴ステージを拡張し、小物体の位置特定を改善します
- 前景アライメントによる教師信号(N/S):one-to-manyとone-to-oneの精度差を、YOLO26n/sの0.9/0.8 mAPからYOLO27n/sの0.4 mAPに縮小します。推論コストは増加しません
- クエリベースのNMSフリー検出(M/L):Transformerデコーダーが最終検出結果を直接出力します
- シンプルな共通インターフェース:どちらのアーキテクチャも同じ
YOLOクラスで実行できます
まだです。YOLO27は未リリースです。現在のプロジェクトでは、引き続きYOLO26をご利用ください。初期結果では、各モデルサイズで精度が向上しており、YOLO27lはCOCOで60 mAPを超えています。移行する前に、正式リリース版のモデルを実際のワークロードで評価してください。
リリース後のYOLO27では、YOLO26と同じ
YOLOクラスと同じトレーニング/検証/推論/エクスポートAPIを使用する予定です。モデルに応じて、適切なパイプライン(CNNまたはクエリベース)が自動的に選択されます。YOLO27のサポートと重みが利用可能になった後は、yolo26n.ptをyolo27n.ptに置き換えることが、想定されるモデル選択の変更です。多くの検出器は、解像度の異なる3つの特徴マップで予測します。YOLO27 NとSは、小物体に必要な細かなマップと、大物体に必要な粗いマップを維持し、中間のマップを省きます。これにより検出ヘッドの計算量を大幅に削減し、前述のトレーニング改善によって、精度とレイテンシのトレードオフを競争力のある水準に保ちます。
YOLO27lは、COCOで60 mAPを超えた初のUltralyticsモデルです。640ピクセル入力では60.5 mAP(NVIDIA RTX PRO 6000で1.9 ms)、800ピクセル入力では61.4 mAP(2.4 ms)を達成します。UltraViTバックボーン、マルチスケール特徴融合、NMSなしで最終検出結果を直接出力するクエリベースの検出器を組み合わせています。
YOLO27は最終段階の研究開発中で、今年後半のリリースを予定しています。リリース日はまだ決まっていません。モデルの重みと実装コードは、まだ公開されていません。
コメント9
質問したり、結果を共有したり、ほかの人をサポートしたりできます。
sergshadrap
Guys! You are doing incredible job , The thing I'd asked for is the total size for running model. When we speak about small devices embedded solutions that the -n model is intended to the size is very limited by the SoC properties and that is though to predict if it fits to the board or not. I think pointing the size is also important along the performance metrics for tiny models. Thanks again!
Paula DerrengerUltralyticsThanks from the Ultralytics team and YOLO community—good suggestion. The preview lists
YOLO27nat 3.0M parameters, but actual storage and runtime memory depend on the export format, precision, input size, and backend; exact measurements cannot be published until the models are released. We’ll consider adding artifact-size and memory benchmarks to the YOLO27 documentation, and please keep sharing embedded-device requirements here for team visibility.sergshadrap
Thanks for you! Definitely nobody will ask about exact sizes of the models. What I meant is that most of the camera's SoCs ( for instance) we can split for three major segments, where the middle one is about Arm 1Ggz , 16m flash, and 128m Ram, the high is everything that has more advanced scu with multicores ,spaced flash and Ram and definitely folds more expensive and the low that everything below that. Trying to fit yolo26 to the gk7205v300 that exactly the middle one was a challenge even quantitized to 8. So ... what about the v27? Does it belong to the high-end only or I can try it for the middle one?
Paula DerrengerUltralyticsYOLO27nis intended for edge devices, so it is not high-end-only; its preliminary 3.0M parameters suggest INT8 weights around 3 MB, but 128 MB RAM may still be the limiting factor because activations and backend buffers depend on input size and runtime. For the GK7205V300, consider it a plausible target—not a confirmed fit—until the released model can be exported, profiled at reducedimgsz, and benchmarked on-device;YOLO27m/lare unlikely choices for those constraints. Please keep sharing your embedded results in this discussion so the Ultralytics team can track them alongside the YOLO27 documentation.
Mohammed YasinUltralytics@sergshadrap How's the performance of YOLO26 on such SoCs? Because if it's too big to fit the SoC, then isn't it also too heavy to run? You can always reduce the size of the YOLO models by modifying the YAML file and removing some layers or reducing channels.
sergshadrap
Yeah , that is quite heavy stuff for 1 core 0.9 Ghz SoC , but I have it run . The most stable and sensible (for object recognition) configuration turns to be fp16 288x384 nano , that goes about 0.8 fps in continues run . That's pretty slow , but enough for my current cascade version, where IVE hardware detector is catching "something" and yolo refine the output. Would be glad to get a hint - how to reduce size and reduce layers/ channels. Now I'm on ncnn export tools , so it seems there is no fp8 variant for that tool? Forth to mention I'm on OpenIpc firmware and the majestic additionally quite a leaky guy , so with 128M of memory for all we're on the floor..
Mohammed YasinUltralytics(編集済み)You can create a copy of this YAML and reduce the float values. Lowering width (the second float value) brings the biggest drop in model file size. Of course, all of these also reduces accuracy. The modified YAML can be loaded and used with
model = YOLO("path/to/yaml")The ending suffix letter like
ndetermines which of the scale values are used from this YAML.sergshadrap
If only I change the model , do I need to re-train the model completely or I could move the weights from existing with some algorithm?
Mohammed YasinUltralyticsYou have to retrain since model structure changes when you do this