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

2021-01-08 機器之心Pro

機器之心發布

作者:張秉異

基於骨架的動作識別(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

骨架序列的數據集

目前,在該領域內比較常用的數據集是 NTU RGB+D(rose1.ntu.edu.sg/datase)數據集。數據集用 3 個 Microsoft Kinect v2 傳感器採集,含有 56880 動作序列的樣本,一共包含 60 類動作,主要分為三個大類:

日常動作(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.

相關焦點

  • 德克薩斯A&M大學在讀博士遊宇寧:自監督學習在圖卷積網絡中的研究...
    在數據訓練的過程中,生成帶有無噪聲標籤的數據集的成本很高,而無標籤的數據又一直在不斷產生。為了有效利用大量的無標籤數據,自監督學習通過設置合理的學習目標和定義前置任務,從數據本身中得到了監督信號。當前自監督學習已經被廣泛用於訓練卷積神經網絡(CNNs),有效地提高了圖像表示學習可傳遞性、泛化能力和魯棒性,並且已在語義分割、目標檢測、圖像分類、人體動作識別等實戰場景中展現出卓越效果。
  • CVPR2020 Oral | 動態多尺度圖表達3D人體骨架運動,實現精準預測...
    現有的基於3D人體骨架的運動預測方法往往不考慮身體不同部位之間的關聯關係,或是僅考慮單一尺度的關節點關係。  然而,很多時候是一組關節一起運動,抽象地表達動作的整體特徵;相反,如果過度關注細節的關節,模型的整體性能也容易被複雜的運動影響。這種新的動態多尺度圖神經網絡(DMGNN),實現了更精準的運動預測。
  • 前端開發者的福音:根據UI設計圖自動生成GUI骨架代碼
    有沒有辦法通過 UI 設計圖直接生成 GUI 骨架代碼來簡化這個繁複的轉換過程,讓開發者解放更多精力投入到後續的應用功能開發中去?某些工具聲稱可以在給定 UI 設計圖的情況下自動生成 GUI 骨架代碼,但這些工具由於是基於人工設計的視覺理解規則實現的,因此功能十分有限,不能處理真實複雜的 UI 設計(如圖 1)。
  • 萬字長文|如何直觀解釋卷積神經網絡的工作原理?
    畫面識別實際上是尋找(學習)人類的視覺關聯方式??,並再次應用。 二. 圖片被識別成什麼取決於哪些因素? 下面用兩張圖片來體會識別結果取決於哪些因素。 1. 老婦與少女 所以,識別結果受年齡,文化等因素的影響,換句話說: 圖片被識別成什麼不僅僅取決於圖片本身,還取決於圖片是如何被觀察的。 圖像表達 我們知道了「畫面識別是從大量的(x,y)數據中尋找人類的視覺關聯方式f,並再次應用。 其中x是輸入,表示所看到的東西。y是輸出,表示該東西是什麼。
  • 基於百度EasyDL定製化圖像識別平臺的海洋魚類識別方法
    和傳統機器學習方法相比,近年來崛起的深度學習方法以數據為驅動,能夠從大量數據中通過卷積等操作自動學習特徵表示,很好的解決了人工選擇特徵的問題。Abdelouahid等人[3]和顧鄭平等人[4]都提出了採用深度網絡模型進行魚類識別的方法,雖然這些方法在識別性能上都取得了引人矚目的效果,但是依然存在以下問題:模型識別性能的提高需要大量的魚類標註數據集用於學習訓練,而標註數據工作費時且昂貴,故在實際應用中難以滿足。為此,針對以問題,本文提出了一種基於百度EasyDL定製化圖像識別平臺的海底魚類識別方法。
  • PyTorch中的傅立葉卷積:通過FFT計算大核卷積的數學原理和代碼
    在數學上,卷積表示為:儘管離散卷積在計算應用程式中更為常見,但由於本文使用連續變量證明卷積定理(如下所述)要容易得多,因此在本文的大部分內容中,我將使用連續形式。 之後,我們將返回離散情況,並使用傅立葉變換在PyTorch中實現它。 離散卷積可以看作是連續卷積的近似值,其中連續函數在規則網格上離散化。
  • 從特徵檢測器到視覺轉換器:卷積神經網絡的時代到此結束了嗎?
    首先,卷積神經網絡無法編碼相對空間信息。也就是說,它僅關注於檢測某些特徵,而忽略了相對空間位置。上面兩幅圖像都會被識別為人臉,因為卷積神經網絡只關注輸入圖像中是否存在某些特徵,而忽略了它們相對於彼此的位置。卷積神經網絡的另一個主要缺陷是池化層。池化層會丟失很多有用的信息,比如最活躍的特徵檢測器的準確位置。換句話說,它能檢測到某些特徵,但卻無法傳達其在圖像中的準確位置。
  • 基於慣性導航、RFID 及圖像識別的 AGV 融合導航系統
    關鍵詞:AGV; 慣性導航;圖像識別;姿態解算中圖分類號:TP391 文獻標識碼:A 文章編號:1001-0785(2018)08-0081-040 引言隨著勞動力成本的上升和技術水平的提高,物流倉儲行業的自動化程度不斷提升。作為倉儲物流的核心設備,自動導引小車(AGV)的應用範圍與導航技術得到迅猛發展。
  • 基於多特徵地圖和深度學習的實時交通場景分割
    摘要:基於視覺的交通場景語義分割在智能車輛中起著重要作用。在這篇論文中,我們提出了一種新的實時深度完全卷積神經網絡( FCNN ),用於具有六個通道輸入的像素分割。近年來,隨著計算機硬體特別是圖形處理單元(GPU)的快速發展,大規模標記數據的出現,深度卷積神經網絡(CNNs)在圖像分類和目標檢測中的應用迅速發展,並已成為當前主流的圖像分割方法。最近,大多數研究都致力於通過使網絡更深更廣來提高語義分割的準確性。然而,增加參數往往以犧牲計算機的內存為代價,並導致網絡速度較慢。因此,如何在保證實時功能的前提下提高準確性是深度學習中最重要的任務之一。
  • 計算機視覺在生物力學和運動康復中的應用和研究
    在運動生物力學和康復應用中,人體運動學的定量分析是一種功能強大的工具,生物力學工具已經從使用圖像的人工注釋發展為基於標記的光學跟蹤器,基於慣性傳感器的系統以及使用複雜的人體模型,計算機視覺和機器學習算法的無標記系統,已經取得了長足的發展。
  • 開啟智能養豬新模式 重慶企業研發出這項「豬臉識別」技術
    小雨點供圖 華龍網發數據顯示,2017年,重慶市生豬出欄2013.28萬頭,豬肉產量149.15萬噸,屬於傳統生豬主產區。在《全國生豬生產發展規劃(2016-2020年)》中,重慶被劃定為重點發展區,但重慶生豬養殖仍以散養為主。
  • 一文讀懂如何加快開發藍牙低功耗網狀網絡應用,消除智能家居、工業...
    此外,RSL10 Mesh平臺還配有基於Eclipse的集成開發環境並支持FreeRTOS™的RSL10軟體開發套件、符合藍牙特別興趣小組(Bluetooth SIG)網格規範的RSL10 Mesh軟體包、用於預配、配置和控制低功耗藍牙網狀網絡的行動應用程式(RSL10 Mesh Mobile App,可從Google Play
  • 水桶腰變S曲線 解析美圖T9骨骼點識別技術
    6月27日,美圖手機即將正式發布了新機美圖T9,號稱「智能攝影師」,此次美圖T9帶來了「骨骼點識別技術」「3D記憶修復技術」「金字塔多維人像算法」等多項「黑科技」,其中,主打骨骼識別點技術支撐的「全身美型」功能示例視頻早前更是「刷爆」朋友圈。
  • 今日Paper|蚊子叫聲數據集;提高語音識別準確率;對偶注意力推薦...
    以下是今日的精選內容——目錄提高有噪聲情況下的語音識別準確率——而且用常見工具就可以基於對偶圖注意力網絡多方面社交影響的推薦系統想研究蚊子、阻止瘧疾,你需要一個蚊子叫聲數據集用於類遞增目標檢測的交叉數據集訓練卷積均值:一種簡單的用於照度估計的卷積神經網絡提高有噪聲情況下的語音識別準確率——而且用常見工具就可以論文名稱:Improved Robust
  • 2020人臉識別報告:上萬家企業入局,八大技術六個趨勢一文看盡
    2020人臉識別報告:上萬家企業入局,八大技術六個趨勢一文看盡
  • ...開發日記:如何設計能在Apple Watch上實時運行的中文手寫識別...
    但是CNN的方法需要把網絡拓展到包含接近3萬個字符,同時還要保證在嵌入式設備上還有實時識別的性能。這篇文章的重點就是介紹如何解決延時、字符覆蓋率、書寫風格的魯棒性等方面的問題,達到理想的性能表現。系統配置蘋果的研究人員們在這項研究中採用了一個普遍的CNN架構,跟之前用在MNIST手寫識別實驗中的CNN類似。系統的總體架構如圖
  • 蘋果發布長文,揭秘 iPhone 等設備如何利用三萬字符庫實時識別手寫...
    在智能和行動裝置十分普遍的今天,手寫字符識別的重要性愈加顯現出來,在手機、便攜設備、可穿戴設備以及智能手錶上都會有十分重要的應用。對於行動裝置端的設備來說中文手寫字符識別需要大規模的字符庫支持。這篇文章闡述了我們如何在蘋果的行動裝置上實現實時手寫中文字符識別的過程。
  • 葉志豪:介紹強化學習及其在 NLP 上的應用 | 分享總結
    另外的一個區別,是強化學習的一個應用,觀察上圖,可以看到強化學習的很多應用,比如在計算機科學、工程學、數學、經濟學方面的應用,但這是非常多的應用,而每個人感興趣的地方也不一樣,大家可以選擇自己感興趣的自行了解。簡單介紹一下強化學習的一些概念,首先是狀態,環境給一個觀測給 agent,然後 agent 給一個動作給環境,環境再反饋一個獎勵信號,全部組成起來。