當前位置:編程學習大全網 - 源碼下載 - 雙流法和C3D卷積。

雙流法和C3D卷積。

雙流方法和C3D是行為識別中兩種經典的基本方法。下面就簡單記錄壹下這兩種方法。

簡單來說,其實雙流法和C3D卷積網絡都要處理壹個視頻中的類別信息(這裏的信息根據數據集暫時是單壹信息),通過找到這個類別信息來表示這個視頻的分類。

雙流法,顧名思義,就像兩條小溪流,分別流動,最後匯合在壹起;其中壹個小流被命名為“RGB”地圖信息,它可以是3通道信息或RGB-D灰度地圖信息;另壹個小流的名字是“光流”圖的信息,壹般光流圖是兩個通道的信息,即X軸上的信息變化和Y軸上的信息變化。光流是通過兩幅圖像的梯度計算得到的,抽象層次可以理解為其關鍵點的像素信息運動的信息。

如圖,做法其實很簡單,相當於訓練兩個CNN分類器。壹個專用於RGB圖像,壹個專用於光流圖像,然後融合兩者的結果。RGB圖像的選取是在給定的視頻中隨機選取任意壹幀;光流圖就是選取視頻中任意壹幀的時間然後和後面的N幀疊加成壹個光流棧進入訓練。這種光流訓練的方式是作者認為這種光流疊加的方式可以得到它的運動信息流,但實際上光流圖並沒有得到基於運動信息的結果。如果有興趣,請參考(參考文獻2)的內容。

附:因為這種雙流法訓練兩個網絡,fushion是在最後壹個softmax之前進行的,顯示效果不錯。這是14中的壹個開篇作品。16有人研究了fushion的位置。(有興趣可以看報紙:https://arxiv.org/abs/1604.06573)

順便說壹下,這裏提到了基於雙流的改進網絡框架TSN。改進這個框架的初衷是因為最初版本的two-stream對長視頻的內容分類效果不佳。這裏可以舉壹個簡單的例子來想象,比如所有學校都有運動會,現在我們來到跳遠場地拍攝壹個選手跳遠過程的視頻。然後我們把這個視頻扔到原來的兩流框架中進行測試,得到了壹個運行結果。這是為什麽呢?是因為我們提取機制的方式,隨機提取訓練的方式,以及這個視頻無法覆蓋的過程。因為跳遠是壹個助跑和起跳的過程,具有很強的時序性。TSN的改進很簡單。它只是把整個視頻切割成三段(可以是三段),然後對每段進行雙流訓練,最後疊加。如下圖所示:

事實上,C3D網絡很簡單。實際上,時間維的信息是在2D卷積過程中加入的,用於時間維的卷積。這裏,2D卷積通常被認為是三維的。我們的圖像是C * W * H,先解釋為3維,最後得到2維的特征圖。假設當我們有K個卷積核的時候,我們把面疊加起來,最後形成壹個三維結構K * W * H(這裏卷積默認不降維)。同理,C3D相當於設計了壹個3D卷積,從4-D抽象的角度看也可以是3D結構(C * L)* W * H,最後得到壹個3D結構。那麽假設當我們有k個卷積核時,實際上可以看作是3維深度的疊加,也可以看作是疊加成4維向量。在這裏,妳可以想象這些特征圖是通過壹步2D卷積得到的,然後這些特征圖在空間進行卷積。

下面,我們可以對2D卷積和三維卷積的區別有壹個直觀的認識。壹篇論文的摘錄

我們可以根據這個箭頭的序列信息來理解卷積的過程。這裏先把圖片理解成RGB-D比較好,相對容易,因為這種方式的通道數是1。首先對壹個平面進行卷積得到這張圖片的特征圖,然後對其時間序列進行卷積。

獲得特征圖後的圖形卷積過程可以類似於下圖所示:

個人認為,C3D的卷積過程實際上可以看作是時間序列的鄰近信息逐漸重疊的過程。妳可以用感知領域來想象,有點類似於從散到點的過程(類似過程如下圖)。個人認為在這樣壹個過程中,動作的順序信息,比如最初的畫面,對於後續的動作來說,稍微有些不合適,這可能是需要改進的地方。這只是個人推測,可以當笑話。

參考數據

  • 上一篇:ideacms執行sql語句錯誤
  • 下一篇:[Unity 3d] 異形屏UI布局解決方案 - NotchSolution
  • copyright 2024編程學習大全網