2.1 Ước lượng khung xương trong không gian 2-D
2.1.2 Các nghiên cứu liên quan
Hiện nay có rất nhiều nghiên cứu về phát hiện, nhận dạng và dự đoán các hành
động của con người. Các nghiên cứu này được áp dụng trong nhiều ứng dụng thực tế
cho con người như: Rantz và các đồng nghiệp [1] đã đề xuất hệ thống tự động phát
hiện sự kiện ngã trong phòng của bệnh viện. Hệ thống sử dụng các gia tốc kế không
giây được gắn trên người bệnh nhân và được so sánh với gia tốc của dữ liệu thu được
từ cảm biến Kinect gắn trên tường. Đồng thời hệ thống cũng tính khoảng cách giữa
người và giường bệnh để phát hiện sự kiện ngã của bệnh nhân. Đặc biệt ở Việt Nam [6], [8] cũng như nhiều nước trên thế giới như Trung Quốc [12], Nhật bản, Thái Lan
có rất nhiều tư thế võ hay các bài võ vần được bảo tồn và truyền lại cho hậu thế. Việc
bảo tồn và lưu trữ trong thời đại công nghệ phát triển có thể được thực hiện bằng cách
lưu lại các hành động của Võ sư dưới dạng các khớp xương. Dữ liệu thu được từ cảm
biến Kinect phiên bản 1 thường có chứa rất nhiều nhiễu và bị mất khi bị che khuất.
Đặc biệt là dữ liệu khung xương (skeleton) của người. Nên việc ước lượng được khung
xương trong đó các điểm xương là các điểm đại diện (keypoint) trên cơ thể người là rất quan trọng.
Để ước lượng tư thế, khung xương của người trên ảnh hoặc video thường sử dụng hai hướng tiếp cận chính: hướng tiếp cận cổ điển và hướng tiếp cận sử dụng học
sâu. Trong hướng tiếp cận thứ nhất, Umer và các cộng sự [25] sử dụng quy hồi rừng
(Regression Forests) để ước lượng hướng của người sử dụng ảnh độ sâu (depth image)
thu được từ Kinect phiên bản 2. Việc học được thực hiện trên các bộ phận của người
đã được gán nhãn, với 1000 mẫu vị trí điểm ảnh trên ảnh độ sâu. Tuy nhiên kết quả
trung bình cao nhất chỉ đạt được độ chính xác (accuracy) là 35.77%.
Yang và các cộng sự [106] sử dụng mô hình hỗn hợp gồm các bộ phận thể hiện
mối quan hệ chung phức tạp giữa các bộ phận trên cơ thể người. Các mô hình phần
biến dạng là một tập hợp các mẫu được sắp xếp theo cấu hình có thể biến dạng và mỗi
mô hình có một mẫu toàn cục + một mẫu các thành phần. Các mẫu này được khớp
với nhau trong một hình ảnh để nhận dạng/phát hiện một người trong ảnh. Mô hình
dựa trên một phần có thể mô hình khớp nối tốt. Tuy nhiên, điều này đạt được với chi
phí thời gian lớn và chưa tính đến bối cảnh rộng. Kết quả phát hiện các bộ phận của
cơ thể người là 99.6% gần như tuyệt đối.
Dựa trên các kết quả phát hiện các bộ phận trên cơ thể người rất cao như trong
nghiên cứu của [106] thì Dantone và các cộng sự [107] đã đề xuất một hướng tiếp cận
để có được các các mẫu bộ phận của cơ thể tốt cho việc huấn luyện mô hình bằng cách
đề xuất các hồi quy chung phi tuyến tính mới. Đặc biệt, các tác giả đã sử dụng hai lớp
rừng ngẫu nhiên để quy hồi khớp. Lớp thứ nhất hoạt động như một bộ phận cơ thể độc lập, không phụ thuộc vào bộ phân lớp bộ phận người. Lớp thứ hai đưa các phân
phối lớp ước lượng của lớp thứ nhất vào bộ đếm và do đó có thể dự đoán các vị trí
bằng cách mô hình hóa sự phụ thuộc lẫn nhau và sự xuất hiện của các bộ phận trên cơ thể người.
Hiện với sự phát triển mạnh mẽ của học sâu (deep learning) nên việc ước lượng
các điểm đại diện, khung xương trên cơ thể người cũng được thực hiện nhiều. Daniil
[116] đã giới thiệu một mạng nơ ron tích chập mới cho việc học các đặc trưng trên tập
dữ liệu điểm đại diện như: vị trí của các điểm đại diện, quan hệ giữa các cặp điểm trên
cơ thể người. Mạng mới này dựa trên bộ công cụ OpenPose [29] và có thể thực hiện
Hình 2.2 Minh họa bản đồ các điểm nổi bật được tạo ra từ ảnh cơ thể người. Trong
đó mỗi vùng điểm nổi bật là một ứng cử viên vị trí của các điểm đại diện [109].
liệu có nhiều người COCO 2016 [23]. Đây là bộ cơ sở dữ liệu rất lớn được đánh nhãn
với hơn 150 nghìn người với 1.7 triệu nhãn các điểm đại diện. Kyle và các cộng sự [115]
đã sử dụng mạng nơ ron tích chập (convolutional neural network) để học từ dữ liệu
các điểm đại diện của cơ thể người đã được đánh dấu và trích xuất từ dữ liệu nối lên
khi chiếu hai camera vào người. Sau đó kết quả được chiếu sang không gian 3-D và sử
dụng thuật toán bình phương khoảng cách tối thiểu để đánh giá kết quả ước lượng.
Cao và các cộng sự [24] sử dụng mạng nơ ron tích chập để học vị trí của các điểm đại
diện trên cơ thể người và các phép biến đổi hình học của các đường nối các cặp điểm
đại hiện có quan hệ kết nối trên cơ thể người.
Toshev và các cộng sự [108] đã ước lượng tư thế, khung xương người dựa trên việc
coi khung xương người là một vấn đề hồi quy dựa trên CNN đối với các khớp của cơ
thể. Các tác giả cũng sử dụng một loạt các biến hồi quy như vậy để hiệu chỉnh các
ước lượng tư thế, khung xương và có được ước lượng tốt hơn. Một điều quan trọng
mà phương pháp này thực hiện là dựa trên tư thế, khung xương toàn diện, tức là khi
các khớp xương bị che khuất, chúng có thể được ước lượng nếu tư thế, khung xương
đó được suy luận từ cấu trúc tổng thể. Mô hình trong nghiên cứu này được thực hiện
trên mạng AlexNet backend (7 lớp), trong đó lớp cuối cùng sử dụng để bổ trợ cho mô
hình đưa ra 2000 tọa độ khớp nối.
Tompson và các cộng sự [109] đã tạo ra các bản đồ điểm nổi bật (heatmaps) bằng cách chạy một hình ảnh thông qua nhiều độ phân giải khác nhau song song để thu
thập đồng thời các đặc trưng ở nhiều tỷ lệ khác nhau. Đầu ra là một bản đồ các điểm
nổi bật rời rạc thay vì là hồi quy liên tục. Một bản đồ các điểm nổi bật dự đoán xác
suất của khớp xảy ra ở mỗi điểm ảnh. Trong đó mỗi vùng nổi bật trên bản đồ là một
ứng cử viên của vị trí các điểm đại diện trên cơ thể người. Ví dụ bản đồ các vùng nổi
bật được tạo ra như ở hình 2.2.
Cùng với hướng tiếp cận học trên và phát hiện ra các bản đồ các điểm nổi bật
(heatmap), Wei và các cộng sự [110] đã đề xuất một mạng mà huấn luyện làm nhiều
giai đoạn trên tập đặc trưng của ảnh. Chúng cung cấp một khung dự đoán tuần tự để tập trung vào học các mô hình các khả năng dự đoán cao (xác xuất cao). Các bản đồ
các điểm nổi bật là đầu ra của giai đoạn trước là đầu vào của các giai đoạn sau. Trong
đó kết quả ước lượng cao nhất của mô hình này trên bộ dữ liệu MPII [103] là 87.95%.
Ngoài ra, còn các mạng nơ ron tích chập khác được đề xuất cho việc ước lượng tư thế, khung xương người trên ảnh [111], [112], [113], [114].
Đặc biệt, cơ sở dữ liệu về điểm đại diện của người COCO [23], [14], [13] đã được
phát triển trong nhiều năm. Các cơ sở dữ liệu này được thu thập từ rất nhiều người
và cũng có rất nhiều thách thức cho việc ước lượng các hoạt động của người.
2.1.3 Sử dụng học sâu cho việc ước lượng các hành động trong bài võ cổ
truyền trong không gian 2-D
2.1.3.1 Phương thức
Hành động của cơ thể người được phát hiện và nhận dạng cũng như dự đoán, ước
lượng dựa trên các bộ phận của cơ thể người (body part). Các bộ phận được cấu thành
dựa trên sự liên kết giữa các điểm đại diện (Key points). Trong đó mỗi một bộ phận được thể hiện bằng một vector Lc trong không gian 2-D (không gian ảnh) trong một
tập hợp các vector trên cơ thể người , trong đó tập hợp các vectorS L L= 1, L2, ..., L C,
có C vector trên cơ thể người . Trong đó cơ thể ngườiS S được thể hiện bằng J điểm
đại diện (Key points), S = 1 2S , S , ..., SJ. Với một ảnh đầu vào có kích thước là w×h
thì vị trí của các điểm đại diện có thể là Sj ∈R w h× , j ∈1 2, , ..., J như trong hình 2.3.
Tiếp theo là sự so sánh (matching) giữa các bộ phận tương ứng trên cơ thể của các
người khác nhau được tính toán dựa trên phép biến đổi ánh xạ (affine). Trong nghiên
cứu này sử dụng hoàn toàn mạng nơ ron tích chập đã được thiết kế và tính toán trong
[24] để thực hiện việc học bộ ước lượng các vector trong .L
Như Hình 2.4, CNN này bao gồm hai nhánh thực hiện hai công việc khác nhau.
Từ dữ liệu đầu vào, một tập hợp các bản đồ đặc trưng Fđược tạo từ phân tích hình
ảnh, sau đó các bản đồ độ tin cậy và phép biến đổi hình học này được phát hiện ở giai đoạn đầu tiên. Các điểm đại diện trên dữ liệu huấn luyện được hiển thị trên bản đồ
độ tin cậy như được hiển thị. Những điểm này được huấn luyện để ước lượng các điểm
đại diện trên hình ảnh màu. Nhánh đầu tiên (nhánh trên cùng) được sử dụng để ước
lượng các điểm đại diện, nhánh thứ hai (nhánh dưới cùng) được sử dụng để dự đoán các khớp tương ứng với nhiều người.
Trong đó chi tiết của mô hình học và dự đoán (Hình 2.5) được thể hiện như sau:
Với ảnh đầu vào ở giai đoạn 1 (stage 1) là ảnh với 3 kênh màu và có kích thước là
h w× và các đặc trưng được trích chọn từ việc nhân chập với các mặt nạ có kích thước
9×9 2, ×2 5, ×5 cho bộ huấn luyệnX như trong hình 2.6. Với mỗi một mặt nạ sẽ có
được một vùng cửa sổ (patch) và mô hình học g 1, g2 ở mỗi giai đoạn sẽ dự đoán bản đồ các vùng nổi bật (heatmaps) như b 1, b2 ở mỗi giai đoạn trong Hình 2.5. Như Hình 2.5,
Hình 2.3 Minh họa đánh nhãn các điểm đại diện trên dữ liệu ảnh của người. Các
điểm màu đỏ là các điểm đại diện trên cơ thể người. Các đoạn màu xanh thể hiện sự
kết nối giữa các bộ phận trên cơ thể người.
2.6, Convolutional Pose Machines (CPM) bao gồm ít nhất 2 giai đoạn, số lượng giai
đoạn là một siêu tham số (thông thường là 3 giai đoạn). Giai đoạn thứ hai lấy kết quả
bản đồ dự đoán vùng nổi bật (heatmaps) của giai đoạn một và ảnh đầu vào ban đầu
làm đầu vào. Mô hình mạng CPM bao gồm 5 lớp tích chập như thể hiện trong nhánh 1 trong Hình 2.4.
Mô hình được huấn luyện và kiểm tra kết quả thử nghiệm được dựa trên bộ công
cụ [22]. Bộ công cụ này được cài đặt trên hệ điều hành Ubuntu 16.2 và được hỗ trợ
bởi một số thư biện như sau: Thư viện C++ OpenPose (chỉ dành riêng cho chạy kiểm tra) [133]; Tensorflow (phiên bản 1.8); Pytorch (phiên bản 1); Caffe2 (phiên bản 1)
; Chainer (phiên bản 1) ; MXnet (phiên bản 1); MatConvnet (phiên bản 1); CNTK
(phiên bản 1). Chi tiết được trình bày trong bài báo [23], [24]. Công cụ huấn luyện
và kiểm tra được viết trên ngôn ngữ Python/Matlab/c++ và chạy trên máy chủ với
cấu hình được liệt kê như sau: Intel (R) Xeon (R) CPU E5-2420 v2 @ 2.20GHz 16GB RAM, GPU GTX 1080 TI-12GB Memory.
Kết quả ước lượng khung xương là 25 điểm đại diện, được sắp xếp như sau: "mũi", "cổ", "vai phải", "khuỷu tay phải", "cổ tay phải", "vai trái", "khuỷu tay trái", "trái"
cổ tay "," giữa hông "," hông phải "," đầu gối phải "," mắt cá chân phải "," hông trái
"," đầu gối trái "," mắt cá chân trái "," mắt phải "," mắt trái "," phải tai "," tai trái "," ngón chân trái, "ngón chân trái", "gót chân trái", "ngón chân phải", "ngón chân phải", "gót chân phải". Kết quả ước lượng được minh họa trong Hình 2.7.
Input image Confidence maps Affinity fields
Hình 2.4 Kiến trúc mạng nơ ron tích chập cho việc ước lượng các điểm đại diện S t,
và các bộ phận phù hợp trên cơ thể người khác nhau [24].
Hình 2.5 Minh họa chi tiết mô hình dự đoán vùng các điểm nổi bật (heatmaps) [110].
Các tham số huấn luyện của mạng nơ ron tích chập được thể hiện như sau: Kích
thước ảnh đầu vào là (rộng: 368×cao:368× số kênh màu: (R,G,B));3 batchSize = 16;
stacks = 4; Số giai đoạn là 6 cho việc gộp; Số lớp nơ ron tích chập là 5; vv. Chi tiết
các tham số khác được thể hiện trong đường dẫn sau: https://github.com/ZheC/ Realtime_Multi-Person_Pose_Estimation/blob/master/training/example_proto/ pose_train_test.prototxt
Trong luận án này cũng tìm hiểu mạng nơ ron tích chập có hiệu năng được đánh
giá là cao nhất cho việc ước lượng khung xương, tư thế người [114]. Trong bài báo
này, các tác giả đã đề xuất một mạng nơ ron tích chập mới có tên là HRNet (High-
Resolution Network). Mạng này được đánh giá là chính xác hơn toàn bộ các mạng hiện
có có cho việc ước lượng khung xương, tư thế người, phát hiện các điểm đại diện của
khung xương người trên bộ cơ sở dữ liệu kinh điển COCO [23]. HRNet thực hiện theo
một ý tưởng đơn giản. Bình thường hầu hết các mạng khác đi từ việc biểu diễn ảnh
các cửa sổ nhân chập theo hướng: từ độ phân giải cao → đến độ phân giải thấp →
Hình 2.6 Minh họa chi tiết mô hình trích chọn đặc trưng cho việc huấn luyện mô
hình dự đoán các vùng nổi bật (heatmaps) ở từng giai đoạn [110].
giai đoạn của mô hình. Kiến trúc bắt đầu từ một mạng con độ phân giải cao như giai
đoạn đầu tiên và dần dần thêm các mạng con độ phân giải cao với các kích thước khác
nhau lần lượt tạo thành nhiều giai đoạn hơn và kết nối song song các mạng con đa độ phân giải như thể hiện trong Hình 2.8.
Sự hợp nhất nhiều quy mô được lặp đi lặp lại được thực hiện bằng cách trao đổi
thông tin qua các mạng con đa độ phân giải song song qua toàn bộ quá trình. Một vấn
đề khác của HRNet là kiến trúc này không sử dụng giám sát bản đồ các vùng nổi bật
trung gian, không giống như mô hình đồng hồ cát xếp chồng (Stacked Hourglass). Bản
đồ các vùng nổi bật được hồi quy bằng cách sử dụng hàm sai số toàn phương trung bình MSE (Mean squared error).
Toàn bộ quá trình cài đặc và thực hiện mạng HRnet được thể hiện trong đường dẫn sau:https://github.com/leoxiaobin/deep-high-resolution-net.pytorch. Tuy nhiên
một vấn đề đặc biệt của mạng này là chạy song song tối thiểu trên 4 GPU nên yêu cầu
về phần cứng của mạng này là rất lớn. Nên trong nghiên cứu này không chạy thực tế được hiệu năng của mạng này cho việc ước lượng khung xương của người trên ảnh.
Để trực quan hóa các kết quả ước lượng khung xương ở từng bước trong quá trình
ước tính tư thế con người 3-D, nghiên cứu sinh đề xuất một nghiên cứu so sánh về ước
lượng tư thế, khung xương người trong không gian 2-D (Nghiên cứu so sánh 2-D), nó được hiển thị trong Hình. 2.9.
Trong Hình 2.9, luận án đánh giá theo hai phương thức: Phương thức đầu tiên
(Phương thức 1 - Method 1) sử dụng mạng CNN CPM được huấn luyện trên trên
cơ sở dữ liệu COCO [23]; Phương thức thứ hai (Phương thức 2 - Method 2) sử
dụng mạng CNN CPM được huấn luyện trên trên cơ sở dữ liệu Human 3.6M [85]. Kết
quả ước lượng khung xương, tư thế người trong không gian 2-D với tọa độ của từng điểm đại diện ước lượng được (x i, yi) trên hình ảnh màu, sau đó chúng được kết hợp
với điểm ảnh có tọa độ (x i, yi) trên hình độ sâu theo phương trình (1.3) để tạo ra điểm đại diện (X p, Yp, Zp) trong không gian 3-D.