はじめに
コンピュータビジョンで「何がどこにあるか」に答える二つの軸が、物体検出(object detection)と画像セグメンテーション(segmentation)です。検出は物体を矩形ボックスで囲んで位置とクラスを示し、セグメンテーションはピクセル単位で物体の境界を描きます。本記事では、両分野の代表的なモデルがどのようなアイデアの系譜をたどって発展してきたかを、アーキテクチャの原理を中心に整理します。
先に一つ前提を述べておきます。ビジョンの SOTA は非常に速く変わり、特定ベンチマークの順位や数値はバージョンや設定によって変わります。したがって本記事は、具体的なリーダーボード順位よりも、各モデルが導入した中核概念と、それが後続研究に残した影響に注目します。確かでない最新スペックは断定せず、系統レベルで説明します。
物体検出の系譜
2 段階検出: R-CNN 系
検出の初期の深層学習アプローチは、「まず物体がありそうな候補領域を抽出し、次に各候補を分類する」という 2 段階構造でした。R-CNN がこの流れを開き、その後、速度と精度を改善しながら発展しました。
- **R-CNN**: 選択的探索(selective search)で候補領域を抽出し、各領域を CNN に通して特徴を取り出し、分類器で判定します。正確ですが、候補ごとに CNN を繰り返し実行するため非常に遅いものでした。
- **Fast R-CNN**: 画像全体を CNN に一度だけ通し、RoI Pooling で各候補の特徴を共有特徴マップから切り出して再利用します。繰り返し計算を大きく削減しました。
- **Faster R-CNN**: 候補領域の生成自体をニューラルネット(Region Proposal Network, RPN)に統合しました。これで検出全体が一つの学習可能なパイプラインになりました。
2 段階系は精度が高い一方、候補生成と判定を分ける構造ゆえに、リアルタイム推論には比較的重いものでした。
1 段階検出: YOLO と SSD
1 段階検出は候補領域生成の段階をなくし、画像を格子に分けて各位置でボックスとクラスを一度に予測します。「You Only Look Once」の名の通り、一度の順伝播で検出を終えます。
- **YOLO**: 画像を格子に分割し、各セルがボックス座標とクラス確率を直接回帰します。速く、リアルタイム応用に適しています。
- **SSD(Single Shot Detector)**: 複数解像度の特徴マップから様々なサイズのボックスを予測し、小さな物体と大きな物体を同時に扱います。
1 段階系は速度と精度のバランスをとり、実務で広く使われてきました。特に YOLO はその後、複数のバージョンを経て、バックボーン、特徴融合(neck)、損失関数、学習手法を継続的に改善してきました。バージョンごとに詳細構造と性能は異なるため、ここでは「1 段階・アンカーベースから出発し、アンカーフリーやエンドツーエンドの要素を取り込みながらリアルタイム検出の代表系統になった」という系統の流れだけを整理します。
アンカーと NMS という二つのつまみ
伝統的な検出器は、人が設計した二つの要素に依存していました。
- **アンカー(anchor)**: あらかじめ定めた様々なサイズ・比率の基準ボックス。モデルはアンカーを基準に物体ボックスを調整(回帰)します。
- **NMS(Non-Maximum Suppression)**: 一つの物体に複数のボックスが重なって出るとき、スコアの低い重複ボックスを事後に除去する後処理です。
この二つはうまく機能しましたが、ハイパーパラメータ調整が必要で、パイプラインを「完全なエンドツーエンド」にできない障害でもありました。次に登場する DETR は、まさにこの点を狙います。
トランスフォーマー検出: DETR
DETR(DEtection TRansformer, arXiv 2005.12872)は、検出を**集合予測(set prediction)**問題として再定義しました。格子・アンカー・NMS の代わりに、トランスフォーマーが物体の集合を直接出力するようにしたのが核心です。
基本的なアイデアは次の通りです。
- CNN バックボーンが画像特徴を抽出し、トランスフォーマーエンコーダが全域的な関係を整理します。
- デコーダは学習された**オブジェクトクエリ(object query)**の集合を入力とし、各クエリが一つの物体(または「物体なし」)を予測します。
- 学習時には**ハンガリアンマッチング(Hungarian matching)**で予測と正解を 1 対 1 に対応させ、重複予測がそもそも生じないように誘導します。その結果、NMS の後処理が不要になります。
DETR 検出パイプライン(概念)
画像
|
[CNN バックボーン] --> 特徴マップ
|
[トランスフォーマーエンコーダ] (全域 self-attention)
|
[トランスフォーマーデコーダ] <-- オブジェクトクエリ集合 (例: N 個)
|
各クエリ -> (ボックス座標, クラス または "no object")
|
ハンガリアンマッチングで正解と 1:1 対応させ学習
|
結果: NMS なしで物体の集合を直接出力
DETR は概念的には優雅ですが、初期版は収束が遅く小さな物体に弱いという限界がありました。その後の研究がこの問題を狙いました。
- **Deformable DETR**: 特徴マップ全体ではなく少数の参照点の周りだけに注意(attention)することで、収束を速め小物体性能を改善しました。
- **DINO 系などの改良版**: クエリ初期化、ノイズ対比学習(denoising)などで精度と収束を引き上げた後続系統が続きました。
まとめると、検出の大きな流れは「2 段階(正確だが重い)→ 1 段階(速い、リアルタイム)→ トランスフォーマー集合予測(エンドツーエンド、後処理の除去)」へと続き、実務では今も三つの系統が目的に応じて共存しています。
検出系統の比較
| 系統 | 代表 | 候補生成 | 後処理 | 特徴 |
|---|---|---|---|---|
| 2 段階 | Faster R-CNN | RPN | NMS | 高精度、比較的重い |
| 1 段階 | YOLO, SSD | なし(直接予測) | NMS | 速い、リアルタイム向き |
| トランスフォーマー | DETR 系 | オブジェクトクエリ | 不要(集合予測) | エンドツーエンド、概念的に単純 |
表の精度・速度は絶対的な順位ではなく、系統の一般的な傾向として理解するのが安全です。実際の値はバックボーン、入力解像度、学習データ、バージョンによって大きく変わります。
画像セグメンテーションの三つの課題
セグメンテーションは「何がどこにあるか」をピクセル単位で答えます。目標に応じて三つに分かれます。
- **セマンティックセグメンテーション**: 各ピクセルにクラスを付与します。同じクラスの異なる個体は区別しません。例: 道路・空・人の領域を色で塗るが、人 3 人を一つの塊とみなします。
- **インスタンスセグメンテーション**: 個々の物体(インスタンス)をピクセルマスクで区別します。人 3 人をそれぞれ別のマスクに分離します。
- **パノプティックセグメンテーション**: セマンティックとインスタンスを統合します。背景のように数えられない領域(stuff)はセマンティックに、数えられる物体(things)はインスタンスとして扱い、シーン全体をもれなく説明します。
同じシーン、三つのセグメンテーションの見方
セマンティック: [人][人][人] -> すべて「人」一色
インスタンス: [人1][人2][人3] -> 個体ごとのマスク
パノプティック: things(人1,2,3) + stuff(道路, 空) 統合
セグメンテーションアーキテクチャの流れ
- **FCN(Fully Convolutional Network)**: 全結合層を畳み込みに置き換え、任意サイズ入力をピクセル単位で分類する道を開きました。
- **U-Net**: エンコーダで縮小して文脈を得て、デコーダで復元して細部を活かしつつ、スキップ接続で低レベルの位置情報を伝えます。医用画像などで広く使われます。
- **Mask R-CNN**: Faster R-CNN にマスク予測分岐を加え、インスタンスセグメンテーションの標準的アプローチになりました。検出とセグメンテーションを一つの枠にまとめた代表例です。
- **マスクベースのトランスフォーマーアプローチ**: 近年はセマンティック・インスタンス・パノプティックを一つの「マスク集合予測」の枠に統合しようとするトランスフォーマー系研究が活発です。DETR の集合予測の考え方がセグメンテーションへ拡張された流れと見られます。
Segment Anything: プロンプト可能セグメンテーション
発想の転換
Segment Anything(SAM, arXiv 2304.02643)は、セグメンテーションの見方を変えました。従来のモデルは概ね「決まったクラス集合」をピクセルに付与するよう特定データセットに合わせて学習していました。SAM は代わりに**プロンプト可能セグメンテーション(promptable segmentation)**という課題を提案します。点、ボックス、大まかなマスクといったプロンプトを与えると、そのプロンプトが指す対象をクラス名なしでも分割します。
構造
SAM は大きく三つの部分から構成されます。
SAM 構造(概念)
画像 --> [画像エンコーダ(重い, 1 回計算)] --> 画像埋め込み
|
プロンプト(点/ボックス/マスク) --> [プロンプトエンコーダ] --> プロンプト埋め込み
|
v
[軽量マスクデコーダ] --> マスク(複数)
|
曖昧なとき: 複数候補マスク + 信頼度スコア
- **画像エンコーダ**: 概ね重いビジョントランスフォーマーで画像を一度エンコードします。この埋め込みは再利用されるので、同じ画像で複数のプロンプトを速く処理できます。
- **プロンプトエンコーダ**: 点・ボックス・マスクのプロンプトを埋め込みに変換します。
- **マスクデコーダ**: 画像埋め込みとプロンプト埋め込みを結合してマスクを出力します。プロンプトが曖昧なとき(例: 服の一点を指したとき、「服」か「人」か)、複数の候補マスクとそれぞれの信頼度スコアを一緒に出します。
データエンジン
SAM でよく強調されるもう一つの軸は、大規模なマスクデータを作った方法です。モデルと人が交互にマスクを生成・検査する反復過程を通じて、人が直接描くのが難しい規模のマスクデータを構築しました。「多くの種類の物体をプロンプトで分離する」という汎化能力の相当部分が、この大規模で多様なデータから来ています。
SAM の意味と限界
- **意味**: SAM は特定のクラスに縛られない汎用セグメンテーションの可能性を示しました。他の検出器・認識器と組み合わせれば、「このボックス内の物体をマスクとして切り出す」といった下流タスクの強力な部品になります。
- **限界**: SAM 自体は「これは猫だ」といった意味ラベルを直接付与しません。クラス認識には別のモデルやプロンプト設計が必要です。また画像エンコーダが重いため、リアルタイム・軽量環境では軽量化変種や後続研究が求められます。
オープンボキャブラリ検出・セグメンテーション
伝統的な検出器は、学習時に見た固定のクラス一覧しか認識しません。**オープンボキャブラリ(open-vocabulary)**アプローチは、この制約をゆるめようとする流れです。テキストと画像を一緒に学習した表現(例: 画像とテキストを同じ空間に整列させる対照学習系)を活用すれば、学習時に明示的にラベル付けしなかったクラスもテキスト説明で指示して見つけられます。
- **アイデア**: クラスを固定の整数ラベルではなくテキスト埋め込みとして扱います。「赤い傘」のような自由な表現で対象を指定できます。
- **効果**: 新しいカテゴリを毎回再学習せずに指示でき、柔軟です。
- **注意**: 自由テキスト指示の精度は対象・表現・ドメインによって差が大きいです。実務では対象ドメインに合わせた検証が必要です。
SAM 系のプロンプト可能セグメンテーションとオープンボキャブラリ検出を組み合わせれば、「テキストで何を探すかを指示し、その対象をピクセルマスクで分離する」というパイプラインを構成できます。検出・セグメンテーション・言語整列表現が部品のように結合するのが近年の流れの特徴です。
バックボーンの進化: 何が特徴を抽出するか
検出・セグメンテーションモデルは概ね「バックボーン(backbone)+ ネック(neck)+ ヘッド(head)」の三つに分けて見られます。このうちバックボーンは画像から特徴を抽出する核心部品であり、バックボーンの発展が検出・セグメンテーション性能の相当部分を牽引してきました。
- **CNN バックボーン**: ResNet 系のように畳み込みを深く積んで局所パターンを階層的に学習します。長く検出・セグメンテーションの標準バックボーンでした。
- **特徴ピラミッド(FPN)**: 異なる解像度の特徴マップを上下につなぎ、小さな物体(高解像度)と大きな物体(低解像度)を一緒に扱います。多スケール検出の核心部品です。
- **ビジョントランスフォーマーバックボーン**: 画像をパッチに分けてアテンションで全域関係を学習します。階層的トランスフォーマーバックボーンは局所性と全域性をともに活かし、検出・セグメンテーションのバックボーンとしても広く使われます。
検出・セグメンテーションモデルの 3 段構成(概念)
画像
|
[バックボーン] --> 様々な解像度の特徴マップ
|
[ネック(FPN など)] --> スケール間の特徴融合
|
[ヘッド] --> ボックス/クラス または マスク予測
バックボーン選択は精度と速度の大きなつまみです。重いバックボーンは正確だが遅く、軽量バックボーンは速いが難しいシーンで損をします。実務では目標遅延・精度に合わせてバックボーンを選び、必要なら事前学習済みの重みから始めます。
評価指標: mAP と IoU
検出・セグメンテーション結果をどう「良い/悪い」と判定するかを理解すると、ベンチマーク数値をはるかに正確に読めます。
- **IoU(Intersection over Union)**: 予測領域と正解領域の重なり具合です。交集合を和集合で割った値で、1 に近いほどよく合っています。ボックスでもマスクでも「どれだけ重なるか」を測る基本尺度です。
- **精度・再現率(precision・recall)**: 精度は「予測したうち正しかった割合」、再現率は「正解のうち見つけた割合」です。両者は相反する傾向があり、一緒に見るべきです。
- **AP・mAP(mean Average Precision)**: 様々な信頼度閾値で精度-再現率曲線の下の面積を求めクラスごとに平均した値です。検出・インスタンスセグメンテーションの代表指標です。
IoU 概念(ボックス例)
IoU = 交集合の面積 / 和集合の面積
よく合う: 予測と正解が大きく重なる --> IoU 高い
外れ: 重なり小さい --> IoU 低い
通常 IoU 閾値(例: 0.5)以上なら「正しい検出」として数える
注意すべきは、mAP 一つでモデルを並べにくいことです。同じ mAP でも小さな物体・大きな物体・特定クラスでの強弱が異なりえます。またベンチマークデータセットの特性(都市の道路、屋内、航空など)によって順位が入れ替わることもあります。数値は「どのデータセットで、どの IoU 基準で」測ったものかを一緒に見て初めて意味があります。
損失関数の観点
検出・セグメンテーションモデルは複数の損失を合わせて学習します。各損失が何を教えるかを知ればモデルの振る舞いを理解しやすくなります。
- **分類損失**: 各位置・候補がどのクラスか(または背景か)を当てるよう教えます。背景がはるかに多い不均衡問題を扱うため、難しい例に重みを与える損失が使われることもあります。
- **ボックス回帰損失**: 予測ボックスを正解ボックスに近づけます。座標差を直接測るか、IoU 自体を損失にする方式があります。
- **マスク損失(セグメンテーション)**: ピクセル単位でマスクを正解と比較します。ピクセル分類損失や領域の重なりを測る損失が一緒に使われます。
- **マッチング損失(DETR 系)**: 予測集合と正解集合を 1:1 に対応づけたうえで、対応したペアについてのみ上記の損失を計算します。
損失設計はしばしば精度と安定性を左右します。例えば背景不均衡をうまく扱えないと、モデルが「すべて背景」と予測する方へ偏ることがあります。
ここで覚えておくべきは、複数の損失の重みの均衡がモデルの性向を変えることです。ボックス回帰に大きな重みを与えると位置は正確になりますが分類が揺れることがあり、逆もまた然りです。難しい例を強調する損失は稀な物体をよく捉えさせますが、ラベル雑音が多いとかえって雑音を学習する危険があります。損失は「何をより重要と見るか」をモデルに伝える言語だと考えると理解しやすいです。
実務パイプラインとよくある失敗
実際の検出・セグメンテーションシステムを作るとき繰り返し出会う点を整理します。
- **データが 8 割**: ドメインに合ったラベルデータの量と質が性能を左右します。照明・角度・隠れが多様なデータが一般化を助けます。
- **クラス不均衡**: よくあるクラスと稀なクラスの比の差が大きいと稀なクラスが無視されます。サンプリング・重み・拡張で緩和します。
- **小物体問題**: 小さな物体は特徴マップでピクセルが少なく見逃しやすいです。高解像度入力、多スケール特徴(FPN)、タイリング推論が助けになります。
- **ドメインギャップ**: 学習データと実際の配備環境が異なると性能が落ちます。配備環境データへの微調整やドメイン適応が必要です。
- **後処理チューニング**: NMS 閾値、信頼度閾値のような値は目標(再現率優先対精度優先)に合わせて調整すべきです。
典型的な検出パイプライン(概念)
データ収集/ラベリング
|
前処理・拡張 (クロップ, 色変形, モザイクなど)
|
事前学習バックボーンで学習
|
検証セットで mAP 測定 + 閾値チューニング
|
配備環境データで微調整
|
軽量化(量子化など)後に配備
|
運用中の誤検出/見逃しを収集 -> データにフィードバック
最もよくある失敗は「ベンチマーク数値が良いから自分の問題もうまく解けるだろう」と仮定することです。ベンチマークと実際のドメインの差を常に検証し、自分のデータで測り直す習慣が重要です。
検出とセグメンテーションの結合
近年の流れの大きな特徴の一つは、検出とセグメンテーションと言語が互いに部品のように結合することです。代表的な組み合わせを整理します。
- **検出 + SAM**: 検出器で物体ボックスを得て、そのボックスを SAM のプロンプトとして与え精密なマスクを得ます。「何がどこに」を検出が、「ピクセル境界」を SAM が担当します。
- **オープンボキャブラリ検出 + SAM**: テキストで対象を指示してボックスを得て、SAM でマスクを切り出し、必要なら追跡器でフレームにわたって追います。
- **セグメンテーション + 深度・3D**: セグメンテーションマスクと深度情報を結合すれば「この物体がどこにどれだけ離れているか」まで分かり、ロボティクス・AR で有用です。
こうした組み合わせは、各部品が独立に発展しつつも標準的なインターフェース(ボックス、マスク、テキスト埋め込み)でつながるから可能です。系譜を理解するとは、これらの部品をどう組み立てられるかを知ることと同じです。
リアルタイム検出の観点
実務では検出がしばしば遅延時間を核心的な制約とします。リアルタイム検出を左右する要素はおおよそ次の通りです。
- **バックボーンの軽量化**: 計算量を減らしたバックボーンと効率的な特徴融合で処理量を高めます。
- **アンカーフリー・エンドツーエンド要素**: 後処理と調整の負担を減らしてパイプラインを単純化します。
- **入力解像度の調整**: 解像度を下げると速くなりますが、小物体性能が落ちるトレードオフがあります。
- **ハードウェア・量子化**: 精度を下げたり(量子化)、特定のアクセラレータに合わせて最適化して処理量を引き上げます。
YOLO 系が長くリアルタイム検出の代表として言及されてきた理由は、精度を大きく犠牲にせずこれらの要素をバランスよく扱ってきたからです。ただしどのバージョンが「最良か」は、目標遅延、精度要求、配備ハードウェアによって変わるので、絶対的な結論は避けるほうが安全です。
強みと限界のまとめ
| アプローチ | 強み | 限界 |
|---|---|---|
| Faster R-CNN | 安定した高精度 | リアルタイムには比較的重い |
| YOLO/SSD | 速いリアルタイム推論 | 極小物体・密集シーンで難しい場合 |
| DETR 系 | エンドツーエンド、NMS 不要 | 初期版の遅い収束(後続版が改善) |
| Mask R-CNN | 検出+インスタンス分割の統合 | 重いパイプライン |
| SAM | クラス非依存の汎用セグメンテーション | 意味ラベルなし、重いエンコーダ |
| オープンボキャブラリ | 自由テキストで指示 | ドメイン・表現ごとの精度差 |
系譜を一目で
ここまでの流れを時間順の発展系譜として整理すると次の通りです。各段階が前の段階の何を学習で吸収したかに注目すると、大きな絵が見えます。
検出・セグメンテーションの発展系譜(概念)
[検出]
R-CNN --> Fast R-CNN --> Faster R-CNN (候補生成を RPN に吸収)
\--> YOLO / SSD (候補生成の除去, 1 段階)
\--> DETR (アンカー・NMS 除去, 集合予測)
\--> Deformable/DINO など (収束・小物体の改善)
[セグメンテーション]
FCN --> U-Net (エンコーダ-デコーダ, スキップ)
\--> Mask R-CNN (検出+インスタンス分割)
\--> マスクトランスフォーマー系 (統合マスク集合予測)
[汎用化]
SAM (プロンプト可能セグメンテーション)
+ オープンボキャブラリ (テキストで指示)
= 部品組み立て型ビジョンシステム
この系譜で繰り返されるパターンは「人が手でチューニングしていた要素を学習可能な部品に置き換える」ことです。この観点を持てば、新しく登場するモデルが系譜のどの位置に置かれるかを速く把握できます。
一つ付け加えると、この系譜は「新しいものが古いものを完全に置き換える」という話ではありません。Faster R-CNN のような 2 段階検出器は精度が重要な場所で今も使われ、YOLO 系はリアルタイムの標準として残り、DETR 系は後処理のない優雅さで場所を広げていきます。各系統は異なる相反点の上にあり、実務はその相反のどこに立ちたいかによって選びます。
どの状況に何を選ぶか
- **精度が最優先、遅延に余裕**: Faster R-CNN のような 2 段階または強いバックボーンの検出器。精密なインスタンス分割が必要なら Mask R-CNN 系。
- **リアルタイムが必須(監視・ロボット・モバイル)**: YOLO 系のような 1 段階検出器を軽量バックボーン・量子化とともに。
- **後処理チューニングを減らしたい**: DETR 系のエンドツーエンドアプローチ。ただし学習コスト・収束を考慮。
- **精密マスクが必要、クラスは柔軟に**: 検出器で対象を見つけ SAM でマスクを切り出す組み合わせ。
- **新しいクラスを頻繁に扱う**: オープンボキャブラリ検出でテキスト指示。ただしドメイン検証必須。
正解は一つではなく、多くは複数の部品を組み合わせて目標に合わせます。これが系譜を理解する実用的な理由です。
おわりに
検出とセグメンテーションの発展は、「人が設計した部品を一つずつ学習で吸収してきた過程」とまとめられます。候補生成は RPN に、後処理は集合予測に、固定のクラスはテキスト整列表現に置き換えられてきました。SAM はここに「プロンプトで何でもセグメントする」という軸を加えました。
核心は特定モデルの瞬間的な順位ではなく、各モデルが導入した概念が部品のように再結合され、ビジョンシステム全体を柔軟にしてきたという点です。新しい SOTA が現れても、この系譜の考え方を理解していれば、変化をはるかに速く追えます。
最後に実務者の態度を一つ強調したいです。ベンチマークリーダーボードの最上位モデルを無条件に持ってくるより、自分の問題が要求する相反点(遅延対精度、ボックス対マスク、固定クラス対自由指示)をまず明確にするほうがよいです。その相反点が決まれば、本記事で整理した系譜の上で適切な部品を選び組み立てる作業がはるかに容易になります。モデルは変わり続けますが、相反を扱う考え方は長く残ります。
参考資料
- DETR 論文「End-to-End Object Detection with Transformers」: [arxiv.org/abs/2005.12872](https://arxiv.org/abs/2005.12872)
- Segment Anything 論文: [arxiv.org/abs/2304.02643](https://arxiv.org/abs/2304.02643)
- Segment Anything 公式ページ: [segment-anything.com](https://segment-anything.com)
- Faster R-CNN 論文: [arxiv.org/abs/1506.01497](https://arxiv.org/abs/1506.01497)
- Mask R-CNN 論文: [arxiv.org/abs/1703.06870](https://arxiv.org/abs/1703.06870)
- U-Net 論文: [arxiv.org/abs/1505.04597](https://arxiv.org/abs/1505.04597)
- Deformable DETR 論文: [arxiv.org/abs/2010.04159](https://arxiv.org/abs/2010.04159)
- SSD 論文: [arxiv.org/abs/1512.02325](https://arxiv.org/abs/1512.02325)
- Segment Anything コード: [github.com/facebookresearch/segment-anything](https://github.com/facebookresearch/segment-anything)
クイズ
2 段階はまず候補領域を生成してから各候補を分類します(例: Faster R-CNN)。1 段階は候補生成の段階なしに画像からボックスとクラスを一度に予測します(例: YOLO, SSD)。1 段階が普通は速いです。
学習時にハンガリアンマッチングで予測と正解を 1:1 に対応させ、重複予測が生じないよう誘導するからです。集合予測方式なので、重なるボックスを事後に除去する必要がありません。
セマンティックはピクセルごとにクラスのみ付与し個体を区別しません。インスタンスは個々の物体を別々のマスクに分離します。パノプティックは背景(stuff)をセマンティックに、物体(things)をインスタンスとして扱い両者を統合します。
点、ボックス、大まかなマスクといったプロンプトを与えると、クラス名なしでもその対象を分割する方式です。固定のクラス集合に縛られない汎用セグメンテーションを目指します。
画像エンコーダは重いですが 1 画像あたり一度だけ計算し埋め込みを再利用します。マスクデコーダは軽く、同じ画像で複数のプロンプトを速く処理できます。
クラスを固定の整数ラベルではなくテキスト埋め込みとして扱い、学習時に明示的にラベル付けしなかった対象も自由テキストで指示して見つけることです。テキスト画像整列表現を活用します。
SAM はマスクを作るだけで「これは何だ」という意味ラベルを直接付けません。クラス認識には別のモデルが必要で、画像エンコーダが重いためリアルタイム・軽量環境には軽量化が求められます。
精度と速度がバックボーン、入力解像度、学習データ、バージョン、配備ハードウェアによって大きく変わるからです。目標遅延と精度要求に合わせて系統を選ぶのが現実的です。
IoU は予測領域と正解領域の重なり(交集合/和集合)を測る基本尺度です。mAP は様々な信頼度閾値での精度-再現率曲線の下の面積をクラスごとに平均した値で、検出・インスタンスセグメンテーションの代表指標です。
異なる解像度の特徴マップを融合し、小さな物体(高解像度)と大きな物体(低解像度)を一緒に扱えるよう助ける部分です。多スケール検出の核心部品です。
ベンチマークデータセットの特性と実際の配備ドメインが異なりうるからです。照明・角度・クラス分布が異なると性能が落ちるので、自分のデータで検証し直すことが重要です。
検出器で物体ボックスを得て、そのボックスを SAM のプロンプトとして与え精密なピクセルマスクを得ます。「何がどこに」は検出器が、「ピクセル境界」は SAM が担当する役割分担です。
현재 단락 (1/195)
コンピュータビジョンで「何がどこにあるか」に答える二つの軸が、物体検出(object detection)と画像セグメンテーション(segmentation)です。検出は物体を矩形ボックスで囲んで位置...