コンテンツにスキップ

インスタンスセグメンテーション

インスタンスセグメンテーションの例

インスタンスセグメンテーションは、物体検出よりもさらに一歩進んで、画像内の個々の物体を識別し、画像の残りの部分からセグメント化します。

インスタンスセグメンテーションモデルの出力は、画像内の各オブジェクトを囲むマスクまたは輪郭のセットであり、クラスラベルと各オブジェクトの信頼度スコアとともに提供されます。インスタンスセグメンテーションは、画像内のオブジェクトがどこにあるかだけでなく、その正確な形状も知る必要がある場合に役立ちます。



見る: 事前学習済みのUltralytics YOLOモデルを使用して、pythonでセグメンテーションを実行します。

ヒント

YOLO11 Segmentモデルは、 -seg サフィックス(例:) yolo11n-seg.pt で事前トレーニングされています。 COCO.

モデル

ここに表示されているのは、YOLO11の学習済みSegmentモデルです。Detect、Segment、PoseモデルはCOCOデータセットで事前学習されていますが、ClassifyモデルはImageNetデータセットで事前学習されています。

モデルは、最初の使用時に最新のUltralytics リリースから自動的にダウンロードされます。

モデル サイズ
(ピクセル)
mAPbox
50-95
mAPmask
50-95
速度
CPU ONNX
(ms)
速度
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLO11n-seg 640 38.9 32.0 65.9 ± 1.1 1.8 ± 0.0 2.9 10.4
YOLO11s-seg 640 46.6 37.8 117.6 ± 4.9 2.9 ± 0.0 10.1 35.5
YOLO11m-seg 640 51.5 41.5 281.6 ± 1.2 6.3 ± 0.1 22.4 123.3
YOLO11l-seg 640 53.4 42.9 344.2 ± 3.2 7.8 ± 0.2 27.6 142.2
YOLO11x-seg 640 54.7 43.8 664.5 ± 3.2 15.8 ± 0.7 62.1 319.0
  • mAPval 値は、シングルモデルのシングルスケールにおける COCO val2017 データセット。
    再現方法 yolo val segment data=coco.yaml device=0
  • 速度 を使用してCOCO val画像で平均化 Amazon EC2 P4d インスタンス。
    再現方法 yolo val segment data=coco.yaml batch=1 device=0|cpu

トレーニング

