---
# System prepended metadata

title: 走行動画自己教師あり学習実験

---

# 走行動画自己教師あり学習実験

# 現状の課題
- **FlowEでのmIOU精度再現ができていない、、、**
    - BYOLでのmIOU精度の再現（BYOLない論文、FLowE論文内文献値）はできている。
- **BYOLをpixel baseに拡張したもののmIOU精度の再現ができてない**
    - 本当に再現できていないのかの判断すらできない。
    - そのほかのpixel baseの自己教師あり学習を再現していく
    - 再現した上でそこに動画に対応したりする拡張を加えていく

<!-- # 評価コードの正しさの確認 -->

# 現状の結果
()の記載がなければ自前で学習
## FLowE
### CityScapes, BDD100k, UrbanCity(Deeplab v3)
| pre-dataset | pixel base | affine aug | upsample | batchnorm | lossの数 | optims | lr | batch size | GPUs | epochs | mIOU(city) | mIOU(bdd) | mIOU(urban) |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| BDD100k(文献値) | o | o | o | (2d) | (1) | Lars | 0.1 | 1024　| 64 | 110 | 56.6 | 49.8 | - |
| UrbanCity(文献値) | o | o | o | (2d) | (1) | Lars | 0.1　| 1024　| 64 | 80 | 63.7 | - | 61.7 |
| UrbanCity(文献値) | o | x | (x) | (2d) | (1) | Lars | 0.1　| 1024　| 64 | 8 | - | - | 40.1 |
| UrbanCity(文献値) | o | o | o | (2d) | (1) | Lars | 0.1　| 1024　| 64 | 8 | - | - | 45.9 |
| - | - | -　| -　| -　| - | - | - | - | - | - | - | - | - |
| BDD100k | o | x | x | 2d | 1 | Adam | 0.1 | 1024 | 64 | 11 | 9.99 | - | - |
| BDD100k | o | x | x | 2d | 1 | Adam | 0.05  | 1024 | 64 | 11 | 10.2 | - | - |
| BDD100k | o | x | x | 2d | 2 | Adam | 0.1  | 1024 | 64 | 11 | 13.2 | - | - |
| BDD100k | o | x | x | 1d | 1 | Adam | 0.1  | 1024 | 64 | 11 | 10.2 | - | - |
| BDD100k | o | x | x | 1d | 1 | Adam | 0.4  | 1024 | 64 | 11 | 5.55 | - | - |
| BDD100k | o | x | x | 2d | 1 | Adam | 0.4  | 1024 | 64 | 11 | 11.7 | - | - |
| BDD100k | o | x | x | 2d | 1 | Adam | 3e-4  | 1024 | 64 | 11 | 15.9 | - | - |
| BDD100k | o | o | x | 2d | 1 | Adam | 0.1 | 1024 | 64 | 11 | 11.6 | - | - |
| BDD100k | o | o | o | 2d | 1 | Adam | 0.1 | 1024 | 64 | 11 | 8.06 | - | - |
<!-- | ImageNet(文献値) | (o) | (o) | (o) | - | - | (Lars) | (0.1) | (1024)　| (64)　| - | - | - | 52.4 | 57.7 | -->

## BYOL
### CityScapes, bdd100k(Deeplab v3)
| pre-dataset | momentum_base key | lr_schedule | optims | lr | batch size | GPUs | epochs | mIOU(city) | mIOU(bdd) |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| ImageNet(文献値) | τ_{base} := 0.99, τ := 1 - (1 - τ_{base})・(cos(π/K) + 1)/2 | warmup+cosine decay + linear scale | Lars(SGD) | 0.2 | 4096　| 512(TPU) | 1000 | 59.8 | 52.4 |
| - | - | -　| -　| -　| - | - | - | - | - |
| ImageNet(公式重み) | τ_{base} := 0.99, τ := 1 - (1 - τ_{base})・(cos(π/K) + 1)/2 | warmup+cosine decay + linear scale | Lars(SGD) | 0.2 | 4096　| 512(TPU) | 1000 | 59.9 | - |
| ImageNet | τ_{base} := 0.99のみ | - | Adam | 0.2　| 4096　| 64 | 1000 | 57.1 | - |

