一文讀懂:圖卷積在基於骨架的動作識別中的應用

2020-12-13 騰訊網

機器之心發布

作者:張秉異

基於骨架的動作識別(skeleton-based action recognition)一直是計算機視覺領域中的一個研究熱點,在計算機視覺的各大頂會 AAAI、CVPR、NeurIPS 等會議中都能見到它的身影。本文將介紹圖卷積在基於骨架的動作識別中的應用。

在進入正題之前,先介紹一下一些背景知識。

什麼是基於骨架的動作識別

人的骨架是什麼?相信沒有誰比我們自己更了解我們身體的構造了。通俗地說,人骨架框架包括六個部分——頭部、左手、右手、軀幹、左腳和右腳。

在維基百科中有對人骨架更加精確的定義:人體骨架是人身體的內在框架。人剛出生時,體內約有 270 塊骨頭,成年之後體內骨頭的數量減少為 206 塊。

一副骨架可以抽象為兩種元素組成——關節點(joint)和骨骼(bone)。關節點的作用是連接兩根相鄰的骨骼。因此,我們可以把骨架簡化為一個由點和邊所構成的圖(graph)。點對應骨架中的關節點,邊對應骨架中的骨骼。

把一副骨架放在三維歐幾裡得空間中,點的屬性就是其對應的三維空間中的坐標(x,y,z),邊就是三維空間中的一條線段。在動作識別中,還需要加入另一個維度——時間。人在一段時間內連續有語義的姿勢(pose)變化被定義為動作。例如,招手、坐下、自拍等。在實際應用中,骨架的坐標點是通過傳感器連續採樣所得到的,在時間維度上是離散的。在計算機視覺領域內,基於骨架的動作識別的定義為:對一副骨架序列進行模式判別,識別這副骨架語義上所代表的執行者所表達的動作。

通常,獲取骨架點的方式有兩種:

1. 一種方式是通過深度傳感器,例如最有名的微軟公司研發的 Kinect 傳感器套件,配合 Kinect 開發的 SDK,能夠每秒鐘獲取 30 幀骨架,同時支持採集 6 副骨架,每一副骨架採集 25 個關節點的 3D 坐標。2019 年,微軟推出了新一代的 Microsoft Kinect Azure(microsoftstore.com.cn/v),首次官方支持了 Ubuntu 系統,這對開發者來說是一個好消息。此前的 kinect SDK 在 ubuntu 系統上運行需要使用開源的 libfreenect2。

連結:https://github.com/OpenKinect/libfreenect2

2. 第二種方式是通過圖像配合骨架提取算法來從視頻中獲取骨架序列,但是提取到的骨架坐標是在圖像中的 2 維坐標。

從圖像中提取骨架比較有名的開源庫有

Deep pose:https://github.com/mitmul/deeppose

open pose:https://github.com/CMU-Perceptual-Computing-Lab/openpose

骨架序列的數據集

日常動作(daily activity)

醫療相關的動作

雙人的交互行為

最近,NTU RGB+D 數據集的發布者 Rose 實驗室又推出了 NTU RGB+D 數據集的增強版——NTU RGB+D 120。新的數據集中包含了 120 類動作,114480 個骨架序列的樣本。而且最值得注意的是,為了增加數據的多樣性,採集時攝像機的視角增加到了 155 個。想深入了解新數據集的作者可以參考文獻 TPAMI 的最新文獻《NTU RGB+D 120: A Large-Scale Benchmark for 3D Human Activity Understanding》。文中作者詳細地介紹了新的數據集的各項特性。

地址:https://arxiv.org/abs/1905.04757

基於骨架的動作識別中的應用

問題的數學建模

spatial-temporal graph 中有兩個維度,一個是時間(temporal)維度,一個是空間(spatial)維度。空間維度為一幀內的骨架圖,時間維度的構造是將相鄰幀中的圖同一位置的結點連接起來,從而根據骨架序列構造出了一個 spatial-temporal graph。

這種圖的構造方式還在交通網絡中用的比較多,來預測交通流量。構造出了骨架序列的 spatial-temporal graph(STG),很多論文中採用 graph Spatial-Temporal Networks 對骨架 STG 進行分類。下面來介紹幾篇具有代表性的文章:

