Ultralytics YOLOv5 v7.0におけるインスタンスセグメンテーションの紹介
新しいインスタンスセグメンテーションモデルを搭載し、最高のAI精度と速度でSOTAベンチマークを凌駕するYOLOv5 v7.0を発見してください。コミュニティに参加しましょう。

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

今回のリリースにあたり、私たちは2つの目標を重視しました。1つ目は「AIを簡単にすること」というミッションであり、2つ目は「最先端(state-of-the-art)」の真の意味を再定義することでした。
そして、大幅な改良、修正、アップグレードにより、まさにそれを実現しました。既存のYOLOv5物体検出モデルと同じシンプルなワークフローを維持することで、YOLOv5 v7.0ではモデルの学習、検証、デプロイがかつてないほど容易になりました。さらに、すべてのSOTAベンチマークを凌駕し、YOLOv5を世界で最も高速かつ高精度なモデルとして確立させました。
今回は初めてのセグメンテーションモデルのリリースとなり、この大きなマイルストーンを大変誇りに思います。このリリースの実現に尽力してくださった献身的なコミュニティとコントリビューターの皆様に深く感謝いたします。

それでは、YOLOv5 v7.0のリリースノートから見ていきましょう!
Link to this sectionYOLOv5の重要なアップデート#
2022年8月にリリースしたYOLOv5 v6.2以降のYOLOv5の更新内容は以下の通りです。
- セグメンテーションモデル ⭐ 新機能: SOTAなCOCO事前学習済みYOLOv5-segセグメンテーションモデルが初めて利用可能になりました(#9052 @glenn-jocher, @AyushExel, @Laughing-q による提供)
- PaddlePaddleエクスポート: python export.py --include paddle を使用して、あらゆるYOLOv5モデル(cls, seg, det)をPaddleフォーマットにエクスポート可能になりました(#9459 @glenn-jocher による提供)
- YOLOv5 AutoCache: python train.py --cache ram を使用すると、利用可能なメモリをスキャンし、予測されるデータセットのRAM使用量と比較するようになりました。これによりキャッシングのリスクが低減され、学習を大幅に高速化できるデータセットキャッシング機能の活用が促進されます(#10027 @glenn-jocher による提供)
- Cometロギングおよび可視化統合: 永続的に無料で利用できるCometを使用すれば、YOLOv5モデルの保存、学習の再開、予測結果の対話的な可視化やデバッグが可能です(#9232 @DN6 による提供)
Link to this section新しいセグメンテーションチェックポイント#
私たちはA100 GPUを使用して、画像サイズ640で300エポックにわたりCOCOデータセットでYOLOv5セグメンテーションモデルを学習しました。CPU速度テスト用に全モデルをONNX FP32へ、GPU速度テスト用にTensorRT FP16へエクスポートしました。再現性を確保するため、すべての速度テストはGoogle Colab Proノートブック上で実行しています。
- すべてのチェックポイントは、画像サイズ640、デフォルト設定にて、lr0=0.01、weight_decay=5e-5のSGDオプティマイザーを使用して300エポックまで学習されています。すべての実行結果はWeights & Biases training logsに記録されています。
- 精度値は、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によるONNX FP32およびTensorRT FP16へのエクスポートを実行しました。python export.py --weights yolov5s-seg.pt --include engine --device 0 --half を実行して再現してください。
Link to this section新しいセグメンテーション使用例#
Link to this sectionトレーニング#
YOLOv5のセグメンテーション学習は、--data coco128-seg.yaml 引数によるCOCO128-segデータセットの自動ダウンロード、および bash data/scripts/get_coco.sh --train --val --segments と python train.py --data coco.yaml を使用したCOCO-segmentsデータセットの手動ダウンロードをサポートしています。
Link to this sectionシングルGPU#
python segment/train.py --model yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640
Link to this sectionマルチ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
Link to this section検証(Val)#
COCOデータセットで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 # 検証実行
Link to this section推論(Predict)#
事前学習済み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から読み込み (警告: 推論はまだサポートされていません)

Link to this sectionエクスポート#
YOLOv5s-segモデルをONNXおよびTensorRTにエクスポートします:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

ご質問はありますか?Ultralyticsフォーラムでの質問、Issueの起票、またはリポジトリへのPRの提出をお願いします。クイックスタートチュートリアルについては、YOLOv5セグメンテーションColabノートブックから始めることもできます。






