テストへの道はどこにあるのでしょうか? YOLOv8 の究極ガイド

テストへの道はどこにあるのでしょうか? YOLOv8 の究極ガイド

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転載したものです。転載については出典元にお問い合わせください。

YOLOv8 は、コンピューター ビジョンの分野における最新の開発です。これは、オブジェクトの検出、インスタンスのセグメンテーション、分類のための最先端のモデルです。モデル アーキテクチャ自体の改善に加えて、YOLOv8 は、YOLO モデルを使用するための PIP パッケージを通じて、開発者に新しい使いやすいインターフェイスを提供します。

この記事では、コンピューター ビジョンの分野における YOLOv8 の重要性について詳しく説明し、精度の点で他の同様のモデルと比較し、YOLOv8 GitHub リポジトリの最新の変更について説明します。

出典: https://blog.roboflow.com/whats-new-in-yolov8/

中国人の読書習慣に合わせ、より没入感のある読書を実現するために、翻訳後に原文が編集・削除されました。原文も閲覧できます。

1. YOLOv8とは何ですか?

YOLOv8は最新の YOLO モデルであり、 目标检测图像分类实例分割タスクに使用できます。 YOLOv8 は、業界を定義する影響力のある YOLOv5 モデルも作成したUltralytics社によって開発されました。 YOLOv5 と比較して、YOLOv8 にはアーキテクチャと開発者エクスペリエンスに関する多くの変更と改善が含まれています。

この記事の執筆時点では、YOLOv8 はまだ活発に開発中であり、Ultralytics は新しい機能の開発に取り組んでおり、コミュニティからのフィードバックに応えています。実際、Ultralytics がモデルをリリースすると、そのモデルは長期にわたってサポートされます。組織はコミュニティと協力して、モデルを可能な限り最高のものにするために取り組んでいます。

2. YOLO はどのようにして YOLOv8 に進化したのでしょうか?

YOLO (You Only Look Once) シリーズのモデルは、コンピューター ビジョンの分野で非常に有名になりました。 YOLOは、モデルサイズを小さく保ちながら、かなり高い精度を実現していることで有名です。 YOLO モデルは単一の GPU でトレーニングできるため、幅広い開発者が利用できます。機械学習の専門家は边缘硬件またはに低コストで機械学習を導入できます。

YOLO は、2015 年にJoseph Redmond氏によって初めてリリースされて以来、コンピューター ビジョン コミュニティから注目を集めています。初期のバージョン(バージョン 1 ~ 4)では、YOLO は、レドモンドにある Darknet と呼ばれるカスタム ディープラーニング フレームワークの C コードで保守されていました。

YOLOv8 の作者 Glenn Jocher は Ultralytics で働いており、PyTorch (Facebook のディープラーニング フレームワーク) の YOLOv3 リポジトリを追跡しました。シャドウ ウェアハウスでのトレーニングが改善されるにつれて、Ultralytics は最終的に独自のモデルであるYOLOv5リリースしました。

柔軟な Python 構造により、YOLOv5 は急速に世界で最も先進的なライブラリになりました。この構造により、コミュニティは新しいモデリングの改善を発明し、同様の PyTorch メソッドを持つリポジトリを通じてそれを迅速に共有できます。

強力なモデル基盤に加えて、YOLOv5 のメンテナーは、モデルを中心とした健全なソフトウェア エコシステムのサポートに取り組んでいます。彼らはコミュニティの要求に応じて積極的に問題を修正し、リポジトリの機能を向上します。

過去 2 年間で、Scaled-YOLOv4、YOLOR、YOLOv7 など、さまざまなモデルが YOLOv5 PyTorch リポジトリから分岐しました。 YOLOX や YOLOv6 など、PyTorch ベースの実装を備えた他のモデルも世界中で登場しています。このプロセスでは、各 YOLO モデルに新しい SOTA テクノロジーが導入され、モデルの精度と効率が継続的に向上します。

過去 6 か月間、Ultralytics は YOLO の最新の SOTA バージョンである YOLOv8 に取り組んできました。 YOLOv8は2023年1月10日にリリースされました。

3. YOLOv8 を使用する理由は何ですか?

次のコンピューター ビジョン プロジェクトで YOLOv8 の使用を検討する主な理由をいくつか紹介します。

  • YOLOv8 は、Microsoft COCO および Roboflow 100 で測定された高い精度を備えています。
  • YOLOv8 には、使いやすい CLI から適切に構造化された Python パッケージまで、開発者にとって便利な機能が多数備わっています。
  • YOLO には大きなコミュニティがあり、YOLOv8 モデルにも成長を続けるコミュニティがあります。つまり、ガイダンスが必要な場合、コンピューター ビジョンの分野でおそらく助けてくれる人がたくさんいるということです。

