Ultralytics YOLO26を使用したインスタンスsegmentとtrack 🚀
インスタンスセグメンテーションとは何ですか?
インスタンスセグメンテーションは、画像内の個々のオブジェクトをピクセルレベルで識別およびアウトライン化するコンピュータビジョンタスクです。カテゴリ別にピクセルを分類するだけのセマンティックセグメンテーションとは異なり、インスタンスセグメンテーションは各オブジェクトインスタンスに一意にラベルを付け、正確に区別します。これにより、医療画像処理、自動運転、産業オートメーションなどの詳細な空間認識を必要とするアプリケーションに不可欠です。
Ultralytics YOLO26は、YOLOモデルが知られている速度と効率を維持しながら、正確なオブジェクト境界検出を可能にする強力なインスタンスsegmentation機能を提供します。
Ultralytics パッケージで利用可能なインスタンスセグメンテーション追跡には、2 つのタイプがあります。
クラスオブジェクトによるインスタンスセグメンテーション: 明確な視覚的分離のために、各クラスオブジェクトに一意の色が割り当てられます。
オブジェクトtrackによるインスタンスセグメンテーション: 各trackは異なる色で表現され、ビデオフレーム全体での簡単な識別とtrackを容易にします。
見る: Ultralytics YOLO26を使用したオブジェクトtrackによるインスタンスsegmentation
サンプル
| インスタンスセグメンテーション | インスタンスセグメンテーション + オブジェクトトラッキング |
|---|---|
![]() | |
| Ultralytics インスタンスセグメンテーション 😍 | Ultralytics オブジェクト追跡によるインスタンスセグメンテーション 🔥 |
Ultralytics YOLOを使用したインスタンスセグメンテーション
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True
# Pass a source video
yolo solutions isegment source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26.
# classes=[0, 2], # segment specific classes, e.g., person and car with the pretrained model.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = isegment(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
InstanceSegmentation 引数
の表を以下に示します。 InstanceSegmentation 引数:
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパス。 |
region | list | '[(20, 400), (1260, 400)]' | カウント領域を定義する点のリスト。 |
活用することもできます。 track 内の引数 InstanceSegmentation ソリューション:
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.yaml' | 使用する追跡アルゴリズムを指定します。例: bytetrack.yaml または botsort.yaml. |
conf | float | 0.1 | 検出の信頼度閾値を設定します。低い値を設定すると、より多くのオブジェクトを追跡できますが、誤検出が含まれる可能性があります。 |
iou | float | 0.7 | 重複する検出をフィルタリングするためのIntersection over Union (IoU) 閾値を設定します。 |
classes | list | None | クラスインデックスで結果をフィルタリングします。例: classes=[0, 2, 3] 指定されたクラスのみを追跡します。 |
verbose | bool | True | 追跡結果の表示を制御し、追跡されたオブジェクトの視覚的な出力を提供します。 |
device | str | None | 推論に使用するデバイスを指定します(例: cpu, cuda:0 または 0)。モデル実行のために、CPU、特定のGPU、またはその他の計算デバイスを選択できます。 |
さらに、以下の可視化引数を使用できます:
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | もし True)は、アノテーションが付けられた画像またはビデオをウィンドウに表示します。開発またはテスト中に、視覚的なフィードバックを即座に得るのに役立ちます。 |
line_width | int or None | None | バウンディングボックスの線の太さを指定します。もし None場合、線の太さは画像サイズに基づいて自動的に調整されます。明確にするための視覚的なカスタマイズを提供します。 |
show_conf | bool | True | ラベルとともに、検出ごとの信頼度スコアを表示します。各検出に対するモデルの確実性についての洞察が得られます。 |
show_labels | bool | True | 検出された各オブジェクトのラベルを視覚的な出力に表示します。検出されたオブジェクトをすぐに理解できます。 |
インスタンスセグメンテーションの応用
YOLO26によるインスタンスsegmentationは、様々な業界で数多くの実世界アプリケーションを持っています。
廃棄物管理とリサイクル
YOLO26は、廃棄物管理施設で異なる種類の材料を識別し、分類するために使用できます。このモデルは、プラスチック廃棄物、段ボール、金属、その他のリサイクル可能なものを高精度でsegmentでき、自動選別システムが廃棄物をより効率的に処理することを可能にします。これは、世界中で発生する70億トンのプラスチック廃棄物のうち、約10%しかリサイクルされていないことを考えると、特に価値があります。
自動運転車
自動運転車では、インスタンスsegmentationが歩行者、車両、交通標識、その他の道路要素をピクセルレベルで識別し、trackするのに役立ちます。環境のこの正確な理解は、ナビゲーションと安全に関する決定にとって極めて重要です。YOLO26のリアルタイム性能は、これらの時間制約のあるアプリケーションに最適です。
医用画像処理
インスタンスsegmentationは、医療スキャンで腫瘍、臓器、または細胞構造を識別し、輪郭を抽出できます。YOLO26のオブジェクト境界を正確に区画する能力は、医療診断と治療計画にとって価値があります。
建設現場モニタリング
建設現場では、インスタンスセグメンテーションが重機、作業員、および資材をtrackできます。これにより、機器の位置を監視し、作業員が危険区域に入ったことをdetectすることで安全を確保し、同時にワークフローとリソースの割り当てを最適化します。
注
ご不明な点がございましたら、Ultralytics Issue Sectionまたは下記のディスカッションセクションに質問を投稿してください。
よくある質問
Ultralytics YOLO26を使用してインスタンスsegmentationを実行するにはどうすればよいですか?
Ultralytics YOLO26を使用してインスタンスsegmentationを実行するには、YOLOモデルをYOLO26のsegmentationバージョンで初期化し、ビデオフレームを処理します。以下に簡略化されたコード例を示します。
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = isegment(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
インスタンスsegmentationの詳細については、Ultralytics YOLO26ガイドを参照してください。
Ultralytics YOLO26におけるインスタンスsegmentationとオブジェクトtrackの違いは何ですか?
インスタンスsegmentationは、画像内の個々のオブジェクトを識別し、その輪郭を抽出し、各オブジェクトに一意のラベルとマスクを付与します。オブジェクトtrackは、ビデオフレーム全体でオブジェクトに一貫したIDを割り当てることでこれを拡張し、時間の経過とともに同じオブジェクトの継続的なtrackを容易にします。YOLO26の実装のようにこれらを組み合わせることで、正確な境界情報を維持しながら、ビデオ内のオブジェクトの動きと挙動を分析するための強力な機能が得られます。
Mask R-CNNやFaster R-CNNのような他のモデルと比較して、インスタンスsegmentationとtrackにUltralytics YOLO26を使用すべき理由は何ですか?
Ultralytics YOLO26は、Mask R-CNNやFaster R-CNNのような他のモデルと比較して、リアルタイム性能、優れた精度、および使いやすさを提供します。YOLO26は画像をシングルパス(one-stage detection)で処理するため、高い精度を維持しながら大幅に高速です。また、Ultralytics Platformとのシームレスな統合も提供し、ユーザーはモデル、データセット、およびトレーニングパイプラインを効率的に管理できます。速度と精度の両方が求められるアプリケーションにとって、YOLO26は最適なバランスを提供します。
Ultralyticsが提供するデータセットの中に、インスタンスsegmentationとtrack用のYOLO26モデルのトレーニングに適したものはありますか?
はい、Ultralyticsは、COCO-Seg、COCO8-Seg(迅速なテスト用のより小さなサブセット)、Package-Seg、Crack-Segなど、インスタンスsegmentation用のYOLO26モデルのトレーニングに適したいくつかのデータセットを提供しています。これらのデータセットには、インスタンスsegmentationタスクに必要なピクセルレベルのアノテーションが付属しています。より専門的なアプリケーション向けには、Ultralytics形式に従ってカスタムデータセットを作成することもできます。完全なデータセット情報と使用方法については、Ultralytics Datasetsドキュメントで確認できます。
