モデル解説 Page 2/5

物体検出(5モデル)+ セグメンテーション(6モデル)+ 姿勢推定(1モデル)── 全12モデル

🎯 3つのタスクの違い

画像分類

🐱 猫

画像全体を1つのラベルで分類

物体検出

物体の位置(BBox)+種類

セマンティック
セグメンテーション

ピクセル単位でクラス分類
(個体の区別なし)

インスタンス
セグメンテーション

ピクセル単位+個体を区別
(猫Aと猫Bを分ける)

⚡ 物体検出:2段階方式 vs 1段階方式

物体検出モデルは大きく2つのアプローチに分かれる。

2段階方式(Two-Stage)

R-CNN系

Step1: どこにある?
Step2: 何がある?

✓ 精度が高い

✗ 速度が遅い

1段階方式(One-Stage)

YOLO / SSD

位置と種類を同時に予測!

✓ リアルタイム処理可能

✗ 精度はやや劣る(初期は)

2014 R-CNN ─ 物体検出の元祖

Region-based CNN。候補領域を約2,000個抽出し、各領域にCNNを適用して分類。正確だが非常に遅い。

R-CNNの処理フロー

入力画像
Selective Search
〜2,000個の候補領域
各領域をCNNに入力
×2,000回!
SVM分類
+ BBox回帰

問題点:CNNを2,000回実行 → 1枚あたり約47秒(遅すぎる)

2015 Fast R-CNN ─ CNN共有で高速化

R-CNNの改良版。画像全体を1回だけCNNに通し、特徴マップ上から候補領域を切り出す。

改善ポイント:CNNを1回だけ実行

入力画像
CNN
画像全体を1回だけ
特徴マップ
RoI Pooling
候補領域を切り出し
FC層
分類 + BBox

CNNが1回で済むので R-CNNの約146倍高速

RoI Pooling(Region of Interest Pooling):候補領域のサイズがバラバラでも、固定サイズに変換してFC層に入力できるようにする仕組み。

2015 Faster R-CNN ─ RPNで完全End-to-End化

候補領域の生成もCNN化(RPN)。Selective Search(従来の手動的な候補生成)を廃止し、全てNN内で完結するEnd-to-End学習を実現。

Faster R-CNN = CNN + RPN + RoI Pooling + FC

入力画像
CNN
特徴抽出
RPN
候補領域を生成
RoI Pooling
分類 + BBox

RPN(Region Proposal Network)の仕組み

特徴マップ上の各点に複数の「アンカーボックス」を配置し、「物体あり/なし」と「位置の微調整」を同時予測。

特徴マップ
→ 各点に
複数サイズの
アンカーボックスを
配置して候補を予測
試験ポイント:R-CNN系3兄弟の進化を整理して覚える → R-CNN(遅い)→ Fast R-CNN(CNN共有)→ Faster R-CNN(RPN追加でEnd-to-End)

📊 R-CNN系の進化比較

モデル候補領域の生成CNNの実行回数速度End-to-End
R-CNNSelective Search〜2,000回47秒/枚
Fast R-CNNSelective Search1回0.32秒/枚△(候補生成は別)
Faster R-CNNRPN(学習可能)1回0.2秒/枚

2016 YOLO ─ 1回見るだけで全物体検出

You Only Look Once。1段階方式の代表。画像をグリッドに分割し、各セルが同時に「物体の位置」と「クラス」を予測。リアルタイム処理を実現。

YOLOの仕組み

🐱
🐶

① 画像をS×Sグリッドに分割

各セルが予測:
■ BBox座標(x,y,w,h)
■ 物体の信頼度
■ クラス確率

② 各セルが同時に予測

NMS
重複を除去

③ 最終結果

試験ポイント:「You Only Look Once(1回見るだけ)」「グリッド分割」「リアルタイム検出」。速度重視の1段階方式。

2016 SSD ─ マルチスケールで同時検出

Single Shot MultiBox Detector。YOLOと同じ1段階方式だが、複数の解像度(特徴マップ)で検出することで大小の物体に対応。

SSDの仕組み:マルチスケール検出

38×38

大きい特徴マップ
→ 小さい物体を検出

19×19

中くらい

10×10

中くらい

5×5

小さい特徴マップ
→ 大きい物体を検出

各スケールで同時にBBox+クラスを予測

YOLO vs SSD:YOLOは1つのグリッドで検出するため小さい物体が苦手だった。SSDは複数スケールの特徴マップを使うことで大小の物体に対応。

📊 1段階方式 vs 2段階方式 比較表