ST-GCN

《Spatial temporal graph convolutional networks for skeleton-based action recognition》這篇文章是發表在 AAAI 2018 會議上的一篇論文。文章中,作者首次運用 Spatial temporal graph convolutional networks 在基於骨架的動作識別的問題上。

在文章中,作者提出一種卷積的思路,首先確定一個卷積中心(也就是一個關節點):

1. 在 spatial 維度上,取與之相鄰的點,作為需要參與卷積的點;

2. 在 temporal 維度上,取前後幀在相同位置的點,作為需要參與卷積的點。

確定了卷積中心和需要參與卷積的點,進行卷積,聚合時間維度和空間維度上的信息。作者在文章中給出了多種卷積的策略,有興趣的讀者可以參考原論文了解其數學模型。文章中的 ST-GCN 每一層的 ST-GCN 的特徵圖結構都一致,中間沒有加入池化層,在最後一層卷積層之後採用了全局平均池化的策略,將每一個 channel 收縮為一個點,之後採用全連接層進行分類。

作者在 github 上開源了文章的原始碼:https://github.com/yysijie/st-gcn

DPRL+GCNN

這是 CVPR 2018 中的一篇論文,作者提出了一種取關鍵幀的方法,類似於視頻壓縮中的取關鍵幀。因為在骨架序列中前後幀的信息可能會比較冗餘,所以只需要選取序列中比較有代表性的關鍵幀,就可以進行動作的分類識別。所以在 GCNN 之前,作者加入了一個 FDNe t 用來提取關鍵幀。作者實驗證明,運用了取關鍵幀的方法,能夠增加識別的準確率。

GEGCN

在文章中,作者提出除了給圖中的點做卷積之外,還可以給圖中的邊做卷積,這就是所說的 Graph edge convolution, 卷積方式如下圖所示:

取一條邊與之相鄰的邊作為參與卷積的邊,邊的屬性為其在三維空間中的向量表示。據此,作者設計了一個雙流的圖卷積神經網絡,一個是點的圖卷積網絡,另一個是邊的圖卷積神經網絡:

作者通過實驗證明,加入了 Graph edge convolution 能夠有效增加識別的準確率。

SGR-GCN

在文章中,作者提出了一個 graph regression based GCN(GR-GCN) 網絡。GR-GCN 的作用是用來學習骨架圖中關節點聯繫的強弱程度, 如下圖所示:

其中 Sparsified Spatio-Temporal Graph 為通過 graph regression 的過程所學習到的圖中結點的聯繫,其中黑色的邊代表具有生理意義上的強聯繫,紅色的邊代表非生理連接但是對於動作判斷很重要的語言聯繫,綠色的邊代表比較弱的聯繫。得到了 Sparsified Spatio-Temporal Graph 再進一步通過 GCN 對東西進行分類。作者在實驗中證明了通過 graph regression 的過程能夠很好地提高識別的準確率。

2s-NLGCN

最開始, 文章的標題叫做《Adaptive Spectral Graph Convolutional Networks for Skeleton-Based Action Recognition》,後來不知道什麼原因,作者將文章的名字改為了《Non-Local Graph Convolutional Networks for Skeleton-Based Action Recognition》。筆者覺得可能用《Adaptive Spectral Graph Convolutional Networks for Skeleton-Based Action Recognition》這個標題會更好,因為文章中採用的是 spectral-based graph convolution networks,並且也使用了雙流的網絡結構,一個網絡處理點(joint)的信息,另一個網絡處理邊 (bone) 的信息:

總結

總結前人的論文,我們會發現,在論文中作者往往都會思考一個問題——如何從骨架的序列圖中提取信息?從維度上考慮,有時間維度和空間維度;從特徵上考慮,有一次信息關節點的 3D 坐標(傳感器+SDK 直接獲取),有二次信息關節邊的向量表示;從連接上考慮,可以學習關節點之間語義上連接的強弱(將連接設置為 learnable parameter),或者是提取骨架序列中的關鍵幀。筆者覺得可以從更多的角度來思考這個問題,或許能夠發現新的想法,進行創新。

