電影短片《Changing Batteries》講了這樣一個故事:獨居的老奶奶收到兒子寄來的一個機器人,這機器人善於察言觀色,很快就跟老奶奶「心有靈犀」,不僅能在老奶奶口渴時為她端水、在老奶奶掃地時,接過老奶奶的掃把,做力所能及的家務活,如果老奶奶在椅子上看電視睡著了,機器人還為她輕輕蓋上踏足。有了它,老奶奶又重新感受到久違的快樂,過上了更輕鬆的生活[1]……咳咳,催淚的故事講完了,接下來我們先說說這機器人的察言觀色技能,是怎麼實現的。
在人工智慧研究領域,這一技能叫人體行為辨識,是智慧監控、人機交互、機器人等諸多應用的一項基礎技術。以電影提到的老人智慧看護場景為例,智慧系統透過即時檢測和分析老人的行動,判斷老人是否正常吃飯、服藥、是否保持最低的運動量、是否有異常行動出現(例如摔倒),從而即時給予提醒,確保老人的生活品質,不會由於獨自居住而有所降低。
第二個例子是人機交互系統,透過對人的行為進行辨識,猜測用戶的「心思」,預測用戶的意圖,即時給予準確的響應。
第三個例子是醫院的康復訓練,透過對動作行為的規範程度做出辨識,評估恢復程度以提供更好的康復指導等。
俗話說「排骨好吃,骨頭難啃」,行為辨識是一項具有挑戰性的任務,受光照條件各異、視角多樣性、背景複雜、類內變化大等諸多因素的影響。對行為辨識的研究可以追溯到 1973 年,當時 Johansson 透過實驗觀察發現,人體的運動可以透過一些主要關節點的移動來描述。
因此,只要 10-12 個關鍵節點的組合與追蹤,便能形成對諸多行為例如跳舞、走路、跑步等的刻畫,做到透過人體關鍵節點的運動來辨識行為[2]。
正因為如此,在 Kinect 的遊戲中,系統根據深度圖估計出的人體骨架(Skeleton,由人體的一些關節點的位置資訊組成),對人的姿態動作進行判斷,促成人機交互的實現。
另一個重要分支則是基於 RGB 影像做行為動作辨識。與 RGB 資訊相比,骨架資訊具有特徵明確簡單、不易受外觀因素影響的優點。我們在這裡主要探討基於骨架的行為辨識及檢測。
人體骨架怎麼獲得呢?主要有兩個途徑:透過 RGB 圖像進行關節點估計(Pose Estimation)獲得[3][4],或是透過深度攝影機直接獲得(例如 Kinect)。
每一時刻(幀)骨架對應人體的 K 個關節點,所在的坐標位置資訊,一個時間序列由若干幀組成。行為辨識就是對時域預先分割好的序列,判定其所屬行為動作的類型,即「讀懂行為」。但在現實應用中,更容易遇到的情況,是序列尚未在時域分割(Untrimmed),因此需要同時對行為動作,進行時域定位(分割)和類型判定,這類任務一般稱為行為檢測。
基於骨架的行為辨識技術,其關鍵在於兩個方面:一方面是如何設計增強性和有強判別性的特徵,另一方面是如何利用時域相關性,來對行為動作的動態變化進行建模。
我們採用基於 LSTM (Long-Short Term Memory)的循環神經網路(RNN)來搭建基礎框架,用於學習有效的特徵,並且對時域的動態過程建模,實現端到端(End-to-End)的行為辨識及檢測。關於 LSTM 的詳細介紹可參考[5]。我們的工作主要從以下三個方面進行探討和研究:
1.如何利用空間注意力(Spatial Attention)和時間注意力(Temporal Attention)來實現高性能行為動作辨識 [8]?
2.如何利用人類行為動作具有的共現性(Co-occurrence)來提升行為識別的性能[7]?
3.如何利用 RNN 網路對未分割序列進行行為檢測(行為動作的起止點的定位和行為動作類型的判定)[9]?
1. 空時注意力模型(Attention)之於行為辨識
圖1.1:「揮拳」行為動作序列示例。行為動作要經歷不同的階段(比如靠近、高潮、結束),涉及到不同的具有判別力的關節點子集合(如紅色圓圈所示)。這個例子中,人體骨架由 15 個關節點的坐標位置表示。
注意力模型(Attention Model)在過去這兩年裡,成了機器學習界的「網紅」,其想法就是模擬人類對事物的認知,將更多的注意力放在資訊量更大的部分。我們也將注意力模型,引入了行為辨識的任務,下面就來看一下注意力模型,是如何在行為辨識中大顯身手的。
時域注意力:眾所周知,一個行為動作的過程,要經歷多個狀態(對應很多時間幀),人體在每個時刻,也呈現出不同的姿態,那麼,是不是每一幀,在動作判別中的重要性都相同呢?以「揮拳」為例,整個過程經歷了開始的靠近階段、揮動拳腳的高潮階段,以及結束階段。
相比之下,揮動拳腳的高潮階段,包含了更多的資訊,最有助於動作的判別。依據這一點,我們設計了時域注意力模型,透過一個 LSTM 子網路,來自動學習,和獲知序列中不同幀的重要性,使重要的幀在分類中起更大的作用,以優化辨識的精度。
空域注意力:對於行為動作的判別,是不是每個關節點,在動作判別中都同等重要呢?研究證明,一些行為動作,會跟某些關節點構成的集合相關,而另一些行為動作,會跟其它一些關節點構成的集合相關。
比如「打電話」,主要跟頭、肩膀、手肘和手腕這些關節點密切相關,同時跟腿上的關節點關係很小,而對「走路」這個動作的判別,主要透過腿部節點的觀察,就可以完成。
與此相適應,我們設計了一個 LSTM 子網路,依據序列的內容,自動給不同關節點分配不同的重要性,即給予不同的注意力。由於注意力是基於內容的,即當前幀資訊和歷史資訊共同決定的,因此,在同一個序列中,關節點重要性的分配,可以隨著時間的變化而改變。
圖1.2 展示了網路框架圖。時域注意力子網路 (Temporal Attention)學習一個時域注意力模型,來給不同幀分配合適的重要性,並以此為依據對不同幀資訊進行融合。空域注意力子網路(Spatial Attention)學習一個時域注意力模型,來給不同節點分配合適的重要性,作用於網路的輸入關節點上。
圖1.2:網絡結構框圖。主網路(Main LSTM Network)用於對特徵進行提取、時域相關性利用和最終的分類。時域注意力子網路 (Temporal Attention)用於給不同幀分配合適的重要性。空域注意力子網路(Spatial Attention)用於給不同關節點,分配合適的重要性。
空時注意力模型能帶來多大的好處呢?我們在SBU 數據庫、NTU RGB D 數據庫的 Cross Subject(CS) 和 Cross View(CV)設置上,分別進行了實驗,以檢測其有效性。
圖1.3 展示了性能的比較:LSTM表示只有主 LSTM 網路時的性能(沒引入注意力模型)。當同時引入時域注意力(TA)和空域注意力(SA)網路後,如 STA-LSTM 所示,辨識的精度實現了大幅提升。
圖1.3:空時注意力網路的辨識精度比較。(a) SBU 數據庫。(b) NTU 數據庫Cross Subject(CS)。(c) NTU數據庫 Cross-View(CV)。其中, LSTM 只包含主網路結構。STA-LSTM 同時包含了空時子網路。
細心的讀者可能已經發現,序列中的空域注意力和時域注意力,具體為多大是沒有參考的(不知道 Groundtruth)。網路是以優化最終分類性能,來自動習得注意力。那麼,學到的注意力模型分配的注意力數值是什麼樣呢?
我們可視化並分析了空時注意力模型的輸出。圖1.4 可視化了在「揮拳」行為動作的測試序列上,模型輸出的空域注意力加權的大小,時域注意力加權值,以及相鄰幀時域注意力的差值。如圖1.4(a)中所示,主動方(右側人)的節點被賦予了更大的加權值,且腿部的節點更加活躍。
圖(b)展示了時域注意力的變化,可以看到,時域注意力隨著動作的發展逐漸上升,相鄰幀時域注意力差值的變化則顯示了幀間判別力的增量。時域注意力模型會對更具判別力的幀,賦予較大的注意力加權。對不同的行為動作,空間注意力模型賦予較大加權的節點也不同,整體和人的感知一致。
圖1.4: 空時注意力模型學到的加權值在「揮拳」測試序列上的可視化。(a)空域注意力加權。紅色圓圈的大小示意對應關節點加權的大小。紅色圓圈越大,表示加權越大。這裡我們只將有著最大加權的前 8 個節點做了標記。(b)時域注意力加權。(c) 差分時域注意力加權,即相鄰幀的時域注意力加權的差值。
2. LSTM 網路框架和關節點共現性(Co-occurrence)的挖掘之於行為辨識
欣賞完「網紅」的魅力之後,我們還是回歸一下 LSTM 網路的本真吧。近年來,除了在網路結構上的探索,如何在網路設計中,利用人的先驗知識,以及任務本身的特性來提升性能,也越來越多地受到關注。
著眼於人的行為動作的特點,我們將行為動作中,關節點具有的共現性特性,引入到 LSTM 網路設計中,將其作為網路參數學習的約束來優化辨識性能。
人的某個行為動作,常常和骨架的一些特定關節點,構成的集合,以及這個集合中節點的交互密切相關。如要判別是否在打電話,關節點「手腕」、「手肘」、「肩膀」和「頭」的動作最為關鍵。
不同的行為動作與之密切相關的節點集合有所不同。例如對於「走路」的行為動作,「腳腕」、「膝蓋」、「臀部」等關節點,構成具有判別力的節點集合。我們將這種幾個關節點,同時影響和決定判別的特性,稱為共現性(Co-occurrence)。
圖 2.1 基於 LSTM 的網路結構和共現性特性的利用。
在訓練階段,我們在目標函數中,引入對關節點和神經元相連的加權的約束,使同一組的神經元對某些關節點組成的子集,有更大的加權連接,而對其他節點有較小的加權連接,從而挖掘關節點的共現性。
如圖 2.2 所示,一個 LSTM 層由若干個 LSTM 神經元組成,這些神經元被分為 K 組。
同組中的每個神經元共同地和某些關節點,有更大的連接加權值(和某類或某幾類動作相關的節點,構成關節點子集),而和其他關節點有較小的連接加權值。不同組的神經元,對不同動作的敏感程度不同,體現在不同組的神經元,對應於更大連接加權值的節點子集也不同。在實現上,我們透過對每組神經元,和關節點的連接,加入組稀疏(Group Sparse)約束,來達到上述共現性的挖掘和利用。
關節點共現性約束的引入,在 SBU 數據庫上,帶來了 3.4% 的性能改進。透過引入 Dropout 技術,最終實現了高達 90.4% 的辨識精度。
圖2.2 第一層的神經元(LSTM Neurons)和關節點連接的示意圖。以第 k 組的神經元為例,第 k 組的神經元都同時對某幾個關節點,有著大的加權連接,而對其他關節點有著小的加權連接(在這裡用未連接來示意)。
3. 基於聯合分類和回歸的循環神經網路,之於行為動作檢測
前面討論了,對於時域分割好的序列的行為動作分類問題。但是想要電腦 get 到「察言觀色」的技能,並不那麼容易。在實際的應用中多有即時的需求,而攝影機即時獲取的影像序列,並沒有根據行為動作的發生位置,進行預先時域分割,因此辨識系統不僅需要判斷行為動作的類型,也需要定位行為動作發生的位置,即進行行為動作檢測。
如圖3.1 所示,對於時間序列流,檢測系統在每個時刻,給出是否當前是行為動作的開始或結束,以及行為動作的類型資訊。
圖3.1:行為動作檢測示例。對於時間序列流,系統在每個時刻,給出是否當前是行為動作的開始或結束,以及行為動作的類型資訊。
圖3.2:基於滑動窗口的行為動作檢測示意圖,即每個時刻對固定或者,可變的時域窗口內的內容進行判定。
線上(Online)的行為動作檢測,常常採用滑窗的方法,即對影像序列流,每次觀察一個時間窗口內的內容,對其進行分類。然而基於滑窗的方法,常常伴隨著冗餘的計算,性能也會受到滑動窗口大小的影響。
對於骨架序列流,我們設計了基於循環神經網路 LSTM 的線上行為動作檢測系統,在每幀給出行為動作判定的結果。LSTM 的記憶性可以避免顯式的滑動窗口設計。
如圖3.3 所示,網路由 LSTM 層和全連層(FC Layer)組成前端的網路 Deep LSTM Network, 後面連接的分類網路 (Classification Network)用於判定每幀的動作類別,同時,回歸網路 ( Regression Network)用於輔助確定動作行為的起止幀。圖3.4 展示了該回歸子網路,對起止點位置的目標回歸曲線,即以起始點(結束點)為中心的高斯形狀曲線。
在測試時,當發現代表起始點的回歸曲線,到達局部峰值時,便可以定位為行為動作的起點位置。由於 LSTM 網路對時間序列處理的強大能力,加上聯合分類回歸的設計,聯合分類和回歸循環網絡(JCR-RNN)實現了快速準確的行為動作檢測。
圖3.3:用於在線行為動作檢測的聯合分類回歸(Joint Classification-regression)循環網路框架。
圖3.4:行為動作的起止點目標回歸曲線。在測試階段,當起始點(終止點)的回歸曲線到達局部峰值時,可以定位為行為動作的起始(結束)位置。
總結和展望
由於行為辨識技術在智慧監控、人機交互、影像序列理解、醫療健康等眾多領域,扮演著越來越重要的角色,研究人員正使出「洪荒之力」提高行為辨識技術的準確度。
說不定在不久的某一天,你家門口真會出現一個能讀懂你的行為、和你「心有靈犀」的機器人,對於這一幕,你是不是和我們一樣充滿期待?
[1] https://movie.douban.com/subject/25757903/
[2] Gunnar Johansson. Visual perception of biological motion and a model for it is analysis. Perception and Psychophysics 14(2), pp 201–211, 1973.
[3] Alejandro Newell, Kaiyu Yang, Jia Deng. Stacked Hourglass Networks for Human Pose Estimation, In ECCV, 2016.
[4] Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh. Realtime Multi-person 2D Pose Estimation using Part Affinity Fields. arXiv preprint arXiv:1611.08050, 2016.
[6] CVPR2011 Tutorial on Human Activity Recognition.
[7] Wentao Zhu, Cuiling Lan, Junliang Xing, Wenjun Zeng, Yanghao Li, Li Shen, Xiaohui Xie. Co-Occurrence Feature Learning for Skeleton Based Action Recognition Using Regularized Deep LSTM Networks. In AAAI, 2016.
[8] Sijie Song, Cuiling Lan, Junliang Xing, Wenjun Zeng, Jiaying Liu. An End-to-End Spatio-Temporal Attention Model for Human Action Recognition from Skeleton Data. Accepted by AAAI, 2017.
[9] Yanghao Li, Cuiling Lan, Junliang Xing, Wenjun Zeng, Chunfeng Yuan, Jiaying Liu. Online Human Action Detection Using Joint Classification-Regression Recurrent Neural Networks. In ECCV, 2016.
兰翠玲博士,
微軟亞洲研究院副研究員,從事電腦視覺,信號處理方面的研究。她的研究興趣包括行為辨識、姿態估計、深度學習、影像分析、影像壓縮和通信等,並在多個頂級會議,期刊上發表了近20篇論文,如AAAI, ECCV, TCSVT等。