画像サイズ640でCOCO8-segデータセット上でYOLO11n-segを100エポック学習させます。利用可能な引数の完全なリストは、設定ページを参照してください。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.yaml")  # build a new model from YAML
model = YOLO("yolo11n-seg.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-seg.yaml").load("yolo11n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml pretrained=yolo11n-seg.pt epochs=100 imgsz=640

データセット形式

YOLOのセグメンテーションデータセットの形式の詳細については、データセットガイドをご覧ください。既存のデータセットを他の形式(COCOなど)からYOLO形式に変換するには、UltralyticsのJSON2YOLOツールを使用してください。

Val

学習済み YOLO11n-seg モデルの検証 精度 COCO8-segデータセットで実行します。引数は必要ありません。 model 学習内容を保持 data および引数をモデル属性として。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list contains map50-95(B) of each category
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list contains map50-95(M) of each category
yolo segment val model=yolo11n-seg.pt  # val official model
yolo segment val model=path/to/best.pt # val custom model

予測

トレーニング済みの YOLO11n-seg モデルを使用して、画像に対する予測を実行する。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xy = result.masks.xy  # mask in polygon format
    xyn = result.masks.xyn  # normalized
    masks = result.masks.data  # mask in matrix format (num_objects x H x W)
yolo segment predict model=yolo11n-seg.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo segment predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

詳細な predict モードの詳細については、 予測 ページ。

エクスポート

YOLO11n-segモデルをONNX、CoreMLなどの異なる形式にエクスポートします。

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

利用可能なYOLO11-segのエクスポート形式は、以下の表に記載されています。以下の方法で、任意の形式にエクスポートできます。 format 引数、つまり format='onnx' または format='engine'エクスポートされたモデルで直接予測または検証できます。例: yolo predict model=yolo11n-seg.onnxエクスポート完了後、モデルの使用例が表示されます。

形式 format 引数 モデル メタデータ 引数
PyTorch - yolo11n-seg.pt -
TorchScript torchscript yolo11n-seg.torchscript imgsz, half, dynamic, optimize, nms, batch, device
ONNX onnx yolo11n-seg.onnx imgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINO openvino yolo11n-seg_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRT engine yolo11n-seg.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreML coreml yolo11n-seg.mlpackage imgsz, half, int8, nms, batch, device
TF SavedModel saved_model yolo11n-seg_saved_model/ imgsz, keras, int8, nms, batch, device
TF GraphDef pb yolo11n-seg.pb imgsz, batch, device
TF Lite tflite yolo11n-seg.tflite imgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPU edgetpu yolo11n-seg_edgetpu.tflite imgsz, device
TF.js tfjs yolo11n-seg_web_model/ imgsz, half, int8, nms, batch, device
PaddlePaddle paddle yolo11n-seg_paddle_model/ imgsz, batch, device
MNN mnn yolo11n-seg.mnn imgsz, batch, int8, half, device
NCNN ncnn yolo11n-seg_ncnn_model/ imgsz, half, batch, device
IMX500 imx yolo11n-seg_imx_model/ imgsz, int8, data, fraction, device
RKNN rknn yolo11n-seg_rknn_model/ imgsz, batch, name, device

詳細な export 詳細は エクスポート ページ。

よくある質問

カスタムデータセットで YOLO11 セグメンテーションモデルをトレーニングするにはどうすればよいですか?

カスタムデータセットでYOLO11セグメンテーションモデルをトレーニングするには、まず、YOLOセグメンテーション形式でデータセットを準備する必要があります。JSON2YOLOなどのツールを使用して、他の形式からデータセットを変換できます。データセットの準備ができたら、pythonまたはCLIコマンドを使用してモデルをトレーニングできます。

from ultralytics import YOLO

# Load a pretrained YOLO11 segment model
model = YOLO("yolo11n-seg.pt")

# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo segment train data=path/to/your_dataset.yaml model=yolo11n-seg.pt epochs=100 imgsz=640

その他の利用可能な引数については、設定ページをご確認ください。

YOLO11における物体検出とインスタンスセグメンテーションの違いは何ですか?

物体検出は、画像内の物体を特定し、その周囲にバウンディングボックスを描画して位置を特定します。一方、インスタンスセグメンテーションは、バウンディングボックスを特定するだけでなく、各物体の正確な形状を区別します。YOLO11インスタンスセグメンテーションモデルは、検出された各物体の輪郭を示すマスクまたはコンターを提供し、医療画像処理や自動運転など、物体の正確な形状を知ることが重要なタスクに特に役立ちます。

インスタンスセグメンテーションにYOLO11を使用する理由

Ultralytics YOLO11 は、その高い精度とリアルタイムパフォーマンスで知られる最先端のモデルであり、インスタンスセグメンテーションタスクに最適です。YOLO11 Segment モデルは、COCO データセットで事前トレーニングされており、さまざまなオブジェクトにわたって堅牢なパフォーマンスを保証します。さらに、YOLO はトレーニング、検証、予測、およびエクスポート機能をシームレスな統合でサポートしており、研究および業界アプリケーションの両方で非常に汎用性が高くなっています。

事前トレーニング済みのYOLOセグメンテーションモデルをロードして検証するにはどうすればよいですか?

事前学習済みのYOLOセグメンテーションモデルのロードと検証は簡単です。pythonとCLIの両方を使用してこれを行う方法を次に示します:

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n-seg.pt")

# Validate the model
metrics = model.val()
print("Mean Average Precision for boxes:", metrics.box.map)
print("Mean Average Precision for masks:", metrics.seg.map)
yolo segment val model=yolo11n-seg.pt

これらのステップにより、モデルの性能を評価する上で重要な平均適合率(mAP)などの検証指標が得られます。

YOLOセグメンテーションモデルをONNX形式にエクスポートするにはどうすればよいですか?

YOLOセグメンテーションモデルをONNX形式にエクスポートするのは簡単で、PythonまたはCLIコマンドを使用して実行できます。

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo11n-seg.pt")

# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx

さまざまな形式へのエクスポートの詳細については、エクスポートページを参照してください。



📅 1年前に作成 ✏️ 5ヶ月前に更新

コメント