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

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

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

それでは、YOLOv5 v7.0のリリースノートを見ていきましょう。
Ultralytics YOLOv5の重要なアップデート#
2022年8月にリリースされたYOLOv5 v6.2以降、YOLOv5に加えられた変更は次のとおりです。
- セグメンテーションモデル ⭐ NEW: 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使用量と比較するようになりました。これによりキャッシュ時のリスクが軽減され、データセットキャッシュ機能の利用が促進されます。この機能により、トレーニングを大幅に高速化できます。(@glenn-jocherによる#10027)
- Cometロギングおよび可視化統合: Cometは永久無料で利用でき、YOLOv5モデルの保存、トレーニングの再開、予測結果のインタラクティブな可視化とデバッグが可能です。(@DN6による#9232)
新しいセグメンテーションチェックポイント#
Ultralytics YOLOv5のセグメンテーションモデルを、A100 GPUを使用して、画像サイズ640、300エポックでCOCO上でトレーニングしました。CPU速度テスト用にすべてのモデルをONNX FP32へ、GPU速度テスト用にTensorRT FP16へエクスポートしました。再現性を確保しやすいよう、すべての速度テストはGoogle Colab Proノートブック上で実行しました。
- すべてのチェックポイントは、SGDオプティマイザー、lr0=0.01、weight_decay=5e-5、画像サイズ640、その他すべてデフォルト設定で、300エポックまでトレーニングされています。すべての実行結果はWeights & Biasesのトレーニングログに記録されています。
- 精度の値は、COCOデータセットにおける単一モデル・単一スケールでの結果です。python segment/val.py --data coco.yaml --weights yolov5s-seg.ptで再現できます。
- 速度は、Colab Pro A100 High-RAMインスタンスで100枚の推論画像を使用して平均した値です。値は推論速度のみを示しています(NMSにより画像1枚あたり約1ms追加されます)。python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1で再現できます。
- ONNX FP32およびTensorRT FP16へのエクスポートは、export.pyを使用して実行しました。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 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
検証#
COCOデータセット上でYOLOv5m-segの精度を検証します。
bash data/scripts/get_coco.sh --val --segments # COCOの検証用セグメント分割(780MB、5,000枚の画像)をダウンロード 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から読み込み(警告: 推論はまだサポートされていません)

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

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









