图卷积网络进行骨骼识别代码_【骨骼行为识别】2s-AGCN论文理解
Two-Stream Adaptive Graph Convolutional Networks for Skeleton-Based Action Recognition
論文鏈接:
https://arxiv.org/abs/1805.07694?arxiv.org代碼鏈接:
lshiwjx/2s-AGCN?github.com跟AS-GCN相同,這篇論文也是對ST-GCN的改進,同樣是2019年發表在CVPR上面的文章。論文提出一個雙流自適應圖卷積網絡(2s-AGCN)。從名字可以看出,文章主要創新點有兩個,一個是雙流網絡,另外一個是自適應性。
首先,老一套,先回顧一下ST-GCN的結構,這部分我在之前的文章寫了,這里打一下廣告,有興趣可以看一下:
哀殿:【骨骼行為識別】ST-GCN論文理解?zhuanlan.zhihu.com我們只介紹ST-GCN的整體公式,如下圖公式(2)。
是權重, 是鄰接矩陣, 是注意力掩碼, 是子集類別數,一般取3。在說本篇論文的創新前,先說明一下ST-GCN的缺點。ST-GCN的注意力機制靈活性不夠,掩碼
是與鄰接矩陣直接相乘,這里說的相乘是按元素相乘,并不是矩陣相乘。這就造成一個現象,就是如果鄰接矩陣 里面部分元素為0,那么無論 對應元素為何值,最后結果都是0。換句話說就是不會創造不存在的連接,比如對于“行走”動作,手和腿的聯系很大,但是手和腿沒有直接相連,所以效果不好。ST-GCN的第二個缺點就是沒有利用骨骼數據的第二特征,這里第一特征就是關節坐標,第二特征就是骨骼的長度和方向。直覺上,第二特征也包含了豐富的行為信息。下面介紹的是針對ST-GCN的第一個缺點進行的改進。2s-AGCN提出來的自適應圖卷積的主要公式如下圖公式(3)
從公式(3)可以看到,相比于ST-GCN,2s-AGCN對鄰接矩陣進行了改進。這里的鄰接矩陣是三個部分之和。
第一部分
是和公式(2)中的鄰接矩陣相同(另外一篇論文的DGNN結構對此進行了改進)。第二部分
和第一部分類似,也是一個 的鄰接矩陣,這里有所不同的是, 是一個可訓練的權重,而且沒有對其進行如歸一化等任何約束條件,也就是 完全是從數據學習過來的參數。他不僅能表示兩個節點是否存在聯系,而且能表示聯系的強弱。乍一看 似乎和之前提到的掩碼 沒什么區別,這里與ST-GCN不同的是融合方式。ST-GCN是相乘,這里是相加,相加就可以產生不存在的聯系。第三部分
是對每個樣本學習一個獨有的圖。它用的是非常經典的高斯嵌入函數,功能就是捕捉關節之間的相似性。他的功能其實和 有點類似,就是確定兩個頂點是否存在連接和連接的強弱。說實話我是不太懂他們在功能上的差別在哪,我能理解的就是 中的元素沒有進行歸一化等處理,功能就是注意力機制。而 中的元素是0-1的概率,是通過softmax層處理過的。下圖是他的整體圖,從圖上可以看到輸入數據的形狀是 ,編碼成 ,這里的 論文上沒有明確說是什么,我是看了代碼才看懂,這里的 是輸出通道除以 。輸出通道和輸入通道一般有兩種關系,要么是輸出通道和輸入通道相等,要么輸出通道是輸入通道的一半。除以 的目的是因為最后的結果是 的,不包含通道維度,所以這樣做可以減少計算量,只要控制 卷積層的輸出通道就行了。因為其實 的卷積的參數量挺大的。原本2s-AGCN的參數量就比ST-GCN多很多。其實關于
,我還有點話想說,生成 的方式叫做高斯嵌入函數,也就是 分支和 分支相乘得到 。這個 是pytorch里面的torch.matmul()函數,這個函數的工作方式大家可以自行百度,這里的維度并不是圖上提到的 ,其實前面還有批次乘以 (表示最大人數,一般是2)。還有一點,就是下圖的第二個相乘,也就是 ,他后面其實還有個softmax層,這部分因為是調參做的一些改進,文章并沒有寫到原理上。關于softmax的維度等參數,大家可以看看原論文的代碼。編碼后的
再通過兩個轉換函數分別變換成 和 ,然后兩個矩陣相乘得到 的相似矩陣 。 中的元素 代表頂點 和頂點 的相似性,其值為0-1。最后的公式如下圖公式(5)。針對于雙流法中的另外一個分支,輸入的數據是骨骼的長度和方向。長度和方向看起來比關節坐標要復雜,其實很簡單。首先尋找一個人體骨骼的重心,就是人胸腔部分作為中心點,因為每個骨骼都有兩個點,把靠近中心點的關節看做源關節,遠離中心點的關節看做目標關節。所以說關節就是點,骨骼就是從一個點指向另外一個點的向量,向量的長度就是骨骼的長度,向量的方向就是骨骼的方向。
這樣另外一個分支流的輸入數據就明朗了,因為骨骼是兩個關節組成一個骨骼,而且沒有環狀的圖,所以關節數比骨骼數多1個。這里添加一個值為0的空關節,這樣關節數與骨骼數就相同,網絡也相同。最后雙流法的框架如下圖。
總的來說這篇論文比較好理解,思路也比較明確,針對ST-GCN的兩個缺點進行改進,提出兩個創新點。作者提到的用相加取代相乘的注意力機制是一種很好的創新,另外就是利用骨骼的長度和方向也是最近兩年開始使用的。
總結
以上是生活随笔為你收集整理的图卷积网络进行骨骼识别代码_【骨骼行为识别】2s-AGCN论文理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rocketmq 消息指定_详解Rock
- 下一篇: python跟unicode一样吗_PY