YOLOv8 は COCO で高い精度を実現します。たとえば、YOLOv8m モデル (中規模モデル) は、COCO で 50.2% の mAP を達成します。さまざまな特定のタスクドメインでのモデルのパフォーマンスを評価するために設計されたデータセットである Roboflow 100 で評価すると、YOLOv8 は YOLOv5 よりもはるかに高いスコアを獲得します。これに関する詳細なパフォーマンス分析情報については、この記事の後半で説明します。

さらに、YOLOv8 の開発者向け利便性機能も重要です。実行可能なさまざまな Python ファイルにタスクが分散されている他のモデルとは異なり、YOLOv8 はモデルのトレーニングをより直感的にする CLI を提供します。これに加えて、Python パッケージも提供されており、以前のモデルよりもシームレスなコーディング エクスペリエンスを提供します。

モデルの使用を検討する場合、YOLO 周辺のコミュニティは魅力的です。多くのコンピューター ビジョンの専門家は YOLO とその仕組みを知っており、YOLO を実際に使用する方法に関するオンライン ガイドも多数あります。 YOLOv8 は執筆時点ではまだ新しいものですが、参考になるオンライン ガイドがすでに多数あります。

YOLO についてさらに詳しく知るために役立つ、当社独自の学習リソースをご紹介します。

  • YOLOv8を使用してオブジェクトを検出する方法
  • ビデオでYOLOv8検出を実行する方法
  • YOLOv8 モデルの概要 (Roboflow モデル)
  • カスタムデータセットでYOLOv8モデルをトレーニングする方法
  • YOLOv8 モデルを Raspberry Pi にデプロイする方法
  • YOLOv8 オブジェクト検出モデルのトレーニング用 Google Colab ノートブック
  • YOLOv8 分類モデルをトレーニングするための Google Colab ノートブック
  • YOLOv8 セグメンテーション モデルをトレーニングするための Google Colab ノートブック
  • YOLOv8とByteTRACKを使用した車両の追跡とカウント

YOLOv8 のアーキテクチャと、それが以前の YOLO モデルとどう違うのかを詳しく見てみましょう。

4. YOLOv8アーキテクチャ:詳細な分析

現在、YOLOv8 に関する論文は公開されていないため、その作成に使用された研究方法やカットについて直接知ることはできません。それでも、私たちはリポジトリとモデルに関する情報を分析し、YOLOv8 の新機能のドキュメント化を開始しました。

自分でコードを確認したい場合は、YOLOv8 リポジトリをチェックし、このコード差分を見て、いくつかの調査がどのように行われたかを確認してください。

ここでは、広範囲にわたるモデリングの更新について簡単に概要を説明し、その後、すでに実証されているモデルの評価を見ていきます。

GitHub ユーザーの RangeKing が作成した次の画像は、ネットワーク アーキテクチャの詳細な視覚化を示しています。

YOLOv8 アーキテクチャ、GitHub ユーザー RangeKing による視覚化

4.1 アンカーフリー検出

YOLOv8 はアンカーフリーモデルです。これは、既知の锚框に対するオフセットではなく、オブジェクトの中心を直接予測することを意味します。

YOLO でのアンカー ボックスの視覚化

锚框、オブジェクトのグラウンド トゥルース ボックスの分布を表すことはあっても、カスタム データセットの分布を表すわけではないため、初期の YOLO モデルでは扱いにくい部分でした。

YOLOv5検出ヘッド

アンカーフリー検出によりボックス予測の数が削減され、推論後の候補検出をスクリーニングするために使用される複雑な後処理手順で非最大抑制(NMS, Non-Maximum Suppression)が高速化されます。

YOLOv8検出ヘッド

4.1 新しい畳み込み

幹部の最初の6x6卷积3x3卷积に置き換えられ、主要な構成要素も変更され、C3 が C2f に置き換えられました。モジュールは以下の図にまとめられています。ここで、「f」は特徴数、「e」は拡張率、CBS は Conv、BatchNorm、SiLU で構成されるブロックです。

C2f では、ボトルネック (残差接続を持つ 2 つの 3x3 畳み込みの別名) からのすべての出力が連結されます。 C3 では、最後のボトルネックの出力のみが使用されます。

新しいYOLOv8 C2fモジュール

ボトルネックはYOLOv5と同じですが、最初の畳み込みのカーネルサイズが1x1から3x3に変更されています。この情報から、YOLOv8 は 2015 年に定義された ResNet ブロックに戻り始めていることがわかります。

ネックでは、同じチャネル次元を強制せずにフィーチャが直接連結されます。これにより、パラメータの数とテンソルの全体的なサイズが削減されます。

4.2 モザイク強化の終了

