1. 程式人生 > >讀書筆記25:Temporal Hallucinating for Action Recognition with Few Still Images(CVPR2018)

讀書筆記25:Temporal Hallucinating for Action Recognition with Few Still Images(CVPR2018)

openaccess.thecvf.com/content_cvpr_2018/papers/Wang_Temporal_Hallucinating_for_CVPR_2018_paper.pdf

摘要首先介紹背景,從靜態圖片中進行動作識別最近被深度學習方法促進,但是成功的方法都需要大量的訓練資料,因此不是很實用。但是人類在識別同樣的問題就不需要那麼多資料,因為人類可以將看到的圖片與記憶中看到過的video相比較,正是基於這樣的觀察,本文提出一個hybrid video memory machine,可以根據記憶中的video,在看到still image的時候幻想出來一些動作資訊。模型大概有三個部分,首先是temporal memory module,用來進行temporal hallucinating和temporal predicting,其中temporal hallucinating以無監督的方式生成靜態影象的temporal feature,temporal predicting對query image進行action類別的推測;第二部分是spatial memory,用來進行spatial predicting;最後是一個video selection module,用來將相關性強的video選擇出來作為memory。

首先,本文使用了Towards good practices for very deep two-stream convnets和Temporal segment networks: Towards good practices for deep action recognition中的two-stream 模型來得到video和image中不同的action characteristics,方法是將video memory的RGB和optical flow分別輸入到two-stream模型的spatial和temporal streams,然後得到video空間和時間的feature

                                                                                          

接著,query image和training image被輸入到spatial CNN中,得到spatial feature

                                                                                     

這裡面代表query image,代表training images(有很多),由於still image是沒有optical flow的,也就沒有temporal feature,但是接著會介紹模型的temporal memory module,這個模組可以從still image中“幻想”出temporal feature,幻想出來的再結合到video memory裡面進行temporal prediction。

temporal memory module:這個模組分兩部分,首先介紹temporal hallucinating,temporal hallucinating的目標是利用video memory,從still image中學習到temporal feature,也就是,本文采取高斯過程來實現這個目標。高斯過程是一個non-parametric的貝葉斯模型,作者稱使用這個的主要原因在於,對於從memory中比對新的樣本,non-parametric的方法比parametric的方法更合適,不容易發生“catastrophic forgetting”(看到這裡不是很懂,非引數模型和高斯過程都不是很懂)。

如上圖所示,temporal hallucinating首先要對比images和video的spatial similarities,這個過程的目的是掂量一下哪些video可能和這個image更相關一些,這個比對過程可以用下式,一個GP(高斯過程)的kernel operation進行

這裡面是前面提到過的query和training image的spatial feature,指的是video的spatial feature,kernel matrices 的每一個元素都是用一個kernel function 得到的,而都是features,是噪聲項。的每一行都是對於一個影象生成的video的權重向量。

得到了video和image之間的similarity matrix 之後,image的temporal feature可以通過video的temporal feature的加權求和來得到,也即

                                                                                

在這裡作者強調,由於temporal hallucinating是以一種非監督的方式進行的,不需要使用label,因此可以應用在實際的情境中,比如有的時候image和video的類別可能不是一致的,不配套的。總結一下,這個模組其實就是通過比較query image和video的spatial similarities,得到query image和memory中的各個video的相似程度,得到weight vector,之後根據這些weights將video的temporal feature加起來,得到query image的temporal image。

當靜態圖片的temporal feature生成了之後,就可以為query image進行temporal prediction了。首先進行的是temporal similarity 的比較,前面得到了video和training images的temporal feature,也即,之後,比較query image和這個temporal memory之間的相似度,掂量一下哪個video和哪個training image和query image在temporal上更加相關。需要注意的一點是,query image和training images之間similarities的性質可能和query image與video之間相似度的性質不同,因為video和image是不同domain上的資料。因此,GP(高斯過程)的kernel operation需要加一個domain-adaptation噪聲項

這裡面是query image的temporal feature,通過temporal hallucinating獲得;是temporal memory;kernel matrices 的元素是通過kernel function 得到的;都是噪聲項;最終得到的是對temporal memory加權求和的權重,得到它之後,temporal predicting就可以通過在temporal memory的labels上加權求和獲得

其中,分別是temporal memory中video和training image的label,由於video和image的action categories可能不統一,不一致,所以將兩者的category總數用作表示類別的one-hot vector的長度。temporal predicting的示意圖如下

在此基礎之上,由於image和video都有spatial feature,本文還引入了spatial memory module,將videos和training images的spatial feature整合起來作為spatial memory。具體來講,這個module的結構和是將temporal predicting中的那個的所有temporal terms都換成spatial terms。這樣,對一個query image進行最終的預測的時候,就是一個spatial temporal fusion的過程,時空兩個維度的資訊可以相互補充,幫助預測。

 在實際應用中,將整個video的資料集作為memory是很不經濟也沒有必要的,因為不是所有video都和query image相關,因此本文設計了一個video selection module用來從video bag中篩選高相關的video,這個video bag是從每一個video-domain action categories中隨機抽取出來的。這個video bag抽取出來之後,首先用來對training images進行temporal feature的hallucinating,這樣,每一個有了temporal feature的image就被視作一個pseudo video了,同時具有spatial temporal features。之後使用pseudo videos作為memory,對video bag中的video進行spatial temporal predicting,video bag中的每一個video的prediction score對應的是image domain的label(因為memory選擇的是image生成的pseudo video)。之後,每一個video的spatial和temporal score都會通過一個spatial and temporal score fusion進行聚合(具體fusion的方式並沒有說),得到,而從中選擇最大的就可以作為每一個video對於image domain的重要性的衡量(importance),對於video bag中的每一個video-domain category,都選擇最大的個video,這些video的spatial和temporal的feature就作為video memory了,為了使video和training image平衡一些,和每一個image-domain category中的image數量相同。video selection的示意圖如下