1. 程式人生 > 其它 >YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss [2204.06806] - 論文研讀系列(6) 個人筆記

YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss [2204.06806] - 論文研讀系列(6) 個人筆記

YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss [2204.06806]

1、摘要簡介

  • 本文介紹了YOLO-Pose,一種新的無Heatmap聯合檢測方法,是基於YOLOv5目標檢測框架的姿態估計。

  • 現有的基於Heatmap的兩階段方法並不是最優的,因為它們不是端到端訓練的,且訓練依賴於替代L1損失,不等價於最大化評估度量,即目標關鍵點相似度(OKS)。

  • YOLO-Pose可以進行端到端訓練模型,並優化OKS度量本身。該模型學習了在一次前向傳遞中聯合檢測多個人的邊界框及其相應的二維姿態,從而超越了自上而下和自下而上兩種方法的最佳效果。

  • YOLO-Pose不需要對自底向上的方法進行後處理,以將檢測到的關鍵點分組到一個骨架中,因為每個邊界框都有一個相關的姿態,從而導致關鍵點的固有分組。與自上而下的方法不同,由於所有人都是在一次推理中隨姿勢定位,因此取消了多個前向傳播。

  • 本文旨在解決無熱圖的姿勢估計問題。目標檢測和姿勢估計類似,同樣有尺度變換、遮擋、人體非剛性等,最新的目標檢測框架試圖通過在多個尺度上預測來緩解尺度變換問題,本文采用相同策略來預測多尺度人體姿勢。

2、相關工作

  • 上圖為yolo-pose的輸出,下圖為HighterHRNet32的輸出,即使關鍵點位置基本正確,分組演算法也很容易失敗。在擁擠的場景中,自下而上的方法(例如上述的HightHRNet32)很容易出現這種分組錯誤。

  • 自上而下的方法雖然精度高,但是模型複雜且執行時間可變,自下而上方法有穩定的執行時間,可以達到實時要求,其依賴於熱圖來檢測單張影象中所有的關鍵點,然後進行復雜的後處理,將其分組為個人。但即使後處理後也可能不清晰無法區分同一類過於緊密的關鍵點,同時不能端到端訓練,因為後處理部分是不可微的(從線性規劃到啟發式演算法)。(總而言之後處理又慢又複雜,最好直接捨去)

    • 後處理可以涉及畫素級NMS、線積分、細化、分組等步驟。座標調整和細化減少了下采樣熱圖的量化誤差,而NMS用於在熱圖中尋找區域性最大值。
    • 本文重點消除各種非標準化後處理,採用與目標檢測相同的後處理。
  • 簡單來說,就是結合了自上而下方法中簡單的後處理(通過錨分組)+ 自下而上方法恆定的執行時間(本文複雜性與影象中人數無關?),提出一種聯合檢測和姿態估計框架,通過目標檢測網路,姿勢估計部分幾乎free

  • 自上而下:simple baseline、(DCPose、FAMI-Pose)

  • 自下而上:openPose、DEKR、HRNet(熱圖的方法都屬於自下而上,各方法不同之處在於關鍵點分組策略)

3、YOLO-Pose

  • 不使用熱圖,相反將一個人的所有關鍵點與錨聯絡起來,基於目標檢測框架(YOLOX/YOLOv5)。對於姿勢估計歸於為一個單一類別的行人檢測問題,每個人都有17個相關的關鍵點,並且每個關鍵點都用位置和置信度來識別:{x,y,conf}。因此對於具有n個關鍵點的錨,整體的預測向量為:

  • 關鍵點置信度是基於關鍵點的可見性標誌進行訓練的。如果一個關鍵點是可見的或被遮擋的,那麼Ground Truth置信度設定為1,否則,如果關鍵點在視場之外,置信度設定為0。

  • 在推理過程中要保持關鍵點的置信度大於0.5。所有其他預測的關鍵點都被遮蔽的。預測的關鍵點置信度不用於評估。然而,由於網路預測了每個檢測的所有17個關鍵點,需要過濾掉視場之外的關鍵點。否則,就會有置信度第的關鍵點導致變形的骨架。現有的基於HeatmapBottom-up方法不需要這樣做,因為視野外的關鍵點一開始就不會被檢測到。

  • 使用CSP-darknet53作為主幹(生成各種解析度的特徵圖P3P4P5P6),PANet從主幹融合各種尺度的特徵,四個不同解析度的探測頭,以及最後每個檢測頭分別預測框和關鍵點。本工作重點在於追求實時模型的基礎上與自上而下的方法進一步縮小差距。

