Dense-Captioning Events in Videosを読んで



##  1. どんなものか？
目的: ビデオ内のすべてのイベントを識別し、それらを自然言語で記述したい。


->ビデオで発生する複数のイベントの一連の説明を生成し、それら時間にローカライズする(イベント時間と一致、させる)というタスを解く

本論文では

## 2. ~~先行研究との違いは何か？~~
## 3. 技術や手法のキモは何か？

1.提案手法：　　　Dense-Captioning Events model  
2.新データセット：ActivityNet caption dataset
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/f811f74e-740f-5164-d636-9360b6e634d1.png)

### 1.Dense-Captioning Events model


![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/abc74194-3976-ed14-8f3f-f2a43b7eb334.png)



#### モデル構造
#### エンコーダー：Event proposal module
入力値:ビデオフレームシーケンス
出力値:ビデオ中の推定イベントの隠れ特徴とビデオ内での対応時間
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/cd45381c-2155-4a5a-f6e4-ef4d6fec3f57.png)

###### ・C3D (３次元畳み込み)
＊ビデオをnフレームに分割し、各ビデオフレームから意味情報を捉え低次元化した特徴テンソルを出力
![image.png](
https://qiita-image-store.s3.amazonaws.com/0/85157/7b8ce881-3c91-bd76-acad-c6e8216d24d2.png)

###### ・DAPS(Deep Action Propsal)
LSTMは
＊長い、短いに関係なくイベントを抽出できる。    
＊１走査で異なる時間スケールのイベントを抽出できる  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/4664d17f-2eb5-e787-4da8-5ce221c8d8f1.png)


しきい値よりも高いスコアを持つすべての提案は言語モデルに転送される。


#### デコーダー Captioning module  (with context)

単純なキャプションアプローチでは、各説明を独立に扱って、それぞれを説明するためにLSTMネットワークを使う。  
ビデオ内のほとんどのイベントは相互関係があるため、キャプションモジュールを設計して隣接するイベントからの「コンテキスト」を取り入れる。

###### ・コンテキストを組み込む
参照イベントの他のすべての隣接イベントからコンテキストを取得するためにすべてのイベントを"2つのバケット"に分類する。  
2つのコンテキストバケット  
・すでに発生した（過去の）イベント  
・イベントが終了した後（未来の）に発生するイベント  

提案モジュール与えられたビデオイベントに対して、過去と未来のコンテキスト表現を以下のように計算する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/d1c5e10e-9fe0-0b18-a1c7-4bd0a526da37.png)

wjは、イベントjとイベントiの関連性を判断するために使用される重み、Zは正規化  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/5444d146-6c61-5c27-cb40-725eaa5fb0a0.png)  
a<sub>i</sub>は学習された重みw<sub>a</sub>とバイアスb<sub>a</sub>から計算された"アテンション"ベクトル 
w<sub>j</sub>を計算するために、a<sub>i</sub>とh<sub>j</sub>の内積を使用する。

（h<sub>i</sub><sup>ｐａｓｔ</sup><sub>i</sub>、ｈ<sub>i</sub>、ｈ<sub>i</sub><sup>future</sup>）の連なりは、その後イベントを説明するＬＳＴＭへの入力として用いる。
コンテクストの組込により、各LSTMはまた起こった、または起こる予定のイベントについての知識を持っておりそれに応じてキャプションを調整することができる


### 2.ActivityNet Captions dataset
ビデオ内で起こったイベントについて説明文をつけたデータセット。

##### 特徴
・ビデオの固有のセグメントを網羅している  
・ビデオ内で発生する複数のイベントを説明している  　　
・イベントの発生時間はバラバラ、  
・イベントは同時に発生する可能性がある  
##### 統計
・ビデオは20kあり、各ビデオには平均しての3.65の時間的にローカライズされた文があり合計100kの文がある  
・平均してビデオ全体の内94.6％でパラグラフがついており、主要なイベントをカバーしている  
・説明文の10％が重複していることがわかり、同時イベントをカバーしている
・ビデオ時間が増加するにつれて、文の数も増加する  
・（データセット作成時点で）動詞と行動によく言及したデータセット。  
Visual Genomeすると.....  
構成する動詞の割合が大幅に高くなっているため、オブジェクト中心型からビデオ内のアクション中心型  
より多くの代名詞が存在するため、文ラベルは以前の文で見つかった要素をより頻繁に参照する  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/9968b20b-a740-2107-0799-50956950b18d.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/0f9e38e6-e9cd-9b37-0ac2-a1f744e4ee0e.png)

##### 説明文と時間の合意
2人のワーカーから異なるアノテーションを収集し、アノテーションの各ペアが時間的に70.2％一致している事を確認した(既存と同程度)

## 4. どのように有効性を検証したか？
1.ビデオ内の複数のイベントを検出してそれらを説明文を作成することによって、モデルを評価  
2.ビデオのすべてのイベントを適切にローカライズする能力をテスト  
3.ビデオのすべてのイベントを適切に検索する能力をテスト  

#### 1.ビデオ内の複数のイベントを検出してそれらを説明文を作成することによって、モデルを評価
ActivityNet Captionsデータセットに既存手法と様々な形の提案手法を適用し結果を(よくあるやり方で)評価
　・LSTM-YT [49]  
　・S2VT [50]  
　・H-RNN [64]   
　・no context 過去と未来の文脈を利用しないモデル  
　・online　　　過去のみの文脈を利用するモデル  
　・full　　　　全ての文脈を利用するモデル  
-atte : 特徴を連結するためのアテンションを利用せず平均プーリングを使用したモデル。式(５)においてｗj = 1を設定する。
左は手法ごとに評価をまとめたもの。ただし既存手法は動画全体のアノテーションを作成するもので、提案手法はイベントごとに作成しているのでこれについての評価を右でしている。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/ed2533bd-5062-d241-77bb-0e462299d9c7.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/8ace85a9-c850-24af-c0ef-32d736d0611e.png)


![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/4507378a-1c85-1533-52a2-c2e3e2c76ae9.png)
（a）では、no contextモデルの最後のキャプションはトピックから外れてるが、full modelはコンテキストを利用してより合理的なコンテキストを生成した。 
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/532b983b-8656-2b9b-4692-c64d17e8a1a9.png)
full context modelは、野菜が後でボウルに混ざっているという知識を使って3番目と4番目の文でもボウルに言及することができた。しかし文脈が常に優れたキャプションを生成するのに成功するわけではなかった。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/bc845cc9-2ea2-ba7d-527e-151a4879f5d4.png)
提案されたセグメントが高い重なりを有するときモデルは2つのイベントを区別することができず、それがキャプションを繰り返すことを引き起こした。






### ~~2.ビデオのすべてのイベントを適切にローカライズする能力をテスト~~
### 3.ビデオのすべてのイベントを適切に検索する能力をテスト

過去のみの文脈を使うだけで性能は大きく上がることがわかる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/2783297b-02df-86f9-1a73-b6b9a0b8c0a5.png)





## もっとも良い結果の例
![image.png](https://qiita-image-store.s3.amazonaws.com/0/85157/ddc2bc9d-15df-2611-fb1f-e91f20d10237.png)