【論文メモ】Semantic Audio-Visual Navigation (CVPR2021)

# はじめに
* 著者：Changan Chen$^{1,2}$ , Ziad Al-Halah$^1$ , Kristen Grauman$^{1,2}$
$^1$UT Austin, $^2$Facebook AI Research

* 論文：https://openaccess.thecvf.com/content/CVPR2021/papers/Chen_Semantic_Audio-Visual_Navigation_CVPR_2021_paper.pdf

<iframe width="560" height="315" src="https://www.youtube.com/embed/EKCYc1dFOhw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

以下、画像に関しては特に断りがない場合、論文中の図・表を引用しています。

# 概要
* 一定時間だけ音が鳴る環境において，その音を発したオブジェクトにナビゲーションするSemantic Audio-Visual Navigationの導入

* Targetの空間的・意味的特性を捉える，Transformerベースの強化学習手法の提案



# 背景
* 生活支援ロボットは，あらゆるタスクに対応するために環境と相互作用する必要がある
例：
ユーザのためにある物体を探して取ってくる
食器洗い機の運転が止まったら空にする
ゲストが玄関で話し始めたら，玄関ホールに移動する

* 代表的なNavigationタスクにおいて，聴覚を利用したナビゲーションの検討

# Semantic Audio-Visual Navigation
* 一定時間だけ音が鳴る中で，文脈的に位置するオブジェクト(Target)にナビゲーションする．
* エージェントはTargetが発した音から，そのTargetの空間的位置とそのオブジェクトのカテゴリを推論
* 成功：Targetから半径1m以内で，Stopアクションを行ったとき
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396504/dcfafa2f-877c-c039-0f64-698e11e59a78.png)

* SoundSpaces[Chen+, ECCV20]環境を使用
Matterport3D[Chang+, 3DV17]に，任意の音をレンダリングできるようにしたナビゲーション環境


# 提案手法：SAVi (Semantic Audio-Visual navigation)
* Input
    * 自己中心の 2-channel 音声波形：$B_t$
    * RGB・Depth画像：$I_t$
    * エージェントの姿勢：$p_t = (x, y, \theta)$
    * 1step前のアクション：$a_{t-1}$
* Output
    * アクション：$a_t \in \\{ MoveForward, TurnLeft, TurnRight, Stop \\}$
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396504/0914e2af-5c87-74ae-6ada-ba60121d2abc.png)

### Observation Encoder：観測情報のEncode
* Encode
    * $e_t^O=[e_t^I,e_t^B,p_t,a_{t−1}]$
        * 視覚情報：$e_t^I=f_I(I_t)$
        * 聴覚情報：$e_t^B=f_B(B_t)$
            * $f_\cdot$：簡略化されたResNet-18
* Encodingをメモリ$M$に格納
    * $M = \\{ e_t^O:i = max⁡(0, t−s_M), …,t \\}$
    * $𝑠_𝑀$：メモリサイズ(=150)

### Goal Descriptor Network：Targetの位置とカテゴリを推定
* Goal Descriptor$\hat{D}_{t-1}$：$t$ステップでの位置とカテゴリの推定値
    * $\hat{D}_𝑡=\\{\hat{L}_t,\hat{C}_t\\}=f_D(B_t)$
        * $f_D$：簡略化されたResNet-18
        * $\hat{L}_t=(\Delta x,\Delta y)$：$p_t$からのTargetの推定相対位置
        * $\hat{C}_t$：予測したオブジェクトラベル
* $t-1$ステップの推定値との統合：単一予測によるノイズの低減
    * $D_t=f_{\lambda}(\hat{D}_t, \hat{D} _{t-1}, \Delta p_t)=(1−\lambda)\hat{D}_t + \lambda f_p(\hat{D} _{t−1}, \Delta p_t)$
        * $\Delta p_t$：$t−1$ステップとの姿勢の差
        * $f_p$：$\Delta p_t$に基づいて$\hat{L} _{t-1}$の更新
        * $\lambda$：重み付け係数
            * 音が鳴っている間　：0.5
            * 音が鳴っていない間：1
### Policy Network：Transformerベースの強化学習
* self-attentionを用いたEncoder
    * $M_e=Encoder(M)$
* $D_t$を用いて，$M_e$の全てのセルに注意を払い，状態表現を得るDecoder
    * $s_t=Decoder(M_e,D_t)$