例如:

1. 利用新的特徵

2. GCN 中間加入 pooling 層

之前,圖卷積已經將 NTU RGB+D 準確率刷得很高了,基本上算是屠榜了,準確率一點小的提升都很困難了。而新的 NTU RGB+D 120 數據集發布在即,預計一個新的分數榜將要出現,相信會有更多好的 idea 出現,將這一領域繼續推進下去。如果讀者有興趣研究該領域,可以更多地關注南洋理工大學的 Rose Lab,他們是該領域數據集的發布者和算法研究的領頭者。

參考文獻:

1. en.wikipedia.org/wiki/H

2. Shahroudy A, Liu J, Ng T T, et al. NTU RGB+ D: A large scale dataset for 3D human activity analysis Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 1010-1019.

3. Liu J, Shahroudy A, Perez M, et al. NTU RGB+ D 120: A Large-Scale Benchmark for 3D Human Activity Understanding. arXiv preprint arXiv:1905.04757, 2019.

4. A Comprehensive Survey on Graph Neural NetworksYan

5. S, Xiong Y, Lin D. Spatial temporal graph convolutional networks for skeleton-based action recognition Thirty-Second AAAI Conference on Artificial Intelligence. 2018.

6. Tang Y, Tian Y, Lu J, et al. Deep progressive reinforcement learning for skeleton-based action recognition Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 5323-5332.

7. Zhang X, Xu C, Tian X, et al. Graph edge convolutional neural networks for skeleton based action recognition. arXiv preprint arXiv:1805.06184, 2018.

8. Gao X, Hu W, Tang J, et al. Optimized Skeleton-based Action Recognition via Sparsified Graph Regression. arXiv preprint arXiv:1811.12013, 2018.

9. Shi L, Zhang Y, Cheng J, et al. Non-Local Graph Convolutional Networks for Skeleton-Based Action Recognition. arXiv preprint arXiv:1805.07694, 2018.

機器之心「SOTA模型」22大領域、127個任務,機器學習 SOTA 研究一網打盡。

