日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3D CNN框架结构各层计算

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3D CNN框架结构各层计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近也在看和視頻有關的處理問題,對3D-CNN的各層結構不是很清楚,這里找到一篇講解較為清晰的文章,特此轉載過來

轉自:http://blog.csdn.net/auto1993/article/details/70948249

侵刪

--------------以下為原文---------------

3D CNN框架結構各層詳細計算過程

這篇博客主要詳細介紹3D CNN框架結構的計算過程,我們都知道3D CNN 在視頻分類,動作識別等領域發揮著巨大的優勢,前兩個星期看了這篇文章:3D Convolutional Neural Networks for Human Action Recognition,打算用這個框架應用于動態表情識別,當時對這篇文章的3 D CNN各層maps的計算不怎么清楚,所以自己另外對3D CNN結構層數maps等等重新計算了一下,下面是主要的計算過程。在介紹計算過程之前,先介紹一下 2D CNN和3D CNN的區別

采用2D CNN對視頻進行操作的方式,一般都是對視頻的每一幀圖像分別利用CNN來進行識別,這種方式的識別沒有考慮到時間維度的幀間運動信息。下面是傳統的2DCNN對圖像進行采用2D卷積核進行卷積操作:


使用3D CNN能更好的捕獲視頻中的時間和空間的特征信息,以下是3D CNN對圖像序列(視頻)采用3D卷積核進行卷積操作:

上面進行卷積操作的時間維度為3,即對連續的三幀圖像進行卷積操作,上面的? 3D卷積是通過堆疊多個連續的幀組成一個立方體,然后在立方體中運用3D卷積核。在這個結構中,卷積層中每一個特征map都會與上一層中多個鄰近的連續幀相連,因此捕捉運動信息。例如上面左圖,一個卷積map的某一位置的值是通過卷積上一層的三個連續的幀的同一個位置的局部感受野得到的。

需要注意的是:3D卷積核只能從cube中提取一種類型的特征,因為在整個cube中卷積核的權值都是一樣的,也就是共享權值,都是同一個卷積核(圖中同一個顏色的連接線表示相同的權值)。我們可以采用多種卷積核,以提取多種特征。

3D CNN架構


輸入層(input):連續的大小為60*40的視頻幀圖像作為輸入。.

硬線層(hardwiredH1):每幀提取5個通道信息(灰度gray,橫坐標梯度(gradient-x),縱坐標梯度(gradient-y),x光流(optflow-x),y光流(optflow-y))。前面三個通道的信息可以直接對每幀分別操作獲取,后面的光流(x,y)則需要利用兩幀的信息才能提取,因此

H1層的特征maps數量:(7+7+7+6+6=33),特征maps的大小依然是60* 40;

卷積層(convolution C2以硬線層的輸出作為該層的輸入,對輸入5個通道信息分別使用大小為7* 7 *?3的3D卷積核進行卷積操作(7*? 7表示空間維度,3表示時間維度,也就是每次操作3幀圖像),同時,為了增加特征maps的個數,在這一層采用了兩種不同的3D卷積核,因此C2層的特征maps數量為:

(((7-3)+1)*? 3+((6-3)+1)*? 2)*? 2=23*? 2

這里右乘的2表示兩種卷積核。

特征maps的大小為:((60-7)+1)*? ((40-7)+1)=54 *?34

降采樣層(sub-sampling S3):在該層采用max pooling操作,降采樣之后的特征maps數量保持不變,因此S3層的特征maps數量為:23 *2

特征maps的大小為:((54 / 2) *??(34 /2)=27 ?*17

卷積層(convolution C4對兩組特征maps分別采用7 6 3的卷積核進行操作,同樣為了增加特征maps的數量,文中采用了三種不同的卷積核分別對兩組特征map進行卷積操作。這里的特征maps的數量計算有點復雜,請仔細看清楚了

我們知道,從輸入的7幀圖像獲得了5個通道的信息,因此結合總圖S3的上面一組特征maps的數量為((7-3)+1)?* 3+((6-3)+1)?* 2=23,可以獲得各個通道在S3層的數量分布:

前面的乘3表示gray通道maps數量= gradient-x通道maps數量= gradient-y通道maps數量=(7-3)+1)=5;

后面的乘2表示optflow-x通道maps數量=optflow-y通道maps數量=(6-3)+1=4;

假設對總圖S3的上面一組特征maps采用一種7 6 3的3D卷積核進行卷積就可以獲得:

((5-3)+1)* 3+((4-3)+1)* 2=9+4=13;

三種不同的3D卷積核就可獲得13* 3個特征maps,同理對總圖S3的下面一組特征maps采用三種不同的卷積核進行卷積操作也可以獲得13*3個特征maps,

因此C4層的特征maps數量:13* 3* 2=13* 6

C4層的特征maps的大小為:((27-7)+1)* ((17-6)+1)=21*12

降采樣層(sub-sampling S5):對每個特征maps采用3 3的核進行降采樣操作,此時每個maps的大小:7* 4

在這個階段,每個通道的特征maps已經很小,通道maps數量分布情況如下:

gray通道maps數量= gradient-x通道maps數量= gradient-y通道maps數量=3

optflow-x通道maps數量=optflow-y通道maps數量=2

卷積層(convolution C6此時對每個特征maps采用7* 4的2D卷積核進行卷積操作,此時每個特征maps的大小為:1*1,至于數量為128是咋來的,就不咋清楚了,估計是經驗值。

對于CNNs,有一個通用的設計規則就是:在后面的層(離輸出層近的)特征map的個數應該增加,這樣就可以從低級的特征maps組合產生更多類型的特征。

通過多層的卷積和降采樣,每連續7幀圖像就可以獲得128維的特征向量。輸出層的單元數與視頻動作數是相同的,輸出層的每個單元與這128維的特征向量采用全連接。在后面一般采用線性分類器對128維的特征向量進行分類,實現行為識別,3DCNN模型中所有可訓練的參數都是隨機初始化的,然后通過在線BP算法進行訓練。

下面是3DCNN各通道數量變化情況以及特征maps大小變化情況


總結

以上是生活随笔為你收集整理的3D CNN框架结构各层计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。