[Paper Review] YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss
GitHub : https://github.com/TexasInstruments/edgeai-yolov5/tree/yolo-pose
์ด๋ฒ์ ์๊ฐํ ๋ ผ๋ฌธ์ YOLO ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํ Human Pose Estimation ๋ฐฉ๋ฒ์ธ YOLO-Pose ์ ๋๋ค. CVPR 2022์ ์๊ฐ๋๊ธฐ๋ ํ์๋ค์!
๋ ผ๋ฌธ ๊ฐ์
๋ณธ ๋ ผ๋ฌธ์์ ์ ์ํ๋ ๋ชจ๋ธ์ single forward pass์์ ์ฌ๋ฌ๋ช ์ ์ฌ๋๊ณผ 2d pose์ ๋ํ bbox๋ฅผ ๊ฒ์ถํ๋ ๋ฐฉ๋ฒ์ ํ์ตํ๋ฏ๋ก bottom-up, top-down ๋ฐฉ์์ ์ฅ์ ์ ๋ชจ๋ ๊ฐ์ง๋ค๊ณ ์ ์ํฉ๋๋ค. ์ด๋ฌํ ์ ๊ทผ๋ฐฉ์์ ๊ฒ์ถ๋ keypoint๋ค์ skeleton์ผ๋ก ๊ทธ๋ฃนํ ํ๊ธฐ ์ํ post-processing์ด ํ์ ์๋ค๊ณ ํฉ๋๋ค. ์๋๋ฉด anchor์ ์ฐ๊ฒฐ๋ keypoint๋ ์ด๋ฏธ ๊ทธ๋ฃนํ ๋์ด์๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ์ ์ธ ๊ทธ๋ฃนํ ์์ ์ด ํ์ ์๋ค๊ณ ํฉ๋๋ค. post-processing์ด ์์ ์๋ ๊ฒ์ ์๋๊ณ , object detection์์ ์ฌ์ฉํ๋ ํ์ค NMS๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค์. ๋ํ COCO validation ์ธํธ์์ SOTA๋ฅผ ๋ฌ์ฑํฉ๋๋ค.
๊ธฐ์กด ๋ฌธ์
๋ณธ ๋ ผ๋ฌธ์์๋ ๊ธฐ์กด heatmap ๊ธฐ๋ฐ two-stage ๋ฐฉ์์ด end-to-end๋ก ํ์ต์ด ๋ถ๊ฐ๋ฅํ๊ณ , ํ์ต ์ evaluation metric์ ์ต์ ํ ๋์ง ์์ L1 Loss์ ์์กดํ๋ค๋ ๊ฒ์ ์ง์ ํฉ๋๋ค.
Main Contribution
- scale variation ๋ฐ occlusion๊ณผ ๊ฐ์ ์ฃผ์ ๋ฌธ์ ๋ ๊ณตํต์ ์ธ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ object detection์ ๋ฐ๋ผ multi-person pose estimation ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. ์ด ๋ ๋ถ์ผ๋ฅผ ํ๋๋ก ํตํฉํ๊ธฐ ์ํ first step ์ด๋ผ๊ณ ํ๋ค์.
- heatmap์ด ์๋ ์ ๊ทผ ๋ฐฉ์์ pixel level NMS, adjustment, refinement, line-integral, various grouping algorithm ๋ฑ ์ ํฌํจํ๋ ๋ณต์กํ post-processing ๋์ object detection์ post-processing์ ์ฌ์ฉํฉ๋๋ค.
- box detection์์ keypoint๋ก IoU loss ๊ฐ๋ ์ ํ์ฅํ์ต๋๋ค. OKS(object keypoint similarity)๋ evaluation์์๋ง ์ฌ์ฉ๋๋ ๊ฒ์ด ์๋๋ผ ํ์ต ์์๋ loss๋ก ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. OKS loss๋ scale-invariant ํ๋ฉฐ ๋ณธ์ง์ ์ผ๋ก ๋ค๋ฅธ keypoint์ ๊ฐ ๋ค๋ฅธ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ๊ฒ ๋ฉ๋๋ค.
- ~4x ์ ๋ ์ ์ ์ปดํจํ ์ผ๋ก SOTA AP50์ ๋ฌ์ฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด coco test-dev2017 ๋ฐ์ดํฐ์ธํธ์์ Yolo5m6-pose๋ AP50 ๊ธฐ์ค 283.0 GMACS์์ 89.4์ ์ฑ๋ฅ์ ๋ฌ์ฑํ SOTA DEKR๊ณผ ๋น๊ตํ์ฌ 66.3 GMACS์ ๋ฌ์ฑํ๊ฒ ๋ฉ๋๋ค.
- joint detection ๋ฐ pose estimation framework๋ฅผ ์ ์ํฉ๋๋ค. pose estimation์ object detection network์์ ๊ฑฐ์ ๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ค๊ณ ํํํ๊ณ ์๋ค์ ใ ใ
- EfficientHRNet๊ณผ ๊ฐ์ real-time ์ค์ฌ ๋ชจ๋ธ ๋ณด๋ค ์ฑ๋ฅ์ด ํจ์ฌ ๋ฐ์ด๋๊ณ , ๋ณต์ก์ฑ์ด ๋ฎ์ ๋ณํ๋ ๋ชจ๋ธ์ ์ ์ํฉ๋๋ค.
YOLO-Pose
YOLO-Pose ๋ชจ๋ธ์ YOLOv5 ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ์ด ๋ชจ๋ธ์ ์ฃผ๋ก anchor ๋น 85๊ฐ์ ์์๋ฅผ ์์ธกํ๋ box head๋ฅผ ์ฌ์ฉํ์ฌ 80๊ฐ์ ํด๋์ค๋ฅผ ๊ฒ์ถํ๊ฒ ๋ฉ๋๋ค. 80๊ฐ ํด๋์ค์ ๋ํ bounding box, object score, confidence score๊ฐ ์์ต๋๋ค. ๋ํ ๊ฐ grid์ ํด๋นํ๋ ๋ชจ์์ด ๋ค๋ฅธ 3๊ฐ์ anchor๊ฐ ์๊ณ , pose estimation์ ๊ฒฝ์ฐ ๊ฐ ์ฌ๋์ด 17๊ฐ์ ์ฐ๊ด๋ keypoint๋ฅผ ๊ฐ๋ single class person detection ๋ฌธ์ ๋ก ์ ์๋๋ฉฐ, ๊ฐ keypoint๋ location๊ณผ confidence๋ก ์๋ณ๋ฉ๋๋ค. ๋ฐ๋ผ์ anchor์ ๊ด๋ จ๋ 17๊ฐ์ keypoint์ ๋ํด 51๊ฐ์ ์์๊ฐ ์กด์ฌํ๋ฉฐ, ๊ฐ anchor์ ๋ํด keypoint head๋ 51๊ฐ์ ์์๋ฅผ ์์ธกํ๊ฒ ๋๊ณ , box head๋ 6๊ฐ์ ์์๋ฅผ ์์ธกํ๊ฒ ๋ฉ๋๋ค. n๊ฐ์ keypoint๊ฐ ์๋ anchor์ ๊ฒฝ์ฐ overall prediction vector๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
keypoint confidence๋ ํด๋น keypoint์ visibility flag๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋ฉ๋๋ค. keypoint๊ฐ ๋ณด์ด๊ฑฐ๋(visible) ๊ฐ๋ ค์ง๋ฉด(occluded) GT confidence๋ 1๋ก ์ค์ ๋๊ณ , ์ด๋ฏธ์ง ๋ด์ ์์ผ๋ฉด 0์ผ๋ก ์ค์ ๋ฉ๋๋ค. ์ถ๋ก ์ confidence๊ฐ 0.5 ๋ณด๋ค ํฌ๋ค๋ฉด ํด๋น keypoint๋ ์ ํจํ๋ค๊ณ ํ๋จํ๋ฉฐ, ์ด ์ธ์ ๋ค๋ฅธ keypoint๋ reject ๋ฉ๋๋ค. confidence ๊ฐ๋ ์ evaluation์์๋ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋คํธ์ํฌ๋ ๊ฐ detection ๋ ๊ฒฐ๊ณผ์ ๋ํด 17๊ฐ์ keypoint๋ฅผ ๋ชจ๋ ์์ธกํ๊ฒ ๋๋ฏ๋ก ์ด๋ฏธ์ง ๋ฐ์ ์์นํ๋ keypoint๋ฅผ ํํฐ๋งํด์ผํฉ๋๋ค. ํํฐ๋งํ์ง ์์ ๊ฒฝ์ฐ dangling keypoint(๋ฌ๋๋ฌ๋ ํคํฌ์ธํธ..)๊ฐ ์๊ฒจ skeleton์ด ๋ณํ๋๋ค๊ณ ํฉ๋๋ค.
YOLO-Pose๋ CSP-darknet53์ backbone์ผ๋ก ์ฌ์ฉํ๊ณ , backbone์์ ๋ค์ํ scale์ feature๋ฅผ ํฉ์น๊ธฐ ์ํด PANet์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ ๋ค์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ 4๊ฐ์ detection head๊ฐ ์กด์ฌํ๊ณ , ๋ง์ง๋ง์ผ๋ก box์ keypoint๋ฅผ ์์ธกํ๊ธฐ ์ํ 2๊ฐ์ ๋ถ๋ฆฌ๋ head๊ฐ ์กด์ฌํฉ๋๋ค. ์ด ์์ ์์ ๋ณธ ๋ ผ๋ฌธ์์๋ ๋ณต์ก์ฑ์ 150 GMACS๋ก ์ ํํ๊ณ , ๊ทธ ๋ด์์ ๊ฒฝ์๋ ฅ ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฌ์ฑํ๊ฒ ๋ฉ๋๋ค.
์ฃผ์ด์ง ์ด๋ฏธ์ง์ ๋ํด ์ฌ๋๊ณผ ์ผ์นํ๋ anchor๋ bbox์ ํจ๊ป ์ ์ฒด 2d pose๋ฅผ ์ ์ฅํ๊ณ , bbox ์ขํ๋ anchor ์ค์ฌ์ผ๋ก ๋ณํ๋๋ ๋ฐ๋ฉด, box scale์ anchor์ ๋์ด์ ๋๋น์ ๋ํด normalization ๋ฉ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก keypoint์ ์์น๋ anchor center๋ก ๋ณํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ keypoint๋ anchor์ ๋์ด์ ๋๋น๋ก normalization ํ์ง ์์ต๋๋ค. keypoint ์ bbox ๋ชจ๋ anchor ์ค์ฌ์ผ๋ก ์์ธก๋ฉ๋๋ค. ๋ฐ๋ผ์ anchor์ ๋๋น์ ๋์ด์ ๋ฌด๊ดํ๊ธฐ ๋๋ฌธ์ YOLOX, FCOS์ ๊ฐ์ anchor-free ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ฝ๊ฒ ํ์ฅ์ด ๊ฐ๋ฅํฉ๋๋ค.
IoU Based Bounding-box Loss Function
๋๋ถ๋ถ์ object detector๋ box detection์ ์ํด distance-base loss ๋์ GIoU, DIoU, CIoU์ ๊ฐ์ IoU loss์ ๋ณํ๋ ํํ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ฌํ loss๋ค์ scale-invariant์ด๋ฉฐ, evaluation metric์ ์ง์ ์ต์ ํ ํ๊ฒ ๋ฉ๋๋ค. ๋ณธ ๋ ผ๋ฌธ์์๋ bbox supervision์ ์ํด CIoU๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ํ $k^{th}$ anchor์ ์ผ์นํ๋ GT bbox์ ๊ฒฝ์ฐ location $(i, j)$ ๋ฐ scale s์์ anchor ๋ฐ loss๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค.
์ฌ๊ธฐ์ $Box_{pred}^{s, i, j, k}$๋ location $(i, j)$ ๋ฐ scale s์์ $k^{th}$ anchor์ predicted box๋ฅผ ๋ํ๋ ๋๋ค. ๋ณธ ๋ ผ๋ฌธ์ ๊ฒฝ์ฐ ๊ฐ location์ 3๊ฐ์ anchor๊ฐ ์์ผ๋ฉฐ, prediction์ 4๊ฐ์ scale๋ก ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค.
Human Pose Loss Function Formulation
OKS๋ keypoint๋ฅผ ํ๊ฐํ๋๋ฐ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ metric์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก heatmap ๊ธฐ๋ฐ bottom-up ์ ๊ทผ ๋ฐฉ๋ฒ์ L1 loss๋ฅผ ์ฌ์ฉํ์ฌ keypoint๋ฅผ ๊ฒ์ถํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ L1 loss๋ ์ต์ ์ OKS๋ฅผ ์ป๋๋ฐ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค. L1 Loss๋ ๊ต์ฅํ ๋จ์ํ๋ฉฐ ๊ฐ์ฒด์ scale์ด๋ keypoint์ type์ ๊ณ ๋ คํ์ง ์์ต๋๋ค. heatmap์ probability map์ผ๋ก ์์ heatmap ๊ธฐ๋ฐ ์ ๊ทผ ๋ฐฉ์์์๋ OKS๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. OKS๋ keypoint ์์น๋ฅผ regression ํ ๋๋ง loss function์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
Geng et. al. [30] ์ฐ๊ตฌ์ ์ํ๋ฉด OKS loss๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๋จ๊ณ์ธ, keypoint regression์ ์ํ scale normalized L1 Loss๋ฅผ ์ ์ํฉ๋๋ค. anchor center์์ ์ง์ keypoint๋ฅผ regression ํ๊ฒ ๋๋ฏ๋ก evaluation metric์ ์ต์ ํํ์ฌ ํ์ตํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์ IoU loss ๊ฐ๋ ์ keypoint๋ก ํ์ฅํ ์ ์์ต๋๋ค. OKS Loss๋ scale-invariant์ด๋ฉฐ, ํน์ keypoint์ ๋ ๋ง์ ์ค์์ฑ์ ๋ถ์ฌํ๊ฒ ๋ฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ์ฌ๋ ๋จธ๋ฆฌ์ ํคํฌ์ธํธ(๋, ์ฝ, ๊ท)๋ ์ฌ๋ ์ ์ฒด์ ํคํฌ์ธํธ(์ด๊นจ, ๋ฌด๋ฆ, ์๋ฉ์ด ๋ฑ)๋ณด๋ค ๋์ผํ ํฝ์ ์์ค ์ค๋ฅ(pixel-level error)์ ๋ํด ๋ ๋ง์ ํจ๋ํฐ๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ฌํ weighting factor๋ redundantly annotated validation image์์ COCO author๊ฐ ๊ฒฝํ์ ์ผ๋ก ์ ํํ๋ค๊ณ ํฉ๋๋ค. ๊ฒน์น์ง ์๋ ๊ฒฝ์ฐ์ ๋ํ gradient vanishing์ผ๋ก ์ธํด ์ด๋ ค์์ ๊ฒช๋ vanilla IoU Loss์๋ ๋ฌ๋ฆฌ OKS Loss๋ ์ ๋ ์ ์ฒด๋๋ ํ์์ด ์๋ค๊ณ ํฉ๋๋ค. ๋ฐ๋ผ์ OKS Loss๋ dIoU Loss์ ์ ์ฌํ๋ค๊ณ ํ๋ค์. ๋ฐ๋ผ์ GT bbox๊ฐ location $(i, j)$ ๋ฐ scale s์์ anchor์ ์ผ์นํ๋ฉด anchor ์ค์ฌ์ ๊ธฐ์ค์ผ๋ก keypoint๋ฅผ ์์ธกํฉ๋๋ค. OKS๋ ๊ฐ keypoint์ ๋ํด ๊ฐ๋ณ์ ์ผ๋ก ๊ณ์ฐ๋ ๋ค์ ํฉ์ฐ๋์ด final OKS Loss ๋๋ keypoint IoU Loss๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ฐ keypoint์ ํด๋นํ๋ keypoint๊ฐ ํด๋น ์ฌ๋์ ๊ฒ์ธ์ง์ ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ confidence parameter๋ฅผ ํ์ตํ๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ์ keypoint์ ๋ํ visible flag๊ฐ GT๋ก ์ฌ์ฉ๋ฉ๋๋ค.
location $(i, j)$์์์ loss๋ GT bbox๊ฐ ํด๋น anchor์ ์ผ์นํ๋ ๊ฒฝ์ฐ scale s์ $k^th$ anchor์ ๋ํด ์ ํจํ๋ค๊ณ ํ ์ ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก total loss๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
YOLO-Pose์ ์ฅ์ ์ค ํ๋๋ keypoint๊ฐ ์์ธก๋ bbox ์์ ์์ด์ผํ๋ค๋ ์ ์ฝ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ keypoint๊ฐ occlusion์ผ๋ก ์ธํด bbox ์ธ๋ถ์ ์๋ ๊ฒฝ์ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ธ์ ๋ ์ ์์ต๋๋ค. ๋ณดํต top-down ๊ธฐ๋ฐ ๋ฐฉ๋ฒ์์๋ keypoint๊ฐ bbox์ ์์กด์ ์ด๊ธฐ ๋๋ฌธ์ ์ ์ฝ์ด ์์ต๋๋ค.
Experiments
COCO ๋ฐ์ดํฐ์ธํธ (val, test-dev)์์ ํ๊ฐํ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ต๋๋ค.
OKS Loss, L1 Loss์ ๋ฐ๋ฅธ ์คํ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ต๋๋ค. OKS Loss๋ฅผ ์ฌ์ฉํ์์ ๋ L1 Loss์ ๋นํด AP ๊ธฐ์ค ์ฝ 5% ์ ๋ ์ฑ๋ฅ ํฅ์์ด ์๋ค์. ์ํฉํธ ์๋ ๊ฒฐ๊ณผ ๊ฐ์ต๋๋ค.
complexity๋ฅผ ๋น๊ตํ ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ต๋๋ค. 30 GMACS ์ดํ์ฌ์ผ low complexity ๋ผ๊ณ ํ๋ค์. ํ์คํ input size์ ๋น๋กํ๋ ๋ฏ ํ๊ณ , ๋์ผ input size ๋๋น EfficientHRNet๊ณผ ๋น๊ตํ์์ ๋ YOLO๊ฐ ๋ ๋ณต์ก๋๊ฐ ๋ฎ์ผ๋ฉฐ, AP๋ ๋์ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Quantization ํ ๊ฒฐ๊ณผ๋ ๋ณผ ์ ์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก Qualitative result ์ ๋๋ค.