https://ai-kenkyujo.com/artificial-intelligence/ai-architecture/
https://zenn.dev/yoshida0312/articles/a5c74c95029233
https://qiita.com/arutema47/items/8ff629a1516f7fd485f9
https://tt-tsukumochi.com/archives/9013
(1) R-CNN
Selective Searchにより、類似度を元に領域を結合していく
SVMでクラス分類を行う
(2) Fast R-CNN
RoI Pooling、Multi-task Lossによる性能改善
・RoI Pooling
物体候補領域をMax Poolingを用いて、一定サイズに統一する
・Multi-task Loss
物体のクラス分類とバウンディングボックス回帰という2つのタスクの誤差を同時に考慮できる損失関数
(3) Faster R-CNN
selective searchの代わりにCNNを使用する
FPN(feature pyramid network)を用いて、マルチスケールの特徴マップを利用する
物体候補領域をRPN(Region Proposal Network)で検出する
・RPN
→ 学習の流れは以下のとおり
1. 教師データ作成
アンカーボックスの設定、IoU計算、ラベル付与
2. 物体判定と位置情報の予測
特徴パッチを基に、予測を行う。アンカーボックスがk個の場合
2値分類に2k個、バウンティングボックス回帰のために4k個のスコアを算出
3. クラス分類の損失と矩形回帰の損失を求め、RPNの学習を行う
・RPNの損失関数
(4) Mask R-CNN
Faster R-CNNにセグメンテーションのブランチを追加したモデル
インスタンスセグメンテーションやポーズ推定が可能
RoI Poolingの代わりにRoI Alignを使用する
・インスタンスセグメンテーション
→ 個々の物体毎に別ラベルを付与
・セマンティックセグメンテーション
→ 同じクラスは同一ラベルを付与
・RoI Align
→ RoI Poolingで発生する特徴マップとピクセルのズレをバイリニア補完で軽減する手法