Ultralytics YOLO27:
Get Started

Ultralytics YOLO26を使用したインスタンスセグメンテーションとトラッキング#

インスタンスセグメンテーションとは?#

インスタンスセグメンテーションは、画像内の個々のオブジェクトをピクセル単位で識別し、輪郭を描画するコンピュータービジョンタスクです。カテゴリごとにピクセルを分類するだけのセマンティックセグメンテーションとは異なり、インスタンスセグメンテーションでは各オブジェクトインスタンスに固有のラベルを付与し、正確に輪郭を描画します。そのため、医用画像、自動運転、産業オートメーションなど、詳細な空間把握を必要とするアプリケーションで重要です。

Ultralytics YOLO26は、YOLOモデルで知られる速度と効率を維持しながら、オブジェクトの境界を高精度に検出できる強力なインスタンスセグメンテーション機能を備えています。

Ultralyticsパッケージでは、次の2種類のインスタンスセグメンテーショントラッキングを利用できます。

  • クラスオブジェクトによるインスタンスセグメンテーション:各クラスオブジェクトに固有の色を割り当て、視覚的に明確に区別します。

  • オブジェクトトラックによるインスタンスセグメンテーション:各トラックを異なる色で表すことで、動画フレーム間での識別と追跡を容易にします。



視聴: Ultralytics YOLO26 による物体追跡を使ったインスタンスセグメンテーション

サンプル数#

インスタンスセグメンテーションインスタンスセグメンテーション + オブジェクトトラッキング
Ultralyticsのインスタンスセグメンテーションオブジェクトトラッキングを使用したUltralyticsのインスタンスセグメンテーション
Ultralyticsのインスタンスセグメンテーション 😍オブジェクトトラッキングを使用したUltralyticsのインスタンスセグメンテーション 🔥

YOLO26でセグメンテーションとトラッキングを行う#

InstanceSegmentationソリューションは、各フレームでYOLO26セグメンテーションモデルを実行し、オブジェクトごとのマスクを描画します。また、各インスタンスに個別の色を付けるため、動画内で個々のオブジェクトを追跡できます。-segモデルを読み込み、Python APIまたはCLIを使って入力データに適用します。

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]"

InstanceSegmentationの引数#

InstanceSegmentationの引数を以下の表に示します。

引数種類デフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパスです。
line_widthint2Solutionが描画するボックス、キーポイント、カウント表示の線幅です。
verboseboolTrue各フレームの入力shape、クラス数、処理速度を記録するSolutionのログを有効にします。トラッキング呼び出し自体は常にログを出力しません。

InstanceSegmentationソリューションでは、track引数も活用できます。

引数種類デフォルト説明
trackerstr'tracktrack.yaml'使用するトラッキングアルゴリズムを指定します。組み込みのオプション:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。
conffloat0.25検出の信頼度しきい値を設定します。値を低くすると、より多くの物体を追跡できますが、誤検出が含まれる可能性があります。
ioufloat0.7重複する検出をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。
classeslistNoneクラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]を指定すると、指定したクラスのみを追跡します。
devicestrNone推論に使用するデバイスを指定します(例:cpu、cuda:0、0)。モデル実行に使用するCPU、特定のGPU、その他の計算デバイスを選択できます。
imgszint or tuple640推論時の入力画像サイズです。正方形の場合は整数、または(height, width)のペアを指定します。形状はモデルのストライドに合わせて調整されます。
max_detint300トラッキング前にフレームごとに保持する検出の最大数です。混雑したシーンでソリューションが処理する物体数を制限します。
quantizeint or strNone推論精度: CPU以外で実行するPyTorchおよびTorchScriptモデルでは、16(FP16)または32/未設定(FP32)を使用します。その他の形式では、アーティファクトとランタイムによって選択される精度が使用されます。非推奨のhalf引数を置き換えます。

さらに、以下の可視化引数を使用できます。

引数種類デフォルト説明
showboolFalseTrueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中にすぐ視覚的なフィードバックを得るのに便利です。
show_confboolTrue各検出のラベルとともに信頼度スコアを表示します。各検出に対するモデルの確信度を確認できます。
show_labelsboolTrue可視化出力で各検出のラベルを表示します。検出されたオブジェクトをすぐに把握できます。
show_boxesboolTrue検出されたオブジェクトの周囲にバウンディングボックスを描画します。画像や動画フレーム内のオブジェクトを視覚的に識別し、位置を確認するために不可欠です。

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

YOLO26によるインスタンスセグメンテーションは、さまざまな業界で数多くの実用的な用途があります。

廃棄物管理とリサイクル#

YOLO26は、廃棄物処理施設でさまざまな種類の素材を識別し、分類するために使用できます。このモデルは、プラスチックごみ、段ボール、金属、その他のリサイクル可能な素材を高精度にセグメント化し、自動仕分けシステムによる廃棄物処理の効率化を可能にします。世界で発生する70億トンのプラスチックごみのうち、リサイクルされるのは約10%にすぎないことを考えると、これは特に重要です。

自動運転車#

自動運転車では、インスタンスセグメンテーションによって歩行者、車両、交通標識、その他の道路要素をピクセル単位で識別し、追跡できます。環境を正確に把握することは、経路探索や安全性に関する判断に不可欠です。YOLO26はリアルタイムで動作するため、時間制約の厳しいこうしたアプリケーションに適しています。

医用画像#

インスタンスセグメンテーションは、医用スキャン内の腫瘍、臓器、細胞構造を識別し、輪郭を描画できます。オブジェクトの境界を正確に描画できる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"
    
    # 動画ライター
    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))
    
    # InstanceSegmentationを初期化
    isegment = solutions.InstanceSegmentation(
        show=True,  # 出力を表示する
        model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" for YOLO26によるオブジェクトセグメンテーション。
    )
    
    # 動画を処理
    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ガイドを参照してください。

  • インスタンスセグメンテーションは、画像内の個々のオブジェクトを識別して輪郭を描き、それぞれに固有のラベルとマスクを付与します。オブジェクトトラッキングは、動画フレーム間でオブジェクトに一貫したIDを割り当てることでこれを拡張し、同じオブジェクトを継続的に追跡できるようにします。YOLO26の実装のように両者を組み合わせると、正確な境界情報を維持しながら、動画内のオブジェクトの動きや挙動を分析する強力な機能を利用できます。

  • Ultralytics YOLO26は、Mask R-CNNやFaster R-CNNなどの他のモデルと比べて、リアルタイムの処理性能、優れた精度、使いやすさを備えています。YOLO26は画像を1回のパスで処理する1段階検出方式を採用しているため、高い精度を維持しながら大幅に高速に動作します。また、Ultralytics Platformとシームレスに統合でき、モデル、データセット、トレーニングパイプラインを効率的に管理できます。速度と精度の両方が求められるアプリケーションにおいて、YOLO26は最適なバランスを実現します。

  • はい。Ultralyticsは、インスタンスセグメンテーション向けYOLO26モデルのトレーニングに適した複数のデータセットを提供しています。これには、COCO-Seg、COCO8-Seg(迅速なテスト用の小規模なサブセット)、Package-Seg、Crack-Segが含まれます。これらのデータセットには、インスタンスセグメンテーションタスクに必要なピクセルレベルのアノテーションが含まれています。より専門的なアプリケーション向けには、Ultralytics形式に従ってカスタムデータセットを作成することもできます。データセットの詳細と使用方法については、Ultralyticsデータセットのドキュメントを参照してください。

コメント