[Paper Explain] Whole-body 2D human pose estimation based on human keypoints distribution constraint and adaptive Gaussian factor

0 0 0

Người đăng: Bách Nguyễn

Theo Viblo Asia

Bài viết này sẽ nói về bài báo Whole-body 2D human pose estimation based on human keypoints distribution constraint and adaptive Gaussian factor mới ra lò đầu T8 năm nay.Trên dataset COCO-WholeBody dataset, mô hình đạt 77.8% whole-body AP and 80.3% AR - Cao nhất tính tới thời điểm hiện tại.

Kiến trúc

Mô hình đã đề xuất 2 kĩ thuật mới:

  • Phân phối ràng buộc cho keypoint
  • Hệ số Gaussian thích ứng

image.png

Mô hình dùng HRNet để làm backbone trích xuất feature ( đã được finetune trước image.png

Ảnh trên là pipeline của mô hình .Mô hình sẽ dùng HRNet làm backbone trích xuất feature rồi tính toán heatmap cho mỗi keypoint.Điều khác biệt ở mô hình này nằm ở cách tính toán ra keypoint - sẽ được tôi giải thích dưới đây.

Công thức Gaussian cho Heatmap

Các phương pháp ước lượng tư thế người 2D dựa trên hồi quy heatmap trước đây thường sử dụng chung công thức Gaussian để sinh heatmap cho các khớp, rồi dùng heatmap này để đánh giá , tính loss.

Với tập tọa độ keypoint (cho trước ở dataset để làm ground truth), mô hình sinh phân bố Gaussian hai chiều tại mỗi tọa độ điểm chính S={(xj,yj)}j=1JS = \{(x_j, y_j)\}_{j=1}^{J}

G(x,y;xj,yj,σ)=exp((xxj)2+(yyj)22σ2)G(x, y; x_j, y_j, \sigma) = \exp\left(-\frac{(x - x_j)^2 + (y - y_j)^2}{2\sigma^2}\right)

Trong đó:

  • ( J ) là số lượng điểm chính,
  • σ\sigma là hệ số Gaussian để sinh Gaussian heatmap.

Tuy nhiên:Tác giả nhận ra rằng mỗi khớp đều có kích cỡ , đặc điểm khác nhau , nên việc dùng 1 công thức Gaussian chung cho tất cả các khớp chưa được tối ưu. ⇒Thay vì độ lệch chuẩn cố định thì họ định nghĩa 1 cách tính σ mới cho từng loại khớp

Công thức tính độ lệch chuẩn

Độ lệch chuẩn sẽ biến đổi qua 3 công thức - ứng với từng khớp.

Đầu tiên, họ lấy thống kê trên bộ dữ liệu COCO để tính ra hệ số tỷ lệ bộ phận SFjSF_j được sử dụng để tính toán hệ số Gaussian ban đầu σjσ_j :

σj=σbase×SFj\sigma_j = \sigma_{base} \times SF_j

Trong đó:

  • σbase\sigma_{base} là hệ số Gaussian cơ bản.
  • SFjSF_j giúp giải quyết sự khác biệt về kích thước giữa các bộ phận.

Đối với các bộ phận nhỏ và dày đặc, hệ số tỷ lệ nhỏ giúp giảm độ rộng heatmap tránh chồng lấn.
Đối với các bộ phận lớn và thưa thớt, hệ số tỷ lệ lớn giúp mở rộng vùng heatmap cân bằng mẫu dương và âm.

Tiếp theo, để làm cho hệ số tỷ lệ hợp lý hơn, họ sử dụng kích thước bộ phậnmật độ điểm chính cục bộ:

σp=σ0×W×HW0×H0×βmd\sigma_p = \sigma_0 \times \sqrt{\frac{W \times H}{W_0 \times H_0}} \times \beta_{md}

Trong đó:

  • W×HW \times H: kích thước bộ phận hiện tại.
  • W0×H0W_0 \times H_0: kích thước chuẩn của toàn bộ cơ thể.
  • βmd\beta_{md}: khoảng cách trung bình giữa các điểm chính.

Trong vùng dày đặc:

  • βmd\beta_{md} nhỏ \rightarrow heatmap hẹp \rightarrow đỉnh sắc nét hơn, tăng độ chính xác cục bộ.

Trong vùng thưa thớt:

  • βmd\beta_{md} lớn \rightarrow heatmap rộng \rightarrow tăng vùng tìm kiếm, giảm lỗi bỏ sót điểm.

Ngoài ra, để xử lý trường hợp điểm chính bị che khuất, ta sử dụng hệ số hiển thị:

σj=ηvis×(1+α(1vj))\sigma_j = \eta_{vis} \times (1 + \alpha (1 - v_j))

Trong đó:

  • vj{0,1}v_j \in \{0,1\}: nhãn hiển thị (0 = bị che, 1 = nhìn thấy).
  • α\alpha: hệ số điều chỉnh.

Khi điểm chính bị che, σj\sigma_j tăng \rightarrow heatmap mở rộng \rightarrow giảm lỗi dự đoán do mất điểm.

Loss Function

Trong các phương pháp ước lượng tư thế người hiện nay, hàm mất mát thường dùng với hồi quy heatmap là hàm mất mát MSE. Với K điểm chính, hàm mất mát giữa tọa độ dự đoán và tọa độ thật của từng điểm chính được biểu diễn như sau:

LMSE(P,P^)=1Kk=1N(pkp^k)2L_{MSE}(P, \hat{P}) = \frac{1}{K} \sum_{k=1}^{N} (p_k - \hat{p}_k)^2

Trong đó, p^k\hat{p}_k là heatmap thật của điểm chính thứ kk,
còn pkp_k là heatmap dự đoán. Tuy nhiên trong paper này thì tác giả đã sử dụng hàm loss khác nhau cho từng loại khớp . image.png

Với các điểm chính của thân người, họ sử dụng các điểm tham chiếu để ràng buộc vị trí dự đoán.
Do kết quả dự đoán của mạng là heatmap, họ upsample heatmap lên cùng độ phân giải với ảnh gốc và dùng tọa độ của nó cho ràng buộc khoảng cách.

Để tăng cường ràng buộc, họ chọn ba điểm tham chiếu cho mỗi bộ phận cơ thể:

Lbody=1K(k=1Knkn^k+k=1Klkl^k+k=1Krkr^k)L_{body} = \frac{1}{K} \left( \sum_{k=1}^{K} \|n_k - \hat{n}_k\| + \sum_{k=1}^{K} \|l_k - \hat{l}_k\| + \sum_{k=1}^{K} \|r_k - \hat{r}_k\| \right)

Trong đó, nk,lk,rkn_k, l_k, r_k là khoảng cách từ vị trí dự đoán đến các điểm tham chiếu,
còn n^k,l^k,r^k\hat{n}_k, \hat{l}_k, \hat{r}_k là khoảng cách từ vị trí thật đến các điểm tham chiếu.

Do khuôn mặt và bàn tay có độ linh hoạt nhỏ hơn nhiều so với cơ thể,
tác giả chỉ dùng một điểm tham chiếu cho mỗi bộ phận:

Lface=1Ff=1Fcfc^fL_{face} = \frac{1}{F} \sum_{f=1}^{F} \|c_f - \hat{c}_f\|

Llefthand=1Hh=1Hvhv^hL_{lefthand} = \frac{1}{H} \sum_{h=1}^{H} \|v_h - \hat{v}_h\|

Lrighthand=1Hh=1Huhu^hL_{righthand} = \frac{1}{H} \sum_{h=1}^{H} \|u_h - \hat{u}_h\|

Ở đây, cfc_f là khoảng cách từ vị trí dự đoán của điểm chính khuôn mặt đến điểm tham chiếu khuôn mặt,
vhv_h là khoảng cách từ vị trí dự đoán điểm chính bàn tay trái đến điểm tham chiếu bàn tay trái,
uhu_h là khoảng cách từ vị trí dự đoán điểm chính bàn tay phải đến điểm tham chiếu bàn tay phải.

Cuối cùng hàm mất mát tổng được định nghĩa như sau:

Ltotal=LMSE+αLbody+βLface+γ(Llefthand+Lrighthand)L_{total} = L_{MSE} + \alpha L_{body} + \beta L_{face} + \gamma (L_{lefthand} + L_{righthand})

Các hệ số α,β,γ\alpha, \beta, \gamma được xác định dựa trên vị trí phân bố và số lượng điểm chính, với tỉ lệ:

α:β:γ=23:68:21\alpha : \beta : \gamma = 23 : 68 : 21

Thiết lập này giúp cân bằng gradient giữa các bộ phận khác nhau và tăng cường định vị các mục tiêu nhỏ như bàn tay và khuôn mặt.

Kết quả

Mô hình đạt AP = 77.8 cho whole-body, cao nhất trong tất cả các phương pháp. Kết quả AP vượt trội trên từng bộ phận cho thấy rằng hiệu quả không chỉ đến từ kiến trúc mạng, mà còn từ việc tối ưu công thức Gaussian và hàm mất mát phù hợp cho từng loại bộ phận — minh chứng rằng đôi khi cải tiến lớn bắt nguồn từ việc tinh chỉnh các thành phần toán học thay vì thay đổi mô hình phức tạp. image.png

Bình luận

Bài viết tương tự

- vừa được xem lúc

[Paper Explain] Lottery Ticket Hypothesis

Sau khi phát triển được một mô hình (model) đạt được độ chính xác theo yêu cầu. Việc tiếp theo có lẽ chúng ta sẽ phải làm trước khi triển khai mô hình là tối ưu về tốc độ(speed), bộ nhớ(memory footpri

0 0 42

- vừa được xem lúc

[Paper Explain] Communication-Efficient Learning of Deep Networks from Decentralized Data

Đặt vấn đề. Trong thời đại smartphone, laptop, tablet (trong tương lai là cả các thiết bị IoT) đã quá phổ biến như hiện nay.

0 0 40

- vừa được xem lúc

[Paper Explain] YOLOX: đi ngược lại những người tiền nhiệm

Những nghiên cứu mới xuất hiện mới với tốc độ cực nhanh trong ngành trí tuệ nhân tạo nói chung và thị giác máy tính nói riêng. Nghiên cứu sau dựa trên nghiên cứu trước.

0 0 98

- vừa được xem lúc

[Paper Explain] Generalized Focal Loss: Learning Qualified and Distributed Bounding Boxes for Dense Object Detection

Khái niệm cần biết. .

0 0 48

- vừa được xem lúc

[Paper Explain] Generalized Focal Loss V2: Learning Reliable Localization Quality Estimation for Dense Object Detection

Một số kiến thức cần biết. Mình khuyến khích mọi người trước khi đọc bài này thì nên đọc về Generalized Focal Loss hoặc bài phân tích về Generalized Focal Loss (GFL) mà mình đã viết ở đây để có thể hi

0 0 57

- vừa được xem lúc

[Paper Explain] VoVNet - Backbone tiết kiệm điện năng cho Object Detection

Mở đầu. Đây là một paper khá hay phân tích về việc làm thế nào để thiết kế một model thực sự là hiệu quả về mặt tốc độ, điện năng tiêu thụ và độ chính xác.

0 0 42