SeedNet: Automatic Seed Generation with Deep Reinforcement Learning for Robust Interactive Segmentationを読んだ

Gwangmo Song, Heesoo Myeong, Kyoung Mu Lee
CVPR2018
[CVPR2018 Open Access](http://openaccess.thecvf.com/content_cvpr_2018/html/Song_SeedNet_Automatic_Seed_CVPR_2018_paper.html), [pdf](http://openaccess.thecvf.com/content_cvpr_2018/papers/Song_SeedNet_Automatic_Seed_CVPR_2018_paper.pdf)

# どんなもの？
Interactive segmentation（下の画像のような，ユーザーが入力したAnnotationをもとにセグメンテーションをするような手法）は古くから研究されているが，ユーザーは希望の領域が抽出されるまで何度も"Seed"を入力する必要があり面倒．
この論文では，深層強化学習（DQN）と従来のInteractive segmentation手法（Random Walk segmentation）を組み合わせたSeedの自動生成手法を提案した．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/9a46f572-c582-2299-51f1-01b111059715.png)
画像引用元：https://medium.com/gifs-ai/interactive-segmentation-with-convolutional-neural-networks-2e171a85df82


# 先行研究との差分
Interactive segmentationに関する研究は数多く存在するが，ユーザーの入力であるSeedを学習し，ユーザーが次に打つであろうSeedを自動で生成する手法は提案されておらず，この点が新しい．


# 技術や手法のキモ

## Network

提案手法SeedNetの概要図．SeedNet内のセグメンテーションは従来手法（Random Walk segmentation）を用いる．
入力は画像と初期シード（緑：前景，赤：背景）．初期シードは前景，背景1点ずつ．シードは20x20のグリッド上での点で，前景or背景のラベルを持つ．
DQNへの入力は画像とセグメンテーション結果のマスクをconcatenateしたもの．
DQNは次に打つシードを生成し，全てのシードを使用して新たにマスクを生成する．
生成したマスクと真値のマスクのIoUで報酬を計算する．
画像とマスクをconcatenateしてDQNに入力（次のステップ）．
セグメンテーションには，強化学習のように「終点」となる状態が存在しないため，シードが10点生成されるまで繰り返す．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/9779d960-fd7c-99d8-b8b2-86f5b1ea6e36.png)


用いるDQNは

- Double DQNで
- Dueling DQN structureを持ち
- Experience replayを使用

している．

## 報酬

報酬$R_{IoU}, R_{diff}, R_{exp}$を以下のように定義し，

```math
R_{IoU} = IoU(M, G) \\
R_{diff} = IoU(M, G) - IoU(M_{prev}, G) \\
R_{exp} = \frac{exp^{k \cdot IoU(M, G)} - 1}{exp^{k} - 1}
```

以下の報酬$R_{our}$を提案する．

```math
R_{our} = \left\{
\begin{array}{ll}
R_{exp} & (F_{seed} \in SF or B_{seed} \in SB) \\
R_{exp} - 1 & (F_{seed} \in WF or B_{seed} \in WB) \\
-1 & (otherwise)
\end{array}
\right.
```
$F_{seed}, B_{seed}$はそれぞれForeground, Backgroundラベルとして生成されたシード．
SF(Strong Foreground), WF(Weak Foreground), WB(Weak Background), SB(Strong Background)は，4つに分割したマスク内の領域を表しており，それぞれ真値マスクにおいてどれだけForeground(Background)に近い領域かを表している．


# どうやって有効性を検証したか
## Experiments
- MSRA10K saliency datasetを用いて検証
- 9,000枚を学習に，1,000枚をテストに使用
- 画像とマスクは84x84にリサイズして使用（学習を早く進めるため）
- 初期の2つのシード（Foreground, Background）は真値のマスクを使用してランダムに決定（テスト時の初期シードはどうやって決定しているか不明）

### vs Random Walk segmentation(RW)
値は真値マスクとのIoU(%)．
初期シードを変えるため，5回実験．
SeedNetでもRWを使用しているため，初期シードだけでのセグメンテーション vs 繰り返しシードを生成してセグメンテーションみたいになってる．

どのセットでもRWを上回っている．このことから，適切な場所に適切なラベルを持ったシードを生成できていることが分かる．また，どのセットでも結果に大きな変化が無いことから，初期値が変わっても安定した結果が得られることが分かる．

下の画像が出力画像．
もうこれ以上良い点が打てなくなる？までの平均反復回数が5.39（The average number of seeds used until saturation is 5.39 clicks）だったため，学習時の繰り返し回数10回は妥当．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/cfecc5ce-fb3f-325f-b310-346277d01a20.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/cfe64fad-c67d-1ad2-fade-2c417c392bd0.png)


### vs Supervised methods
FCN(Fully Convolutional Networks)とFCNをinteractiveに拡張したiFCN(Deep Interactive Object Selection)と比較．
SeedNetの方が高性能．
Pretrainedされたモデルを使用していなかったことも一因かも．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/a064b468-b8dd-e789-f436-22c8ef450a6e.png)

## Ablation Experiments

### Reward
使用する報酬を変えて実験．
どのセットでも提案した報酬が良い結果を出していることが分かる．下のグラフは横軸が反復回数，青が報酬，オレンジがIoUの値．理想は反復を繰り返す毎に得られる報酬が増え，セグメンテーション結果のIoUの値も大きくなることだと思う．その点から，提案した報酬が最も安定した学習できていると言える．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/f5d6634d-97c9-ec09-a863-c149307fb667.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/748742d0-39df-e818-93ba-6487b25c6a75.png)

### Segmentation
SeedNet内で用いるセグメンテーション手法をGC(GrabCut)とGSC(Geodesic star convexity for interactive image segmentation)に入れ替えて実験．
どちらの場合も，SeedNetのIoUの方が大きい．このことから，SeedNetが妥当なシードを繰り返し生成できていることが分かる．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/e5ca14b4-d5b8-2c7c-34c7-dd4b90a3ccb1.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/3d746e79-d7cf-8352-d650-7183d349baa2.png)

### Unseen dataset experiments
テストに用いるデータセットを変えた場合の実験．
横軸がデータセット，縦軸がIoUの値，緑がRW，ピンクがSeedNet．
どのデータセットにおいても，RWを上回っていることが分かる．このことから，学習と異なるデータセットでテストをしても，妥当なシードを生成できることが分かる．

![image.png](https://qiita-image-store.s3.amazonaws.com/0/259451/15f042c1-07f5-649a-53b3-91cfd8dae778.png)


# 議論はあるか
特になし．
Interactive segmentationのための，強化学習を用いたシード生成手法を提案． 
提案手法では抽出したい領域を予測できることで，ユーザーの手間を省くことができる． 
Pixelwiseなラベリングのコスト削減にも貢献できると考えられる．

# 次に読むべき論文

- 強化学習で色調補正
    - [Distort-and-Recover: Color Enhancement using Deep Reinforcement Learning](http://openaccess.thecvf.com/content_cvpr_2018/papers/Park_Distort-and-Recover_Color_Enhancement_CVPR_2018_paper.pdf)
- 強化学習でVideo object segmentation
    - [Reinforcement Cutting-Agent Learning for Video Object Segmentation](http://openaccess.thecvf.com/content_cvpr_2018/papers/Han_Reinforcement_Cutting-Agent_Learning_CVPR_2018_paper.pdf)