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

学習目標

インスタンスセグメンテーションは、コンピュータビジョンにおける物体検出よりもさらに詳細なタスクです。物体が何であるか、どこにあるかを識別するだけでなく、各物体の正確な形状も決定します。

1枚の画像に対して、モデルは以下を出力します。

1. 物体カテゴリ( 何 )

例:人、車、犬

2. インスタンスマスク

各物体にはピクセルレベルのバイナリマスクがあります。

→物体の形状を正確に輪郭付けます

Pythonと事前学習済みモデルを使用してインスタンスセグメンテーションを実行します。

画像に対してインスタンスセグメンテーションを実行し、結果を出力してください。

 

from ultralytics import YOLO

model = YOLO("yolo11n-seg.pt")

results = model.predict("https://ultralytics.com/images/bus.jpg")
for result in results:
    print(f'mask: {result.masks.data}') # Mask data (Number of objects x Height x Width)

結果は以下のとおりです。オブジェクト数×高さ×幅の次元を持つマスク配列が得られます。ここで、0はピクセルがオブジェクトに属していないことを示し、1はピクセルがオブジェクトに属していることを示します。

ウェブカメラを使用してインスタンスセグメンテーションを実行し、結果を視覚化する。

import cv2
from ultralytics import YOLO

model = YOLO("yolo11n-seg.pt")

video_path = 0
cap = cv2.VideoCapture(video_path)

while cap.isOpened():
    success, frame = cap.read()
    if success:
        results = model.predict(frame)
        annotated_frame = results[0].plot()
        cv2.imshow("YOLO Inference", annotated_frame)

        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

結果は以下のとおりです。

 

 

Copyright © 2026 YUAN High-Tech Development Co., Ltd.
All rights reserved.