BSN: Boundary-Sensitive Network for Temporal Action Proposal Generation

轉自BSN作者林天威知乎:https://zhuanlan.zhihu.com/p/39327364,用於學習交流。
在這裏插入圖片描述
前言
這篇筆記主要介紹我們錄用於ECCV 2018上的論文: “BSN: Boundary-Sensitive Network for Temporal Action Proposal Generation”。這篇論文主要針對時序動作提名生成(temporal action proposal generation)任務提出了一種新的方法-邊界敏感網絡(Boundary Sensitive Network, BSN),該方法突破了原有的top-down方法的一些缺陷,能夠簡潔高效地生成高質量的時序動作提名。基於該方法,我們獲得了今年ActivityNet Challenge的時序動作檢測任務的冠軍和時序動作提名任務的亞軍(競賽報告見ActivityNet-report-BSN),以及獲得了今年的百度AI綜藝視頻精彩片段檢測競賽的冠軍。論文現在可以從arXiv上看到,論文代碼剛剛已經開源在了github-BSN。若筆記或者代碼有問題歡迎交流指正~

此前我寫過Temporal Action Detection(時序行爲檢測)介紹一文介紹過 temporal action detection 方向(也可以叫做temporal action detection)。簡單來說,temporal action detection是要在視頻序列中確定動作發生的時間區間(包括開始時間與結束時間)以及動作的類別。這個問題與二維圖像中的目標檢測問題有很多相似之處。相關算法的算法內容一般可以分爲兩個部分:(1) temporal action proposal generation: 即進行時序動作提名,產生候選的視頻時序片段,即相當於Faster-RCNN中的RPN網絡的作用;(2) action classification: 即判斷候選視頻時序片段的動作類別。兩個部分結合在一起,即實現了視頻中的時序動作檢測。目前視頻分類算法的精度其實以及比較高了,然而時序檢測的效果依舊比較低,所以我們認爲主要的性能瓶頸在於時序提名環節。

我們認爲高質量的時序動作提名應該具備幾點特質:(1)靈活的時序長度(2)精確的時序邊界(3)可靠的置信度分數。現有的基於滑窗或anchor的方法或是基於聚類的方法都不能同時在這幾個方面做好。因此,在這篇文章中,我們提出了邊界敏感網路-BSN,在BSN中,我們首先去定位時序動作片段的邊界(開始節點和結束節點),再將邊界節點直接結合成時序提名,最後基於所設計的proposal-level的feature來對每個proposal的置信度進行評估。下面分別對算法內容和實驗效果等內容進行介紹。

方法概覽

該圖爲BSN算法的框架圖,主要包括幾個流程:(1) 視頻特徵提取;(2) 邊界敏感網絡(生成時序動作提名);(3)非極大化抑制。下面對各個部分進行簡要介紹。
在這裏插入圖片描述
特徵提取
本文采用了two-stream network 雙流網絡來提取特徵。每個用作特徵提取的視頻幀單元稱爲一個snippet,包含圖像幀以及光流等,具體的定義在論文中給出。我們拼接spatial network 和temporal network的最後一層輸出作爲該snippet對應的特徵。最終,對於一個包含T 個snippet的視頻,我們可以得到等長的特徵序列。該特徵序列實際上就是一個二維的矩陣。

邊界敏感網絡
BSN主要包含三個模塊,依次爲時序評估模塊,提名生成模塊和提名評估模塊。

時序評估模塊(Temporal Evaluation Module)

基於提取的圖像特徵序列,BSN中的時序評估模塊採用3層時序卷積層來對視頻序列中每個位置上動作開始的概率、動作結束的概率和動作進行的概率同時進行建模,從而生成 動作開始概率序列,動作結束概率序列和動作概率序列。

提名生成模塊(Proposal Generation Module)

接下來,基於上述的幾種的概率序列,提名生成模塊要生成候選時序動作提名,並對每個動作提名生成對應的特徵描述。

要生成候選時序動作提名,首先我們選擇動作開始和動作結束概率序列中滿足以下兩點條件之一的時間節點作爲候選時序邊界節點:(1)概率高於一個閾值 或(2)該時間節點的概率高於前一時刻以及後一時刻的概率(即一個概率峯值)。然後我們將候選開始時間節點和候選結束時間節點兩兩結合,保留時長符合要求的開始節點-結束節點組合作爲候選時序動作提名。算法示意圖如下圖所示。
在這裏插入圖片描述

接下來要爲每個候選時序動作提名生成對應的特徵描述,我們稱其爲Boundary-Sensitive
Proposal (BSP) feature。對於每個提名,我們取其本身的時序區間作爲center
region,再取開始節點和結束節點附近的一段區間作爲starting region 以及 ending region。對於每個區域,我們都在動作概率序列上的對應位置採樣N個點,拼接後則得到一個非常簡短的提名特徵。BSP特徵的構成示意圖如下圖所示。
在這裏插入圖片描述

提名評估模塊(Proposal Evaluation Module)

生成候選時序動作提名以及對應的提名特徵後,我們採用提名評估模塊-一個簡單的MLP(多層感知機)模型去對每個提名的置信度分數進行估計。置信度分數越高,則說明該時序提名與真值的重疊IoU應當越高。

結果後處理(Soft-NMS)

最後,我們需要對結果進行非極大化抑制,從而去除重疊的結果。具體而言,我們採用了soft-nms算法來通過降低分數的方式來抑制重疊的結果。處理後的結果即爲BSN算法最終生成的時序動作提名。

實驗
數據集

本文主要在ActivityNet-1.3 以及THUMOS-14數據集上進行了實驗。前者包含20000個左右的視頻,視頻平均長度比較短;後者包含約413個視頻,視頻平均長度比較長。

實驗效果
在這裏插入圖片描述

時序動作提名任務的實驗效果如上表所示,可以看出BSN模型在THUMOS和ActivityNet兩個數據集上均獲得了比較大的效果提升。在目前已發表的工作中,BSN應該是具有最好的效果。下圖則更細節地展示了BSN在THUMOS-14數據集上的效果,可以看出,在proposals數量較少時,BSN的效果要非常顯著的優於現有的方法。
在這裏插入圖片描述

在本文的實驗部分,除了時序動作提名生成任務外,還基於BSN產生的時序提名測評了時序動作檢測任務的性能,同樣獲得了顯著的效果提升。具體的實驗結果可以看論文內容。下圖則爲BSN在數據集上生成時序提名的可視化。

討論
本文的主要貢獻我認爲是引入了一種全新的並且非常有效的時序提名生成框架,即先定位時序邊界,再基於邊界來構成時序提名。基於這樣的框架,BSN就能夠產生滿足(1)時長靈活(2)邊界準確(3)評分可靠的時序動作提名。

實際上,BSN中各個模塊的實現都還比較簡單,我認爲未來在此框架上對於具體模型實現也還有不小的優化和改進空間。所以也歡迎大家關注我們開源的代碼。另外,在我們今年的ActivityNet競賽報告中,我們也提出了幾點對於BSN的改進,可供參考。

搜索公,衆-號:StrongerTang,看更多文章,衆多資料分享,一起學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章