一 寫在前面
未經(jīng)允許戏锹,不得轉(zhuǎn)載,謝謝~~~
碎碎念~
距離上次更文也有一段時(shí)間了荠察,日子一天天地過(guò)的好快呀奈搜,中間有段時(shí)間生活有點(diǎn)失去自控力了== 僅剩下的三個(gè)月要加油呀!Rㄆ啊京髓!??????
這篇文章主要整理一下小樣本視頻動(dòng)作識(shí)別(few-shot video action recognition)的相關(guān)文章商架,相比于圖像領(lǐng)域的小樣本動(dòng)作識(shí)別而言蛇摸,目前針對(duì)視頻動(dòng)作識(shí)別的研究還是相對(duì)比較少的。
二 文章list
列一下近期的一些文章揽涮,然后簡(jiǎn)單介紹一下每篇工作最重要的idea。
會(huì)總結(jié)一些文章方法上的亮點(diǎn)盾似,但是不會(huì)介紹太細(xì)節(jié)的東西哈雪标。(理解不到位的地方也歡迎補(bǔ)充交流)
2.1 compound memory networks for few-shot video classification (ECCV2018)
這篇文章是最早在視頻動(dòng)作識(shí)別領(lǐng)域探索小樣本學(xué)習(xí)的文章村刨,主要提出了一個(gè)compound memory network,并且用meta-learning的方式進(jìn)行網(wǎng)絡(luò)的學(xué)習(xí)打洼。
左半部分是表示了multi-saliency embedding representation algorithm, 主要作用是接受變長(zhǎng)視頻的輸入募疮,然后得到一個(gè)大小固定的video descriptor以表征視頻特性枯饿。
右半部分的network是以key-value memory network為原型進(jìn)行設(shè)計(jì)的奢方,其中key可以理解為視頻特征,value為對(duì)應(yīng)的actio label稿蹲,這里的key又是由{abstract memory, constituent key memory}組成的two-layer結(jié)構(gòu)苛聘。
每個(gè)constituent key中存儲(chǔ)的是一個(gè)multi-saliency descriptor(視頻representation)忠聚,abstract key中存儲(chǔ)的是對(duì)stacked constituent keys進(jìn)行壓縮之后的特征值,這里是為了快速檢索网梢。
網(wǎng)絡(luò)reading以及inference: 給定一個(gè)query战虏,直接在abstract memory 中檢索最接近的key,這個(gè)key對(duì)應(yīng)的value就是predicted action label巡社。
網(wǎng)絡(luò)writing: 整個(gè)過(guò)程類似于數(shù)據(jù)庫(kù)的更新手趣,如果value set中沒有當(dāng)前數(shù)據(jù)類別回懦,那就執(zhí)行insert操作次企。如果已經(jīng)存在當(dāng)前數(shù)據(jù)類別缸棵,那就用已存在的key信息和新的數(shù)據(jù)key信息進(jìn)行memory的更新,更新順序?yàn)橄雀碌讓拥腸onstituent memory吧凉,再根據(jù)更新后的constituent memory更新對(duì)應(yīng)的abstract memory阀捅。
網(wǎng)絡(luò)training: 按照inference的方式得到predicted label之后针余,根據(jù)GT label進(jìn)行l(wèi)oss function的設(shè)計(jì)。
2.2 Embodied One-Shot Video Recognition: Learning from Actions of a Virtual Embodied Agent (ACM Multimedia 2019)
我們實(shí)驗(yàn)室去年的一篇工作忍级,follow了上面那篇compound memory network的setting轴咱。文章主要的貢獻(xiàn)是探索了從虛擬人物生成的視頻動(dòng)作中進(jìn)行動(dòng)作的學(xué)習(xí)烈涮,然后提了一個(gè)基于視頻片段替換的數(shù)據(jù)增強(qiáng)方法坚洽。
虛擬視頻生成以及UnrealAction數(shù)據(jù)集: 考慮到視頻數(shù)據(jù)由于是由很多的子動(dòng)作構(gòu)成的,難免會(huì)出現(xiàn)novel test video中的某些視頻片段或者包含的某些動(dòng)作已經(jīng)在source datasets中出現(xiàn)的問題器瘪,我們提出了從虛擬人物embodied agents中學(xué)習(xí)視頻動(dòng)作的想法。具體的實(shí)現(xiàn)方式為利用Unreal Engine4游戲引擎開發(fā)環(huán)境援所,讓不同的virtual agents在不同的virtual enviroments中扮演給定的action序列住拭,然后將其錄制為視頻历帚。這樣錄制出來(lái)的視頻(下圖)特征為 1)由于指定的action腳本都是很純粹的挽牢,可以避免到上述提到的這個(gè)source與target數(shù)據(jù)集存在部分交叉的問;2)模型不能再依賴backgrounds的語(yǔ)義信息進(jìn)行動(dòng)作識(shí)別刘离,因此識(shí)別的難度相對(duì)會(huì)高一些睹栖。
基于視頻段替換的數(shù)據(jù)增強(qiáng): 小樣本識(shí)別相比于通用的視頻動(dòng)作識(shí)別人物而言最大的瓶頸在于可用的標(biāo)注數(shù)據(jù)很少野来,因此我們提出了一個(gè)數(shù)據(jù)增強(qiáng)的方法曼氛。整個(gè)算法的想法還是比較簡(jiǎn)單直觀的,首先從source datasets中隨機(jī)選擇一定數(shù)量的視頻作為gallery videos秋忙,然后將這些gallery videos切分成等長(zhǎng)的clip灰追,在模型training和testing的時(shí)候通過(guò)比對(duì)輸入視頻clip的特征與gallery clips的特征狗超,選擇最接近的一個(gè)clip進(jìn)行替換以達(dá)到數(shù)據(jù)增強(qiáng)的效果努咐。
這篇文章更加詳細(xì)的介紹可以參考之前寫的博客 http://www.reibang.com/p/6f83670a6277, 以及歡迎大家多多關(guān)注(●′?`●)?。
2.3 TARN: Temporal Attentive Relation Network for Few-Shot and Zero-Shot Action Recognition (BMVC2019)
這篇文章主要是受到text sequence matching任務(wù)的啟發(fā)佩迟,將few-shot recognition任務(wù)也當(dāng)成匹配任務(wù)進(jìn)行處理报强,將一個(gè)視頻看成是segment-level的序列數(shù)據(jù)。
文章方法主要包含兩個(gè)部分:
- embedding module力惯;
- relation module召嘶;
embedding stage: 主要目的是將輸入視頻變成深度特征弄跌。網(wǎng)絡(luò)結(jié)構(gòu)為C3D+Bidirectional GRU碟绑,一個(gè)視頻分成N個(gè)segments的情況下茎匠,每個(gè)segments都通過(guò)C3D得到對(duì)應(yīng)的視頻特征诵冒,然后再將同一個(gè)視頻的segments特征輸入到GRU中以便學(xué)習(xí)前后文的時(shí)序信息。
relation module: 首先是segment-by-segment attention侮东,因?yàn)槊總€(gè)視頻的長(zhǎng)度可能是不一樣的悄雅,那么對(duì)應(yīng)的segment數(shù)量也是不同的(主要看sample set segments一欄的橫條數(shù)目)铁蹈,因此需要進(jìn)行query video和sample video的alignment工作,這里主要是通過(guò)引入一個(gè)待學(xué)習(xí)的網(wǎng)絡(luò)參數(shù)來(lái)實(shí)現(xiàn)的容诬,即利用矩陣運(yùn)算進(jìn)行維度轉(zhuǎn)換览徒,得到新的一個(gè)aligned version颂龙。然后就是comparsion layer,這里最簡(jiǎn)單的方法包括multiplication稿湿,substraction押赊,文章中采用的是用深度網(wǎng)絡(luò)(Unidiectional GRU + FC)的方式得到relation score流礁,最后對(duì)一個(gè)episode中的score值用softmax函數(shù)得到對(duì)應(yīng)的probability。
這篇文章比較好的地方還在于將方法擴(kuò)充到了Zero Shot Learning上再姑,對(duì)semantic attribute/word vector用了類似的方法進(jìn)行處理元镀。
2.4 ProtoGAN: Towards Few Shot Learning for Action Recognition (ICCV workshop2019)
這篇是發(fā)在ICCV workshop上的文章霎桅,從方法上看novelty會(huì)比較少一些滔驶。
整個(gè)框架圖如下,主要包含4個(gè)部分:
- encoder:獲取視頻特征萝快;
- class-prototype transfer network:得到每個(gè)類別的prototype vector著角;
- CGAN:條件對(duì)抗生成網(wǎng)絡(luò)吏口,將prototype vector作為condition锨侯,生成新的視頻特征;
- classifier:預(yù)測(cè)正確的動(dòng)作類別叁怪。
這四個(gè)部分中奕谭,encoder和classifier是基礎(chǔ)的compoents,簡(jiǎn)單介紹一下其他兩個(gè)血柳。
class-prototype transfer network: prototype的意思是為每個(gè)class(大于等于1個(gè)samples)的情況下計(jì)算得到一個(gè)可以代表這個(gè)類別的特征表示难捌,比較常見的有ProtoNet(對(duì)所有同類別的視頻特征取平均)根吁。文章中計(jì)算prototype采用的是class-prototype trasnfer network(CPTN),整個(gè)過(guò)程也不復(fù)雜介返,分成兩個(gè)stage沃斤,第一步跟protonet一樣取mean衡瓶,第二步是增加了利用average-pool進(jìn)行特征降維的操作鞍陨。
CGAN: 該模塊的目的是為給定的類別生成額外的新視頻特征以增強(qiáng)數(shù)據(jù)集。這里用上面得到的class prototype作為condition來(lái)限制生成的數(shù)據(jù)分布。具體的網(wǎng)絡(luò)結(jié)構(gòu)在框架圖中可以看到寿烟,給定一個(gè)noise和prototype vector先經(jīng)過(guò)一個(gè)generator得到生成的feature辛燥,后面的decoder挎塌,discriminator以及分類產(chǎn)生的結(jié)果在訓(xùn)練階段都將用于計(jì)算loss以優(yōu)化網(wǎng)絡(luò)。
在具體的setting上待锈,這篇文章claim了GFSL比FSL會(huì)更加難一些竿音,這里的區(qū)別是FSL測(cè)試階段只針對(duì)novel classes,而GFSL不僅要能正確識(shí)別novel classes柴信,還要識(shí)別seen classes随常,然后進(jìn)行了兩種setting的實(shí)驗(yàn)萄涯。
2.5 Few-Shot Video Classification via Temporal Alignment (CVPR2020)
這篇文章是今年發(fā)表在CVPR上的窃判,跟TRAN那篇文章一樣整體上是基于sequence matching的想法進(jìn)行query video與support videos的匹配袄琳,進(jìn)而進(jìn)行小樣本視頻的識(shí)別工作询件。
文章的方法示意圖如下:
embedding module:首先對(duì)于每個(gè)video,先參考TSN中的sparse采樣方法得到T段唆樊,每段一個(gè)小的snipet宛琅,對(duì)于每個(gè)snipet都用embed network得到一個(gè)維度為D_f深度特征。那對(duì)于包含T段的單個(gè)視頻而言逗旁,最終得到的視頻特征就是TxD_f (參照query video以及query feature map)嘿辟。
order temporal alignment: 1)首先是temporal alignment的這個(gè)概念,給定一個(gè)query video片效,一個(gè)support video各自的feature map的情況下,要得到他們之間的匹配程度淀衣,首先提出了一個(gè)snipet-level的匹配想法昙读,參考圖中“distance matrices with temporal alignment”的第一個(gè)面(后面的面表示多個(gè)support videos)。一個(gè)面(TxT)中每個(gè)pixel是一個(gè)二值(0或1)膨桥,當(dāng)其中一個(gè)pixel(l蛮浑,m)的值為1的時(shí)候表示query video中的第l個(gè)snipet和support video中的第m個(gè)snipet是匹配上的,即特征距離接近的只嚣。而圖中的折線就是連接了所有值為1的pixel而成的沮稚。2)構(gòu)建好temporal alignment的想法之后,剩下的就是怎么樣找到最優(yōu)的這條折線圖使得匹配的兩個(gè)videos之間的distance function最小册舞。優(yōu)化算法用的是dynamic temporal warping(DTW)蕴掏,即累計(jì)距離值:(其中D表示當(dāng)前snipet對(duì)的距離值)
當(dāng)然文章在原始DTW上針對(duì)具體問題做了改進(jìn),通過(guò)增加在t=0的前面和t=T的后面取0的方式使得算法突破邊界限制。
整個(gè)網(wǎng)絡(luò)的訓(xùn)練其實(shí)就是根據(jù)距離函數(shù)來(lái)設(shè)計(jì)loss function進(jìn)行的囚似,這邊的DTW本身是沒有直接需要訓(xùn)練的參數(shù)的剩拢,在求D(l,m)的時(shí)候需要用到embedding module提取到的特征,因此網(wǎng)絡(luò)實(shí)際需要訓(xùn)練的參數(shù)也就是這個(gè)embedding module饶唤。
2.6 Metric-Based Few-Shot Learning for Video Action Recognition (arxiv2019)
掛在arxiv上的一篇文章徐伐,總共就包含6頁(yè),看起來(lái)像是workshop文章募狂。
文章的方法部分比較簡(jiǎn)單办素,整體結(jié)構(gòu)如下圖:
總共包含幾個(gè)部分:1)Flow feature extraction 2) frame-level encoders 3)aggregation techniques 4)few-shot methods。
其中1)flow feature extraction指的是從RGB stream中得到optical stream祸穷; 2)frame-level encoders探索了ResNet-18以及AlexNet作為特征提取器性穿;3)aggregation techniques包括pooling,LSTM雷滚,convLSTM需曾,以及3D convolutions這四種不同的特征融合的方式;4)few-shot methods用了包括matching networks祈远,prototypical networks呆万,learned distance metric這三種不同的metric-based小樣本分類方法。
實(shí)驗(yàn)部分就是就是針對(duì)以上的第3和第4部分進(jìn)行實(shí)驗(yàn)车份,結(jié)果是是LSTM和prototypical的組合最優(yōu)谋减。
2.7 Few-shot Action Recognition with Permutation-invariant Attention (ECCV2020)
這是ECCV2020的一篇文章,文章的主要構(gòu)成如下圖:
網(wǎng)絡(luò)框架整體上看起來(lái)比較復(fù)雜扫沼,我們從左往右看出爹。
C3D feature encoder: 首先是輸入的support clips,這里的顏色塊跟后面都是對(duì)應(yīng)的缎除,對(duì)于每個(gè)video严就,先用C3D network(C3D網(wǎng)接受16幀輸入)提取到一個(gè)short-term的feature,注意一個(gè)視頻的特征是由多個(gè)這樣的特征構(gòu)成的(t=0伴找,t=1盈蛮,...)徒坡。
attention and pooling: 對(duì)用C3D分段提取到的視頻特征加attention侦讨,這里同時(shí)temporal和apatial都用了attention拗军。 然后對(duì)加了attention之后的feature做pooling。
relation network: 可以理解為求兩個(gè)視頻匹配度的一個(gè)部分衰倦,對(duì)于support set中的每一個(gè)video,都跟query video做一個(gè)relation的計(jì)算旁理,得到一個(gè)score值樊零。
self-supervised learning: 除了上述提到的幾個(gè)部分,文章還用到了self-supervised learning機(jī)制,主要包括三個(gè)方面:1)temporal jigsaw 2)spatial jigsaw 3) rotation驻襟。其中temporal jigsaw通過(guò)打亂視頻clip的順序然后讓其能夠正確識(shí)別到這種shuffling夺艰,spatial jigsaw的想法類似但是是在image-level上做的,rotation通過(guò)旋轉(zhuǎn)角度的方式來(lái)實(shí)現(xiàn)自監(jiān)督學(xué)習(xí)沉衣。
2.8 Few-Shot Learning of Video Action Recognition Only Based on Video Contents (WACV2020)
這篇文章是發(fā)表在WACV2020上的文章郁副,文章的亮點(diǎn)是可以接受所有的視頻幀作為輸入,然后用attention機(jī)制進(jìn)行融合豌习。
如上圖對(duì)于一段視頻存谎,對(duì)每一幀都獲取對(duì)應(yīng)的視頻特征。然后manually define了一些initial TAVs肥隆,做這個(gè)操作原因是作者認(rèn)為普通的方法在對(duì)frame-level做一些pooling(例如average pooling)操作的時(shí)候會(huì)忽視視頻序列的位置信息既荚,因此就定義了帶有位置特征的value值來(lái)影響原本的frame features,具體的嘗試了1)random栋艳,2)single switching distingushable(SSD)恰聘,3)dynamic gaussian(DG), 4)short-term dynamic gaussian(SLDG)四種不同的初始化方法吸占。
后面的操作就是對(duì)frame features在temporal-level上做attention晴叨,然后最后最一個(gè)求和以及線性變換的操作得得到最終的video feature用來(lái)做分類。整個(gè)網(wǎng)絡(luò)的特征提取CNN用的是ImageNet preatrained參數(shù)旬昭,并且沒有再重新finetune篙螟,網(wǎng)絡(luò)訓(xùn)練部分只針對(duì)attention部分的a convolution layer以及后面線性變換層的fully connected layer,因此網(wǎng)絡(luò)模型的大小很小问拘,可以放下所有的視頻幀特征遍略。
2.9 Depth Guided Adaptive Meta-Fusion Network for Few-shot Video Recognition (ACM Multimedia 2020)
這篇文章是我自己在MM2020上的工作,目前在Kinetics(74.1% on 1-shot)骤坐,UCF(85.1%)绪杏,以及HMDB(60.2%)這三個(gè)數(shù)據(jù)集上達(dá)到SOTA,歡迎各位大佬多多關(guān)注纽绍。
文章主要提出將depth作為場(chǎng)景的補(bǔ)充信息進(jìn)行引入蕾久,從多模態(tài)信息利用的角度緩解小樣本學(xué)習(xí)下標(biāo)注信息嚴(yán)重不足的問題。文章主要提出兩個(gè)方法:1)DGAdaIN拌夏,基于adaptive instance normalization的rgb模態(tài)與depth模態(tài)特征融合模塊僧著。 2)temporal asynchronization augmentation mechanism,時(shí)間異步采樣策略障簿,通過(guò)獲取不完全匹配的rgb和depth clip盹愚,在特征層做數(shù)據(jù)增強(qiáng),提升模型魯棒性站故。
網(wǎng)絡(luò)結(jié)構(gòu)圖:
- 整體由two stream構(gòu)成:RGB stream(主要的visual info)皆怕,depth stream (補(bǔ)充的scene info);
- depth map的獲取方式:Monodepth2 module作為depth estimator;
- 特征提取器:ImageNet pretrained ResNet-50
- DGAdaIN:融合兩個(gè)模態(tài)特征愈腾,基于Adapative instance normalization憋活,然后用depth guide RGB
- protonet:小樣本分類器。
- sampling:temporal asynchronization augmentation mechanism時(shí)間異步采樣增強(qiáng)策略虱黄。
DGAdaIN多模態(tài)特征融合模塊:
主要從image style transfer中受到啟發(fā)悦即,考慮到RGB模態(tài)包含大部分的視覺信息,depth作為補(bǔ)充場(chǎng)景信息礁鲁,所以將content image替換成RGB feature map盐欺,將style替換成depth feature map,通過(guò)一個(gè)類似的Depth Guided AdaIN模塊來(lái)做特征融合仅醇。
temporal asynchronization augmentation mechanism時(shí)間異步采樣增強(qiáng)
這個(gè)主要是考慮到我們?nèi)嗽诳匆曨l的時(shí)候即使背景發(fā)生一定程度的偏移冗美,例如“騎山地自行車”這個(gè)例子中背景從山移到路邊,我們也能正確識(shí)別這個(gè)動(dòng)作析二。因此想到一個(gè)魯棒的模型也應(yīng)該具有這樣的能力粉洼,反過(guò)來(lái),利用不完全匹配的rgb和depth作為clip作為輸入叶摄,經(jīng)過(guò)DGAdaIn模塊之后就能在特征空間對(duì)融合后的視頻特征做數(shù)據(jù)增強(qiáng)属韧。通過(guò)同時(shí)用完全匹配的rgb和depth clip,以及不完全匹配的clip去訓(xùn)練模型蛤吓,可以在一定程度上提高模型性能宵喂。
20210513更新:
我們開源了這篇工作,code地址: https://github.com/lovelyqian/AMeFu-Net/
歡迎大家關(guān)注;岚痢9亍:(看在上帝的面子上,順便求個(gè)star嘻嘻)
----------------------------------------0918更--------------------------------------
必須要說(shuō)明一下不是所有的文章細(xì)節(jié)都看了淌山,真的很怕會(huì)出現(xiàn)偏頗的總結(jié)裸燎,還希望大家多多包含吼!
另外泼疑,歡迎大家補(bǔ)充德绿,最后立個(gè)繼續(xù)更新的fla。 ??