ディープラーニングの研究ではモデルアーキテクチャに重点が置かれることが多いですが、YOLOv5 と YOLOv8 のトレーニングプロセスは成功の重要な部分です。

YOLOv8 はオンライントレーニング中に画像拡張を実行します。各エポックで、モデルは提供された画像のわずかに異なるバリエーションを認識しました。

これらの機能強化の 1 つは、テッセレーション機能強化と呼ばれます。これには、4 つの画像をつなぎ合わせて、部分的な遮蔽と異なる周囲のピクセルを持つ新しい場所にあるオブジェクトをモデルに学習させる作業が含まれます。

チェス盤の写真のモザイク拡張 ただし、経験上、この拡張をトレーニング全体で実行するとパフォーマンスが低下することがわかっています。したがって、最後の 10 回のトレーニング エポックではこれをオフにすると効果的です。

この変更は、YOLOv5 リポジトリと YOLOv8 研究において、YOLO モデリングが長年にわたって慎重に注目されてきたことの好例です。

5. YOLOv8の精度向上

YOLOv8 の研究は、主に COCO ベンチマークでの経験的評価を目的としていました。ネットワークとトレーニング ルーチンの各部分が微調整されるにつれて、これらの変更が COCO モデリングに与える影響を検証するための新しい実験が実行されました。

5.1 YOLOv8 COCOの精度

COCO (Common Objects in Context) は、オブジェクト検出モデルを評価するための業界標準のベンチマークです。 COCO 上のモデルを比較する場合、mAP 値と推論速度の FPS 測定の両方を確認します。モデルは同様の推論速度で比較する必要があります。

次の図は、Ultralytics チームによって収集され、YOLOv8 README で公開されたデータを使用して、COCO 上の YOLOv8 の精度を示しています。

YOLOv8 COCO 評価

この記事の執筆時点では、COCO における YOLOv8 の精度は、同様の推論レイテンシにおいて最先端です。

5.2 RF100の精度

Roboflow では、100,000 を超えるデータセットのリポジトリである Roboflow Universe から 100 のデータセットをサンプリングし、新しいドメインへのモデルの一般化を評価します。 Intel のサポートを受けて開発された当社のベンチマークは、コンピューター ビジョンの専門家が「このモデルはカスタム データセットでどの程度のパフォーマンスを発揮するのか」という質問に適切に答えられるように設計されています。

私たちは、YOLOv5 および YOLOv7 とともに、 RF100ベンチマークで YOLOv8 を評価しました。下の図は、各モデルの[email protected]のボックス プロットを示しています。

モデルの各小規模バージョンを 100 エポック実行し、単一のシードで 1 回実行したので、勾配抽選のため、この結果は慎重に扱ってください。

下の箱ひげ図は、YOLOv8 の方が外れ値が少なく、Roboflow 100 ベンチマークで全体的に mAP が優れていることを示しています。

YOLO [email protected] 対 RF100

下の棒グラフは、各 RF100 クラスの平均 [email protected] を示しています。繰り返しになりますが、YOLOv8 はこれまでのすべてのモデルよりも優れています。

YOLO vs. RF100 クラスの平均 [email protected]

YOLOv8 モデルは、YOLOv5 評価と比較して、各データセットで同様の結果または大幅に改善された結果を生成しました。

6. YOLOv8 リポジトリと PIP パッケージ

YOLOv8 コード リポジトリは、コミュニティがモデルを使用し、反復するための場所となることを目的としています。モデルは今後も改善され続けることが分かっているので、初期の YOLOv8 モデルの結果をベースラインとして使用し、新しいミニ バージョンがリリースされるたびに将来の改善を期待できます。

私たちが期待できる最良の結果は、研究者が Ultralytics リポジトリ上でネットワークの開発を開始することです。 YOLOv5 のブランチでは研究が進行中ですが、モデルを 1 か所で作成し、最終的にメインラインに統合する方がよいでしょう。

6.1 YOLOv8 リポジトリレイアウト

YOLOv8 モデルは YOLOv5 と同様のコードを使用しており、分類、インスタンス セグメンテーション、およびオブジェクト検出のタスク タイプが同じコード ルーチンを使用してサポートされています。

モデルは引き続き同じ YOLOv5 YAML 形式を使用して初期化され、データセット形式も同じままです。

6.2 YOLOv8 CLI

Ultralytics パッケージには CLI が付属しています。コアトレーニング、検出、エクスポートのやり取りも CLI を通じて行われるため、多くの YOLOv5 ユーザーにとっては馴染みのあることでしょう。

 yolo task=detect mode=val model={HOME}/runs/detect/train/weights/best.pt data={dataset.location}/data.yaml

taskに [detect, classify, segment] を渡し、 modeに [train, predict, val, export] を渡すことができます。モデルは、初期化されていない.yamlファイルまたは以前にトレーニングされた.ptファイルになります。

