eehoeskrap / PaperReview

꾸준희의 꾸준하게 논문 읽기 프로젝트 ✨
8 stars 0 forks source link

YOLO-Pose: Enhancing YOLO for Multi Person Pose Estimation Using Object Keypoint Similarity Loss #3

Open eehoeskrap opened 1 year ago

eehoeskrap commented 1 year ago

Paper : https://openaccess.thecvf.com/content/CVPR2022W/ECV/papers/Maji_YOLO-Pose_Enhancing_YOLO_for_Multi_Person_Pose_Estimation_Using_Object_CVPRW_2022_paper.pdf GitHub : https://github.com/TexasInstruments/edgeai-yolov5/tree/yolo-pose

논문 개요

본 논문에서 제안하는 모델은 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

참고 : GMACS - ChatGPT 답변

GMACS는 "Giga Multiply-Accumulates per Second"의 약어입니다. 이는 컴퓨터 시스템의 성능을 측정하는 지표 중 하나로, 매 초당 수행 가능한 곱셈 및 누적 연산의 양을 나타냅니다. GMACS는 주로 신경망과 같은 연산 집약적인 작업에 대한 성능을 평가하는 데 사용됩니다. 높은 GMACS 값을 갖는 시스템은 복잡한 연산을 빠르게 처리할 수 있으며, 딥러닝과 같은 AI 응용 분야에서 효율적인 작업을 수행할 수 있습니다.

Method

YOLO-Pose 모델은 YOLOv5 모델을 따릅니다. overall prediction vector는 다음과 같이 정의됩니다.

image

YOLO-Pose는 CSP-darknet53을 backbone으로 사용하고, backbone에서 다양한 scale의 feature를 합치기 위해 PANet을 사용합니다. 참고로 PANet은 FPN 구조와 비교하였을 때 아래와 같습니다.

image

그 다음 크기가 다른 4개의 detection head가 존재하고, 마지막으로 box와 keypoint를 예측하기 위한 2개의 분리된 head가 존재합니다. 이 작업에서 본 논문에서는 복잡성을 150 GMACS로 제한하고, 그 내에서 경쟁력 있는 결과를 달성하게 됩니다.

image

주어진 이미지에 대해 사람과 일치하는 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 bbox supervision을 위해 CIoU를 사용합니다. 참고로 CIoU는 overlap area, central point distance, aspect ratio를 모두 고려하는 metric 입니다. image

Human Pose Loss Function Formulation 일반적으로 heatmap 기반 pose estimation 방법에서 사용하는 L1 loss는 최적의 OKS를 얻는데 적합하지 않을 수 있습니다. L1 Loss는 굉장히 단순하며 객체의 scale이나 keypoint의 type을 고려하지 않습니다. heatmap은 probability map 이기 때문에 순수 heatmap OKS를 사용할 수 없습니다. OKS는 keypoint 위치를 regression 할 때만 loss function으로 사용할 수 있습니다. OKS Loss는 scale-invariant이며, 특정 keypoint에 더 많은 중요성을 부여하게 됩니다. 예를 들면 사람 머리의 키포인트(눈, 코, 귀)는 사람 신체의 키포인트(어깨, 무릎, 엉덩이 등)보다 동일한 픽셀 수준 오류(pixel-level error)에 대해 더 많은 패널티를 받습니다.

keypoint의 confidence는 BCE Loss를 사용하게 됩니다. 여기서 v는 visible을 의미합니다.

Total Loss total loss는 아래와 같습니다.

Experiments

COCO 데이터세트 (test-dev)에서 평가한 결과는 아래와 같습니다. image

OKS Loss, L1 Loss에 따른 실험 결과는 아래와 같습니다. OKS Loss를 사용하였을 때 L1 Loss에 비해 AP 기준 약 5% 정도 성능 향상이 있네요. 임팩트 있는 결과 같습니다. image

image

논문 리뷰 full version https://eehoeskrap.tistory.com/687