FCPose
FCPose: Fully Convolutional Multi-Person Pose Estimation with Dynamic Instance-Aware Convolutions
? 我們提出了一個基于動態實例感知卷積的全卷積多人姿態估計框架,稱為FCPOSE。 不同于現有的方法,通常需要ROI(感興趣區域)操作和/或分組后處理,FCAPE通過動態的實例感知關鍵點估計頭消除了ROI和分組后處理。 動態關鍵點頭以每個實例(人)為條件,可以將實例概念編碼在其過濾器的動態生成的權重中。 此外,利用動態卷積的強大表示能力,將FCAPE中的關鍵點頭設計得非常緊湊,從而提高了推理速度,使得FCAPE無論在IM年齡內有多少人,其推理時間幾乎是恒定的。 例如,在COCO DataSet上,使用DLA-34主干的FCAPE實時版本的推斷速度比掩碼R-CNN(RESNET-101)快4.5倍(41.67 fps vs 9.26 fps),同時實現了更高的性能(64.8%APKP vs 64.3%APKP)。 FCAPE還提供了比其他最先進的方法更好的速度/精度權衡。
實驗結果表明,FCAPE是一種簡單有效的多人姿態估計框架。 代碼可在以下網址獲得:https://git.io/adelaidet
介紹
多人關鍵點檢測的關鍵挑戰是如何獲取實例級關鍵點。換句話說,檢測到的關鍵點需要根據它們所屬的實例進行分組。
? 目前,主流方法通過自下而上或自上而下的方法來應對這一挑戰。
? 自頂向下的方法 [8,27] 首先使用人物目標檢測器檢測每個單獨的實例。這些檢測到的框形成ROI(候選框),并且ROI操作用于從特征圖或原始圖像中裁剪人員。接下來,在每個人的ROI內單獨地執行單人關鍵點檢測。基于ROI的管道可能會帶來一些缺點。首先,roi是單獨轉發的,因此卷積計算不能共享。結果,這些方法的推理時間在很大程度上取決于圖像中實例的數量,這阻礙了這些方法的實時性,如我們的實驗所示。其次,自頂向下的方法通常不是端到端訓練的,因為roi通常是從孤立的人檢測器 (例如更快的r-cnn) 獲得的 [25]。而且,使用目標檢測的方式還會導致明顯更長的端到端推理時間 (即,從原始圖像到最終關鍵點結果)。第三,這些基于ROI的方法還依賴于ROI的本地化質量。如果檢測器產生不準確的框,這可能會損害關鍵點檢測性能。
? 另一方面,自下而上的方法 [2,20] 不依賴于roi。他們首先檢測與實例無關的關鍵點,然后采用分組后處理來獲得每個實例的全身結果。組裝關鍵點的過程通常是啟發式的,并且可能涉及許多超參數,使得這些方法變得復雜。
?
? 在這項工作中,我們提出了一種新的關鍵點檢測解決方案。 我們的解決方案簡單而有效,并且能夠避免之前基于 ROI 或基于分組的方法的缺點。 我們解決方案的想法是動態生成關鍵點頭的卷積核。 更具體地說,對于每個實例,我們動態生成一個關鍵點頭部。 生成的關鍵點頭以完全卷積網絡的方式應用于卷積特征圖。
因此,我們能夠僅獲得特定目標實例的關鍵點檢測結果,如圖 3 所示。這是因為關鍵點頭部可以在過濾器的權重中編碼實例的特征。 因此,這個關鍵點頭可以將實例的關鍵點與其他實例的關鍵點區分開來,因此是特定于實例的卷積過濾器。 如果我們認為自頂向下方法中的 ROI 操作是使模型關注實例的操作,那么在我們的方法中,動態實例感知關鍵點頭也是如此。 這個想法消除了對 ROI 和分組后處理的需要,從而繞過了前面提到的缺點。 此外,動態生成的關鍵點頭部非常緊湊,只有幾千個系數。 因此,它可以非常快速地進行推理,無論測試圖像中有多少人,總推理時間幾乎保持不變。 這對于實時應用程序特別有價值。
每個實例都有自己的關鍵點頭部。fθif_{\theta_i}fθi??是第 i 個人物實例的動態生成的關鍵點頭部。
-
我們提出了一個基于動態卷積核的高效準確的人體姿態估計框架,稱為FCPOSE[13]。 我們首次證明了一個無ROI和無分組的端到端可訓練的人體姿態估計器可以獲得更好的精度和速度,與最近的自頂向下和自底向上的方法相比較。
-
ROI的消除使得FCAPE可以僅通過卷積操作來實現,從而使得在移動設備上的部署更加容易。 此外,不使用ROIS也避免了關鍵點預測被不準確的檢測框截斷,如在基于ROI的框架中,如掩碼R-CNN[8](例如,參見圖5)。
-
FCAPE的核心是在關鍵點頭上使用動態濾波器。 動態生成的過濾器顯示了強大的表示能力。 因此,我們只需要少量這樣的卷積就可以獲得最佳結果。 因此,無論圖像中實例的數量如何,關鍵點頭都非常緊湊,因此整個推理時間很快,并且幾乎是恒定的。 我們還提出了一種具有競爭性能的實時端到端關鍵點檢測模型。 速度與精度的權衡在圖中表現出來 2. 我們相信FCAPE可以成為關鍵點檢測的一個新的強基線,特別是在實時領域。
方法
FCNs全卷積網絡可用來做語義級別的圖像分割以及對象檢測,由encoder(vgg,resnet,預訓練模型提取特征),decoder(實現每個像素的分割或預測)組成
由于普通的FCN無法生成實例感知的關鍵點,這對多人關鍵點檢測提出了關鍵挑戰。
一些方法使用 ROI 來裁剪有關的人,然后將多人關鍵點檢測轉變為單人關鍵點檢測。
令 G∈Rh×w×cG ∈ R^{h×w×c}G∈Rh×w×c 為 ROI 的特征,fθf_{\theta}fθ? 為關鍵點頭,其中 θθθ 是可學習的網絡權重。預測的熱圖H∈Rh×w×KH ∈ R^{h×w×K}H∈Rh×w×K
H=fθ(G)H=f_\theta(G) H=fθ?(G)
K 為 COCO數據集上的17 個關鍵點數。然后,可以通過在熱圖的每個通道上找到峰值來獲得最終的關鍵點坐標。 ROI操作是使模型關注實例的核心操作。在這項工作中,我們建議使用實例感知關鍵點頭來使模型關注一個實例。對于每個實例 i,將生成一組新的關鍵點頭部權重$ θ_i$。權重為 $ θ_i$ 的關鍵點頭部應用于全圖像特征圖。
形式上,讓 H∈RH×W×32H ∈ R^{H×W×32}H∈RH×W×32 是一個層級的特征圖,它是通過應用幾個卷積層生成的。層到 FPN 輸出特征圖 [16] 并且在 FPN 中具有相同的 P3 分辨率,如圖 4 所示。對于實例 i,預測的熱圖 H∈RH×W×KH ∈ R^{H×W×K}H∈RH×W×K 是
H=fθ(F)H=f_\theta(F) H=fθ?(F)
F是沒有任何裁剪操作的全圖像特征映射。濾波器的權值θi\theta_iθi?取決于實例iii的特征,從而可以對目標實例的特征進行編碼。
我們使用FCOS[29]為每個實例生成動態權值θ。 Fcos中,特征映射上的每個位置都與一個實例相關聯。
如果位置與實例iii相關聯,控制器可以生成用于檢測實例iii的關鍵點的權重θi\theta_{i}θi?。
本文中控制器為1×1的單層卷積核。
該層的輸出個數等于關鍵點頭部的權值個數(即θi的基數)。 本文的關鍵點頭具有3×conv。
- 層的通道為32
- 內核大小為1×1
- 其次是RELU
- 以及一個k通道最終預測層(一個關鍵點一個通道)
- 總共有2737個權重
因此,控制器的最終預測層有2737個輸出通道。 值得注意的是,我們的Keypoint Head比其他自上而下的方法緊湊得多,比如掩碼R-CNN有8×conv。 具有通道512和內核大小3×3以及deconv的層。
關鍵點頭部的層。 非常緊湊的關鍵點頭使得我們的方法在關鍵點頭上的推理時間可以忽略不計,因此無論圖像中實例的數量如何,總的推理時間幾乎是恒定的,如圖所示 6.
如前所述,FPN特征映射P3用于生成熱映射,因此熱映射的分辨率是輸入圖像的1/8分辨率。 由于關鍵點檢測對定位精度要求很高,1/8的分辨率不足以進行關鍵點檢測。 在以前的大多數方法中,通常使用反卷積等上采樣操作來對熱圖進行上采樣。 然而,在FCAPE中,上采樣HeatMaps會帶來很高的計算開銷。 具體地說,在FCPOSE中,對于一幅圖像,我們輸出n個Heatmaps,通道k,高度h,寬度w,其中k是一個實例的關鍵點數,n是圖像中的實例數。 這些熱圖將占用N×K×H×W內存空間。 如果我們將HeatMaps的采樣值提高8倍,內存占用量將增加64倍。 此外,這將導致更長的計算時間。
這里,我們通過引入一個基于回歸的關鍵點求精模塊來解決這個問題。 如圖所示 4、將關鍵點求精模塊應用到FPN層P3中,這是一個單一的conv。 輸出通道為2K的層(即COCO上的34)。 設O∈RH×W×2KO∈R^{H×W×2K}O∈RH×W×2K為該模的輸出特征映射。 Oi,j=(Δx,Δy)O_{i,j}=(Δx,Δy)Oi,j?=(Δx,Δy)預測從位置(i,j)(i,j)(i,j)到最近的地真值關鍵點的偏移量。 因此,對于一個關鍵點,如果它的熱圖峰值在(i,j)(i,j)(i,j)處,則關鍵點的最終坐標將是(i+?x,j+?y)(i+?x,j+?y)(i+R?x,j+R?y)。 實驗表明,該精化模塊可以在計算開銷可以忽略不計的情況下,大大提高關鍵點檢測性能。 注意,在我們的實驗中,所有實例共享相同的關鍵點細化模塊。 雖然可以動態生成模塊并使每個實例都有自己的一個,但我們經驗發現使用一個共享的關鍵點細化模塊就足夠了。
還有一些自上而下的方法,如HRNET[27],它們首先使用一個孤立的對象檢測器來檢測人框,然后在原始圖像上裁剪ROI。 這些ROI的特征由另一個網絡分別計算。 這些方法通常具有很高的性能,但如果我們測量端到端的推理時間(即從輸入圖像到關鍵點結果),則非常慢。 如表6所示,與自頂向下的方法HRNET相比,FCAPE可以顯著地將每幅圖像的端到端推理時間從337ms減少到68ms(RESNET-50)或488ms減少到93ms(RESNET-101),使得關鍵點檢測接近實時。 此外,由于這些基于ROI的方法使用相對繁瑣的網絡來分別獲得每個ROI的熱圖,因此它們的總推斷時間嚴重依賴于實例的數量。 例如,如圖所示 HRNET-W48模型的推理時間隨實例數的增加而顯著增加。 與之形成鮮明對比的是,FCAPE保持幾乎恒定的推理時間。 FCAPE的這一優點對于實時應用具有重要意義。
訓練目標與損失函數
因此,對于每一批,我們最多只采樣m=50個正位置來生成過濾器。
M個位置在所有地面真值實例上平均。 對于每個實例,選擇置信度高的正位置,在關鍵點損失計算中丟棄其余正位置。
FCAPE的損失函數由三部分組成。
第一部分是FCOS的原始損失,保持原狀。 我們請讀者參考FCOS[29]的論文了解詳細情況。
第二部分是熱圖學習的損失函數。 如前所述,一個HeatMap只預測一個關鍵點。 因此,我們可以使用一個熱訓練目標作為熱圖,并使用Softmax的交叉熵(CE)損失作為損失函數。 具體地說,假設一個地面真值關鍵點的坐標是(x*,y*),并且HeatMap的分辨率是輸入圖像的1/8分辨率。 然后,對于這個關鍵點,其地面真值熱圖上的位置(x-4-8,y-4-8)將被設置為1,其他位置將為0。 設H_i∈RH×W為關鍵點的地真熱圖。 損失函數可表述為
Lheatmap?=CE(softmax?(Hi),H?)L_{\text {heatmap }}=\mathrm{CE}\left(\operatorname{softmax}\left(H_i\right), H^*\right) Lheatmap??=CE(softmax(Hi?),H?)
其中Hi∈Rh×w是由動態關鍵點頭預測的該關鍵點的熱圖。 在這里,將HI和H*I都平化為一個向量,并將交叉熵和Softmax應用于每個向量。 最后,對于關鍵點偏移距回歸,采用均方誤差(MSE)計算預測偏移距與實測偏移距之間的差值。 總損失函數是這些損失函數的總和。 形式上,我們有
Loverall?=Lfcos?+αLheatmap?+βLreg?L_{\text {overall }}=L_{f \cos }+\alpha L_{\text {heatmap }}+\beta L_{\text {reg }} Loverall??=Lfcos?+αLheatmap??+βLreg??
其中α和β分別為損失權重。
推理
給定輸入圖像I,FCPOSE首先通過網絡轉發圖像并獲得網絡輸出。 在FCOS之后,分類得分大于0.05的位置被選為陽性位置。
一個正位置對應于一個預測實例。 接下來,對于每個位置,我們計算生成的過濾器,并將過濾器應用于特征映射F(如圖4所示),以獲得與位置相關聯的實例的KeyPoint HeatMaps。 對于每個熱圖,我們找到其峰值的坐標。 然后,利用關鍵點回歸模塊的偏移量對峰值坐標進行細化,得到關鍵點坐標。 最后,采用非最大值抑制(NMS)方法去除重復項。
實驗
我們在COCO 2017 Keypoint Detection Benchmark[17]上訓練和評估FCPE,該基準有57K圖像用于訓練,5K圖像用于驗證,20K圖像用于測試。 該數據集包括超過250k個Person實例,每個人有17個注釋的關鍵點。 采用基于對象關鍵點相似度(OKS)的平均精度(AP)作為評價指標。 消融研究在VAL2017分裂上進行評估。 我們的主要結果是在測試-開發拆分上報告的。
實施細節
我們使用Detecton2[30]實現FCAPE。
模型采用8 GPU以上的隨機梯度下降(SGD)訓練。
除非指定,所有實驗都使用以下訓練細節。 在FCOS[29]之后,有FPNS[16] 的Resnet-50[10]被用作特征提取器。
在ImageNet上預先訓練的權重用于初始化主干resnet-50。 新添加的層用[9]中的方法初始化。 學習速率初始設置為0.01,在1×訓練計劃(即90K迭代)的迭代60K和80K時,或在3×訓練計劃(即270K迭代)的迭代180K和240K時,學習速率降低10倍。 重量衰減、批量大小和動量分別設置為0.0001、16和0.9。 對于數據增強,我們應用隨機裁剪[0.4,1.0](相對范圍)、隨機翻轉和隨機調整大小(圖像的短尺寸從[320,800]采樣)。
對于推斷,我們只使用圖像的單尺度。 圖像的短邊的大小調整為800,長邊的大小調整為小于或等于1333。 所有的推理時間都是在一個1080 ti的GPU上測量的。
結論
我們提出了一種新的關鍵點檢測框架FCAPE。 它可以消除自頂向下方法中的ROI操作和自底向上方法中的分組后處理,以全卷積的方式解決關鍵點檢測問題。 FCAPE的核心思想是用動態關鍵點頭代替ROIS使模型關注實例。 大量的實驗表明,FCAPE提供了一個簡單、快速、有效的關鍵點檢測框架。 此外,我們還提出了一種實時FCAPE,它可以在一個1080Ti的GPU上以大約42 fps的速度執行,在COCO數據集上具有64.8%的APKP,大大優于以前的強實時基線CMU-POSE[2]。
總結
- 上一篇: c语言define作用范围,#defin
- 下一篇: 【HDU】 4833 Best Fina