YOLOv7:トレーニング可能なバッグ・オブ・フリービー
YOLOv7 is a state-of-the-art real-time object detector that surpasses all known object detectors in both speed and accuracy in the range from 5 FPS to 160 FPS. It has the highest accuracy (56.8% AP) among all known real-time object detectors with 30 FPS or higher on GPU V100. Moreover, YOLOv7 outperforms other object detectors such as YOLOR, YOLOX, Scaled-YOLOv4, YOLOv5, and many others in speed and accuracy. The model is trained on the MS COCO dataset from scratch without using any other datasets or pre-trained weights. Source code for YOLOv7 is available on GitHub.
SOTA物体検出器の比較
YOLO の比較表の結果から、提案手法が総合的に最も優れた速度-精度のトレードオフを持つことがわかる。YOLOv7-tiny-SiLU をYOLOv5-N (r6.1) と比較すると、我々の手法は127 fps速く、APで10.7%正確です。さらに、YOLOv7はフレームレート161fpsで51.4%のAPを持つが、同じAPを持つPPYOLOE-Lのフレームレートは78fpsしかない。パラメータ使用量では、YOLOv7はPPYOLOE-Lより41%少ない。推論速度114fpsのYOLOv7-Xを、推論速度99fpsのYOLOv5-L (r6.1)と比較すると、YOLOv7-XはAPを3.9%改善できる。YOLOv7-Xを同規模のYOLOv5-X (r6.1)と比較すると、YOLOv7-Xの推論速度は31fps速い。また、パラメータと計算量の点で、YOLOv7-XはYOLOv5-X (r6.1)と比較して、パラメータを22%、計算量を8%削減するが、APは2.2%向上する(出典)。
モデル | Params (M) |
FLOPs (G) |
サイズ (ピクセル) |
FPS | APtest/ val 50-95 |
APtest 50 |
APtest 75 |
APtest S |
APtest M |
APtest L |
---|---|---|---|---|---|---|---|---|---|---|
YOLOX-S | 9.0M | 26.8G | 640 | 102 | 40.5% / 40.5% | - | - | - | - | - |
YOLOX-M | 25.3M | 73.8G | 640 | 81 | 47.2% / 46.9% | - | - | - | - | - |
YOLOX-L | 54.2M | 155.6G | 640 | 69 | 50.1% / 49.7% | - | - | - | - | - |
YOLOX-X | 99.1M | 281.9G | 640 | 58 | 51.5% / 51.1% | - | - | - | - | - |
PPYOLOE-S | 7.9M | 17.4G | 640 | 208 | 43.1% / 42.7% | 60.5% | 46.6% | 23.2% | 46.4% | 56.9% |
PPYOLOE-M | 23.4M | 49.9G | 640 | 123 | 48.9% / 48.6% | 66.5% | 53.0% | 28.6% | 52.9% | 63.8% |
PPYOLOE-L | 52.2M | 110.1G | 640 | 78 | 51.4% / 50.9% | 68.9% | 55.6% | 31.4% | 55.3% | 66.1% |
PPYOLOE-X | 98.4M | 206.6G | 640 | 45 | 52.2% / 51.9% | 69.9% | 56.5% | 33.3% | 56.3% | 66.4% |
YOLOv5-N (r6.1) | 1.9M | 4.5G | 640 | 159 | - / 28.0% | - | - | - | - | - |
YOLOv5-S (r6.1) | 7.2M | 16.5G | 640 | 156 | - / 37.4% | - | - | - | - | - |
YOLOv5-M (r6.1) | 21.2M | 49.0G | 640 | 122 | - / 45.4% | - | - | - | - | - |
YOLOv5-L (r6.1) | 46.5M | 109.1G | 640 | 99 | - / 49.0% | - | - | - | - | - |
YOLOv5-X (r6.1) | 86.7M | 205.7G | 640 | 83 | - / 50.7% | - | - | - | - | - |
YOLOR-CSP | 52.9M | 120.4G | 640 | 106 | 51.1% / 50.8% | 69.6% | 55.7% | 31.7% | 55.3% | 64.7% |
YOLOR-CSP-X | 96.9M | 226.8G | 640 | 87 | 53.0% / 52.7% | 71.4% | 57.9% | 33.7% | 57.1% | 66.8% |
YOLOv7-tiny-SiLU | 6.2M | 13.8G | 640 | 286 | 38.7% / 38.7% | 56.7% | 41.7% | 18.8% | 42.4% | 51.9% |
YOLOv7 | 36.9M | 104.7G | 640 | 161 | 51.4% / 51.2% | 69.7% | 55.9% | 31.8% | 55.5% | 65.0% |
YOLOv7-X | 71.3M | 189.9G | 640 | 114 | 53.1% / 52.9% | 71.2% | 57.8% | 33.8% | 57.1% | 67.4% |
YOLOv5-N6 (r6.1) | 3.2M | 18.4G | 1280 | 123 | - / 36.0% | - | - | - | - | - |
YOLOv5-S6 (r6.1) | 12.6M | 67.2G | 1280 | 122 | - / 44.8% | - | - | - | - | - |
YOLOv5-M6 (r6.1) | 35.7M | 200.0G | 1280 | 90 | - / 51.3% | - | - | - | - | - |
YOLOv5-L6 (r6.1) | 76.8M | 445.6G | 1280 | 63 | - / 53.7% | - | - | - | - | - |
YOLOv5-X6 (r6.1) | 140.7M | 839.2G | 1280 | 38 | - / 55.0% | - | - | - | - | - |
YOLOR-P6 | 37.2M | 325.6G | 1280 | 76 | 53.9% / 53.5% | 71.4% | 58.9% | 36.1% | 57.7% | 65.6% |
YOLOR-W6 | 79.8G | 453.2G | 1280 | 66 | 55.2% / 54.8% | 72.7% | 60.5% | 37.7% | 59.1% | 67.1% |
YOLOR-E6 | 115.8M | 683.2G | 1280 | 45 | 55.8% / 55.7% | 73.4% | 61.1% | 38.4% | 59.7% | 67.7% |
YOLOR-D6 | 151.7M | 935.6G | 1280 | 34 | 56.5% / 56.1% | 74.1% | 61.9% | 38.9% | 60.4% | 68.7% |
YOLOv7-W6 | 70.4M | 360.0G | 1280 | 84 | 54.9% / 54.6% | 72.6% | 60.1% | 37.3% | 58.7% | 67.1% |
YOLOv7-E6 | 97.2M | 515.2G | 1280 | 56 | 56.0% / 55.9% | 73.5% | 61.2% | 38.0% | 59.9% | 68.4% |
YOLOv7-D6 | 154.7M | 806.8G | 1280 | 44 | 56.6% / 56.3% | 74.0% | 61.8% | 38.8% | 60.1% | 69.5% |
YOLOv7-E6E | 151.7M | 843.2G | 1280 | 36 | 56.8% / 56.8% | 74.4% | 62.1% | 39.3% | 60.5% | 69.0% |
概要
Real-time object detection is an important component in many computer vision systems, including multi-object tracking, autonomous driving, robotics, and medical image analysis. In recent years, real-time object detection development has focused on designing efficient architectures and improving the inference speed of various CPUs, GPUs, and neural processing units (NPUs). YOLOv7 supports both mobile GPU and GPU devices, from the edge to the cloud.
YOLOv7は、アーキテクチャの最適化に焦点を当てた従来のリアルタイム物体検出器とは異なり、学習プロセスの最適化に焦点を当てています。これには、推論コストを増加させることなく物体検出の精度を向上させるように設計されたモジュールと最適化手法が含まれ、「訓練可能なフリービーバッグ(trainable bag-of-freebies)」として知られる概念である。
主な特徴
YOLOv7にはいくつかの重要な特徴がある:
-
モデルの再パラメータ化YOLOv7は、計画的な再パラメータ化モデルを提案する。これは、勾配伝搬経路の概念を持つ異なるネットワークの層に適用可能な戦略である。
-
動的なラベルの割り当て:複数の出力層を持つモデルのトレーニングは、新たな問題を提示する:「異なる枝の出力に対して、どのように動的なターゲットを割り当てるか?この問題を解決するために、YOLOv7は、粗から細へのリードガイドラベル割り当てと呼ばれる新しいラベル割り当て方法を導入している。
-
拡張と複合スケーリング:YOLOv7は、パラメータと計算を効果的に利用できるリアルタイム物体検出のための「拡張」と「複合スケーリング」手法を提案している。
-
効率:YOLOv7が提案する方法は、最先端のリアルタイム物体検出器の約40%のパラメータと50%の計算量を効果的に削減することができ、より速い推論速度とより高い検出精度を有する。
使用例
本稿執筆時点では、Ultralytics 、現在YOLOv7モデルをサポートしていない。従って、YOLOv7の使用に興味があるユーザーは、YOLOv7のGitHubレポジトリを直接参照して、インストールと使用方法を確認する必要がある。
ここでは、YOLOv7を使用するための典型的な手順を簡単に説明します:
-
YOLOv7のGitHubリポジトリhttps://github.com/WongKinYiu/yolov7。
-
READMEファイルに記載されている指示に従ってインストールしてください。これには通常、リポジトリのクローン、必要な依存関係のインストール、必要な環境変数の設定が含まれます。
-
インストールが完了したら、リポジトリで提供されている使用方法に従ってモデルをトレーニングし、使用することができます。これは通常、データセットの準備、モデルパラメータの設定、モデルの学習、学習済みモデルを使った物体検出を含みます。
具体的な手順は、あなたの特定のユースケースやYOLOv7リポジトリの現在の状態によって異なる可能性があることに注意してください。そのため、YOLOv7のGitHubリポジトリで提供されている手順を直接参照することを強くお勧めします。
YOLOv7のサポートが実装され次第、Ultralytics 。
引用と謝辞
YOLOv7作者のリアルタイム物体検出分野における多大な貢献に感謝したい:
オリジナルのYOLOv7論文はarXivに掲載されている。著者らは彼らの研究を公開し、コードベースはGitHubでアクセスできる。我々は、この分野を発展させ、より広いコミュニティが彼らの研究にアクセスできるようにした彼らの努力に感謝している。
よくあるご質問
What is YOLOv7 and why is it considered a breakthrough in real-time object detection?
YOLOv7は、圧倒的な速度と精度を実現した最先端のリアルタイム物体検出モデルです。YOLOX、YOLOv5 、PPYOLOEといった他のモデルを、パラメータ使用量と推論速度の両方で凌駕している。YOLOv7の特徴的な機能には、モデルの再パラメータ化と動的ラベル割り当てがあり、推論コストを増加させることなく性能を最適化している。YOLOv7のアーキテクチャの詳細や、他の最先端の物体検出器との比較指標については、YOLOv7の論文を参照してください。
YOLOv7は、YOLOv4やYOLOv5 のような以前のモデル(YOLO )をどのように改良したのですか?
YOLOv7は、モデルの再パラメータ化や動的なラベル割り当てなど、学習プロセスを強化し、推論精度を向上させるいくつかのイノベーションを導入している。YOLOv5 と比較して、YOLOv7はスピードと精度を大幅に向上させた。例えば、YOLOv7-Xは、YOLOv5-Xと比較して、精度を2.2%向上させ、パラメータを22%削減した。詳細な比較は、性能表YOLOv7とSOTA物体検出器の比較でご覧いただけます。
YOLOv7をUltralytics のツールやプラットフォームで使用できますか?
現在のところ、Ultralytics 、そのツールやプラットフォームではYOLOv7を直接サポートしていない。YOLOv7を使いたいユーザーは、YOLOv7のGitHubリポジトリで提供されているインストールと使い方の説明に従う必要がある。その他の最先端モデルについては、Ultralytics HUBのようなUltralytics ツールを使って探索し、トレーニングすることができる。
カスタムオブジェクト検出プロジェクトにYOLOv7をインストールして実行するには?
YOLOv7をインストールして実行するには、以下の手順に従ってください:
- YOLOv7リポジトリをクローンする:
- クローンしたディレクトリに移動し、依存関係をインストールする:
- データセットを準備し、リポジトリで提供されている使用方法に従ってモデルパラメータを設定します。 さらなるガイダンスについては、YOLOv7のGitHubリポジトリで最新情報とアップデートをご覧ください。
YOLOv7で導入された主な機能と最適化について教えてください。
YOLOv7は、リアルタイムの物体検出に革命をもたらすいくつかの重要な機能を提供する:
- モデルの再パラメータ化:勾配伝搬経路を最適化することで、モデルのパフォーマンスを向上させる。
- ダイナミック・ラベル割り当て:異なるブランチ間の出力にダイナミックターゲットを割り当てるために、粗いリードから細かいリードへ誘導する方法を使用し、精度を向上。
- 拡張および複合スケーリング:パラメータと計算を効率的に利用し、様々なリアルタイム・アプリケーション向けにモデルを拡張します。
- 効率:他の最先端モデルと比較して、パラメータ数を40%削減し、計算量を50%削減しながら、より高速な推論を実現。 これらの機能の詳細については、YOLOv7の概要セクションをご覧ください。