ヨロビジョン深圳
深セン
今すぐ参加

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

Ultralyticsチーム

3分で読めます

2022年11月23日

最高のAI精度と速度のためのSOTAベンチマークを凌駕する、新しいインスタンスセグメンテーションモデルを備えたYOLOv5 v7.0をご覧ください。コミュニティにご参加ください。

AIアーキテクチャの最新バージョンであるYOLOv5 v7.0がリリースされました。新しいインスタンスセグメンテーションモデルをご紹介できることを嬉しく思います。

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

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

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

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

それでは、YOLOv5 v7.0のリリースノートから始めましょう!

YOLOv5の重要なアップデート

2022年8月のYOLOv5 v6.2の最終リリース以降、YOLOv5で更新された内容は次のとおりです。

  • セグメンテーションモデル ⭐ NEW: SOTA YOLOv5-seg COCO事前学習済みセグメンテーションモデルが初めて利用可能になりました(@glenn-jocher、@AyushExel、および@Laughing-qによる#9052)。
  • PaddlePaddle Export: python export.py --include paddle で、任意のYOLOv5モデル(cls、seg、det)をPaddle形式でエクスポートします(#9459 by @glenn-jocher)
  • YOLOv5 AutoCache: python train.py --cache ram を使用すると、利用可能なメモリをスキャンし、予測されるデータセットのRAM使用量と比較します。これにより、キャッシュのリスクが軽減され、データセットのキャッシュ機能の採用が促進され、トレーニングが大幅に高速化されます。(#10027 by @glenn-jocher)
  • Cometロギングと可視化の統合Cometは永久に無料で、YOLOv5モデルを保存したり、トレーニングを再開したり、予測をインタラクティブに可視化およびデバッグしたりできます(#9232 by @DN6)。

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

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

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

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

学習

YOLOv5のセグメンテーション学習は、--data coco128-seg.yaml引数によるCOCO128-segセグメンテーションデータセットの自動ダウンロードと、bash data\/scripts\/get_coco.sh --train --val --segmentsによるCOCO-segmentsデータセットの手動ダウンロード、そしてpython train.py --data coco.yamlをサポートしています。

シングルGPU

python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640

マルチ GPU DDP

python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3

Val

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

bash data/scripts/get_coco.sh --val --segments # COCOのvalセグメント分割をダウンロード (780MB, 5000画像) python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # 検証

予測

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

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

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

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


エクスポート

YOLOv5s-segモデルをONNXおよびTensorRTにエクスポート:

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

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

ご質問はありますか?Ultralyticsフォーラムで質問するか、issueを立てるか、リポジトリでPRを送信してください。クイックスタートチュートリアルについては、YOLOv5セグメンテーションColabノートブックから始めることもできます。

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

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

無料ではじめる
クリップボードにコピーしました