## PixPro
### mIOU+AP
mIoUはCityscapesのsemantic segmentationの評価
ただし、mIoU(bdd)だけはbdd100kでの評価
APはPascalVOC2007のobject detectionの評価(voc2012+voc2007で学習)
mIoU\*, mIoU(bdd): Deeplab v3head使用＋finetuneなし
mIoU: FCN hed使用＋fintuneあり（論文文献値）
上段2つは文献値
| pre-dataset | head sim | bs | epoch | GPUs | mIoU(bdd) | mIoU\* | mIoU | AP | AP50 | AP75 |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| ImageNet(文献値) | o | 1024(128\*8) | 100 | 8 | - | - | 76.8 | 58.8 | 83.0 | 66.5 |
| ImageNet(文献値) | o | 1024(128\*8) | 400 | 8 | - | - | 77.2 | 60.2 | 83.8 | 67.7 |
| - | - | - | - | - | - | - | - | - | - |
| ImageNet(公式重み) | o | 1024(128\*8) | 100 | 8 | 45.84 | 58.59 | - | 58.9 | 83.3 | 66.1 |
| ImageNet(公式重み) | o | 1024(128\*8) | 400 | 8 | 46.00 | 58.76 | - | 60.1 | 83.6 | 67.6 |
| ImageNet | o | 1024(128\*8) | 100 | 8 | 44.42 | 57.92 | - | 58.6 | 83.1 | 65.9 |
| ImageNet | o | 1024(128\*8) | 40** | 8 | - | 57.05 | - | - | - | - |
| ImageNet | o | 1024(128\*8) | 10** | 8 | - | 54.10 | - | - | - | - |
| ImageNet | o | 1024(128\*8) | 400 | 8 | 44.63 | 57.27 | - | 59.8 | 83.2 | 67.2 |
| bdd100k | o | 1024(128\*8) | 100 | 8 | 36.67 | 49.32 | - | 45.5 | 72.8 | 48.0 |
| bdd100k | o | 128(16\*8) | 100 | 8 | 36.57 | 48.32 | - | 44.6 | 71.6 | 46.9|
| bdd100k | x | 1024(128\*8) | 100 | 8 | 33.40 | 44.47 | - | 42.3 | 69.7 | 43.8 |
| ImageNet | x | 1024(128\*8) | 100 | 8 |  | 58.60 |  |  |  |  |
| ImageNet | o | 128(16\*8) | 100 | 8 |  | 52.86 |  |  |  |  |
| - | - | - | - | - | - | - | - | - | - | - |
| ImageNet(mpirunの確認用) | o | 1024(128\*8) | 100 | 8 | 44.11 | 57.77 | - | 58.9 | 82.9 | 66.2 |
| BDD100k(mpirunの確認用/flow) | o | 1024(128\*8) | 100 | 8 |  | 49.28  | - | |  |  |
<!-- | bdd100k(全画像) | 100 | 8 | - | - | - | - | - | -->
\**40epochは100epoch学習の途中の40epoch目のチェックポイントを用いたもの

### mIOUのみ
100epochPixProの学習を行ったときの結果
mIoUはCityscapesのsemantic segmentationの評価
ただし、mIoU(bdd)だけはbdd100kでの評価
mIoU\*, mIoU(bdd): Deeplab v3head使用＋finetuneなし
<!-- mIoU: FCN hed使用＋fintuneあり（論文文献値） -->
#### 100epoch目
| pre-dataset | head sim | bs | GPUs | aug | loss | mIoU(bdd) | mIoU\* |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| ImageNet (公式重み) | o | 1024(128\*8) | 8 | PixPro | PixPro | 45.84 | 58.59 | - |
| ImageNet | o | 1024(128\*8) | 8 | PixPro | PixPro | 44.42 | 57.92 |
| ImageNet | x | 1024(128\*8) | 8 | PixPro | PixPro |  | 58.60 |
| ImageNet | o | 128(16\*8) | 8 | PixPro | PixPro |  | 52.86 |
| ImageNet | o | 128(16\*8) | 8 | FlowE (ablation) | PixPro |  |  |
| ImageNet | o | 1024(128\*8) | 8 | PixPro | FlowE |  | 52.44 |
| ImageNet | o | 1024(128\*8) | 8 | PixPro | FlowE (grid sample) |  | 44.70 |
| bdd100k | o | 1024(128\*8) | 8 | PixPro | PixPro | 36.67 | 49.32 |
| bdd100k | o | 128(16\*8) | 8 | PixPro | PixPro | 36.57 | 48.32 |
| bdd100k | x | 1024(128\*8) | 8 | PixPro | PixPro | 33.40 | 44.47 |
| bdd100k | o | 128(16\*8) | 8 | FlowE (ablation) | PixPro |  | 18.36 |
| bdd100k | o | 1024(128\*8) | 8 | PixPro | FlowE |  |  |
| bdd100k | o | 128(16\*8) | 8 | SimCLR (512x1024) | PixPro |  | 47.42 |
| bdd100k | o | 128(16\*8) | 8 | FlowE (ablation) + 2frame | FlowE |  | 19.08 |

