Instance Segmentation
インスタンスセグメンテーションがピクセルレベルの物体検出をどのように実現するかを学びます。Ultralytics YOLO26を使用して、高速かつリアルタイムのマスク生成などを実現する方法を見つけましょう。
インスタンスセグメンテーションは、コンピュータビジョン(CV)における高度な技術であり、画像内の個々の関心対象をピクセルレベルで特定および描写します。標準的な物体検出が長方形のバウンディングボックス(BBox)を使用してアイテムの位置を特定するのに対し、インスタンスセグメンテーションは検出されたすべてのエンティティに対して正確なマスクを生成することで、解析をさらに深めます。この機能により、人工知能(AI)モデルは、重なり合う2人の人物を分離するように、同じクラスの個々のオブジェクトを区別することができ、単純な分類手法と比較して、視覚的なシーンをより豊かで詳細に理解できるようになります。
Link to this sectionセグメンテーションのタイプの区別#
インスタンスセグメンテーションの有用性を十分に理解するには、他の関連する画像処理タスクとの違いを知ることが役立ちます。各手法は、アプリケーションの要件に応じて異なるレベルの粒度を提供します。
- セマンティックセグメンテーション: このアプローチは、画像内のすべてのピクセルをカテゴリ(例:「道路」、「空」、「車」)に分類します。ただし、同じカテゴリの別々のオブジェクトを区別することはありません。3台の車が並んで駐車されている場合、セマンティックセグメンテーションではそれらを単一の「車」領域として認識します。
- インスタンスセグメンテーション: この手法は、各オブジェクトを個別のエンティティとして扱います。個々のインスタンスを検出し、それぞれのピクセルに固有のラベルを割り当てます。駐車中の車の例では、インスタンスセグメンテーションは3つの異なるマスクを作成し、「車A」、「車B」、「車C」を個別に識別します。
- パノプティックセグメンテーション: セマンティックセグメンテーションの背景ラベリングと、インスタンスセグメンテーションの数え上げ可能な物体識別を組み合わせたハイブリッドアプローチです。
Link to this sectionピクセルレベル解析の仕組み#
現代のインスタンスセグメンテーションモデルは、通常、高度なディープラーニング(DL)アーキテクチャ、特に畳み込みニューラルネットワーク(CNN)に依存しています。これらのネットワークは画像から特徴を抽出し、オブジェクトのクラスと空間的な輪郭の両方を予測します。歴史的には、Mask R-CNNのような2ステージアーキテクチャが標準であり、最初に関心領域を提案し、次にそれらをマスクに洗練させていました。
しかし、近年の進歩により、YOLO26のようなシングルステージ検出器が登場し、検出とセグメンテーションを同時に実行できるようになりました。この「エンドツーエンド」のアプローチは、リアルタイム推論速度を大幅に向上させ、民生用ハードウェア上のライブビデオストリームに対して高精度のセグメンテーションを適用することを可能にしました。
Link to this section実社会での応用#
インスタンスセグメンテーションによって提供される正確な境界線は、意思決定のためにオブジェクトの正確な形状と位置を理解する必要がある業界において極めて重要です。
- ヘルスケアにおけるAI: 医療診断において、腫瘍や病変の正確なサイズと形状を特定することは不可欠です。インスタンスセグメンテーションを使用すると、モデルはMRIスキャン内の異常を高い精度で輪郭を描くことができ、放射線科医の治療計画や疾患進行のモニタリングを支援します。
- 自動運転車: 自動運転車は、複雑な環境を走行するためにセグメンテーションに依存しています。Cityscapesのようなデータセットを活用することで、車両は走行可能な路面を特定し、車線マーキングを認識し、混雑した横断歩道で個々の歩行者を分離して安全を確保することができます。
- 農業におけるAI: 精密農業では、作物の健康状態を監視するためにセグメンテーションが使用されています。ビジョンシステムを搭載したロボットは、自動収穫のために個々の果物を特定したり、特定の雑草を検出して除草剤を散布したりすることで、化学物質の使用量を削減し、収穫量を最適化することができます。
Link to this sectionPythonによるセグメンテーションの実装#
開発者は 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()Link to this section課題とモデルトレーニング#
インスタンスセグメンテーションは強力ですが、単純なバウンディングボックス検出と比較して計算負荷が高いです。ピクセル単位で完璧なマスクを生成するには、膨大なGPUリソースと正確なデータアノテーションが必要です。これらのタスクのためのデータアノテーションには、すべてのオブジェクトの周囲に正確なポリゴンを描画する必要があり、非常に時間がかかる場合があります。
To streamline this process, teams often use tools like the Ultralytics Platform, which offers features for dataset management, auto-annotation, and cloud-based training. This allows developers to fine-tune models on custom data—such as specific industrial parts or biological specimens—and deploy them efficiently to edge AI devices using optimized formats like ONNX or TensorRT.






