【論文読んでみた】RRL:Regional Rotation Layer in Convolutional Neural Networks

# はじめに
実際に読んでみて自分が理解した内容に関して、もしくはわからなかった内容について記載します。
間違っている内容もあるかも...
とりあえず何が言いたいのかだけさらっと

# 内容紹介

> 論文のリンク先はこちら → https://arxiv.org/abs/2202.12509

## Overview

- object detectionやclassificationのタスクにおいてCNNがよく用いられるが、回転不変性(rotation invariance)に限界がある。
- そこで、RRLというmoduleを作成し、現行のCNNを用いたarchitectureに追加して回転したデータに対する検出結果を確認する。
- LeNet-5、ResNet-44、MobileNet-tiny-yolov3においてaccuracyやmAPの向上が見られた。

## Contents

### Introduction

<font color="Red">主張：CNNには大きな回転を処理する能力がない！RRLというものを作ってCNNに埋め込んだらいい感じの結果になった！</font>

> CNNが持つ回転不変性の限界って一般的な知識？何が原因か知らないので要調査

### Related Work

<font color="Red">主張：回転に対抗するための従来手法はいくつか存在している！ただし、回転等価を実現するために新たなパラメータを設定する必要がある！</font>

1. Data Augmentation
2. TI-Pooling
3. Polar Transformer Network(PTN)
4. Polar Coordinate Convolutional Neural Network (PCCNN)
5. Group Equivariant Convolutional Networks (GCNN)
6. steerable CNNs
7. Spherical CNNs
8. Rotation Equivariant Vector Field Networks (RotEqNet)
9. Deep Rotaion Equivariant Network

### Rotation invarinace based on LBP operator

#### Local Binary Pattern

<font color="Red">主張：LBPという演算子を用いて、回転不変性を達成するためにLBP最小となる状態まで回転することにした！</font>

> 回転不変性達成とLBP最小のつながりが見えない。元論文で主張があるのだろうか？
> 「LBP最小」という制約をつけることで、同じ範囲を精査している場合同じ値になるからってこと？

#### Regional Rotation Layer

<font color="Red">主張：特徴マップ上にsliding windowを用意、各windowごとにLBPを算出することで回転していても同じLBPの情報を得ることができる！</font>

#### Rotation Equivarianca and Invariance derivation

<font Color="Red">主張：式変形の結果から全結合層の前で特徴マップを逆回転させればCNN全体が回転不変になる！</font>

> 式変形はおいおい追っていく。

#### Integrate RRL with CNN

<font Color="Red">主張：適切な位置にRRLを追加するとモデルの回転不変性を実現することができる！</font>

### Experiments

#### Image classification based on LeNet-5

元データセット：[CIFAR-10](https://www.cs.toronto.edu/~kriz/cifar.html)
回転を加えたデータセットを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2043769/6fd04a63-7e2e-2950-df27-333b1b92bfbb.png)
> 本文より引用

結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2043769/b0796c09-4be6-b4d8-4493-c1105686db9a.png)

1. CNNの構造を保ったままRLLをいくつか挿入するだけで回転画像の認識精度を大きく向上させることができる
2. Data AugmentationをしてしまうとLeNet-5の特性上、汎化が低下してしまう
3. RLLがない場合、Data Augmentationで認識精度はいくらか向上するが、学習コストが上がるため根本的な問題解決にならない

#### Image classification based on ResNet-18

結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2043769/1241fb64-1d5c-6b44-38c4-8de9cb4f8232.png)
> ResNet-18の場合、RRLを追加しても先の結果より差が小さい

<font Color="Red">主張：RRLは小、中規模のNNや学習サンプルや計算資源が限られている場合に適している。ただし、回転したデータに対し汎化性の向上が見られた。</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2043769/122cbf85-9408-fb2a-930a-53c2dc989392.png)

#### Plankton Recognition based on ResNet-44

元データセット：Plankton dataset by cowen et al. 2015

<font Color="Red">主張：モデルパラメータの増加なしに性能の向上と汎化性能の向上を確認できた。<font>

#### Object detection based on MobileNet-tiny-yolov3

元データセット：Pascal VOC dataset、2007, 2012

<font Color="Red">主張：位置誤差はあるものの、各オブジェクトを検出できているのでRRLを追加した改良モデルの方がいい！</font>

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2043769/c9eb73d3-86d6-7a93-b554-03107f78ba17.png)
> 定性的な評価になってしまうが、これで機能向上したというには苦しい気がする...
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2043769/79b2a983-68ed-1603-a73e-4ec5a56a42e4.png)
> 定量的にはmAPは上がってるけど

### Conclusion

<font Color="Red">主張：LBP演算子を用いて作成したRRLをCNNのネットワークに組み込むことで、回転に対してもパラメータ数を増やすことなく精度向上を図ることが可能になった。</font>

# さいごに
RRLを組み合わせることである程度精度向上を図れているが、それでも難しいところは多い。
bboxの形式だと特徴量の構成を変えないように回転させないとそもそも答えが異なってしまうため、正確に精度を測れないなどの問題も発生する。

とはいえ、ベースのCNNの議論で「なぜ回転の処理に弱いのか」という部分がイマイチ理解できていないので、そこから探ることにする。