Instance Segmentation
インスタンスセグメンテーションがピクセルレベルの物体検出をどのように実現するかを学びます。Ultralytics YOLO26を使用して、高速かつリアルタイムのマスク生成などを実現する方法を見つけましょう。
インスタンスセグメンテーションは、computer vision (CV)における洗練された技術であり、画像内のそれぞれの異なる対象物をピクセル単位で識別し、輪郭を描き出します。標準的なobject detectionが長方形のbounding boxesを使用してアイテムをローカライズするのに対し、インスタンスセグメンテーションは検出されたすべてのエンティティに対して正確なマスクを生成することで、分析をさらに深めます。この機能により、artificial intelligence (AI)モデルは、重なり合う2人の人物を分離するなど、同じクラスの個々のオブジェクトを区別できるようになり、より単純な分類方法と比較して、視覚的シーンをより豊かで詳細に理解することができます。
セグメンテーションのタイプの区別#
インスタンスセグメンテーションの有用性を十分に理解するには、他の関連する画像処理タスクとの違いを知ることが役立ちます。各手法は、アプリケーションの要件に応じて異なるレベルの粒度を提供します。
- Semantic Segmentation: このアプローチは、画像内のすべてのピクセルをカテゴリ(例:「道路」、「空」、「車」)に分類します。ただし、同じカテゴリの別々のオブジェクトを区別することはしません。3台の車が互いに隣り合って駐車している場合、セマンティックセグメンテーションはそれらを単一の「車」の領域とみなします。
- Instance Segmentation: この手法は、各オブジェクトを独自のエンティティとして扱います。個々のインスタンスを検出し、それぞれのピクセルに一意のラベルを割り当てます。駐車されている車の例では、インスタンスセグメンテーションによって3つの異なるマスクが作成され、「車 A」、「車 B」、「車 C」が個別に識別されます。
- Panoptic Segmentation: セマンティックセグメンテーションの背景ラベリングと、インスタンスセグメンテーションのカウント可能なオブジェクト識別を組み合わせたハイブリッドアプローチです。
ピクセルレベル解析の仕組み#
近代的なインスタンスセグメンテーションモデルは通常、高度なdeep learning (DL)アーキテクチャ、特にConvolutional Neural Networks (CNNs)に依存しています。これらのネットワークは、画像から特徴を抽出し、オブジェクトのクラスと空間的輪郭の両方を予測します。歴史的に、Mask R-CNNのような2ステージアーキテクチャが標準であり、最初にに関心領域を提案し、次にそれらをマスクに洗練させていました。
しかし、最近の進歩により、検出とセグメンテーションを同時に実行するYOLO26のようなシングルステージ検出器が登場しました。この「エンドツーエンド」アプローチにより、real-time inferenceの速度が大幅に向上し、コンシューマーハードウェア上のライブビデオストリームに高精度なセグメンテーションを適用することが可能になります。
実社会での応用#
インスタンスセグメンテーションによって提供される正確な境界線は、意思決定のためにオブジェクトの正確な形状と位置を理解する必要がある業界において極めて重要です。
- AI in Healthcare: 医療診断において、腫瘍や病変の正確なサイズと形状を特定することは非常に重要です。インスタンスセグメンテーションにより、モデルはMRI scansの異常を高精度で輪郭を描き出すことができ、放射線科医の治療計画の立案や疾患の進行のモニタリングを支援します。
- Autonomous Vehicles: 自動運転車は、複雑な環境をナビゲートするためにセグメンテーションに依存しています。Cityscapesなどのデータセットを活用することで、車両は走行可能な路面を特定し、車線マーキングを認識し、混雑した横断歩道で個々の歩行者を分離して安全性を確保することができます。
- AI in Agriculture: 精密農業では、作物健康状態を監視するためにセグメンテーションを使用します。ビジョンシステムを搭載したロボットは、自動収穫用の個々の果物を特定したり、標的を絞った除草剤散布用の特定の雑草を検出したりすることができ、化学薬品の使用量を削減し、収穫量を最適化します。
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 resourcesと正確なdata annotationが必要です。これらのタスクのためのデータアノテーションには、すべてのオブジェクトの周囲にタイトなポリゴンを描画することが含まれており、時間がかかる場合があります。
このプロセスを合理化するために、チームはUltralytics Platformのようなツールをよく使用します。これは、データセット管理、自動アノテーション、およびクラウドベースのトレーニングのための機能を提供します。これにより、開発者はカスタムデータ(特定の工業部品や生物学的標本など)でモデルを微調整し、ONNXやTensorRTなどの最適化されたフォーマットを使用して、edge AIデバイスに効率的にデプロイできます。






