Streamlined Dense Video Captioning
Streamlined Dense Video Captioning Jonghwan Mun, Linjie Yang, Zhou Ren, Ning Xu, Bohyung Han CVPR 2019 https://arxiv.org/abs/1904.03870
Abstract
Contiributions
- 従来の1動画1インプットではなく,動画をフレームごとに連続で入力し続けるような手法を提案した.
- 提案手法(The proposed event sequence generation network )は,イベント間の時間的関係性をモデル化する.
- 強化学習を組み合わせて,キャプション間が一貫するのと,キャプションの質の向上をもたらすようなエピソードとイベントレベルの報酬を設計した.
- ActivityNet Captions datasetでSoTA.
Dense VIdeo Captioning
- イベントを認識して,キャプションを生成するタスク.
Dense-Captioning Events in Videos Ranjay Krishna, Kenji Hata, Frederic Ren, Li Fei-Fei, Juan Carlos Niebles 16 pages, 16 figures https://arxiv.org/abs/1705.00754
Method
1. Overview
- 従来: イベント検出に続いて,キャプション生成.
- イベントとキャプションの負の最尤推定を合計を最小化することで学習.
- ビデオ中のイベントは時間的な依存関係より単一トピックに関するストーリーに基づく必要があるので,イベントの順序を追うことが必要. これを考慮して,イベントの連続性とそれに続くキャプション生成を高密度でやるように定式化.
- ビデオが入力され,event proposal networkがイベントを提案する.
- event sequence generation networkがイベント提案の候補の一つを選ぶことで一連のイベントを提案する.
- proposed sequential captioning networkが選ばれた提案からキャプションを生成する.
2. Event Proposal Network(EPN)
- イベント候補を選択する.
- Single-Stream Temporal action proposals(SST)[Buch+ CVPR17]を使用.
- 入力は固定長.
- 各セグメントをイベント提案の終点として扱うことで,各tでGRUからk次元出力ベクトルで表されるk個のセグメントから一致する開始点を認識する.
3. Event Sequence Generation Network (ESGN)
- イベント提案候補集合が与えられ,ESGNは相関の高い一連のイベントを選んでエピソードを作る.
- Attentionモジュールを使うことで,RNNで入力集合上で分布を生成するようなPointerNetwork[Vinyals+ NIPS15]を使う.
- PointNetは提案されたイベントの順序つきサブセットを選び,時間依存性を考慮してキャプションを生成するのに適している.
4. Sequential Captioning Network (SCN)
- EpisodeRNN,EventRNN($RNN_{e}$)で成り立つ.
- EpisodeRNNは,検出されたイベントを入力としエピソードの状態をモデル化する.
- EventRNNは,エピソードの現在のコンテキストに基づいて条件づけられた各提案されたイベントに対して,キャプションを生成していく.
力尽きた
A Closer Look at Spatiotemporal Convolutions for Action Recognition[Tran+ CVPR18]
A Closer Look at Spatiotemporal Convolutions for Action Recognition[Tran+ CVPR18]の解説を行う.
まとめ
- 2DResNetがSports-1M(動画ベンチマークデータセット)において,SoTAに近い精度でAction Recognitionができる. でも,2DCNNってモーションのパターンや時間的情報をモデル化できないのに,えもいなあ. そもそも動画は,行動のクラス情報がシーケンス内で性的フレームの中にも含まれているので時間を使った推論っていらないんじゃね?ってなった.
- 上記の問題点を考えるために,3DCNNの役割について議論をする. でも,結構3DCNNについてはやられているので,residual learningをしているという縛りをつけて再考をする.
- 提案手法1. Mixed Convolution. ネットワークの最上層で2DCNN,その後の初期層で3DCNNを使うと,2DResNetより3~4%高い精度が出た. 加えて,3倍以上のパラメータを持つ3DResNetと同等の精度が出る.
- 提案手法2. R(2+1)D. 3DCNNを使うのではなく,2DCNN + 1DCNNを使う. 3DCNNと同じパラメータ数だが,非線形化するところが2倍になるので,複雑なモデルを学習できてえもくなる. 加えて,この分解がパラメータを最適化しやすいようにする. ResNetのConvを全部(2+1)Dにしたら,KineticsとSports-1MでSoTA.
- Factorized Spatio-Temporal Convolutionak Networks[Sun+ ICCV2015]に近い. networkをfactorizationしようとするが,R(2+1)Dはlayerでしている.
- Pseudo-3D network[Qiu+ ICCV2017]とも近い. 2DResNetをビデオに適用しており,3つの異なるResBlockを提案している.(その論文の図を見てください. 見ればわかります.)(A)空間から時間,(B)空間と時間の並列,(C)空間のskip-connection. これはネットワークの深さによってBlockが変わるが,R(1+2)Dはずっと均一.
手法
R2D
(a)R2D
入力x (3 x L x H x W)があって,2DCNNだと空間方向は関係ないので,x (3L x H x W)にリサイズして入力する.
Mixed Convolution
仮説として,モーションモデリング(3DCNN)は初期層で有用だが,抽象化された後期層ではモーションや時間的モデリングは必要ないことがある.
なので,最初3DCNN使うが,最後の方で2DCNNに変える. (b)では4,5を3DCNNに変えているので,MC4と呼ぶ.
また,対立仮説として,2DCNNを使って外観情報を先に取り込むことで,有益になるかもしれないので,上記と逆のこともする. これをreversed MC3は(c)になる.
R(2+1)D
3DCNNを2DCNN + 1DCNNで近似する(e). メリットは + パラメータ数同じだが,ReLUの数が2倍になるので非線形数2倍になる. 非線形を増やすと複数の小さなフィルタが大きなフィルタの効果と同じような役割になる(VGGのろんぶ〜んに書かれている.)
実験
- KineticsとSports-1Mをスクラッチからのモデル評価.
- 上記モデルをUCF101とHMDB51でfinetuningして評価.
spatio temporal convの比較
Kinetics validation datasetによる,ResNet18のCNNを変えた時の結果
Kinetics validation datasetでの縦軸: 精度,横軸: 計算コストの結果 青: R(1+2)D,赤: R2D,紫: R3D
青は精度ずば抜けて高くて,R3Dとほぼ同じ計算量である.
video lebelでの予測の比較
(a) クリップ数と精度,(b) top-1 accuracy.
34-layer R(2+1)D net
Sports-1Mでの結果
Kinetics
Finetuning
UCF101とHMDB51
Conclusion
- Action Recognitionにおける,異なるspatiotemporal convollutionsの効果を調べた.
- singleモデルのResNetに取り組んでSota出した.
感想
- two-branch networkで片方R(2+1)D,もう片方3DCNNで異なる意味を持つ特徴抽出とかやったらなんかわかりそう?
- 結局,Action Recognitionにおいては時間的特徴はあんまり関係ないのか?もし,例えばこれがフレーム予測生成などになると空間的特徴は必要だと思うので実験してみたい.
次読む論文
気になった人へ + Non-local Neural Networks[Xiaolong Wang, Ross Girshick, Abhinav Gupta, Kaiming He, CVPR18], https://arxiv.org/abs/1711.07971
SoundNet: Learning Sound Representations from Unlabeled Video[Aytar et al. NIPS2016]
SoundNet: Learning Sound Representations from Unlabeled Video[Aytar et al. NIPS2016] の簡単にまとめ.
詳しくはこちらへ 著者のAntonio TorralbaさんはMultimedia界隈でありえん有名らしい
SoundNet: Learning Sound Representations from Unlabeled Video - MIT
目的
- 音声表現を学習するために,自然なunlabeledな動画(画像と音声)の相関を学習すること.
- エモいpretrained model作る.
2 Large Unlabeled Video Dataset
3 Learning Sound Representations
3.1 Deep Convolutional Sound Net
CNN
- 1DConv使用
Variable Length Input/Output
- 長さは様々なので色々扱いたい
- inputの長さによって特徴は変わるので,様々なinputの長さでうまくいくoutput layersを設計せなあかん.
- global poolingだと特徴を破棄してしまうことがある.
- 目的はビデオでtrainするので,Conv使うよん
Network Depth
- overfitting怖い
- conv8層, pooling3つにした. conv5層と比較して良いと判断したから.
3.2 Visual Transfer into Sound
- student-teacherモデルでやる
- visionがネットワークに音声がオブジェクトやシーンを認識するために教える.
- KL距離を最小化するように学習
3.3 Sound Classification
- output layerではなく,中間層の情報を使うのと,線形SVMを学習する.
3.4 Implementation
- Adam,beta1=0.001, beta2=0.9
- batch size 64
- 初期値はmean gaussian noise 0.01
- convの後にはbatch norm, ReLU.
- 100,000 iterations.
4 Experiments
Experimental Setup
- train 2m, test 140k
Baselines
- conv4, deconv4のautoencoderみたいにした.
- MSELoss
4.1 Acoustic Scene Classification
- DCASE Challenge, ESC-50, ESC-10 datasetsを使用
DCASE
- Detection and Classification of Acoustic Scenes and Events Challengeの略
- 音声からシーンを認識する
- 10 acoustic scene categoryがある
- 各カテゴリーに10 training example,100 test exampleがある
- 30s
ESC-50 and ESC-10
- ESC-50は,5メジャーグループ(animal, natural soundscape, human non speech sound, interior/domestic sounds and exterior/urban noise)50カテゴリー5s の音.
- 当時のSoTAは81.3%
- 各カテゴリ40 samples
- ESC-10は10クラス(dog bark, rain, sea waves, baby cry, clock tic, person sneeze, helicopter, chainsaw, rooster and fire cracking)
- 当時のSoTAは95.7%
- 結果は下の図みて
Conclusion
- unlabeled datasetで学習して識別するモデルを作った
感想
- 雑ですが,細かい議論を見るには論文を読んで方が早いです.
- 音声もやっぱConvなんだ
- fine tuningはしてなさそうだし,このモデルが大規模pretrained modelとなったのか
- 画像と音声の距離を近づけるためにKL距離を使っていてなるほどなってなった
- ObjectとSceneは分けた方がいいのか?ここら辺がわからなかた
- 結果で,conv6の特徴量が一番精度高くなってて,conv7,8だと急激に落ちてるのはなぜだ?
Dencsely Connected Pyramid Dehazing Network[Zhang+ CVPR18]
Dencsely Connected Pyramid Dehazing Network[Zhang+ CVPR18]
[1803.08396] Densely Connected Pyramid Dehazing Network
1. Abstract
空気汚染とかで霞んだ大気(ちょっとしたモザイクのようなもの)は認識などのタスクでノイズとなりうるので、それらを除去 するような手法を提案した。 DenseNetを用いた、特徴量を豊富に獲得するedge-preserving densely connected encoder-decoder structure with multi-level pyramid pooling moduke for estimating the transmission mapを提案する。 このネットワークでは、edge-preserving loss functionを提案しており、corresponding dehazed image と estimated transmission mapが を識別するjoint-Discriminatorが元となってる。
2. Introduction
- I: 入力画像
- J: モザイク除去後の画像
- A モザイクっぽいの
- t: transmission map
- z: pixel location
画像をEq.1で数式化して、Jを推定する。なので、Eq.2の数式を解いていく。 Eq. 1に示す式を直接推定できる手法がDensly Connected Pyramid Dehazing Networks(DCPDN)である。
でも、直接推定するのは難しいので、stage-wiseで徐々に学習していく。
上図がネットワーク図で、英語で書いてある通り、そういう順番で学習していく。
1. Transmission Map Estimation Network
Convして、Dense3層(down-sampling), Dense5層(up-sampling), Deconv
(最初のDense3層は、densenet121のpretrainedモデル使った)
ここでは、Transmission mapの推定を行う。
2. Atmospheric Light Estimation Network
モザイク推定するところ。 UNetで、Conv-Bn-Relu、Deconv-Bn-Relu4層
3. Dehazing
目的Jを推定するところ。
1~2の橋渡しをする。
4. Joint Dscriminator Learning
Discriminator
Edge-preserving Loss
提案ロス。L2だけだと推定が難しいので、
- Edgeは画像の分け目(ものとものとの分かれてるところ)だし、Image graduentsに特徴付けられる。
- 輪郭やEdgesみたいなlow-levelな特徴量はCNNの最初の方の層で拾われる。 という背景からEdge-preserbing Lossが提案されてる。
L2 loss, two-directional(horizon, vertical) gradient loss, feature edge lossの和である。
two-directional gradient loss
H()はimage gradientを取る関数。
feature edge loss
V()はfeatureを取る関数。V_1 = VGGのrelu1-1, V_2 = VGGのrelu2-1
Stage-wise Learning
gradientsがなかなか最初取れないので、こうした。
Experiments
モザイク除去結果
濃すぎず、薄すぎずいい感じだ!!!!!!!
感想
- もやもやが映ってる画像をクリアーにするっていうの面白いなって思った。実は日頃我々が見ている光景は汚れた世界なのかもしれない。でぃーぷらーにんぐの力で綺麗な世界を映し出して欲しい。
- モザイク除去
- サーベイ不足でわからないが、大きな貢献はEdge-preserving lossとJointly Discriminatorである(と思う)。推定したJと推定maskをconcatしてDiscriminatorで推定するタスクは、取り入れてみたい。
Synthesizing Images of Humans in Unseen Poses[Balakrishnan+ CVPR2018]
Synthesizing Images of Humans in Unseen Poses
Guha Balakrishnan, Amy Zhao, Adrian V. Dalca, Fredo Durand, John Guttag
Abstranct
背景(Back ground)と人(Fore ground)を分離して、別々に生成してからくっつけると、綺麗にポーズを変えれた(Fig1)。
Method
工程を4分割(A~C)。A,C,DはUNet使ってる。
A. Source Image Segmentation
入力画像の人の画像(Fore ground)を背景(Back ground)から切り出す。この時、MaskはHead, neck, shoulders, elbows, wrists, hips, knees and anklesで別々に行う。
下図の理由から、VGG+GANを選択
マスクをBに渡す。背景をDに渡す。
B. Spatial Transformation
空間的関節の変形をする。
C. Foreground Synthesis
MaskとConditionから画像を生成。
D. Background Synthesis
(ここあんまりわからなかったです。教えてください。) Aがガウシアンノイズを入れてから渡して来ている。 InputとMaskの積 + ガウシアンノイズと背景の積
最後にC,DのOutputを合成。
実際の各ステージの例
3.感想
- 綺麗にポーズを変えれてるのは Fore と Back を分けて生成して合成してるからで、ここが通ったポイントですかね
- 画像特徴量でVGG+GANを選んだ理由を図つきで説明してくれてありがたかった。他のタスクでも使えそう
- UNetの効果がすごい
- 推し声優の久保田未夢さんに色々なポーズを撮らせて合成したい。我ながら気持ち悪いモチベーションである。
- 普通にエモいな〜〜結果。
PairedCycleGAN: Asymmetric Style Transfer for Applying and Removing Makeup[Chang+ CVPR-2018]
PairedCycleGAN: Asymmetric Style Transfer for Applying and Removing Makeup[Chang+ CVPR-2018]の解説記事です。
1. Abstract
メイクをCycleGANを用いて、したり、落としたりする。
forward functionで化粧をして、backword functionで化粧を落とします。
2. Formulation
Adversarial Loss
顔ができることを担保するロス
Identity Loss
化粧をさせて、戻すとき、どんな顔にやったかを覚えておくL1ロス
Style Loss
化粧
Total Loss
3. Implementation
Training pipline
まず、学習の仕方として、Inputに「化粧したやつ」「してないやつ」が入る。そして同時に化粧とさせるところGと落とすところのFを学習させる。
次に、Fig4のように、目(青)、唇(黄色)、肌(赤)を対象にCycleGANを適用させる。メイクは、色がついてるところをMaskとして獲得している。
Fig 5は、実際のG(やF)の中身である。例として目の周りを示している図。
Inputに、すっぴんと参考メイクを入れて、DRN3層で特徴量を得て、Contentsの差(Delta Contents)を計算する
そして、StyleをDelta Contentsに適用させて、Outputをして化粧された画像を得る。
4. Results
FIg7, 8, 9, 12がこの手法を用いた結果。
次に、他の手法と比べる。
下の行に注目すると、Ours以外は、Makeup Referenceの目元のアイラインがあまり綺麗にできていない。
しかし、Oursはできており、これは、GがContentsの差分を計算しているところが大きく影響してるんじゃねって思った。
従来手法より綺麗にできている。
4. まとめ
化粧系の論文を読んだのは初めてだが、通った理由は、論文がわかりやすくて、Fig5のように差分を計算してStyleをあてはめることで、 ありえん綺麗にメイクをしたり、落としたりできるところや、GとFを同時学習してるところなのかなと思った。
5. 感想
- データセット集めについても書かれていたのだが、Youtubeのメイク動画から集めて、前半はすっぴん、後半は化粧済みで集めたらしくて、 「あ〜〜〜〜確かにそうじゃん!」ってなってちょっと笑った。
- 今回扱ってる化粧が、日本人に居なさそうな結構濃いものであり(わからんけど)、女子高生などが求めている化粧、つまり自分も好きなものではない気がした。
- Domain Adaptation系は発想次第でまだまだやれるんじゃないかと思った。なのでアイデア大事にして、何かしら論文を書きたい。
- 昔流行った(?)化粧取る系のアプリ、この手法使えばもっと高精度でやれそうなので、誰か作ると結構ダウンロード数稼げそう。いや、知らんけど
- 個人的な興味として、一般のすっぴんを、芸能人で学習したモデルでメイク落としをやると、ちょっとメイクされそうで面白そうと思った。日頃の美容への捧げようからそう思った。
- 日本のアイドルがやってそうなメイクでもできるのかな?できるとしたら需要ありそうだし、ビジネスチャンスですよ、学会で「どうビジネスに使うんですか?」って聞いてくる大人の方々!!!
TextureGAN: Controlling Deep Image Synthesis with Texture Patches[Xian+ CVPR-18]
TextureGAN: Controlling Deep Image Synthesis with Texture Patches[Xian+ CVPR-18]
[1706.02823] TextureGAN: Controlling Deep Image Synthesis with Texture Patches
Abstract
深層学習を用いてSketch, Color, Texture(論文中で定義)による画像合成の調査。
今までの画像合成はSketchとColorでされてたが、Textureを制御すること検討する。
Sketchに色のついたものを乗っけると線画画像が塗ることができるように学習する。
この目的を達成するために、local texture lossを提案する。
TextureGAN
Figure2は、Content と Style は VGG を使い、high-level semantic informationを獲得してるらしい(VGGでやると特徴量が色々出て来るから?わからない StyleTransferまわりの知識が抜けてました。)
generating structure の feature loss に注目するために、ground-truth(本物)とgeneratedをRGBからLAB色空間に変えて、Lチャネル値を繰り返して gray scale に変換している。
結果はFigure 4
Figure3は、low-level texture details に注目するのはむずいので、Textureから特徴持って来てる。 加えて、local texture loss(赤い矢印の3つのlossの和) を提案してる。
学習時にはmaskを入れてるが、用いたデータセットは背景が白いので、foreground部分がそれに該当する。[1]
結果はFigure 5
VGGは"leather"で出て来た画像を厳選した6300枚でfine-tuningして使った。
Conclusion
local textureの制約で学習すれば(Figure 3)、conditional を含めたpix2pixのようなタスクをこなせるようになった。
Lab色空間で操作すると、color と contentを分けて操作できた。
Figure8より、複数のTexture(色のcondition)を入れても、学習できることがわかった。
感想
- ありえんロス多いのに学習成功させてるところにパワーを感じた。すげえ。
- 初めてLab color spaceなんて言葉聞いた。なんやねんそれ。多分RGB空間でやるより、Lチャネルでgray scaleでできたり、ABチャネルでロスを計算させれたりできているので、楽なんだろうなあ
- 背景が白く、maskの獲得が簡単なので学習がうまくいくのか?もし、新宿に立ってる人間の線画でやろうとするとmaskを獲得できても難しいのではないかと思った。いや、わからん。
- 失敗例をみたい
- スク水画像になるように学習して、適当に拾って来た人間の画像を線画にして、生成することでそのような画像にを生成できるようになる世界が早く来て欲しい。