物体検出(5モデル)+ セグメンテーション(6モデル)+ 姿勢推定(1モデル)── 全12モデル
画像全体を1つのラベルで分類
物体の位置(BBox)+種類
ピクセル単位でクラス分類
(個体の区別なし)
ピクセル単位+個体を区別
(猫Aと猫Bを分ける)
物体検出モデルは大きく2つのアプローチに分かれる。
R-CNN系
✓ 精度が高い
✗ 速度が遅い
YOLO / SSD
✓ リアルタイム処理可能
✗ 精度はやや劣る(初期は)
Region-based CNN。候補領域を約2,000個抽出し、各領域にCNNを適用して分類。正確だが非常に遅い。
問題点:CNNを2,000回実行 → 1枚あたり約47秒(遅すぎる)
R-CNNの改良版。画像全体を1回だけCNNに通し、特徴マップ上から候補領域を切り出す。
CNNが1回で済むので R-CNNの約146倍高速
候補領域の生成もCNN化(RPN)。Selective Search(従来の手動的な候補生成)を廃止し、全てNN内で完結するEnd-to-End学習を実現。
特徴マップ上の各点に複数の「アンカーボックス」を配置し、「物体あり/なし」と「位置の微調整」を同時予測。
| モデル | 候補領域の生成 | CNNの実行回数 | 速度 | End-to-End |
|---|---|---|---|---|
| R-CNN | Selective Search | 〜2,000回 | 47秒/枚 | ✗ |
| Fast R-CNN | Selective Search | 1回 | 0.32秒/枚 | △(候補生成は別) |
| Faster R-CNN | RPN(学習可能) | 1回 | 0.2秒/枚 | ✓ |
You Only Look Once。1段階方式の代表。画像をグリッドに分割し、各セルが同時に「物体の位置」と「クラス」を予測。リアルタイム処理を実現。
① 画像をS×Sグリッドに分割
② 各セルが同時に予測
③ 最終結果
Single Shot MultiBox Detector。YOLOと同じ1段階方式だが、複数の解像度(特徴マップ)で検出することで大小の物体に対応。
大きい特徴マップ
→ 小さい物体を検出
中くらい
中くらい
小さい特徴マップ
→ 大きい物体を検出
各スケールで同時にBBox+クラスを予測
| モデル | 方式 | 速度 | 精度 | 特徴 |
|---|---|---|---|---|
| Faster R-CNN | 2段階 | 中 | 高 | RPN+分類。精度重視 |
| YOLO | 1段階 | 非常に速い | 中 | グリッド分割。リアルタイム |
| SSD | 1段階 | 速い | 中〜高 | マルチスケール検出 |
画像の各ピクセルにクラスラベルを割り当てるタスク。物体検出の「四角い枠」ではなく、輪郭に沿った正確な領域を得られる。
Fully Convolutional Network。分類モデル(VGGなど)の全結合層を畳み込みに置き換え、入力と同じサイズの「ラベルマップ」を出力。
全結合層をなくす → 任意サイズの入力に対応 + 空間情報を保持
「圧縮(エンコーダ)→ 復元(デコーダ)」の構造で高精度なセグメンテーションを実現。
プーリングのインデックスを記憶
MaxPool時の位置情報(index)を保存しておき、デコーダで正確に復元。パラメータ効率が良い。
U字型+スキップ結合
エンコーダの各段の特徴をデコーダに直接スキップ結合。細部の情報を保持。医療画像で大活躍。
Pyramid Scene Parsing Network
異なるスケール(1×1, 2×2, 3×3, 6×6)でプーリングし、文脈情報をピラミッド状に統合。
→ 結合して文脈を豊かに
Google開発
Dilated Conv(穴あき畳み込み)でパラメータを増やさずに受容野を拡大。
フィルターに隙間を空けて広い範囲を見る
(Atrous / Dilated Convolution)
Faster R-CNNにマスク予測ブランチを追加。検出した各物体に対してピクセルレベルのマスクを生成。個体を区別できる。
RoI Poolingの代わりにRoI Alignを使用(位置ズレを防止)
画像から人の関節位置(鼻、肩、肘、手首…)をリアルタイムに検出するモデル。複数人の同時推定が可能。
各関節が「画像のどこにあるか」の確率マップ
鼻、肩、肘…などの位置を個別に検出
関節同士のつながりを表すベクトル場
「この肩とこの肘は同一人物」と判定
この2つを組み合わせて、複数人の骨格を正確に組み立てる
| タスク | モデル | 年 | 核心アイデア | キーワード |
|---|---|---|---|---|
| 物体検出 (2段階) | R-CNN | 2014 | 候補領域×2000回CNN | Selective Search |
| Fast R-CNN | 2015 | CNN共有、RoI Pooling | CNN1回 | |
| Faster R-CNN | 2015 | RPN追加、End-to-End | アンカーボックス | |
| 物体検出 (1段階) | YOLO | 2016 | グリッド分割で同時検出 | リアルタイム |
| SSD | 2016 | マルチスケール検出 | 複数解像度 | |
| セグメン テーション | FCN | 2015 | 全結合→畳み込み | セマンティックの元祖 |
| SegNet | 2015 | Pool位置のインデックス保存 | エンコーダ・デコーダ | |
| U-Net | 2015 | U字型+スキップ結合 | 医療画像 | |
| PSPNet | 2017 | ピラミッドプーリング | マルチスケール文脈 | |
| DeepLab | 2015〜 | Dilated Conv(穴あき畳み込み) | Atrous Conv, Google | |
| インスタンス セグメンテーション | Mask R-CNN | 2017 | Faster R-CNN+マスク予測 | RoI Align, 個体区別 |
| 姿勢推定 | OpenPose | 2017 | 関節検出+PAFsで接続 | ボトムアップ, 複数人 |