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

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

今回のリリースにあたり、私たちは2つの目標を重視しました。1つ目は「AIを簡単にすること」というミッションであり、2つ目は「最先端(state-of-the-art)」の真の意味を再定義することでした。
そのため、大幅な改良、修正、アップグレードにより、まさにそれを実現しました。既存の Ultralytics YOLOv5 オブジェクト検出モデルと同じシンプルなワークフローを維持しながら、YOLOv5 v7.0 を使えば、これまでになく簡単にモデルのトレーニング、検証、デプロイを行えるようになりました。さらに、すべての SOTA benchmarks を上回り、実質的に YOLOv5 を世界で最も高速で高精度なものにしています。
これがsegmentationモデルの最初のリリースとなるため、私たちはこのマイルストーンを非常に誇りに思っています。このリリースの実現にご協力いただいた、熱心なコミュニティとcontributorsの皆様に深く感謝いたします。

それでは、YOLOv5 v7.0のrelease notesを確認していきましょう!
重要な Ultralytics YOLOv5 のアップデート#
2022年8月のYOLOv5 v6.2のリリース以降における、YOLOv5の更新内容は以下の通りです。
- Segmentation Models ⭐ NEW: COCOで事前トレーニングされたSOTAなYOLOv5-segセグメンテーションモデルが初めて利用可能になりました(#9052 by @glenn-jocher、@AyushExel、@Laughing-q)
- 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 Logging and Visualization Integration: 永久無料のCometを使用すると、YOLOv5モデルの保存、トレーニングの再開、予測のインタラクティブな可視化とデバッグを行うことができます。(#9232 by @DN6)
新しいセグメンテーションチェックポイント#
Ultralytics YOLOv5 セグメンテーションモデルを COCO で 300 エポック、画像サイズ 640、A100 GPU を使用してトレーニングしました。すべてのモデルを CPU 速度テスト用に ONNX FP32 へ、GPU 速度テスト用に TensorRT FP16 へエクスポートしました。簡単に再現できるよう、すべての速度テストを Google Colab Pro ノートブックで実行しました。
- すべてのチェックポイントは、lr0=0.01、weight_decay=5e-5のSGDオプティマイザを使用し、画像サイズ640、デフォルト設定ですべて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 を実行して再現してください。
新しいセグメンテーション使用例#
トレーニング#
Ultralytics YOLOv5 のセグメンテーション学習では、--data coco128-seg.yaml 引数を使用した COCO128-seg セグメンテーションデータセットの自動ダウンロードと、bash data/scripts/get_coco.sh --train --val --segments の実行後に python train.py --data coco.yaml を実行することによる COCO-segments データセットの手動ダウンロードがサポートされています。
シングル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)#
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 # 検証実行
推論(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から読み込み (警告: 推論はまだサポートされていません)

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

ご質問がありますか?Ultralytics forumで質問するか、リポジトリでraise an issueまたはsubmit a PRを行ってください。クイックスタートチュートリアルとして、YOLOv5 segmentation Colab notebookもご利用いただけます。






