1. 程式人生 > 其它 >Adversarial Attack on Skeleton-Based Human Action Recognition, CIASA論文筆記(附帶ST-GCN簡單介紹)

Adversarial Attack on Skeleton-Based Human Action Recognition, CIASA論文筆記(附帶ST-GCN簡單介紹)

看論文居然沒找到別人寫的部落格,第一次啊
那我自己來寫吧=。=萌新水平 輕噴
(同步部落格園和知乎 知乎markdown不支援latex公式 懶得搞了)

Adversarial Attack on Skeleton-Based Human Action Recognition

基於骨架的人體動作識別的對抗攻擊 ST-GCN的對抗攻擊

原文:https://arxiv.org/abs/1909.06500

背景

圖卷積網路適合做基於骨架的人體動作識別 ST-GCN
但是魯棒性沒做過,因為骨骼關節的時空性質是稀疏和離散的,並且有物理約束

主要難點

  • 點對應關節,數量固定;一類邊對應骨骼,數量和長度固定
  • 另一類邊對應關節的時間序列,運動要連貫
  • 整體的動作要合理,要像個人

這使得對基於骨架的圖卷積網路進行對抗攻擊與其它圖網路的對抗攻擊不同

這是第一次對基於骨架的人體動作識別的圖神經網路進行對抗攻擊

技術

骨架動作的約束迭代攻擊 constrained iterative attack for skeleton actions (CIASA)

擾動方式

以往的對GCN的攻擊主要是兩種擾動:

  • 特徵擾動:更改關節點的原始位置。這個是我們也要用的
  • 以往對GCN的攻擊還會改變邊的鄰接關係,但是在這裡,不管是幀內的骨架結構還是幀間的時序關係,都是不可改變的。所以對鄰接關係的擾動是不可取的。(修改公式,只把\(V^0\)更新為\(V\)\(E^0\)
    保持不變)

擾動不可感知

因為骨架圖是離散的,判斷擾動的可察覺性的指標與傳統影象不同,需要多個約束:

  • 關節點變化約束
    基於傳統影象擾動可察覺性的畫素的指標修改,小步長迭代實現
  • 骨骼長度約束
    同一時間內相鄰兩點距離為1
    公式對應\(||v'_{ti}-v'_{tj}||_2\)
  • 動態時間約束
    前面分析的,時間維度上的約束是為了保證平滑性,主要體現是防止抖動,所以懲罰項為關節點的加速度
    損失函式為所有幀所有關節點的加速度之和,再除時間序列長度-1(一個加速度是\(v_{t+1}+v_{t-1}-2*v_t\),要減1是因為T個時間只能算出來T-1個加速度)

叫作空間骨架重排機制spatial skeleton realignment(SSR),保證關節的骨骼連線、關節的時間序列和骨骼的長度符合約束

擬人的合理性

用GAN減少生成的骨架序列和真實情況的差異,損失函式是讓二分類器判斷不出骨架圖來自真實資料還是我們生成的資料
(We note that our use of GAN under this setup is an explicit contribution of this article. The proposed GAN setup is generic in its nature that can also be applied to refine perturbations in other application
domains.)

總結

給出的全域性版本可以擾動所有位置
區域性模式可以只攻擊某個區域,比如腿部,不相關關節的運動都可以獨立地改變
也給出一個高階模式,可以針對運動的幅度進行擾動

區域性擾動同時在語義上也是難以察覺的
即使是顯著的擾動,也可能會因為它被應用在不重要的關節而不易被察覺

在NTU和Kinetics資料集以高置信度欺騙了基於骨架的動作識別模型的SOTA(也就是)
這種擾動在黑盒中有高可轉移性
用我們模型生成的骨架時間序列,再通過通用方式生成視訊,這種視訊的動作識別準確度很低,這說明可以在現實生活中發起攻擊。這是首次表現出對抗攻擊的可轉移性超越了單一資料模式(this is the first of its kind demonstration of transferability of adversarial attacks beyond a single data modality.)

順便看一下ST-GCN

攻擊物件是ST-GCN 時空圖卷積網路
Spatial Temporal Graph Convolutional Networks
骨架行為識別的開山之作

考慮時間序列的圖卷積
直接使用開源的openpose工具進行人體關鍵點提取

圖的構造

關節點的連線形式包含時間和空間

  • 連線空間上相鄰的關節點\((v_i,v_j)\)
  • 連線不同時間的同一點\((v_{t,i},v_{t+1,i})\)

相當於是二維的骨架圖按照時間軸展開
(這個工具提取的關鍵點標準是固定的)

卷積方式

感受野/卷積核形狀不規則 按照距離選點
比如(a)是選擇離中心點距離為1以內的點 作為感受野
這個距離F就是kernel size超引數
(這個距離也可以針對時間距離和空間距離加權重)

卷積權重怎麼安排?因為CNN的卷積核在滑動過程是尺寸不變的,所以同一層任何位置的卷積核都是相同的卷積權重
但是GCN,不同的感受野的點數量不同,需要的卷積核引數數量也不同,所以不能所有位置用相同的卷積權重

把某個點的鄰居集合劃分到固定的K個子集 一個子集裡面所有的點共用一個卷積權重
所以在一層裡,整張圖需要K個卷積權重

劃分子集的方法 也就是分割槽方式:

  • (b)不分割槽 類似CNN的1x1卷積
  • (c)按距離加權 距離為i的算第i個子集
  • (d)按照距離重心的遠近加權
    三種策略都用了

在邊上加了可學習的權重
因為不同的關節活動範圍和使用頻率不一樣
作者說後續可以試試注意力機制