【ICCV 2017論文筆記】我們應當如何理解視頻中的人類行為?

最近ICCV 2017公布了論文錄用的情況,我照例掃了一遍論文列表尋找感興趣的文章。「What

Actions are Needed for Understanding Human Actions in Videos?」[arXiv 鏈接] 一文是我覺得很有趣的一篇文章。這篇論文並沒有提出或改進任何方法,而是通過各種小實驗,對目前視頻行為理解的各種資料庫和方法進行了細緻的討論和思考。其中許多觀點和結論我覺得對於做視頻行為理解的研究人員是有不少啟發的。這篇筆記里我簡單的進行一些記錄,供自己和大家參考。感興趣的話還是推薦閱讀論文原文,從論文寫作角度來看這是一篇寫的非常好的論文。

背景介紹

該文主要對視頻行為理解中的行為分類( Action Recognition) 和時序行為檢測( Temporal

Action Detection) 兩個問題進行了討論,這兩個領域及相關工作的具體介紹可見我之前的文章行為識別介紹,時序行為檢測介紹。簡單來說,行為分類是要給一段分割好的短視頻(通常只包含一段人類動作)進行動作種類的分類,而時序行為檢測則主要針對較長的未分割視頻,除了要對視頻中人類行為的種類進行分類外,還需要定位動作的時序邊界。在這兩個方向中,該文則更注重對行為分類問題的討論。

深度學習(或者說數據驅動的方法)在各個領域的發展離不開各個領域中資料庫的發展,視頻行為理解領域亦然。從最早的非常簡單的KTH資料庫,到包含各類運動,簡單日常行為的UCF101, THUMOS, HMDB-51等資料庫,再到這兩年類別數量更大,視頻數目也更多的ActivityNet, Charades等資料庫,資料庫的發展也一步一步推動著視頻行為理解方法的發展。本文主要針對Charades資料庫進行了分析,原因大概是因為該資料庫就是本文作者提出的。實際中,這兩年相關的論文在Charades資料庫上進行實驗的似乎並不多見。

本文的結構主要是以幾個問句為主,通過對疑問進行分析來將討論逐步推進,每個大問題下還包含一些小問題。本文主要的問題/章節包括以下幾個。

  • What are the right questions to ask?
  • What are existing approaches learning?
  • Where should we look next?

這幾個問題從現有資料庫及任務本身的分析,到演算法的分析,最後到未來發展方向的展望,可以說是層層遞進。下面就開始對各個部分進行簡單的介紹。

What are the right questions to ask?

這部分內容對視頻行為理解任務本身進行了一些基礎的探討,主要的出發點是研究人類本身如何理解視頻中的人類行為。主要包括兩個子問題。

(1) What are the right activity categories?

對於圖像中的物體,其語義的類別通常是非常明確的,一般不存在混淆。然而,用動詞來定義的人類動作其數目則要少很多,且常常存在一定的歧義性。舉例來說,「跑」,「跳」

這些動作本身含有比較明確的定義,而 「拿「,」取「 這些動作則模糊的多,需要和名詞結合才能明確其意義,比如」拿衣服「,」取葯「等。因此,動詞或是動詞和名詞的組合構成了一個動作的最基本定義。

該文召集了一些志願者,在Charades數據集上進行了一些人類學習實驗。實驗結果表明人類對於動詞比起名詞更容易感到混淆。進一步的實驗也表明了單獨的動詞不能夠對動作進行足夠清晰的描述。因此,動詞和名詞的組合在對動作的描述上是更加清晰的。

(2) Do Activities have temporal extents?

對於圖像中的物體來說,其邊界通常是非常明確的,對應的學習任務包括目標檢測以及目標分割。然而,人類行為的時序邊界則常常是不夠明確的。

該文同樣進行了一些人類學習實驗,實驗的內容為讓人類標記者重新來對視頻中的行為邊界進行標定,並與資料庫的真值進行比較。實驗主要有以下幾點觀察:

[1] 在Charades上,人類平均只能達到72.5%的重疊率(IoU),在Multi-THUMOS數據集中,則只能達到58.7%。可見即便對於人類,視頻中行為的時序邊界也是比較模糊的。

[2] 動作的結束時間點比起開始時間點存在更多混淆

[3] 時間更長的行為其邊界對於人類來說混淆更小。這表明時間較短的動作需要更小心的標註

[4] 時序邊界的模糊性在各種動作種類中是廣泛存在的

那麼關於時序邊界,可以進一步的問以下的問題:

Can we evaluate temporal localization?

即在時序動作邊界模糊的情況下,我們是否能夠來評估時序動作定位(時序動作檢測)呢?略去實驗,該文給出的結論是:儘管時序邊界存在模糊性,目前的數據集還是允許我們對動作的時序邊界進行理解,學習以及評估的。

Should we evaluate temporal localization?

這是該部分的最後一個問題,即時序動作檢測/定位是否值得我們去做。該文衡量了一個假定的完美的行為分類器,在行為檢測任務上進行實驗,在Charades數據集上達到了為56.9%,大約五倍於該數據集上的state-of-the-art的精度。這部分作者講的很不清楚,此處作者應該是用某種方法生成了時序動作的proposal,再用完美分類器對這些proposal進行分類,從而實現檢測的效果。

