Chapters
📘 Chapter #0 YOLOとは
📘 Chapter #1 環境設定
📘 Chapter #2 アノテーション
📘 Chapter #3
📗 Chapter #3-1 YOLOv3 Keras版実装
📗 Chapter #3-2 YOLOv3 Darknet版
📘 Chapter #A
📗 Chapter #A-1 YOLOの各バージョンについてまとめ
📗 Chapter #A-2 YOLOv3 Keras版実装に関して関連記事のまとめ
📗 Chapter #A-3 ONNX変換・確認ライブラリ、アプリケーションまとめ
概要
- 2024年06月18日時点でのYOLOの各バージョンについてまとめます。誤記等あればご指摘いただけると助かります。
目次
-
1. YOLOv1
- 発表:2016年5月、著者:Joseph Redmon
-
2. YOLOv2
- 発表:2017年12月、著者:Joseph Redmon(v1の著者)
-
3. YOLOv3
- 発表:2018年4月、著者:Joseph Redmon(v1の著者), Ali Farhadi
-
4. YOLOv4
- 発表:2020年4月、著者:Alexey Bochkovskiy
-
5. YOLOv5
- 発表:2020年6月9日、著者:Glenn Jocher(Ultralytics社)
-
6. YOLOv6
- 発表:2022年6月、著者:Meituan Technical Team
-
7. YOLOv7
- 発表:2022年7月、著者:Alexey Bochkovskiy(v4の著者)
-
8. YOLOv8
- 発表:2023年1月、著者:Ultralytics社
-
9. YOLOv9
- 発表:2024年2月、著者:Chien-Yao Wang(v4, v7に関わっている), I-Hau Yeh, Hong-Yuan Mark Liao(v4, 7に関わっている).
-
10. YOLOv10
- 発表:2024年5月、著者:清華大学の研究者。Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han, and Guiguang Ding
内容
1. YOLOv1
1.1. 公式サイト、リポジトリ
公式サイト(Darknet実装)
https://pjreddie.com/darknet/yolov1/
1.2. 概要
2016年5月にJoseph Redmonによって発表された。リアルタイム物体検出(Object Detection)の最大の進化の1つといえる。
1.3. 参考
2. YOLOv2
2.1. 公式サイト、リポジトリ
公式サイト(Darknet実装)
https://pjreddie.com/darknet/yolov2/
2.2. 概要
2017年12月、YOLOv1の作者(Joseph Redmon)が別のバージョンを発表した。
2.3. 参考
3. YOLOv3
3.1. 公式サイト、リポジトリ
公式サイト(Darknet実装)
リポジトリ(Darknet実装)
リポジトリ(keras版実装)
リポジトリ(PyTorch版実装)
- YOLOv5 作者 Glenn Jocherによる実装
3.2. 概要
2018年4月にYOLOv1、v2の作者が共著(Joseph Redmon, Ali Farhadi)で発表した。YOLOの最も人気のあるバージョンとなる。(YOLOv1の作者が最後にかかわったバージョンとなるため、一部の人々は、YOLOv3を「最後のYOLO」と考えている。)
また、keras版実装、PyTorch版実装も提案されている。PyTorch版実装は、YOLOv5の作者であるGlenn Jocherが実装している。
3.3. 参考
4. YOLOv4
4.1. 公式サイト、リポジトリ
リポジトリ(Darknet実装)
4.2. 概要
2020年4月、Alexey BochkovskiyがYOLOv4を論文付きで発表した。Joseph Redmon, Ali Farhadiは第一線から下がったため、誰かが引き継ぐ必要があった。Joseph Redmonも実装に費やした仕事量を称賛し、「私がどう思うかは問題ではない」と述べている。
YOLOv5 作者 Glenn Jocherが関与しているモザイクデータの増強などが含まれており、論文では謝辞が述べられている。
YOLOv3と比較しても平均精度が高く、同一の精度なら高いFPSを出すことができる。
出典:https://arxiv.org/pdf/2004.10934.pdf
4.3. 参考
5. YOLOv5
5.1. 公式サイト、リポジトリ
リポジトリ(PyTorch実装)
5.2. 概要
2020年6月9日にGlenn Jocherによりリリースされた。
この実装はいくつかの点で以前とは異なる。まず、公式の論文はまだ発表されていない(今年論文を発表する計画を述べている)。また、PyTorchで実装しており、YOLOv4以前と異なりDarknetを活用していない。
Joseph Redmonが関わっていないことからネーミングについては論争がある。
YOLOv4と同じく、モザイクデータの増強などが含まれているとみられ、効率的で高い精度の学習を行うことができると思われる。
リポジトリによれば、YOLOv4と比較してもより高いFPSで効率的な精度と記載されている。
出典:https://github.com/ultralytics/yolov5
5.3. 参考
- LinkedIn: Glenn Jocher
- YOLOv5の紹介と導入手順
- カスタムデータセットでYOLOv5を訓練する方法
-
YOLOv5に関する論争への対応
YOLOv4とYOLOv5の比較、ネーミングについての論争などがまとめられている。現在進行中のため、YOLOv4とYOLOv5どちらが優れているのかはまだわからないところがある。
6. YOLOv6
6.1. 公式サイト、リポジトリ
6.2. 概要
2022年6月に公開。Meituan Technical Teamによるもの。
6.3. 参考
2022年6月、新しく「YOLO」の名の付くモデルYOLOv6が公開されました。”YOLOv6″という名前ですが、Ultralytics社の”YOLOv5″からのバージョンアップではなく、Meituan Technical Teamによる異なるアルゴリズムでの開発となっています。YOLOv6のネーミングについてはここにコメントがありました。
引用元:https://farml1.com/yolov6/
What is YOLOv6? A Beginner's Guide.
7. YOLOv7
7.1. 公式サイト、リポジトリ
7.2. 概要
2022年7月に公開。v4の著者が作成。
7.3. 参考
YOLO(You Look Only Once)とは、推論速度が他のモデル(Mask R-CNNやSSD)よりも高速である特徴を持つ物体検出アルゴリズムの一つです。YOLOv7とはYOLOシリーズのバージョン7ということになります。
YOLOシリーズの特徴として、各バージョンによって著者が異なります。実際に、v7はv4の著者が作成しており、v6は違う著者が2022年6月に公開しています。1か月しか経ってない……。
このようにYOLOシリーズは頻繁なバージョンアップを繰り返しており、非常に人気のある物体検出アルゴリズムだといえます。
下図はgithubのREADME.meに乗っている、YOLO各シリーズの比較です。縦軸は精度、横軸は速度を表していています。ご覧の通りYOLOv7はv5と比べると120%高速化していることが分かります。
引用元:https://www.fabrica-com.co.jp/techblog/technology/8332/
What is YOLOv7? A Complete Guide.
8. YOLOv8
8.1. 公式サイト、リポジトリ
リポジトリ(PyTorch実装)
v8.2.0で、YOLOv8-World、YOLOv8-World-v2、YOLOv9-C、YOLOv9-E、YOLOv9 セグメントモデル をサポートしている。
8.2. 概要
2023年1月にUltralytics社からリリースされた。
公式サイトによれば、パフォーマンスと柔軟性をさらに向上させるための新機能と改善点を導入した最先端モデルであり、YOLOv8は、高速、正確、使いやすいように設計されているため、幅広いオブジェクトの検出と追跡、インスタンスのセグメンテーション、画像分類、姿勢推定タスクに最適、と示されている
8.3. 参考
YOLOv8は、YOLOv5の公開元であるUltralytics社が公開したYOLOの最新バージョンのモデルです。 大規模データセットでの学習はもちろんのこと、object detection, segmentation, classificationタスクで利用可能であり、CPU, GPUを始めとしたさまざまなハードウェアでの実行が可能になっています。
YOLOv8では、新しいbackboneや損失関数、anchor-free detection headの導入などの変更が加えられているだけでなく、過去のバージョンのYOLOをサポートし異なるバージョン間の切り替えや性能比較を容易にするといった機能を備えている点も大きな特徴と言えます。 現在、リポジトリを確認するとv3, v5, v8のconfigが用意されています。
引用元:https://tech.revcomm.co.jp/yolov8-introduction
What is YOLOv8? The Ultimate Guide.
9. YOLOv9
9.1. 公式サイト、リポジトリ
リポジトリ(PyTorch実装)
9.2. 概要
2024年2月に発表された。
YOLOv9は、YOLOv9とGELANの2つの新しいアーキテクチャを導入している。
それにより、v6 から v8までの性能改善と比較して、はっきり高い精度を実現することができている
9.3. 参考
これまでも、確かにバージョンが上がることで進歩はしていました。しかし、その伸びはわずかに見えます。これは最前線のグループが競い合っているので当然といえます。陸上の世界記録を0.01秒更新するだけでも偉業になるイメージです。
YOLO v6 から v8 までの曲線は、一つ前のバージョンの曲線と接近する箇所があったのに対し、v9 の曲線は全てのパラメータの範囲で前のバージョンよりもはっきり高い精度を示しています。陸上で例えると、ボルト選手が 100m、150m、200m と世界記録を大幅に塗り替えたようなイメージです。
この記事では、2024 年 2 月に発表されたばかりの YOLOv9 の論文についてレビューを行いました。YOLOv9 はこれまでのモデルを大きく上回る検出精度・速度を達成しましたが、これは PGI・GELAN という 2 つの技術に支えられていることが分かりました。
引用元:https://note.com/mim_2020/n/n4e202870d597
How to Train YOLOv9 on a Custom Dataset
10. YOLOv10
10.1. 公式サイト、リポジトリ
リポジトリ
ライセンス
AGPL 3.0:https://github.com/THU-MIG/yolov10?tab=AGPL-3.0-1-ov-file#readme
10.2. 概要
2024年5月に発表された。
YOLOv10は、YOLOv9 で導入されたイノベーションに基づいて構築されており、これまで YOLO モデルの効率とパフォーマンスを妨げていた非最大抑制 (NMS) や計算の冗長性への依存などの重要な課題に対処している。
リアルタイムの物体検出において大きな飛躍を遂げ、速度と精度の面で最先端のパフォーマンスを実現している。
10.3. 参考
結果の意義と応用可能性
リアルタイムオブジェクト検出の高速化と高精度化
提案手法は、推論速度を大きく向上させつつ、高い精度を維持することに成功しました。これにより、リアルタイム性が重要な応用でのオブジェクト検出の実用性が大きく高まると期待されます。End-to-Endな学習による利便性の向上
NMSが不要なEnd-to-Endの学習を実現したことで、ユーザーにとっての利便性が向上します。後処理のためのハイパーパラメータ調整が不要になり、システムの実装が容易になると考えられます。モデル設計の指針の提供
効率性と精度を重視したモデル設計の各アイデアは、オブジェクト検出以外のタスクにも応用可能と考えられます。本研究で得られた知見は、様々な深層学習モデルの設計に役立つでしょう。
引用元:https://qiita.com/Maki-HamarukiLab/items/c63d2fc65876ab0a5244
What is YOLOv10? An Architecture Deep Dive.
How to Train YOLOv10 Model on a Custom Dataset.