Semantic Segmentation
ピクセルレベルの画像理解を実現する意味セグメンテーションを解説します。Ultralytics YOLO26を使用して高精度なセグメンテーションモデルをトレーニングおよびデプロイする方法を学びます。
セマンティックセグメンテーションは、個々のピクセルすべてに特定のクラスラベルを割り当てることで、画像を明確な領域に分割するコンピュータービジョンのタスクです。画像全体に単一のラベルを割り当てる、より単純なタスクである画像分類や、物体の周囲にバウンディングボックスを描画する物体検出とは異なり、セマンティックセグメンテーションはシーンをピクセルレベルで理解します。このきめ細かな分析は、物体の正確な形状や境界が、その識別と同じくらい重要なアプリケーションで不可欠です。これにより、機械は人間に近い形で世界を「見る」ことができ、道路、歩行者、医療スキャン内の腫瘍を構成する正確なピクセルを識別できます。
セマンティックセグメンテーションの仕組み#
セマンティックセグメンテーションでは、画像を分類が必要なピクセルのグリッドとして扱います。このタスクの標準的なアーキテクチャはディープラーニングモデルで、特に畳み込みニューラルネットワーク (CNNs)が広く使用されています。広く利用されているU-Netなどの一般的なアーキテクチャでは、エンコーダー・デコーダー構造が採用されています。エンコーダーは入力画像を圧縮してテクスチャや形状などの高レベル特徴を抽出し、デコーダーはこれらの特徴を元の画像解像度までアップサンプリングして、正確なセグメンテーションマスクを生成します。
これを実現するため、モデルは、人間のアノテーターが各ピクセルをクラスに応じて慎重に色付けした大規模なアノテーション済みデータセットで学習します。Ultralytics Platformなどのツールは、アノテーションの自動化機能を提供して高品質なグラウンドトゥルースデータの作成を高速化することで、このプロセスを支援します。学習後、モデルは各ピクセルの値がクラスIDに対応するマスクを出力し、画像を効果的に意味で「塗り分け」ます。
関連する概念との違い#
セマンティックセグメンテーションを、その他のピクセルレベルのタスクと混同することはよくあります。プロジェクトに適したアプローチを選択するには、違いを理解することが重要です。
- インスタンスセグメンテーション: セマンティックセグメンテーションでは、同じクラスに属するすべての物体を1つのエンティティとして扱います(例:すべての「車」を青色で塗る)が、インスタンスセグメンテーションでは個々の物体を区別します(例:「車A」は青、「車B」は赤)。
- パノプティックセグメンテーション: これは両方の概念を組み合わせたものです。すべてのピクセルにクラスを割り当てる(セマンティック)と同時に、数えられる物体の個々のインスタンスを分離し(インスタンス)、最も包括的なシーン理解を実現します。
実世界での利用例#
ピクセル単位の正確さで視覚データを解析する能力は、多くの安全性が極めて重要な産業分野でイノベーションを推進しています。
- 自動車分野のAI: 自動運転車は、安全に走行するためにセグメンテーションに大きく依存しています。走行可能領域と歩道を識別し、歩行者、車、障害物の輪郭を正確に描画することで、自動運転システムはリアルタイムで重要な判断を下せます。
- 医療分野のAI: 医療画像処理では、モデルがCTスキャンやMRIから臓器、病変、腫瘍をセグメンテーションします。これにより、放射線科医は治療計画のために腫瘍の体積を計算したり、ロボット手術用ツールを極めて高い精度で誘導したりできます。
- 農業分野のAI: 農家は、作物の健全性を監視するために航空ドローン画像とセグメンテーションを利用します。ピクセルを「健全な作物」、「雑草」、「土壌」に分類することで、自動化システムは除草剤の散布対象を絞り込み、化学物質の使用量を削減しながら収穫量を最適化できます。
Ultralyticsでセグメンテーションを実装する#
最新のセグメンテーションモデルでは、特にエッジデバイスでのリアルタイム推論において、精度と速度のバランスを取る必要があります。Ultralytics YOLO26モデルファミリーには、-segサフィックスで示される専用のセグメンテーションモデルが含まれており、ネイティブなエンドツーエンド処理によって、YOLO11などの旧式アーキテクチャを上回るパフォーマンスを提供します。
次の例では、ultralytics Pythonパッケージを使用して画像のセグメンテーションを実行する方法を示します。これにより、物体の境界を示すバイナリマスクが生成されます。
from ultralytics import YOLO
# Load a pre-trained YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
# This will display the image with the segmentation masks overlaid
results[0].show()課題と今後の方向性#
大きな進歩を遂げているにもかかわらず、セマンティックセグメンテーションは依然として計算負荷の高い処理です。すべてのピクセルを1つずつ分類するには、大量のGPUリソースとメモリが必要です。研究者は現在、モデル量子化などの技術を検討し、負荷の高いネットワークを携帯電話や組み込みデバイスで実行できるようにするなど、これらのモデルの効率化に積極的に取り組んでいます。
さらに、大量のラベル付きデータセットが必要であることもボトルネックです。これに対処するため、業界では合成データの生成や自己教師あり学習への移行が進んでおり、何百万ものピクセルに対する手動ラベルを必要とせず、モデルが生画像から学習できるようになっています。これらの技術が成熟するにつれて、スマートカメラ、ロボティクス、拡張現実アプリケーションにおいて、セグメンテーションがさらに広く利用されるようになることが期待されます。