基於這一點,作者認為對於較短的視頻,專註於行為分類任務比起行為檢測任務能夠帶來更多的檢測精度提升。所以該文的後面部分主要對行為分類任務進行討論。注意此處作者的觀點,是認為在「短視頻」情況下(此處使用的是Charades數據集),提高分類器的精度更容易帶來檢測精度的提高。但我認為這個僅為該數據集的情況。對於其他一些數據集,如ActivityNet,其分類精度已經相當高了(91%左右),此時比起繼續提高分類器的精度,提高時序動作邊界的定位質量,能夠帶來更多檢測精度的提高。

What are existing approaches learning?

該部分則主要討論了現有的模型在學習行為分類的過程中到底學到了什麼。這部分採用了幾種目前比較主流的行為分類演算法,以Charades數據集為主進行了實驗分析。

(1) Analyzing correct and incorrect detections

該文首先給出了一個例子,即Two-Stream方法在Charades數據集上的測試結果,第一行為正確的檢測,後面幾行為不同的錯誤檢測例子。

從這張圖片中,我們可以對模型的缺陷進行如下的分析

  • 模型需要學習區分相似的行為種類,具體討論見(2)
  • 模型需要發展時序理解的能力,具體討論見(3)
  • 模型需要理解人本身的存在,具體討論見(4)

該圖則表現了不同演算法的預測結果的分析。可以看出對於動詞和名詞,均存在顯著的混淆情況。

該圖表現了不同的混淆程度對精度的影響。此處的複雜度,如動詞複雜度指同一個動詞,不同名片語合的數量。數量越多表明混淆情況比較嚴重。大體上可以得出,混淆情況越高,所能達到的精度一般越低。

(2) Training Data

該部分主要分析了訓練數據以及動作類別的影響。在訓練模型時,使用更多的數據通常能獲得更好的效果,但具體而言如何增加數據才能有效的提高效果呢?本節對樣本數量較多與較少的動作類別分別進行了分析

小樣本數量的動作類別

  • 作者發現,對於大部分動作種類能夠獲益於增加訓練數據數量,即便是其他種類的樣本數量
  • 若將數據集中所有種類的動作的樣本數量限制到100,作者發現擁有更多相似動作的動作類別會有更大的精度下降。這個觀察有一個重要的啟示,即不考慮動作相似性的情況下,進行樣本數量的平衡可能是無益的。

大樣本數量的動作類別

  • 大樣本數量的動作可能更難學習,因為樣本數量多,其類內的姿態多樣性會更大。此外,與其共享名詞(即有相同的交互對象,這點我認為可能是該數據集特性)的動作也更多,使其更易被混淆
  • 作者發現,現在很多方法的精度提高,常常是以為在小樣本數目的動作類別上做的更好了,而非是大樣本數量的動作種類。或許將大樣本數量的動作進行細分是不錯的方法

(3) Temporal reasoning

這部分主要討論時序上的動作理解。

從該圖可以看出,在分類任務上,現在的方法能更好的處理時間較長的動作,較短的動作因為時序信息較少所以更難。此外,作者認為結合時序上的預測結果是non-trivial problem, 即一個有意義的問題。實際上今年有不少工作都是通過時序結果的編碼來提高分類的精度。

(4) Person-based Reasoning

這一部分作者主要有幾點觀點/結論

  • 基於人體的理解會有助於提高目前行為識別演算法的精度
  • 人的姿態在人類行為識別中起到很大的作用

Where should we look next?

最後一部分中,作者對可以提高的方向進行了一些分析。主要的方式是提供一些額外的信息,觀察在擁有額外信息的情況下,模型能夠多大的提高。主要包括以下幾種。

  • 名詞,即已知交互物體
  • 動詞,即已知動作類型
  • 意圖,即對行為進行聚類,幾種相似的行為作為一種意圖,或許可以認為是一大類吧
  • 時間,對於每幀視頻,其距離動作開始和結束時間的時序距離給出
  • 姿態,將所有姿態聚類成500類,提供姿態類別信息

實驗結果主要是對模型所應該側重的發展方向起一定的啟示作用。

小結

在做視頻行為分析的研究工作時,很多時候會忽略掉一些基礎的信息,而是埋頭於模型調參。而讀完這篇文章我最大的感受是,在解決一個具體問題的時候,對問題進行細緻的思考和分析非常重要,能夠使得自己在設計方法是更有針對性,也更有效率。上面的比較內容比起原文很簡略,若看完後有興趣還是非常推薦閱讀原文。


推薦閱讀:

深度卷積網路的 BUG 一例:「絕藝」最近被人類棋手找到了一個有趣的缺陷
數學不行還學AI - 第5話 - 神經網路平話演義(下)
關於AI的胡說八道
2017 ? AI晶元元年
【教程】專知-PyTorch手把手深度學習教程系列完整版

TAG:深度学习DeepLearning | 计算机视觉 | 人工智能 |