Instance Segmentation
インスタンスセグメンテーションによってピクセルレベルの物体検出が可能になる仕組みを学びます。Ultralytics YOLO26を使用して、高速なリアルタイムマスク生成などを行う方法を紹介します。
インスタンスセグメンテーションは、コンピュータビジョン(CV)における高度な技術であり、画像内の関心対象となる個々の異なるオブジェクトを特定し、ピクセルレベルで輪郭を描出します。標準的な物体検出では、矩形のバウンディングボックスを使用して対象の位置を特定しますが、インスタンスセグメンテーションでは分析をさらに深め、検出された各対象に対して正確なマスクを生成します。この機能により、人工知能(AI)モデルは、同じクラスに属する個々のオブジェクトを区別できます。たとえば、重なり合う2人の人物を別々に識別できます。これにより、単純な分類手法と比較して、視覚シーンをより豊かかつ詳細に理解できます。
セグメンテーションの種類の区別#
インスタンスセグメンテーションの有用性を十分に理解するには、関連する他の画像処理タスクとの違いを把握することが役立ちます。各手法は、アプリケーションの要件に応じて異なる粒度を提供します。
- セマンティックセグメンテーション: このアプローチでは、画像内のすべてのピクセルをカテゴリ(例: 「道路」「空」「車」)に分類します。ただし、同じカテゴリに属する別々のオブジェクトを区別することはできません。3台の車が隣り合って駐車されている場合、セマンティックセグメンテーションでは、それらを1つの「車」領域として扱います。
- インスタンスセグメンテーション: この手法では、各オブジェクトを固有の対象として扱います。個々のインスタンスを検出し、それぞれのピクセルに固有のラベルを割り当てます。駐車された車の例では、インスタンスセグメンテーションによって3つの異なるマスクが生成され、「車A」「車B」「車C」を個別に識別できます。
- パノプティックセグメンテーション: セマンティックセグメンテーションによる背景のラベリングと、インスタンスセグメンテーションによる個数を数えられるオブジェクトの識別を組み合わせたハイブリッドなアプローチです。
ピクセルレベル解析の仕組み#
現代のインスタンスセグメンテーションモデルは、通常、高度なディープラーニング(DL)アーキテクチャ、特に畳み込みニューラルネットワーク(CNNs)を基盤としています。これらのネットワークは画像から特徴を抽出し、オブジェクトのクラスと空間的な輪郭の両方を予測します。従来は、Mask R-CNNのような2段階アーキテクチャが標準であり、最初に関心領域を提案し、その後マスクへと精緻化していました。
しかし、近年の進歩により、YOLO26のように検出とセグメンテーションを同時に実行する1段階検出器が登場しています。この「エンドツーエンド」アプローチにより、リアルタイム推論の速度が大幅に向上し、コンシューマー向けハードウェア上のライブ動画ストリームに対して、高精度なセグメンテーションを適用できるようになります。
実世界での利用例#
インスタンスセグメンテーションが提供する正確な境界は、意思決定のためにオブジェクトの正確な形状と位置を把握する必要がある業界で重要です。
- 医療におけるAI: 医療診断では、腫瘍や病変の正確なサイズと形状を特定することが不可欠です。インスタンスセグメンテーションにより、モデルはMRIスキャン上の異常を高精度で輪郭化できるため、放射線科医による治療計画の作成や疾患の進行状況のモニタリングを支援できます。
- 自動運転車: 自動運転車は、複雑な環境を移動するためにセグメンテーションを利用します。Cityscapesのようなデータセットを活用することで、車両は走行可能な路面を特定し、車線標示を認識し、混雑した横断歩道で個々の歩行者を分離して、安全性を確保できます。
- 農業におけるAI: 精密農業では、作物の健全性をモニタリングするためにセグメンテーションを利用します。ビジョンシステムを搭載したロボットは、収穫を自動化するために個々の果実を特定したり、対象を絞った除草剤散布のために特定の雑草を検出したりできるため、化学薬品の使用量を削減し、収穫量を最適化できます。
Pythonによるセグメンテーションの実装#
開発者は、ultralyticsライブラリを使用して、インスタンスセグメンテーションを簡単に実装できます。次の例では、事前学習済みのYOLO26モデルを読み込み、画像のセグメンテーションマスクを生成する方法を示します。
from ultralytics import YOLO
# Load a pre-trained YOLO26 instance segmentation model
# The 'n' suffix denotes the nano version, optimized for speed
model = YOLO("yolo26n-seg.pt")
# Run inference on an image
# This predicts classes, bounding boxes, and masks
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
# Displays the image with overlaid segmentation masks
results[0].show()課題とモデルのトレーニング#
インスタンスセグメンテーションは強力である一方、単純なバウンディングボックス検出と比較して計算負荷が高くなります。ピクセル単位で正確なマスクを生成するには、十分なGPUリソースと精密なデータアノテーションが必要です。これらのタスクのデータアノテーションでは、すべてのオブジェクトの周囲に密着したポリゴンを描く必要があるため、時間がかかる場合があります。
このプロセスを効率化するため、チームでは、データセット管理、自動アノテーション、クラウドベースのトレーニング機能を提供するUltralytics Platformのようなツールをよく使用します。これにより、開発者は、特定の産業用部品や生物学的標本などのカスタムデータでモデルをファインチューニングし、エッジAIデバイスに対して、ONNXやTensorRTのような最適化されたフォーマットを使用して効率的にデプロイできます。