モデル方式速度精度特徴
Faster R-CNN2段階RPN+分類。精度重視
YOLO1段階非常に速いグリッド分割。リアルタイム
SSD1段階速い中〜高マルチスケール検出

🧩 セグメンテーションモデル

画像の各ピクセルにクラスラベルを割り当てるタスク。物体検出の「四角い枠」ではなく、輪郭に沿った正確な領域を得られる。

FCN(2015)─ セマンティックセグメンテーションの元祖

Fully Convolutional Network。分類モデル(VGGなど)の全結合層を畳み込みに置き換え、入力と同じサイズの「ラベルマップ」を出力。

入力画像
H×W
Conv層×N
(VGGベース)
1×1 Conv
(FC層の代わり)
Upsampling
(逆畳み込みで復元)
ラベルマップ
H×W

全結合層をなくす → 任意サイズの入力に対応 + 空間情報を保持

🏗️ エンコーダ・デコーダ型

「圧縮(エンコーダ)→ 復元(デコーダ)」の構造で高精度なセグメンテーションを実現。

SegNet (2015)

プーリングのインデックスを記憶

Enc
Dec

MaxPool時の位置情報(index)を保存しておき、デコーダで正確に復元。パラメータ効率が良い。

U-Net (2015)

U字型+スキップ結合

Enc
←skip→
Dec

エンコーダの各段の特徴をデコーダに直接スキップ結合。細部の情報を保持。医療画像で大活躍。

🔬 広い文脈を利用するモデル

PSPNet (2017)

Pyramid Scene Parsing Network

異なるスケール(1×1, 2×2, 3×3, 6×6)でプーリングし、文脈情報をピラミッド状に統合。

1×1
2×2
3×3
6×6

→ 結合して文脈を豊かに

DeepLab (2015〜)

Google開発

Dilated Conv(穴あき畳み込み)でパラメータを増やさずに受容野を拡大。

フィルターに隙間を空けて広い範囲を見る
(Atrous / Dilated Convolution)

2017 Mask R-CNN ─ インスタンスセグメンテーション

Faster R-CNNにマスク予測ブランチを追加。検出した各物体に対してピクセルレベルのマスクを生成。個体を区別できる。

Mask R-CNN = Faster R-CNN + マスク予測

CNN
RPN
RoI
Align
分類 + BBox
マスク予測
(ピクセル単位)

RoI Poolingの代わりにRoI Alignを使用(位置ズレを防止)

試験ポイント: 「Faster R-CNN+マスク」「インスタンスセグメンテーション」「RoI Align(PoolingよりAlignの方が精密)」。 セマンティック(クラスのみ区別)とインスタンス(個体も区別)の違いは頻出。

2017 OpenPose ─ 人体姿勢推定

画像から人の関節位置(鼻、肩、肘、手首…)をリアルタイムに検出するモデル。複数人の同時推定が可能。

OpenPoseの2つの出力

Confidence Maps

各関節が「画像のどこにあるか」の確率マップ

鼻、肩、肘…などの位置を個別に検出

PAFs(Part Affinity Fields)

関節同士のつながりを表すベクトル場

「この肩とこの肘は同一人物」と判定

この2つを組み合わせて、複数人の骨格を正確に組み立てる

試験ポイント:「姿勢推定(Pose Estimation)」「複数人同時検出」「ボトムアップ方式(先に全関節を検出→人物に組み立て)」。
PAFsはモデル名ではなく内部技術(関節のつながりを判定する仕組み)。

📊 全12モデル比較表

タスクモデル核心アイデアキーワード
物体検出
(2段階)
R-CNN2014候補領域×2000回CNNSelective Search
Fast R-CNN2015CNN共有、RoI PoolingCNN1回
Faster R-CNN2015RPN追加、End-to-Endアンカーボックス
物体検出
(1段階)
YOLO2016グリッド分割で同時検出リアルタイム
SSD2016マルチスケール検出複数解像度
セグメン
テーション
FCN2015全結合→畳み込みセマンティックの元祖
SegNet2015Pool位置のインデックス保存エンコーダ・デコーダ
U-Net2015U字型+スキップ結合医療画像
PSPNet2017ピラミッドプーリングマルチスケール文脈
DeepLab2015〜Dilated Conv(穴あき畳み込み)Atrous Conv, Google
インスタンス
セグメンテーション
Mask R-CNN2017Faster R-CNN+マスク予測RoI Align, 個体区別
姿勢推定OpenPose2017関節検出+PAFsで接続ボトムアップ, 複数人