一文讀懂:圖卷積在基于骨架的動作識別中的應(yīng)用

姓名:張璐? ? ? 學(xué)號:19021210845

轉(zhuǎn)載自:https://new.qq.com/omn/20191208/20191208A09M4G00.html

【嵌牛導(dǎo)讀】基于骨架的動作識別(skeleton-based action recognition)一直是計(jì)算機(jī)視覺領(lǐng)域中的一個研究熱點(diǎn),在計(jì)算機(jī)視覺的各大頂會 AAAI、CVPR、NeurIPS 等會議中都能見到它的身影。? ? ?

【嵌牛鼻子】動作識別、深度傳感器、提取算法、建模

【嵌牛提問】什么是基于骨架的動作識別?可以應(yīng)用哪些方面?

【嵌牛正文】

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

在進(jìn)入正題之前,先介紹一下一些背景知識。

什么是基于骨架的動作識別

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

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

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

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

通常,獲取骨架點(diǎn)的方式有兩種:

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

鏈接:https://github.com/OpenKinect/libfreenect2

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

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

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

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

骨架序列的數(shù)據(jù)集

日常動作(daily activity)

醫(yī)療相關(guān)的動作

雙人的交互行為

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

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

基于骨架的動作識別中的應(yīng)用

問題的數(shù)學(xué)建模

spatial-temporal graph 中有兩個維度,一個是時間(temporal)維度,一個是空間(spatial)維度??臻g維度為一幀內(nèi)的骨架圖,時間維度的構(gòu)造是將相鄰幀中的圖同一位置的結(jié)點(diǎn)連接起來,從而根據(jù)骨架序列構(gòu)造出了一個 spatial-temporal graph。

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

ST-GCN

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

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

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

2. 在 temporal 維度上,取前后幀在相同位置的點(diǎn),作為需要參與卷積的點(diǎn)。

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

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

DPRL+GCNN

這是 CVPR 2018 中的一篇論文,作者提出了一種取關(guān)鍵幀的方法,類似于視頻壓縮中的取關(guān)鍵幀。因?yàn)樵诠羌苄蛄兄星昂髱男畔⒖赡軙容^冗余,所以只需要選取序列中比較有代表性的關(guān)鍵幀,就可以進(jìn)行動作的分類識別。所以在 GCNN 之前,作者加入了一個 FDNe t 用來提取關(guān)鍵幀。作者實(shí)驗(yàn)證明,運(yùn)用了取關(guān)鍵幀的方法,能夠增加識別的準(zhǔn)確率。

GEGCN

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

取一條邊與之相鄰的邊作為參與卷積的邊,邊的屬性為其在三維空間中的向量表示。據(jù)此,作者設(shè)計(jì)了一個雙流的圖卷積神經(jīng)網(wǎng)絡(luò),一個是點(diǎn)的圖卷積網(wǎng)絡(luò),另一個是邊的圖卷積神經(jīng)網(wǎng)絡(luò):

作者通過實(shí)驗(yàn)證明,加入了 Graph edge convolution 能夠有效增加識別的準(zhǔn)確率。

SGR-GCN

在文章中,作者提出了一個 graph regression based GCN(GR-GCN) 網(wǎng)絡(luò)。GR-GCN 的作用是用來學(xué)習(xí)骨架圖中關(guān)節(jié)點(diǎn)聯(lián)系的強(qiáng)弱程度, 如下圖所示:

其中 Sparsified Spatio-Temporal Graph 為通過 graph regression 的過程所學(xué)習(xí)到的圖中結(jié)點(diǎn)的聯(lián)系,其中黑色的邊代表具有生理意義上的強(qiáng)聯(lián)系,紅色的邊代表非生理連接但是對于動作判斷很重要的語言聯(lián)系,綠色的邊代表比較弱的聯(lián)系。得到了 Sparsified Spatio-Temporal Graph 再進(jìn)一步通過 GCN 對東西進(jìn)行分類。作者在實(shí)驗(yàn)中證明了通過 graph regression 的過程能夠很好地提高識別的準(zhǔn)確率。

2s-NLGCN

最開始, 文章的標(biāo)題叫做《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》這個標(biāo)題會更好,因?yàn)槲恼轮胁捎玫氖?spectral-based graph convolution networks,并且也使用了雙流的網(wǎng)絡(luò)結(jié)構(gòu),一個網(wǎng)絡(luò)處理點(diǎn)(joint)的信息,另一個網(wǎng)絡(luò)處理邊 (bone) 的信息:

總結(jié)

總結(jié)前人的論文,我們會發(fā)現(xiàn),在論文中作者往往都會思考一個問題——如何從骨架的序列圖中提取信息?從維度上考慮,有時間維度和空間維度;從特征上考慮,有一次信息關(guān)節(jié)點(diǎn)的 3D 坐標(biāo)(傳感器+SDK 直接獲?。卸涡畔㈥P(guān)節(jié)邊的向量表示;從連接上考慮,可以學(xué)習(xí)關(guān)節(jié)點(diǎn)之間語義上連接的強(qiáng)弱(將連接設(shè)置為 learnable parameter),或者是提取骨架序列中的關(guān)鍵幀。筆者覺得可以從更多的角度來思考這個問題,或許能夠發(fā)現(xiàn)新的想法,進(jìn)行創(chuàng)新。

例如:

1. 利用新的特征

2. GCN 中間加入 pooling 層

之前,圖卷積已經(jīng)將 NTU RGB+D 準(zhǔn)確率刷得很高了,基本上算是屠榜了,準(zhǔn)確率一點(diǎn)小的提升都很困難了。而新的 NTU RGB+D 120 數(shù)據(jù)集發(fā)布在即,預(yù)計(jì)一個新的分?jǐn)?shù)榜將要出現(xiàn),相信會有更多好的 idea 出現(xiàn),將這一領(lǐng)域繼續(xù)推進(jìn)下去。如果讀者有興趣研究該領(lǐng)域,可以更多地關(guān)注南洋理工大學(xué)的 Rose Lab,他們是該領(lǐng)域數(shù)據(jù)集的發(fā)布者和算法研究的領(lǐng)頭者。

參考文獻(xiàn):

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.

機(jī)器之心「SOTA模型」22大領(lǐng)域、127個任務(wù),機(jī)器學(xué)習(xí) SOTA 研究一網(wǎng)打盡。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容