论文阅读 - TransNet and TransNet V2
文章目錄
- 1 概述
- 2 模型結(jié)構(gòu)簡(jiǎn)述
- 2.1 TransNet
- 2.2 TransNet V2
- 3 數(shù)據(jù)集的構(gòu)建
- 4 模型效果
- 5 參考文獻(xiàn)
1 概述
有些時(shí)候,一段視頻是由多段短視頻拼接而成的。拼接可以是直接拼接(硬拼接,見圖2),也可以是由一個(gè)轉(zhuǎn)場(chǎng)過渡拼接(軟拼接,見圖2)。我們希望拿到其中的每個(gè)小片段作為素材,這個(gè)時(shí)候就要做視頻切割了。這樣的視頻切割有的做法的目標(biāo)是找拼接的邊界,故稱之為shot boundary detection,也有做法的目標(biāo)是找每個(gè)小片段,也稱之為scene detection。
基于傳統(tǒng)方法去做,就是找相鄰幀之間的差異,然后設(shè)定一個(gè)閾值去判斷,pyscenedetect這個(gè)庫就是做這個(gè)事的。這個(gè)庫可以把大部分的硬拼接切割的比較好,但是存在兩個(gè)問題:
- 對(duì)于高速運(yùn)動(dòng)的物體,且視頻幀率不高時(shí),相鄰幀之間的差異就會(huì)很大,這就會(huì)被誤判為是一個(gè)硬拼接
- 對(duì)于軟拼接,效果是單純的不好,特別是那些比較長(zhǎng)的轉(zhuǎn)場(chǎng)。
于是深度學(xué)習(xí)就出場(chǎng)了。TransNet以及TransNet V2都是為了解決以上這兩個(gè)問題而出現(xiàn)的,后者是前者的升級(jí)版。
2 模型結(jié)構(gòu)簡(jiǎn)述
2.1 TransNet
TransNet的結(jié)構(gòu)由下圖所示,其官方實(shí)現(xiàn)可見這里,其結(jié)構(gòu)可見圖3。這個(gè)模型的結(jié)構(gòu)非常簡(jiǎn)單,輸入為長(zhǎng)度為NNN的序列幀,且被resize為48×2748 \times 2748×27,序列幀會(huì)經(jīng)過4個(gè)Dilated 3D CNN,這四個(gè)Dilated 3D CNN的dilation rates在時(shí)間維度上是不同的。作者說這么做是因?yàn)橄鄬?duì)于標(biāo)準(zhǔn)的3D CNN,要看到同樣的感受野,這樣的做法會(huì)減少訓(xùn)練參數(shù)量。然后把這些特征concat起來,這整個(gè)block叫做一個(gè)DDCNN cell。如果再加上一個(gè)max pooling,那就是SDDCNN block,這樣的cell和block會(huì)堆疊多次,可以很深。最后經(jīng)過兩層全連接和softmax,輸出N×2N \times 2N×2的一個(gè)向量,表示輸入的每幀是否是shot boundary。
2.2 TransNet V2
TransNet V2是TransNet的升級(jí)版,其官方實(shí)現(xiàn)可見這里,其結(jié)構(gòu)可見圖4。它是在TransNet的基礎(chǔ)上進(jìn)行改進(jìn)的,主要的改進(jìn)點(diǎn)有如下幾個(gè):
- 加入了batch normalization和殘差網(wǎng)絡(luò)結(jié)構(gòu)。
- 在訓(xùn)練時(shí)加入了噪聲。
- 將3D的k×k×kconvolutionk \times k \times k \ convolutionk×k×k?convolution分解為了2D的k×kconvolutionk \times k \ convolutionk×k?convolution和一個(gè)kernel size為kkk的1D temporal convolution。這個(gè)做法可以強(qiáng)迫模型去分別學(xué)習(xí)圖像特征和時(shí)間維度的特征。
- 把連續(xù)幀的RGB color histogram和卷積輸出的特征相似性作為特征,也就是圖4中的兩個(gè)紅色方框。
- 增加了一個(gè)head,用于預(yù)測(cè)整個(gè)transition的frames,這個(gè)多加的head僅用于訓(xùn)練,不用于預(yù)測(cè),另一個(gè)head還是和TransNet中保持一致。也就是在遇到軟拼接的時(shí)候,原始的head只預(yù)測(cè)中間那一幀為shot boundary,新增加的head會(huì)預(yù)測(cè)整個(gè)transition的所有幀為shot boundary。
3 數(shù)據(jù)集的構(gòu)建
模型的結(jié)構(gòu)就算不去深究它也沒關(guān)系,因?yàn)檎f到底就是拿3D CNN去train一發(fā),結(jié)構(gòu)上的改進(jìn)帶來的提升也沒有特別大。數(shù)據(jù)是我比較關(guān)心的一塊,一個(gè)好的數(shù)據(jù)集,往往比一個(gè)好的結(jié)構(gòu)有更棒的提升作用。在這個(gè)shot boudary detection的任務(wù)當(dāng)中,有一個(gè)非常令人興奮的事情就是,它的數(shù)據(jù)集幾乎是零成本的。
我們只需要找到一大堆短視頻,時(shí)長(zhǎng)可以不要太長(zhǎng)也不要太短,然后我們隨意去硬拼接或者軟拼接這些視頻就有了我們的數(shù)據(jù)集。因?yàn)槠唇邮俏覀冏约鹤龅?#xff0c;因此shot boundary在哪里我們也是比誰都清楚的。唯一需要成本的就是測(cè)試集。為了檢驗(yàn)數(shù)據(jù)的真實(shí)效果,測(cè)試集還是需要人工去標(biāo)注一批的。
這里要注意的就是,我們使用的短視頻需要是沒有轉(zhuǎn)場(chǎng)的鏡頭在里面的,不然就有臟數(shù)據(jù)了。
另一個(gè)值得一提的是,粗剪的時(shí)候,設(shè)計(jì)師希望把一些虛幀也給剪掉,這也有辦法,我們把這些虛幀也作為轉(zhuǎn)場(chǎng)標(biāo)進(jìn)去就可以了。不過這個(gè)可能得要人工去標(biāo)注了。能不能合成,還真沒調(diào)研過,能合成自然是最好的。
4 模型效果
最終的結(jié)果就是對(duì)每一幀打一個(gè)分,可見下圖4。預(yù)測(cè)transition第一幀的head的概率值是圖中的綠色柱子,預(yù)測(cè)整個(gè)transition的是圖中的藍(lán)色柱子。可以看一下軟拼接部分這兩者概率的不同。可以根據(jù)實(shí)際場(chǎng)景去使用,但基本還是只用綠色柱子。
數(shù)據(jù)集的構(gòu)成是對(duì)模型的效果有一定影響的,在TransNet V2中,作者測(cè)試了人工標(biāo)注的數(shù)據(jù)集和合成的數(shù)據(jù)集用于訓(xùn)練對(duì)模型最終效果的影響。real是人工標(biāo)注的,cuts是合成的硬拼接,dissolves是合成的軟拼接。從在三個(gè)數(shù)據(jù)集下測(cè)試的效果可以看出人工標(biāo)注的訓(xùn)練集,并沒有帶來太多的提升,反而還是用合成的數(shù)據(jù)集更好。結(jié)果如下表1所示,其中的指標(biāo)為f1-score。
表1 不同訓(xùn)練集的效果比較
不同模型的效果如下表2所示,其中的指標(biāo)為f1-score。可見TransNet V2相對(duì)而言更好。
5 參考文獻(xiàn)
[1] TransNet: A deep network for fast detection of common shot transitions
[2] TransNet V2: An e!ective deep network architecture for fast shot transition detection
[3] pyscenedetect
總結(jié)
以上是生活随笔為你收集整理的论文阅读 - TransNet and TransNet V2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python web开发 CSS基础
- 下一篇: LeetCode 2166. 设计位集(