Boundary-Aware Cascade Networks for Temporal Action Segmentation
- 網絡簡介與訓練
- Boundary-Aware Cascade Networks的細節與公式化描述
-
- Stage Cascade
- Local Barrier Pooling
網絡簡介與訓練
本篇論文提出了一個邊界感覺級聯網絡(boundary-aware cascade network),這個網絡中包含兩個新的元件。
第一個是stage cascade,階段級聯能夠适應性地調整感受野,對較為模糊的幀産生更自信的預測。
另一個是local barrier pooling,能夠使用邊界資訊來對局部預測做聚合。
整體上的網絡結構如圖所示

我們采用端到端的方式進行訓練,以MS-TCN為baseline,整個BCN網絡的訓練又可以細分成兩個部分:預訓練barrier generation module(BGM)子產品,聯合訓練Stage Cascade(SC)和BGM子產品。
BGM子產品可以評估每個時間位置作為邊界的機率,并且選擇出合适的barrier輸入到後續的正則化器:local barrier pooling;
SC子產品的輸入有:視訊特征序列、先前階段的所有輸出,包括置信度分數,網絡可以實作逐幀預測其置信度分數,并确定損失函數的權重。級聯各個stage的輸出将用于融合階段,即fusion stage
預訓練的目的:在後面的聯合訓練中使得BGM能夠提供較為準确的邊界預測,同時由于SC和BGM部分收斂速度不同,預訓練能夠幫助我們對BGM的參數進行較為充分的優化。
在聯合訓練中,BGM和SC均可以通過BP得到訓練
Boundary-Aware Cascade Networks的細節與公式化描述
Stage Cascade
盡管現有的複雜網絡結構在處理一些難分類的幀的問題上有較好的效果,但更深的網絡,或者說越來越大的模型容量,除了損耗計算資源外,還可能會引起對一些簡單幀的過分類。
另外一點,有些在動作邊界處的幀資訊,并不是困難,而是模糊。這裡的模糊是說,動作上是連續變化的而标簽會随動作階段的不同而産生突變。
基于以上問題,可能單單一個模型的話,會對這些不一緻(标簽模糊)的樣本産生誤判或者打出較低的分數。
這時候就需要提出一個動态可調的模型,去解決豐富的資訊和較模糊幀所帶來的困難。
論文中提出級聯政策Stage Cascade,能夠根據不同幀的複雜程度适應性地通過不同階段預測幀的标簽,其中每個級聯階段都是MS-TCN中的一個SS-TCN。
但,不同的是MS-TCN中僅有第一個階段接收視訊特征,其餘階段均接收上一階段的置信度分數輸出。
在SC子產品中,我們将所有先前階段的輸出和視訊特征均輸入到目前SS-TCN中,并且逐幀評估分類分數。
其中考慮之前所有階段輸出情況的方法,大概類似于DenseNet的結構。
以往工作中專注于擴大模型的計算能力,但感受野常常是固定的;在新的模型中,SC子產品能夠适應性地對不同情景(标簽突然變化、硬樣本幀)下的不同需求,為每個幀配置設定階段,而每個階段都有一套不同的感受野和權重。
前面的階段着重于解決簡單的幀,後續階段關注模糊、困難的幀,這樣從簡單到困難的方式,可以逐漸産生更優質的、更自信的預測。
關于階段級聯子產品
對于長動作片段的資訊幀,為防止過拟合,可以使用低容量的較弱模型來捕捉長期時間依賴性資訊;
對于動作邊界周圍或偶然性的動作,我們設計了更強的模型,具有自适應感受野,能夠對模糊架構産生更精确的預測。
在代碼運作的過程中,級聯的方式會為每一幀配置設定各個及連接配接段的權重,最終呈現的結果不是某幀配置設定到的主要依賴的某一階段的預測結果,該幀的預測結果是多個階段預測結果的權重值。
關于t時間(幀)處的第i階段的權重,我們按如下的方式進行權重的計算:
其中c是第t幀處在第i階段的置信度分數,ρ是設定的門檻值參數。值得注意的是,由于我們要求隻能有且隻有一個階段在每一幀的多個階段中占據預測的主導地位,是以當某個較先的階段顯示出足夠的confidence,我們将停止再增權重重。
在前面幾個不同階段進行預測之後,我們将不同階段的輸出輸入到fusion stage,将其自适應地組合起來,産生SC部分的最後預測标簽。關于融合階段的目的,在綜合前面n個階段的預測的基礎上,fusion stage輸出更為平滑的逐幀分類的結果,并且生成更合理的時間動作分割片段。
按照慣例,為保證訓練過程穩定收斂,我們在級聯階段與融合階段加入loss function,主要包括兩部分:
平滑損失函數中,主要針對所有的級聯階段與融合極端,使用與MS-TCN相同的方式進行;
分類損失函數中,我們在融合階段的計算,與MS-TCN中方式相同,即下圖左式;我們在SC的級聯各階段,根據權重矩陣調整各階段在損失函數中的占比如下圖右式。
顯然,SC中的不同幀在不同階段之間互相切換,相對于baseline更容易出現過分割的問題,使得融合階段的輸入資訊并不光滑。如上文所說,而其他先驗知識類的平滑損失函數也并不能較好的解決這一問題,由此我們從操作算子的角度入手,提出了Local Barrier Pooling
Local Barrier Pooling
SC子產品能夠為各幀動态配置設定stage,但由于波動的階段配置設定,以及其引起的模型對噪聲較為敏感的情況,使得原先存在的過分割問題更加嚴重。
由此,我們期望能夠設計出一種新的适應性的temporal smoothing operation,即一個時間上的平滑操作來緩解這個問題。
以前的方法是使用一個額外的時間平滑損失函數,本質上是一種人為規定的先驗知識。
現在我們期望利用動作邊界對動作執行個體進行時間正則化,因為動作邊界自然地能夠标明動作内部的予以一緻性和邊界兩邊的差異。由此我們提出LBP,能夠根據邊界資訊保證時間一緻性,而實踐一緻性能夠保證良好的分割結果。
關于LBP,通過一個二進制分類預測動作的邊界,其标簽來自分割資料集自帶的ground truth。之後LBP對上述幀級别的預測進行 local aggregation。通過這樣的方法,LBP能夠根據較為自信的預測結果來平滑噪聲預測,進而緩解過分割問題。
關于LBP的結構,可以參照下圖:
LBP将動作邊界視為動作類别标簽擴散的屏障,主要可以分為兩步:
(1)訓練一個分類網絡,用于預測邊界,選擇其中置信度較高的temporal location作為邊界。
(2)在local pooling window 中計算預測值的權重和,其中,各個權重是适應于池化中心兩側的動作屏障的,以目前幀為中心的local pooling window,從中心擴充,計算時間軸兩個方向的權重,在遇到障礙時相應減小權重。
生成barrier的情況如下圖所示:
關于屏障生成,我們使用的是BSN的時間評估子產品TEM為基礎,改寫出 barrier generation module(BGM),但不同于原TEM,BGM不追求最精準地檢測邊界,而是希望能夠為LBP提供完整的barrier資訊,用于平滑動作執行個體内的預測,同時也不損害邊界之間的準确性。