Yolo 深圳
深セン
今すぐ参加

Ultralytics YOLOv5 v7.0におけるインスタンス・セグメンテーションの導入

Ultralytics

3分で読めます

2022年11月23日

YOLOv5 v7.0に新しいインスタンス分割モデルが追加され、SOTAベンチマークを凌駕するAI精度とスピードが実現しました。コミュニティにご参加ください。

我々のAIアーキテクチャーの最新バージョンであるYOLOv5 v7.0がリリースされ、新しいインスタンス・セグメンテーション・モデルを紹介できることに興奮している!

この最新リリースに取り組むにあたり、私たちは2つの目標を常に念頭に置いてきました。1つ目はAIを簡単にすること、そして2つ目は「最先端」が真に意味することを再定義することです。

そこで、大幅な改良、修正、アップグレードを行いました。YOLOv5 v7.0では、既存のYOLOv5 物体検出モデルと同じシンプルなワークフローを維持しながら、モデルのトレーニング、検証、デプロイがこれまで以上に簡単になりました。その上、すべてのSOTAベンチマークを上回り、事実上、YOLOv5 5は世界で最も速く、最も正確なものとなりました。

今回がセグメンテーションモデルの最初のリリースであるため、このマイルストーンを非常に誇りに思っています。このリリースを可能にした献身的なコミュニティと貢献者の皆様に深く感謝いたします。  

Ultralytics YOLOv5 v7.0 SOTA リアルタイム・インスタンス・セグメンテーション

それでは早速、YOLOv5 v7.0のリリースノートをご覧いただこう!

YOLOv5 重要なアップデート

2022年8月にYOLOv5 v6.2をリリースして以来、YOLOv5 更新された内容は以下の通りです。

  • セグメンテーションモデル⭐NEW: SOTAYOLOv5 COCOセグメンテーションモデルが初めて利用可能になりました(#9052by @glenn-jocher, @AyushExel, @Laughing-q)
  • PaddlePaddle Export:python export.py --include paddle#9459by @glenn-jocher) を使って、任意のYOLOv5 モデル(cls、seg、det)をパドル形式にエクスポートします。
  • YOLOv5 AutoCache:python train.py --cache ram を使用することで、利用可能なメモリをスキャンし、予測されるデータセットのRAM使用量と比較するようになりました。これはキャッシングのリスクを減らし、データセットキャッシング機能の採用を改善するのに役立つはずです。(#10027by @glenn-jocher)
  • Comet ロギングとビジュアライゼーションの統合:永久無料、 Cometを使えば、YOLOv5 モデルを保存したり、トレーニングを再開したり、インタラクティブに予測を可視化したり、デバッグしたりできます。(#9232by @DN6)

新しいセグメンテーションチェックポイント

A100GPUを使用し、画像サイズ640で300エポック、COCO 上でYOLOv5 セグメンテーションモデルを学習した。すべてのモデルをCPU スピードテスト用にONNX FP32に、GPU スピードテスト用にTensorRT FP16にエクスポートした。再現性を容易にするため、すべてのスピードテストをGoogle Colab Proノートブックで実行した。

  • すべてのチェックポイントは、画像サイズ640、すべてのデフォルト設定で、lr0=0.01、weight_decay=5e-5のSGD オプティマイザで300エポックまで学習されています。すべての実行はここに記録されています。
  • 精度の値は、COCO データセットのシングルモデルシングルスケールのものです。python segment.py --data cocoyaml --weights yolov5s-seg.pt で再現。
  • Colab Pro A100 High-RAMインスタンスを使用した100枚の推論画像の平均速度。値は推論速度のみを示すNMS 1画像あたり約1msを追加)。python segment.py --data cocoyaml --weights yolov5s-seg.pt --batch 1で再現。
  • FP32のONNX FP16のTensorRT エクスポートはexport.pyで行いました。python export.py --weights yolov5s-seg.pt --include engine --device 0 --half で再現。

新しいセグメンテーションの使用例

学習

YOLOv5 セグメンテーショントレーニングは、-data coco128-segyaml 引数によるCOCO128セグメンテーションデータセットの自動ダウンロードと、bash data/scripts/get_coco.sh --train --val --segments、そしてpython train.py --data cocoyaml COCOデータセットの手動ダウンロードに対応しています。

シングルGPU

python segment.py --model yolov5s-seg.pt --data coco128-segyaml --epochs 5 --img 640

GPU GPU DDP

python -mtorch.distributed.run --nproc_per_node 4 --master_port 1segment.py --model yolov5s-seg.pt --data coco128-segyaml --epochs 5 --img 640 --device 0,1,2,3

Val

ImageNetデータセットでYOLOv5m-segの精度を検証:

bash data/scripts/get_coco.sh --val --segments #COCO valセグメント分割をダウンロードする (780MB、5000画像)python segment.py --weights yolov5s-seg.pt --data cocoyaml --img 640 # バリデーション

予測

学習済みの YOLOv5m-seg を使用して bus.jpg を予測します。

python segment.py --weights yolov5m-seg.pt --data data/images/bus.jpg

model =torch.hub.load(ultralyticsyolov5', 'custom', 'yolov5m-seg.pt') #PyTorch Hubからロード (WARNING: まだ推論はサポートされていません)

Ultralytics YOLOv5 v7.0 インスタンスのセグメンテーション


エクスポート

YOLOv5s-segモデルをONNX TensorRTエクスポートする:

python export.py --weights yolov5s-seg.pt --includeonnx engine --img 640 --device 0

Ultralytics YOLOv5 v7.0 インスタンスのセグメンテーション

ご質問がありますか?Ultralytics フォーラムで質問したり、問題を提起したり、レポにPRを投稿してください。また、YOLOv5 セグメンテーションColabノートブックでクイックスタートチュートリアルを始めることもできます。

AIの未来を
共に築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。

無料ではじめる