#### 40epoch目(100epoch中の途中経過としての10epoch目)
| pre-dataset | head sim | bs | GPUs | aug | loss | mIoU(bdd) | mIoU\* |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| ImageNet | x | 1024(128\*8) | 8 | PixPro | PixPro |  | 56.43 |
| ImageNet | o | 128(16\*8) | 8 | PixPro | PixPro |  | 52.10 |
| ImageNet | o | 1024(128\*8) | 8 | PixPro | FlowE |  | 49.70 |

#### 10epoch目(100epoch中の途中経過としての10epoch目)
| pre-dataset | head sim | bs　| GPUs | aug | loss | mIoU(bdd) | mIoU\* |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| ImageNet | o | 1024(128\*8) | 8 | PixPro | PixPro | 41.89 | 54.10 |
| ImageNet | x | 1024(128\*8) | 8 | PixPro | PixPro | 40.53 | 52.85 |
| ImageNet | o | 128(16\*8) | 8 | PixPro | PixPro | 40.05 | 51.24 |
| ImageNet | o | 128(16\*8) | 8 | FlowE (ablation) | PixPro | 1.86 | 10.22 (2回目：12.24) |
| ImageNet | o | 1024(128\*8) | 8 | PixPro | FlowE (0.1) | 37.95 | 48.69 |
| ImageNet | o | 1024(128\*8) | 8 | PixPro | FlowE (grid sample) |  | 52.54 |
| bdd100k | o | 1024(128\*8) | 8 | PixPro | PixPro | 29.95 | 36.69 |
| bdd100k | o | 128(16\*8) | 8 | PixPro | PixPro | [ - ](https://wandb.ai/tomo/detectron2/runs/33t31o1d?workspace=user-tomo) | 43.72 |
| bdd100k | x | 1024(128\*8) | 8 | PixPro | PixPro | - | 31.85 |
| bdd100k | o | 128(16\*8) | 8 | FlowE (ablation) | PixPro | 7.75 | 14.72 |
| bdd100k | o | 128(16\*8) | 8 | FlowE (ablation) + 2frame | FlowE |  | 24.44 |

| pre-dataset | epoch | head sim | bs　| GPUs | aug | loss | mIoU(bdd) | mIoU\* |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :-: |
| bdd100k | 10 | o | 128(16\*8) | 8 | FlowE (ablation) + 2frame | FlowE |  | 24.44 |
| bdd100k | 100 | o | 128(16\*8) | 8 | FlowE (ablation) + 2frame | FlowE |  | 19.08 |
| bdd100k | 10 | x | 128(16\*8) | 8 | FlowE (ablation) + 2frame | FlowE |  | 26.16 |
| bdd100k | 100 | x | 128(16\*8) | 8 | FlowE (ablation) + 2frame | FlowE |  | 19.14 |
| bdd100k | 10 | o | 128(16\*8) | 8 | BYOL + 2frame | FlowE |  | 33.04 |
| bdd100k | 100 | o | 128(16\*8) | 8 | BYOL + 2frame | FlowE |  | 43.66 |

### Ablation study
#### 10epoch目のCityScapesのmIOU評価
| (54.10) | BDD100k | batch size 16 | flowe aug | flowe loss | no ppm head |
| :-: | :-: | :-: | :-: | :-: | :-: |
| ImageNet | x | 51.24 | 10.22 (12.24) | 48.69 | 52.85 |
| BDD100k | 36.69 | 43.72 | 14.72 |  | 31.85 |
<!-- | flowe aug |  | x | x | x | x | -->

#### 100epoch目のCityScapesのmIOU評価
| (57.92) | BDD100k | batch size 16 | flowe aug | flowe loss | no ppm head |
| :-: | :-: | :-: | :-: | :-: | :-: |
| ImageNet | x | 52.86 |  | 52.44 | 58.6 |
| BDD100k | 49.32 | 48.32 | 18.36 |  | 44.47 |
<!-- | batch size 128 | | | | |
| pixpro aug | | | | |
| pixpro loss | | | | | |
| ppm head | | | | | | -->


#### 10epoch目のBDD100kのmIOU評価
| (41.89) | BDD100k | batch size 16 | flowe aug | flowe loss | no ppm head |
| :-: | :-: | :-: | :-: | :-: | :-: |
| ImageNet | x | 40.05 | 1.86 | 37.95 | 40.53 |
| BDD100k | 29.95 |  | 7.75 |  |  |

[Pixproのみ](https://hackmd.io/@HhFQ5UMbQyW1Uxby14-rGg/rJ4rIO-K5)

<!-- <table align="center">
    <tr>
      <td><b></b></td>
      <td>BDD100k</td>
      <td> batch size 16 </td>
      <td> flowe aug </td>
      <td> flowe loss </td>
      <td> no ppm head </td>
    </tr>
    <tr>
      <td>ImageNet</td>
        <td>x</td>
        <td>52.86</td>
        <td>-</td>
        <td>52.44</td>
        <td>58.6</td>
    </tr>
    <tr>
        <td>bacth size 128</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr>
    <tr>
        <td>pixpro aug</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr>
    <tr>
        <td>pixpro loss</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr>
    <tr>
        <td>ppm head</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
        <td>-</td>
    </tr>
 </table> -->


## DenseCL
mIoUはCityScapeの評価
ただし、mIoU(voc),AP(voc)ともにPascalVOCでの評価(finetuneあり)

mIoU\*: Deeplab v3head使用＋finetuneなし
mIoU: FCN head使用＋fintuneあり
| pre-dataset | epochs | GPUs | mIoU\* | mIoU | mIoU(voc) | AP(voc) | AP50(voc) | AP75(voc) |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| ImageNet(文献値) | 200 | 8 | - | 75.7 | 69.4 |　58.7 | 82.8 | 65.2 |
| COCO(文献値) | 800 | 8 | - | 75.6 | 67.5 |　56.7 | 81.7 | 63.0 |
| - | - | - | - | - | - | - | - | - |
| ImageNet(公式重み) | 200 | 8 | 58.18 | 75.3 | 69.0 | 58.5 | 82.7 | 65.1 |
| COCO(公式重み) | 800 | 8 | 58.53 | 75.3 | 67.2 | 56.7 | 82.4 | 63.3 |
| ImageNet | 200 | 4 | 58.21 | - | - | - | - | - |
| COCO | 800 | 4 | 59.25 | 74.5 | 65.0 | 56.4 | 81.7 | 62.7 |


### 横田先生との話し合い(5/23)
- PixProとの違いを埋めていくようにして見て、何がダメだったのかを突き止めていく
- まずはBDD100ｋで学習
- BDD100ｋで学習＋lossをFloweと同じにする
- MIRUもだせばいい。今までの検討結果を伝えれば大丈夫。

### 八嶋さんとの話し合い(5/31)
- 改めて、見直すとPixProはかなりfloweと近いので、FlowEに寄せる方向でもいいのでは
    - 基本は、PPMとpositive pairの選び方が違うだけ
    - そのほか：
        - resnetモデルをそのまま使っている
        - augの種類
        - optical flowがない

## 今後の方針
- MIRUのポスター原案
- PixProのBDD100ｋで学習など
- 
<!-- ### 佐藤先生との話し合い(5/25) -->

## PixPro
- dataset, batch size, augmentation, loss, head
- dataset, augmentaion
- 実はresnetモデル構造も少し違う
    - floweは入力サイズの1/8になる
    - pixproは入力サイズの1/32になる(resnet標準)
    - 違いの原因：
        - resnetのlayer3, 4のconv層のdilationとstrideが違う？
        - layer3の中のdownsample層がNoneになっている(flowe)