6.3 YOLOv8 Python パッケージ

利用可能な CLI ツールに加えて、YOLOv8 は PIP パッケージとして配布されるようになりました。これにより、ローカル開発が少し難しくなりますが、YOLOv8 を Python コードに組み込む可能性がすべて解放されます。

 from ultralytics import YOLO # 加载模型model = YOLO("yolov8n.yaml") # 从头开始构建一个新模型model = YOLO("yolov8n.pt") # 加载预训练模型(推荐用于训练) # 使用模型results = model.train(data="coco128.yaml", epochs=3) # 训练模型results = model.val() # 评估模型在验证集上的性能results = model("https://ultralytics.com/images/bus.jpg") # 对图像进行预测success = YOLO("yolov8n.pt").export(format="onnx") # 将模型导出为ONNX格式

7. YOLOv8アノテーションフォーマット

YOLOv8 は、Darknet 注釈形式の修正バージョンであるYOLOv5 PyTorch TXT注釈形式を使用します。

新しい YOLOv8 モデルで使用するためにデータを変換する方法については、Roboflow Convert ツールをご覧ください。
https://roboflow.com/formats/yolov8-pytorch-txt?ref=blog.roboflow.com

8. YOLOv8 注釈ツール

YOLOv8 の作成者および保守者である Ultralytics は、Roboflow と提携して、YOLOv8 プロジェクトで推奨される注釈およびエクスポート ツールになりました。 Roboflow を使用すると、YOLOv8 でサポートされているすべてのタスク (オブジェクトの検出、分類、セグメンテーション) のデータに注釈を付け、YOLOv8 CLI または Python パッケージで使用するためにデータをエクスポートできます。

9. YOLOv8を使い始める

YOLOv8 を独自のユースケースに適用するには、カスタム データセットで YOLOv8 をトレーニングする方法に関するガイドをご覧ください。

他のユーザーが YOLOv8 をどのように使用しているかを確認するには、Roboflow Universe で他の YOLOv8 モデル、データセット、インスピレーションを参照してください。

モデルを本番環境に導入し、アクティブ ラーニング戦略を使用して継続的に更新する実践者向けに、YOLOv8 モデルをデプロイし、推論エンジンで使用し、データセットのラベル支援に使用するためのパスを追加しました。あるいは、オープンソースの推論サーバーである Roboflow Inference を使用して、YOLOv8 をデバイス上に展開することもできます。

<<:  Google Cloud と Hugging Face が AI インフラストラクチャ パートナーシップを締結

>>: 

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

トラフィックエンジニアリングによりコード生成の精度が2倍に向上: 19%から44%

新しい論文の著者は、コード生成を「強化」する方法を提案しています。コード生成は人工知能においてますま...

機械学習モデルの解釈可能性について

2019年2月、ポーランド政府は銀行法に改正を加え、信用判定に否定的な結果が出た場合に顧客に説明を求...

脳の次元: 人工知能の波の中での適者生存

[[263690]]さまざまな新しい人工知能技術は、古代の伝説の洪水のように、社会全体を急速に「浸水...

建築環境における人工知能:その可能性を実現するためのステップ

AI と自動化により、企業はさまざまな最適化ソフトウェアを使用して、冷房、暖房、発電を自動的に改善し...

...

AIとコグニティブコンピューティングがIoTデータを理解

今日、世界中がインダストリー4.0とそれがもたらすテクノロジーに注目しています。人工知能 (AI) ...

機械学習による物流とサプライチェーン管理の変革

機械学習は、リアルタイムの需要予測、持続可能な物流、高度な予測分析など、大きなメリットをもたらします...

大スキャンダル?国内のAI専門家数十人が参加した論文が重大な盗作の疑いで告発される

清華大学、北京大学、上海交通大学、テンセント、ファーウェイ、JD.com、バイトダンス、そして今最も...

「顔を見る」時代において、顔認識は「マーケティング」の共犯者にはなり得ない

315ガラはカメラの顔認識の悪用の問題を暴露し、懸念を引き起こした。これはまた、問題を浮き彫りにする...

...

...

人工知能は緊急に「倫理的転換」を必要としている

現在の人工知能の発展は、主にディープラーニングに代表される機械学習技術の恩恵を受けています。ディープ...

Google に行ったが、ディープラーニングはできなかった。Facebook の Tian Yuandong が人生の課題と選択について語る

初めての15分間のスピーチの準備に2か月を要し、卒業後すぐにGoogleに入社したものの歯車の一部に...

あなたのデータは本当に安全ですか?ハッカーが機械学習を使ってデータを盗む7つの方法

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

人工知能に最適なプログラミング言語

[51CTO.com クイック翻訳]人工知能は 20 世紀半ばから存在しています。それにもかかわらず...