文章鏈接:Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
官方代碼鏈接(caffe):https://github.com/yjxiong/temporal-segment-networks
該文章發(fā)表在ECCV2016上,該文章可以認(rèn)為是雙流法的改進(jìn),更好的利用了更長(zhǎng)的時(shí)序信息。不了解雙流法的可以參考博客《Two-Stream Convolutional Networks for Action Recognition in Videos》算法詳解》。
這里有個(gè)定義同雙流法博客中提到的一樣,就是snippet的定義,一個(gè)snippet定義為每個(gè)用作特征提取的視頻幀單元,其中包含一幀圖像幀以及幾幀光流特征幀。
一、網(wǎng)絡(luò)結(jié)構(gòu)
因?yàn)槭请p流法的改進(jìn)版本,所以結(jié)構(gòu)類似與雙流法,都有兩個(gè)網(wǎng)絡(luò)分別處理空間信息和時(shí)間信息。網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示:

從圖中可以看出,TSN與原始雙流法很大的一個(gè)區(qū)別是利用了長(zhǎng)時(shí)間序列的信息來(lái)訓(xùn)練網(wǎng)絡(luò)。具體做法如下:
- 將一個(gè)視頻V等分為K個(gè)segments,稱為
- 從每個(gè)segments中隨機(jī)提取一個(gè)snippet,稱為
,總共有K個(gè)snippet (T_1, T_2, ..., T_K)
- 將所有的snippet輸入到網(wǎng)絡(luò)中,利用K個(gè)snippet計(jì)算得到的loss來(lái)更新網(wǎng)絡(luò)權(quán)重
- 網(wǎng)絡(luò)加入了consensus的結(jié)構(gòu),經(jīng)過(guò)試驗(yàn)采用的是averaging作為consensus結(jié)構(gòu)的算子,即將K個(gè)snippet的輸入在進(jìn)行softmax之前做一個(gè)average的操作。
- 對(duì)于測(cè)試階段,文章將空間網(wǎng)絡(luò)輸出權(quán)重設(shè)置為1,時(shí)間權(quán)重設(shè)置為1.5,兩個(gè)網(wǎng)絡(luò)輸出的加權(quán)值為最終的預(yù)測(cè)輸出
注意:這里的兩個(gè)網(wǎng)絡(luò)同雙流法,訓(xùn)練時(shí)是分開(kāi)訓(xùn)練的,圖中畫出在K=3時(shí)有六個(gè)網(wǎng)絡(luò),其實(shí)只有兩個(gè)網(wǎng)絡(luò),分別為時(shí)間網(wǎng)絡(luò)和空間網(wǎng)絡(luò)。
文章的基本原理講完了,具體實(shí)驗(yàn)請(qǐng)參考原文