相關焦點

  • 基於骨架的動作識別的時空圖卷積網絡
    因此,為特定應用設計的模型很難推廣到其他應用。2)目前的使用圖神經網絡的方法,都假設一個固定的圖作為輸入,這樣的方式對於基於骨架的動作識別任務來說並不是最優的。因此,本文通過將圖神經網絡擴展到時空圖模型,設計了一種用於動作識別的骨架序列的通用表示方法,稱為時空圖卷積網絡(ST-GCN)。
  • 動作識別 | 人體骨架時空圖卷積網絡的可學習邊與權
    而通過在p(x)中編碼矩形網格,可以實現圖像域上的標準卷積,在(Dai et al.2017)中找到該構思的更詳細的說明和其他應用。三種劃分策略的可視化效果如【圖四】所示。團隊將基於骨架的動作識別實驗,對所提出的劃分策略進行實證研究。可以預期,更高級的劃分策略將導致更好的建模能力和識別性能。三、可學習邊與權儘管人們在執行動作時那些關節們會成組移動,但一個關節可能會出現在身體的多個部位。但是,在對這些身體部位的動力學建模時,這些外觀應該具有不同的重要性。
  • AAAI 2018 | 時空圖卷積網絡:港中文提出基於動態骨骼的行為識別新方案
    這種算法基於人類關節位置的時間序列表示而對動態骨骼建模,並將圖卷積擴展為時空圖卷積網絡而捕捉這種時空的變化關係。近年來,人類行為識別已經成為一個活躍的研究領域,它在視頻理解中起著重要的作用。GCN 在大規模數據集上的動態圖模型應用,例如人類骨骼序列,還有待探索。在本文中,我們通過將圖卷積網絡擴展到時空圖模型,設計用於行為識別的骨骼序列通用表示,稱為時空圖卷積網絡(ST-GCN)。如圖 1 所示,該模型是在骨骼圖序列上制定的,其中每個節點對應於人體的一個關節。
  • 基於圖卷積(GCN)和規則卷積(CNN)的情緒識別
    如何描述腦電信號與大腦活動區域之間的關係以及構建腦電情緒識別模型仍然是基於腦電圖數據的情緒識別具有挑戰性的課題。基於以往的研究內容可知,CNN 可以利用卷積核提取抽象高層次特徵,適用於 1D,2D,3D 規則網格數據。但是腦電通道的分布結構是不規則的,腦電數據並不是規則的歐幾裡德結構數據。
  • 大家都在談的圖卷積網絡是什麼?——行為識別領域一顆新星
    相比於一般的拓撲圖而言,人體骨骼拓撲圖具有更加良好的穩定性和不變性,因此從2018年開始,就有許多學者嘗試將圖卷積網絡應用到基於人體骨骼的行為識別領域來,也取得了不錯的成果。下面就讓我們來深入了解一下什麼是圖卷積網絡,以及它在行為識別領域的最新工作進展吧!什麼是圖(graph)?為什麼要研究GCN?
  • 港中文AAAI錄用論文詳解:ST-GCN 時空圖卷積網絡模型 | AAAI 2018
    (via GitHub)基於骨架關鍵點的動作識別隨著如 Microsoft Kinect、OpenPose 等人體姿態檢測系統的成熟,基於骨架關鍵點的人類動作識別成了計算機視覺,特別是人類動作識別研究中的一個重要任務。該任務要求輸入在連續的視頻幀中檢測到的人體骨架關鍵點序列,輸出正在發生的人類動作類別。
  • 一文讀懂深度學習中的各種卷積
    例子包括生成高解析度圖像以及將低維特徵圖映射到高維空間,比如在自動編碼器或形義分割中。(在後者的例子中,形義分割首先會提取編碼器中的特徵圖,然後在解碼器中恢復原來的圖像大小,使其可以分類原始圖像中的每個像素。)實現上採樣的傳統方法是應用插值方案或人工創建規則。而神經網絡等現代架構則傾向於讓網絡自己自動學習合適的變換,無需人類幹預。為了做到這一點,我們可以使用轉置卷積。
  • ST-GCN動作識別算法詳解
    這也不奇怪,畢竟動作識別以前就有 Graph 的相關應用,套用一下 GCN 總是會有提升的。不過,一年過去了,超過 Spatial Temporal Graph Convolution Networks for Skeleton Based Action Recognition 的工作仍然寥寥可數。
  • 卷積有多少種?一文讀懂深度學習中的各種卷積
    三、轉置卷積(去卷積)對於很多網絡架構的很多應用而言,我們往往需要進行與普通卷積方向相反的轉換,即我們希望執行上採樣。例子包括生成高解析度圖像以及將低維特徵圖映射到高維空間,比如在自動編碼器或形義分割中。
  • CVPR2020 Oral | 動態多尺度圖表達3D人體骨架運動,實現精準預測...
    現有的基於3D人體骨架的運動預測方法往往不考慮身體不同部位之間的關聯關係,或是僅考慮單一尺度的關節點關係。  然而,很多時候是一組關節一起運動,抽象地表達動作的整體特徵;相反,如果過度關注細節的關節,模型的整體性能也容易被複雜的運動影響。這種新的動態多尺度圖神經網絡(DMGNN),實現了更精準的運動預測。
  • 德克薩斯A&M大學在讀博士遊宇寧:自監督學習在圖卷積網絡中的研究...
    在數據訓練的過程中,生成帶有無噪聲標籤的數據集的成本很高,而無標籤的數據又一直在不斷產生。為了有效利用大量的無標籤數據,自監督學習通過設置合理的學習目標和定義前置任務,從數據本身中得到了監督信號。當前自監督學習已經被廣泛用於訓練卷積神經網絡(CNNs),有效地提高了圖像表示學習可傳遞性、泛化能力和魯棒性,並且已在語義分割、目標檢測、圖像分類、人體動作識別等實戰場景中展現出卓越效果。
  • 一文讀懂CNN中卷積層與轉置卷積層的關係
    舉個慄子,當我們在前饋神經網絡中學習一個4*4的圖片中是否有橫折圖案時,使用下圖中4個訓練數據進行訓練,那麼最終只會對5,6,9,a這四個節點的權重有所調節,然後如果出現如下圖最後一張圖片作為測試時,就會導致網絡無法識別,而由於卷積核在不同節點間權重是共享的,所以就自然而然克服了這個問題。
  • 深度卷積神經網絡CNNs的多GPU並行框架 及其在圖像識別的應用
    1.CNNs模型並行導論1.1.典型應用分析:圖像識別 圖像識別是深度卷積神經網絡獲得成功的一個典型應用範例。 圖1揭示了一個具有5個卷積層和3個全連接層的深度卷積神經網絡,該模型可應用於圖像分類。
  • 一文讀懂人工智慧CLDNN網絡結構
    長短時記憶網絡(LSTM,LongShort Term Memory)可以說是目前語音識別應用最廣泛的一種結構,這種網絡能夠對語音的長時相關性進行建模,從而提高識別正確率。雙向LSTM網絡可以獲得更好的性能,但同時也存在訓練複雜度高、解碼時延高的問題,尤其在工業界的實時識別系統中很難應用。
  • 一文讀懂語義分割與實例分割
    由於圖像分割技術有助於理解圖像中的內容,並確定物體之間的關係,因此常被應用於人臉識別,物體檢測, 醫學影像,衛星圖像分析,自動駕駛感知等領域。在我們生活中,圖像分割技術的應用實例也很常見,如智慧型手機上的摳圖相機,在線試衣間,虛擬化妝,以及零售圖像識別等,這些應用往往都需要使用智能分割後的圖片作為操作對象。
  • 深度、卷積、和遞歸三種模型中,哪個將是人類行為識別方面的佼佼者?
    但是由於這些深度技術都是基於不同的應用層面,從識別手勢到區分跑步、爬樓梯等一系列活動,所以很難對這些問題提出一個普遍適用的方案。在本文中我們認真地探索了深度、卷積、遞歸方式對三種代表性的包含運用可穿戴感應器測得的運動數據組進行的實驗。我們將展示怎樣訓練遞歸方法並介紹一種創新性的規範方式,講述它們如何在大型基礎數據集上實現現有技術下最好的表現。
  • 圖像識別 | 基於Amazon Rekognition的圖像識別應用
    Tom Mitchell在其《Machine Learning》一書的序言開場白中給出了一個定義:「機器學習這門學科所關注的問題是:電腦程式如何隨著經驗積累自動提高性能。」在整個機器學習知識領域中,深度學習作為機器學習的一個子領域,是人工智慧的重要分支之一。深度學習大致上基於大腦中的信息處理和通信模型,使用從大量的注釋數據中學到的特徵代替人工編寫的特徵。
  • 一文讀懂人臉識別技術
    人臉識別利用攝像機或攝像頭採集含有人臉的圖像或視頻流,並自動在圖像中檢測和跟蹤人臉,進而對檢測到的人臉圖像進行一系列的相關應用操作。技術上包括圖像採集、特徵定位、身份的確認和查找等等。簡單來說,就是從照片中提取人臉中的特徵,比如眉毛高度、嘴角等等,再通過特徵的對比輸出結果。2.
  • AI|基於知識圖譜和圖卷積神經網絡的應用和開發
    在圖的實際應用中,只看上三角或下三角就可以了。1.7 卷積神經網絡回顧在卷積神經網絡中,上一層輸出的特徵圖與過濾器進行卷積操作,即輸入項與過濾器之間進行點積運算,然後將結果送入激活函數,就可以得到輸出特徵圖。下圖展示的是過濾器對輸入特徵圖的一次卷積操作,公式如下圖中所示。
  • 卷積學習與圖像識別的技術發展
    楊立昆在2003 年去了紐約大學後,仍繼續開發他的視覺網絡,現在被稱為卷積網絡(ConvNet)(見圖9–2)。這個網絡的基本結構是基於卷積的,卷積可以被想像成一個小的滑動濾波器,在滑過整張圖像的過程中創建一個特徵層。例如,過濾器可以是一個定向邊緣檢測器,就像第5 章中介紹的那樣,只有當窗口對準圖像中具有正確方向或紋理的對象的邊緣時,才會產生大數值輸出。