Ultralytics YOLOv5 v7.0のインスタンスセグメンテーションをご紹介
YOLOv5のインスタンスセグメンテーションモデルが初めて導入されたリリース、YOLOv5 v7.0について、トレーニング、検証、予測、エクスポートの例とともに解説します。
Nuvola Ladi4 分で読めます
AIアーキテクチャの最新バージョンであるYOLOv5 v7.0がリリースされ、新しいインスタンスセグメンテーションモデルを発表できることを嬉しく思います。(現在、新しいプロジェクトを始める場合は、インスタンスセグメンテーションにも対応するUltralytics YOLO26をご覧ください。)

今回の最新リリースに取り組む中で、2つの目標を重視しました。1つ目はAIを使いやすくするというミッション、2つ目は「最先端」の真の意味を再定義するという目標です。
大幅な改善、修正、アップグレードを実施し、まさにそれを実現しました。既存のUltralytics YOLOv5物体検出モデルと同じシンプルなワークフローを維持しながら、YOLOv5 v7.0ではモデルのトレーニング、検証、デプロイがこれまで以上に簡単になりました。さらに、すべてのSOTAベンチマークで記録を更新し、リリース時点でYOLOv5-segは最速かつ最高精度のリアルタイムインスタンスセグメンテーションモデルとなりました。
セグメンテーションモデルの初リリースとなるこの節目を、大変誇りに思います。このリリースの実現に貢献してくださった献身的なコミュニティとコントリビューターの皆様に、心より感謝いたします。

それでは、YOLOv5 v7.0のリリースノートを見ていきましょう!
Ultralytics YOLOv5の重要なアップデート#
2022年8月の前回リリースであるYOLOv5 v6.2以降に更新された内容をご紹介します。
- セグメンテーションモデル ⭐ 新機能:SOTAのYOLOv5-seg COCO事前学習済みセグメンテーションモデルを初めて公開しました(@glenn-jocher、@AyushExel、@Laughing-qによる#9052)
- 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モデルの保存、トレーニングの再開、予測の対話的な可視化とデバッグができます(@DN6による#9232)。
新しいセグメンテーションチェックポイント#
Ultralytics YOLOv5セグメンテーションモデルを、A100 GPUを使い、画像サイズ640でCOCOに対して300エポックトレーニングしました。CPU速度テスト用にすべてのモデルをONNX FP32に、GPU速度テスト用にTensorRT FP16にエクスポートしました。再現しやすいように、すべての速度テストをGoogle Colab Proノートブックで実行しました。
- すべてのチェックポイントは、デフォルト設定で画像サイズ640、SGDオプティマイザー、lr0=0.01、weight_decay=5e-5を使用して300エポックトレーニングされています。すべての実行結果は、こちらのWeights & Biasesのトレーニングログに記録されています。
- 精度の値は、COCOデータセットにおける単一モデル・単一スケールのものです。
python segment/val.py --data coco.yaml --weights yolov5s-seg.ptで再現できます。 - 速度は、Colab ProのA100 High-RAMインスタンスで推論画像100枚を使って平均した値です。値が示すのは推論速度のみです(NMSに画像1枚あたり約1 msかかります)。
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で再現できます。
セグメンテーションの新しい使用例#
トレーニング#
Ultralytics YOLOv5のセグメンテーショントレーニングでは、--data coco128-seg.yaml引数を使ってCOCO128-segセグメンテーションデータセットを自動ダウンロードできます。また、bash data/scripts/get_coco.sh --train --val --segmentsを使ってCOCO-segmentsデータセットを手動でダウンロードし、その後python segment/train.py --data coco.yamlを実行することもできます。
単一GPU#
python segment/train.py --weights 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 --weights yolov5s-seg.pt --data coco128-seg.yaml --epochs 5 --img 640 --device 0,1,2,3検証#
COCOデータセットでYOLOv5s-segの精度を検証します。
bash data/scripts/get_coco.sh --val --segments # download COCO val segments split (780MB, 5000 images)
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640 # validate予測#
事前学習済みのYOLOv5m-segを使ってbus.jpgを予測します:
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpgmodel = torch.hub.load("ultralytics/yolov5", "custom", "yolov5m-seg.pt") # PyTorch Hubから読み込みます(警告:推論はまだサポートされていません)
エクスポート#
YOLOv5s-segモデルをONNXおよびTensorRTにエクスポートします:
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0
ご質問がありますか?Ultralyticsフォーラムで質問するか、リポジトリでissueを作成するか、PRを送信してください。クイックスタートチュートリアルには、YOLOv5セグメンテーションのColabノートブックもご利用いただけます。
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










