Ultralytics YOLO26を使用したインスタンスセグメンテーションとトラッキング 🚀#
インスタンスセグメンテーションとは?#
Instance segmentationは、画像内の個々のオブジェクトをピクセル単位で識別し、輪郭を抽出するコンピュータビジョンタスクです。ピクセルをカテゴリごとに分類するだけのsemantic segmentationとは異なり、インスタンスセグメンテーションは各オブジェクトインスタンスを一意にラベル付けし、正確に描写するため、医療画像、自動運転、産業用自動化など、詳細な空間理解を必要とするアプリケーションにとって不可欠です。
Ultralytics YOLO26は、YOLOモデルの特長である速度と効率性を維持しながら、正確なオブジェクト境界の検出を可能にする、強力なインスタンスセグメンテーション機能を提供します。
Ultralyticsパッケージでは、2種類のインスタンスセグメンテーション・トラッキングが利用可能です:
-
クラスオブジェクトによるインスタンスセグメンテーション: 各クラスオブジェクトには一意の色が割り当てられ、視覚的に明確に区別されます。
-
オブジェクトトラックによるインスタンスセグメンテーション: すべてのトラックは異なる色で表現され、ビデオフレーム間での識別とトラッキングが容易になります。
Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26
サンプル#
| インスタンスセグメンテーション | インスタンスセグメンテーション + オブジェクトトラッキング |
|---|---|
![]() | |
| Ultralytics インスタンスセグメンテーション 😍 | Ultralytics オブジェクトトラッキング付きインスタンスセグメンテーション 🔥 |
YOLO26でセグメンテーションとトラッキングを行う#
InstanceSegmentationソリューションは、各フレームでYOLO26セグメンテーションモデルを実行し、オブジェクトごとのマスクを描画し、すべてのインスタンスに個別の色を付けることで、ビデオ全体で個々のオブジェクトを追跡できるようにします。-segモデルをロードし、Python APIまたはCLIを使用してソース上で実行します。
# 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モデルファイルへのパス。 |
InstanceSegmentationソリューション内でtrackの引数を利用することもできます。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | 使用するトラッキングアルゴリズムを指定します。ビルトインオプション: botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.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 | 視覚的出力において各検出のラベルを表示します。検出されたオブジェクトを即座に理解するのに役立ちます。 |
show_boxes | bool | True | 検出されたオブジェクトの周囲にバウンディングボックスを描画します。画像やビデオフレーム内のオブジェクトを視覚的に識別し特定するために不可欠です。 |
インスタンスセグメンテーションの応用例#
YOLO26を使用したインスタンスセグメンテーションには、さまざまな業界で多くの実用的な応用例があります:
廃棄物管理およびリサイクル#
YOLO26はwaste management facilitiesで使用して、さまざまな種類の素材を識別して分別できます。このモデルは、プラスチック廃棄物、段ボール、金属、その他のリサイクル可能な素材を高精度でセグメント化できるため、自動選別システムによる効率的な廃棄物処理が可能になります。これは、世界中で発生する70億トンのプラスチック廃棄物のうち、リサイクルされるのはわずか約10%であることを考えると、特に重要です。
自動運転車#
In self-driving cars、インスタンスセグメンテーションは、歩行者、車両、交通標識、その他の道路要素をピクセル単位で識別して追跡するのに役立ちます。この環境の正確な理解は、ナビゲーションや安全性の判断において極めて重要です。YOLO26のリアルタイムパフォーマンスは、こうした時間的制約のあるアプリケーションに最適です。
医療画像診断#
インスタンスセグメンテーションにより、医療画像内の腫瘍、臓器、または細胞構造を識別して輪郭を描くことができます。YOLO26はオブジェクトの境界を正確に描写する能力を備えているため、medical diagnosticsや治療計画に役立ちます。
建設現場の監視#
建設現場では、インスタンスセグメンテーションによって重機、作業員、資材を追跡できます。これにより、機器の位置を監視し、作業員が危険エリアに立ち入ったことを検知して安全を確保できるほか、ワークフローやリソース配分の最適化にも寄与します。
よくある質問 (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 guideをご覧ください。
Ultralytics YOLO26におけるインスタンスセグメンテーションとオブジェクトトラッキングの違いは何ですか?#
インスタンスセグメンテーションは画像内の個々のオブジェクトを識別して輪郭を抽出し、各オブジェクトに一意のラベルとマスクを付与します。オブジェクトトラッキングは、これを拡張してビデオフレーム間でオブジェクトに一貫したIDを割り当て、同じオブジェクトを継続的に追跡します。YOLO26の実装のようにこれらを組み合わせることで、精密な境界情報を維持しながらビデオ内のオブジェクトの動きや行動を解析できる、強力な機能が利用可能になります。
Mask R-CNNやFaster R-CNNのような他のモデルと比較して、なぜインスタンスセグメンテーションとトラッキングにUltralytics YOLO26を使うべきなのですか?#
Ultralytics YOLO26は、Mask R-CNNやFaster R-CNNなどの他のモデルと比較して、リアルタイムパフォーマンス、優れたaccuracy、および使いやすさを提供します。YOLO26は1回のパス(1ステージ検出)で画像を処理するため、高い精度を維持しながら大幅に高速化されます。また、Ultralytics Platformとのシームレスな統合も提供し、ユーザーがモデル、データセット、トレーニングパイプラインを効率的に管理できるようにします。速度と精度の両方を必要とするアプリケーションにとって、YOLO26は最適なバランスを提供します。
Ultralytics YOLO26モデルのインスタンスセグメンテーションおよびトラッキングのトレーニングに適したデータセットは提供されていますか?#
はい、Ultralyticsは、COCO-Seg、COCO8-Seg(クイックテスト用の小規模なサブセット)、Package-Seg、Crack-Segなど、インスタンスセグメンテーション用にYOLO26モデルをトレーニングするのに適したいくつかのデータセットを提供しています。これらのデータセットには、インスタンスセグメンテーションタスクに必要なピクセル単位のアノテーションが付属しています。より専門的なアプリケーションの場合は、Ultralytics形式に従ってカスタムデータセットを作成することもできます。完全なデータセット情報と使用方法の手順は、Ultralytics Datasets documentationに記載されています。
