Giới thiệu về YOLO-Pose
Hầu hết mọi người đều quen thuộc với bài toán phát hiện đối tượng con người từ hình ảnh, thường là việc tạo ra các bounding box xung quanh người. Nhưng làm thế nào để xác định người ấy đang hoạt động ra sao? Để giải quyết câu hỏi này, chúng ta có nhiều phương pháp, nổi bật trong số đó là ước lượng tư thế (pose estimation). Nhiều mô hình học máy đã được phát triển để giải quyết bài toán này, trong đó có YOLO-Pose. Với những thành công trước đó của YOLO trong phát hiện đối tượng, YOLO-Pose ra đời nhằm ứng dụng công nghệ này vào việc phát hiện tư thế của con người.
Bài Toán Phát Hiện Tư Thế
Bài toán phát hiện tư thế con người trong không gian 2D đòi hỏi mô hình phải phát hiện từng người trong ảnh và xác định vị trí các khớp xương (keypoints) của họ. Thách thức lớn ở đây là sự che khuất, số lượng người trong khung hình, và đủ loại các tình huống phức tạp khác. Hai phương pháp chính để giải quyết bài toán này là Top-down và Bottom-up:
- Top-down: Cách tiếp cận hai giai đoạn, bắt đầu bằng một mô hình phát hiện người chất lượng cao, sau đó ước lượng tư thế cho từng người đã được phát hiện. Phương pháp này thường tốn thời gian hơn khi số lượng người gia tăng.
- Bottom-up: Phương pháp này cho phép xử lý nhanh chóng hơn bằng cách sử dụng heatmap để phát hiện tất cả các điểm keypoints cùng một lúc. Tuy nhiên, việc này có thể dẫn đến khó khăn trong việc phân biệt các keypoints gần nhau, giảm độ chính xác.
Cách YOLO-Pose Giải Quyết Vấn Đề
Tổng Quát
YOLO-Pose là một phương pháp single shot, định hướng giải quyết bài toán phát hiện tư thế con người một cách hiệu quả và nhanh chóng mà không cần sử dụng heatmaps. Nó được xây dựng dựa trên phiên bản YOLO và bổ sung khả năng dự đoán các điểm keypoints. Để phát hiện tư thế, YOLO-Pose ước lượng 17 điểm keypoints tương ứng với mỗi người, theo quy chuẩn của dataset COCO. Kiến trúc của YOLO-Pose dựa trên Yolov5 với backbone là CSP-Darknet53 và PANet, cho phép mô hình phát hiện các đặc trưng ở nhiều tỷ lệ khác nhau.
Đầu ra của mô hình bao gồm bốn thành phần chính:
- Bounding box với tọa độ tâm (cx, cy) và kích thước (w, h).
- Độ tin cậy của bounding box (box_conf).
- Độ tin cậy phân loại đối tượng (class_conf), trong trường hợp phát hiện tư thế này, luôn là lớp “person”.
- 17 điểm keypoints, mỗi điểm có tọa độ (x, y) và độ tin cậy (conf).
Anchor Box
Tương tự như các phiên bản YOLO khác, YOLO-Pose cũng sử dụng anchor boxes. Mỗi anchor sẽ tương ứng với một người, không chỉ lưu trữ bốn điểm cho bounding box mà còn có các điểm keypoints 2D. Các điểm keypoints sẽ được tính toán bằng sự biến đổi so với tâm của anchor, giúp mô hình tập trung vào các đặc trưng cục bộ quanh điểm anchor và tránh bị ảnh hưởng bởi vị trí tuyệt đối trong ảnh.
Hàm Mất Mát
Hàm mất mát của YOLO-Pose tính toán dựa trên sự so sánh giữa dự đoán và các ground truth (bounding boxes và keypoints). Tổng hàm mất mát được tính trên nhiều mức tỷ lệ và anchor boxes khác nhau, bao gồm:
- Hàm CIoU loss cho bounding box, cải thiện độ chính xác đo lường giữa các bounding box dự đoán và ground-truth.
- Hàm Keypoints Loss dựa trên OKS (Object Keypoint Similarity), đánh giá độ tương đồng giữa các điểm keypoints dự đoán và ground-truth.
- Hàm mất mát độ tin cậy của keypoints tính toán độ sai khác giữa độ tự tin dự đoán và ground-truth thông qua Binary Cross-Entropy (BCE).
- Hàm mất mát phân loại lớp, cho kết quả có hay không có người xuất hiện trong ảnh.
Kết Luận
YOLO-Pose không chỉ cải thiện khả năng phân loại và phát hiện đối tượng mà còn góp phần nâng cao đáng kể độ chính xác trong việc ước lượng tư thế con người. Với những cải tiến công nghệ, giải pháp này mở ra nhiều ứng dụng tiềm năng trong các lĩnh vực như giám sát an ninh, thực tế ảo và nhiều lĩnh vực khác.
Từ khóa: YOLO-Pose, phát hiện tư thế, ước lượng tư thế, machine learning, YOLO, AI, video, bounding box, keypoints.
source: viblo