* Actor-Critic Networkは$s_t$を用いて，行動分布と状態値を予測
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396504/e2d6e402-d000-5da2-84ec-f30b8fa55b24.png)
[Fang+, CVPR19]：https://openaccess.thecvf.com/content_CVPR_2019/papers/Fang_Scene_Memory_Transformer_for_Embodied_Agents_in_Long-Horizon_Tasks_CVPR_2019_paper.pdf

# 実験設定
### Training
* 350万個の音声波形(Spectrograms)とカテゴリのペアを，トレーニング環境の様々な位置に置いて，Goal Descriptor Networkを事前学習
* Observation EncoderとPolicy NetworkはDD-PPO[Wijmans+, ICLR20]で最適化
    1. Observation EncoderをAttentionなしで学習
    2. Observation Encoderを固定し，残りのモデルを学習
* 報酬
    * 正常にゴール　　　　　　：+10
    * ゴールまでの距離を短縮　：+1
    * ゴールまでの距離を延長　：-1
    * 毎ステップ　　　　　　　：-0.01

### Environment
* 85のSoundSpaces環境において，1000episodesでテスト
* Trainデータセットにある音(Heard Sounds)と，Trainデータセットにない音(Unheard Sounds)それぞれで評価

### Metrics
1. Success rate：成功率
2. SPL：経路長の逆数で重みづけされた成功率
3. SNA：アクション数の逆数で重みづけされた成功率
4. DTG：エピソード終了時のゴールまでの距離の平均（小さい方が良い）
5. SWS：音が鳴り終わった後に，ゴールに到達した割合

# 定量的評価
### Navigation performance
* 特にTrainデータセットになかった音でテストした場合，全ての評価指標で性能向上
* また，SWS(無音状態後の成功率)は大幅に改善している
    * Targetの位置とカテゴリを推定し，保持するGoal Descriptorの有効性

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396504/c7c2196f-a21f-c1ec-1857-df5ffdbd3f87.png)

### Goal Descriptorの分析
* カテゴリ予測の$C_t$と位置予測の$L_t$を取り除いて相対的な影響を調べる
* どの要素を取り除いても，性能低下が見られる
* とくにゴールの位置を予測する$L_t$は比較的重要な要素であるといえる
* また，$t-1$ステップの予測結果との統合は，Goal Descriptorの予測を安定させ，性能向上に寄与する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396504/d4966139-12b1-72cb-a315-371f3e4cbfa3.png)

### 環境音がある中での性能評価
* SoundSpacesの中でTargetの候補として選択された音以外の1つの音を，Targetの音と同時に鳴らす
    * エアコンが鳴っている間にドアが閉まる，というような現実的なシナリオを想定
    * どの音がTargetかをエージェントに知らせるために，$C_t$にTargetのone-hot encodingを入力
* ベースラインと比較して，SRは7.6％，SPLは4.5％高い結果
    * 環境ノイズに対してより頑健であることを示している

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1396504/aee92e3a-2356-4434-36de-fe1702c1641f.png)


# reference
[Chen+, ECCV20]：Changan Chen, Unnat Jain, Carl Schissler, Sebastia Vicenc Amengual Gari, Ziad Al-Halah, Vamsi Krishna Ithapu, Philip Robinson, and Kristen Grauman. SoundSpaces: Audio-visual navigation in 3D environments. In ECCV, 2020.

[Chang+, 3DV17]：Angel Chang, Angela Dai, Thomas Funkhouser, Maciej Halber, Matthias Niessner, Manolis Savva, Shuran Song, Andy Zeng, and Yinda Zhang. Matterport3d: Learning from rgb-d data in indoor environments. International Conference on 3D Vision (3DV), 2017. MatterPort3D dataset license available at: http://kaldir.vc.in.tum.de/matterport/MP_TOS.pdf

[Fang+, CVPR19]： Kuan Fang, Alexander Toshev, Li Fei-Fei, and Silvio Savarese. Scene memory transformer for embodied agents in long-horizon tasks. In CVPR, 2019.

[Wijmans+, ICLR20]：Erik Wijmans, Abhishek Kadian, Ari Morcos, Stefan Lee, Irfan Essa, Devi Parikh, Manolis Savva, and Dhruv Batra. DD-PPO: Learning near-perfect PointGoal navigators from 2.5 billion frames. In ICLR, 2020.