3.1 基於多人姿勢生成的錨點

  • 影象中與人匹配的錨,和姿勢/邊界框一起儲存。邊界框座標隨錨中心變換,尺寸隨錨高度寬度標準化;關鍵點位置也會從w,r,t轉換為錨中心(錨中心的相對座標),但尺寸不會標準化(因此能夠被推廣到無錨目標檢測演算法中)。

3.2 監督Bounding-box的IoU損失

  • 大部分現在的物體檢測器使用的是優化了IoU損失的變體,比如GloU、DIoU或CIoU損失,而非基於距離的損失,因為這些損失是尺度不變的,並直接優化評估指標本身。因此本文借鑑使用CIoU損失監邊框迴歸:

  • 表示位置 (i,j) 和尺度 s 處的第 k 個錨點的預測框。本文中每個位置有三個錨(上本身中間和下半身),在四種尺度上進行預測(四種解析度)。

3.3 人體姿勢損失函式公式

  • OKS(目標關鍵點相似度)

    • 傳統基於熱圖的自下而上的方法使用L1損失來檢測關鍵點。然而本文指出L1損失沒有考慮物體的大小或者關鍵點的型別,因此不是最佳的。由於熱圖是概率圖,所以在純熱圖的方法中不可能使用OKS作為損失,只有要回歸關鍵點位置的時候OKS才能作為損失函式。
    • 由於本文是直接回歸關鍵點w.r.t錨中心,因此可以優化評估指標本身(即IoU損失)而非使用替代損失函式surrogate loss,即將IoU損失從邊框推廣到關鍵點。
      • surrogate loss function代理損失函式或者稱為替代損失函式,一般是指當目標函式非凸、不連續時,數學性質不好,優化起來比較複雜,這時候需要使用其他的效能較好的函式進行替換。(熱圖的複雜後處理分組)
    • 本文使用IoU損失作為OKS評估:
      • OKS損失本質上應該是尺度不變的,並且對不同的關鍵點權重不一樣,比如頭部關鍵點比身體關鍵對損失的懲罰更大。(權重超參借鑑COCO作者經驗)
      • 普通的IoU損失在非重疊情況下會出現梯度消失,而OKS損失不會,因為選擇更類似於OKS的DIoU損失。
  • 對於每個邊界框都儲存整個姿態資訊,因此如果標註框在位置和尺度上與預測框相匹配,則預測了相對於錨中心的關鍵點。分別計算每個關鍵點的OKS求和得出最終的OKS。

  • \(d_{n}\)表示第n個關鍵點預測和標註位置的歐氏距離,\(δ(v_{n})\)表示每個關鍵點的可見性標誌(1/0)。對於每個關鍵點,使用關鍵點的可見性標誌來學習一個置信引數來顯示該人是否存在某關鍵點,在這裡,關鍵點的可見性標誌藉助標註框得到:p表示第n個關鍵點的置信度,BCE二分類交叉熵損失。

  • 總損失:

  • 其中超引數均為0.5。主要是用來平衡損失。

2.5 超出邊界框的關鍵點

  • top-down的方法在遮擋下表現很差。與top-down的方法相比,YOLO-Pose的優勢之一是:關鍵點沒有限制在預測的邊界框內。因此,如果關鍵點由於遮擋而位於邊界框之外,它們仍然可以被正確地識別出來。然而,在top-down的方法中,如果人的檢測不正確,姿態估計也會失敗。在YOLO-Pose方法中,遮擋和不正確的框檢測在一定程度上減輕了這些挑戰。

4、實驗結果


5、 總結

  • 本文的方法大體看是,先用YOLO檢測出人,然後以錨中心為座標檢測關鍵點;可以說關鍵點跟錨繫結而非跟檢測框走。