Ultralytics YOLO26を使用したインスタンスセグメンテーションとトラッキング 🚀
インスタンスセグメンテーションとは?
インスタンスセグメンテーションは、画像内の個々のオブジェクトをピクセルレベルで特定し、輪郭を描画するコンピュータビジョンのタスクです。ピクセルをカテゴリごとに分類するだけのセマンティックセグメンテーションとは異なり、インスタンスセグメンテーションは各オブジェクトインスタンスを一意にラベル付けし、正確に描写します。そのため、医療画像診断、自動運転、産業用オートメーションなど、詳細な空間的理解を必要とするアプリケーションにとって不可欠です。
Ultralytics YOLO26は、強力なインスタンスセグメンテーション機能を提供します。これにより、YOLOモデルが持つ高速性と効率性を維持しながら、正確なオブジェクト境界検出が可能になります。
Ultralyticsパッケージでは、以下の2種類のインスタンスセグメンテーションとトラッキングが利用可能です:
-
クラスオブジェクトによるインスタンスセグメンテーション: 各クラスのオブジェクトに固有の色が割り当てられ、視覚的に明確に分離されます。
-
オブジェクトトラックによるインスタンスセグメンテーション: すべてのトラックが異なる色で表現され、ビデオフレーム間での容易な識別と追跡を支援します。
Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26
サンプル
| インスタンスセグメンテーション | インスタンスセグメンテーション + オブジェクトトラッキング |
|---|---|
![]() | |
| Ultralytics インスタンスセグメンテーション 😍 | オブジェクトトラッキング付きUltralytics インスタンスセグメンテーション 🔥 |
# 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]"InstanceSegmentationの引数
InstanceSegmentationの引数に関する表を以下に示します:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLO モデルファイルへのパス。 |
region | list | '[(20, 400), (1260, 400)]' | カウント対象となる領域を定義する点のリスト。 |
You can also take advantage of track arguments within the InstanceSegmentation solution:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
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を使用したインスタンスセグメンテーションは、様々な業界で多くの実用的な用途があります:
廃棄物管理とリサイクル
YOLO26は廃棄物管理施設において、様々な種類の材料を識別および選別するために使用できます。このモデルは、プラスチック廃棄物、段ボール、金属、その他のリサイクル可能な素材を高精度でセグメント化し、自動選別システムによる廃棄物処理の効率化を実現します。世界中で生成される70億トンのプラスチック廃棄物のうち、リサイクルされるのはわずか10%程度であることを考慮すると、これは特に価値のある技術です。
自動運転車両
自動運転車において、インスタンスセグメンテーションは歩行者、車両、交通標識、その他の道路上の要素をピクセルレベルで特定および追跡するのに役立ちます。環境に対するこの正確な理解は、ナビゲーションや安全に関わる意思決定において重要です。YOLO26のリアルタイム性能は、こうした時間的制約のあるアプリケーションに最適です。
医療画像診断
インスタンスセグメンテーションは、医療スキャン画像内の腫瘍、臓器、または細胞構造を特定し、その輪郭を描画できます。YOLO26のオブジェクト境界を正確に描写する能力は、医療診断や治療計画の立案において非常に価値があります。
建設現場のモニタリング
建設現場では、インスタンスセグメンテーションを使用して重機、作業員、資材を追跡できます。これにより、機器の位置を監視し、作業員が危険区域に入った際に検知することで安全を確保すると同時に、ワークフローの最適化やリソースの配分にも役立てることができます。
注意
ご質問がある場合は、Ultralytics Issue Sectionまたは以下に記載されているディスカッションセクションにお気軽にお問い合わせください。
FAQ
Ultralytics YOLO26を使用してインスタンスセグメンテーションを実行するにはどうすればよいですか?
Ultralytics YOLO26を使用してインスタンスセグメンテーションを実行するには、YOLO26のセグメンテーション用バージョンでYOLOモデルを初期化し、ビデオフレームを処理します。以下に簡略化したコード例を示します:
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()インスタンスセグメンテーションの詳細については、Ultralytics YOLO26ガイドを参照してください。
Ultralytics YOLO26におけるインスタンスセグメンテーションとオブジェクトトラッキングの違いは何ですか?
インスタンスセグメンテーションは画像内の個々のオブジェクトを特定して輪郭を描画し、各オブジェクトに固有のラベルとマスクを付与します。オブジェクトトラッキングはこれを拡張し、ビデオフレーム間で一貫したIDを割り当てることで、時間の経過とともに同じオブジェクトを継続的に追跡できるようにします。YOLO26の実装のようにこれらを組み合わせることで、オブジェクトの境界情報を正確に維持しながら、ビデオ内でのオブジェクトの動きや行動を解析するための強力な機能が得られます。
なぜMask R-CNNやFaster R-CNNのような他のモデルではなく、インスタンスセグメンテーションとトラッキングにUltralytics YOLO26を使用すべきなのですか?
Ultralytics YOLO26は、Mask R-CNNやFaster R-CNNといった他のモデルと比較して、リアルタイム性能、優れた精度、そして使いやすさを提供します。YOLO26は画像を1回のパス(ワンステージ検出)で処理するため、高い精度を維持しつつ大幅に高速です。さらに、Ultralytics Platformとのシームレスな統合も提供されており、モデル、データセット、学習パイプラインを効率的に管理できます。速度と精度の両方を必要とするアプリケーションにおいて、YOLO26は最適なバランスを実現します。
Ultralyticsが提供する、YOLO26モデルのインスタンスセグメンテーションおよびトラッキングの学習に適したデータセットはありますか?
はい、UltralyticsはYOLO26モデルの学習に適したインスタンスセグメンテーション用データセットをいくつか提供しています。COCO-Seg、COCO8-Seg(素早いテスト用の小規模なサブセット)、Package-Seg、およびCrack-Segなどがあります。これらのデータセットには、インスタンスセグメンテーションのタスクに必要なピクセルレベルのアノテーションが含まれています。より特殊な用途では、Ultralytics形式に従ってカスタムデータセットを作成することも可能です。データセットに関する詳細な情報と使用手順は、Ultralytics Datasetsドキュメントで確認できます。
