Phương pháp này có một số nhược điểm như thay pin thường xuyên, chi phí cao, sử dụng thiết bị đeo được, khoảng cách cảm nhận, v.v; b Phát hiện tư thế con người từ hình ảnh video: phương
Trang 1NGHIÊN CỨU PHÁT TRIỂN MÔ HÌNH PHÁT HIỆN NGÃ
THÔNG QUA CAMERA GIA ĐÌNH
Thuộc nhóm ngành khoa học: Khoa học máy tính
THANH HÓA, THÁNG 04/2023
Trang 2NGHIÊN CỨU PHÁT TRIỂN MÔ HÌNH PHÁT HIỆN NGÃ
THÔNG QUA CAMERA GIA ĐÌNH
Thuộc nhóm ngành khoa học: Khoa học máy tính
Sinh viên thực hiện: Tống Duy Đạt
Dân tộc: Kinh
Lớp, khoa: K23 ĐH CNTT – Khoa CNTT&TT
Năm thứ: 3 / Số năm đào tạo: 4
Ngành học: CNTT
Giảng viên hướng dẫn: TS Nguyễn Đình Công
Trang 3MỤC LỤC
DANH MỤC CHỮ CÁI VIẾT TẮT iii
DANH MỤC CÁC BẢNG BIỂU iv
DANH MỤC ẢNH v
PHỤ LỤC vii
THÔNG TIN KẾT QUẢ NGHIÊN CỨU viii
CHƯƠNG I MỞ ĐẦU 1
1.1 Tính cấp thiết của đề tài 1
1.2 Tổng quan tình hình nghiên cứu 2
1.3 Mục tiêu và phạm vi đề tài 3
1.4 Dự kiến kết quả 4
CHƯƠNG II GIỚI THIỆU VỀ DEEP LEARNING 4
2.1 Giới thiệu chung 4
2.2 Học sâu (Deep learning) 4
2.2.1 Cấu trúc của học sâu (Deep learning) 4
2.2.2 Cách thức hoạt động của một kiến trúc deep learning 8
2.3 Mạng nơ ron tích chập ( CNN ) 9
2.3.1 Lớp tích chập (Convolutional layer) 10
2.3.2 Lớp lấy mẫu (Pooling) 11
2.3.3 Lớp kết nối đầy đủ (Fully-connected layer – FC) 12
2.3.4 Hàm kích hoạt (Activation function) 13
2.4 Long short term memory (LSTM) 15
2.5 Gated Recurrent Unit (GRU) 17
2.6 Bidirectional Long Short-Term Memory (BLSTM) 17
CHƯƠNG III CÁC CÔNG NGHỆ NHẬN DIỆN TƯ THẾ CON NGƯỜI 19
3.1 Tổng quan bài toán nhận diện tư thế (HAR) 19
3.1.1 Giới thiệu bài toán nhận diện tư thế 19
3.1.2 Thách thức của nhận diện tư thế (HAR) 20
3.2 Các mô hình state of the art sử dụng cho mô hình nhận diện tư thế 21
3.2.1 Tổng quan tình hình nghiên cứu 21
Trang 43.2.3 Mô hình MediaPipe Pose 26
3.2.4 Kết luận 29
CHƯƠNG IV: TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU VÀ ĐỀ XUẤT 31
4.1 Cách tiếp cận bài toán nhận diện ngã 31
4.2 Tổng quan tình hình nghiên cứu 31
4.3 Phương pháp đề xuất 33
4.3.1 Nhận diện tư thế người trong video 34
4.3.2 Tiền xử lý thông tin 35
4.3.3 Trích chọn đặc trưng 35
4.3.4 Mô hình phân loại 35
CHƯƠNG V: THÍ NGHIỆM ĐÁNH GIÁ MÔ HÌNH 37
5.1 Dataset 37
5.1.1 Bộ dữ liệu Fall Detection Dataset của phòng thí nghiệm ImViA 37
5.1.2 Bộ dữ liệu Fall Detection Dataset trong hội thảo Machine Vision Applications (MVA), 2017 38
5.2 Kết quả thí nghiệm 40
5.2.1 Thang đo đánh giá 40
5.2.2 Kết quả và đánh giá 42
CHƯƠNG VI TỔNG KẾT 48
TÀI LIỆU THAM KHẢO 55
Trang 5DANH MỤC CHỮ CÁI VIẾT TẮT
CNN Convolutional Netural Networks Mạng Nơ ron tích chập
AI Artificial Intelligence Trí tuệ nhân tạo
ReLU Rectified Linear Units Đơn vị tuyến tính chỉnh lưu
GPU Graphics Processing Unit Bộ xử lí đồ họa
CPU Central Processing Unit Bộ xử lí trung tâm
ReLU Rectified linear units Đơn vị tuyến tính chỉnh lưu
SVM Support Vector Machine Máy vec-tơ hỗ trợ
LSTM Long Short Time Memory Bộ nhớ dài-ngắn hạn
GRU Gated Recurrent Unit Đơn vị định kì có kiểm soát
BLSTM Bidirectional Long Short-Term
Memory
Bộ nhớ dài-ngắn hạn hai chiều
Trang 6DANH MỤC CÁC BẢNG BIỂU
Bảng 1: So sánh các đặc tính của Yolo – Pose và Mediapipe – Pose 29 Bảng 2: Dữ liệu nhận diện hành động 37 Bảng 3: Dữ liệu nhận diện hành động của Bộ dữ liệu Fall Detection Dataset trong hội thảo Machine Vision Applications (MVA), 2017 39 Bảng 4: Bảng so sánh độ chính xác của các mô hình thử nghiệm lấy tất cả điểm khóa làm đặc trưng 42 Bảng 5: Bảng so sánh độ chính xác của các mô hình thử nghiệm bỏ đặc trưng điểm khóa
ở vùng đầu 43 Bảng 6: Bảng so sánh độ chính xác của các mô hình thử nghiệm bỏ đặc trưng điểm khóa
ở vùng đầu và cánh tay 43 Bảng 7 :Bảng đánh giá chất lượng mô hình MediaPipe Pose + BLSTM với tất cả các điểm khóa làm đặc trưng 45 Bảng 8 :Bảng đánh giá chất lượng mô hình MediaPipe Pose + BLSTM bỏ các đặc trưng phần đầu 46
Trang 7DANH MỤC ẢNH
Hình 1: Ví dụ về neural network [11] 5
Hình 2:Ví dụ về Neuron trong Deep learning [12] 5
Hình 3:Ví dụ về hàm Activation [12] 6
Hình 4:Ví dụ về mạng deep learning có tẩng ẩn [12] 6
Hình 5: Ví dụ về Loss function (các kí hiệu , ,
thể hiện là hàm kích hoạt được sử dụng trong mạng) [13] 7
Hình 6:Ví dụ về một vài thuật toán Optimizer [14] 7
Hình 7 Kiến trúc mạng deep learning tiêu chuẩn [15] 8
Hình 8 Cấu trúc mạng nơ-ron tích chập [16] 10
Hình 9 Ví dụ về lớp tích chập [17] 11
Hình 10 Ví dụ về lớp lấy mẫu max pooling [17] 12
Hình 11: Ví dụ về lớp lấy mẫu average pooling [17] 12
Hình 12 Ví dụ về lớp kết nối đầy đủ (Fully connected layer -FC) [17] 13
Hình 13: Đồ thị hàm ReLU [18] 14
Hình 19: Kiến trúc mạng LSTM [3] 15
Hình 20: Kiến trúc và công thức tính của GRU [3] 17
Hình 21: Kiến trúc BLSTM [3] 18
Hình 14: Hình ảnh biểu diễn khung người [5] 22
Hình 15: Cách tiếp cận từ trên xuống và cách tiếp cận từ dưới lên [5] 23
Hình 16: Hình mô tả kiến trúc Yolo-Pose [22] 24
Hình 17: Quy trình nhận diện tư thế của Mediapipe Pose [23] 27
Hình 18: Kiến trúc mạng theo dõi: hồi quy với giám sát bản đồ nhiệt [23] 28
Hình 22: Tổng quan quy trình thực hiện 34
Hình 28: (a) Quá trình nhận diện khung xương người của MediaPipe Pose (b) Thông tin khung xương người 34
Hình 21: Kiến trúc BLSTM [3] 36
Hình 35: Kiến trúc mạng BLSTM được sử dụng cho bộ phân lớp 36
Hình 22: Biều đồ thể hiện tần suất của dữ liệu Fall Detection Dataset [24] 37
Hình 23: Một số ví dụ về các hành động trong data Fall Detection Dataset [24] 38
Trang 8Hình 24: Biều đồ thể hiện tần suất của dữ liệu Fall Detection Dataset 39
Hình 25: Một số ví dụ về các hành động trong Fall Detection Dataset 2 [25] 40
Hình 32: Confusion matrix sau khi huấn luyện MediaPipe Pose + BLSTM với tất cả các điểm khóa làm đặc trưng 45
Hình 33: Confusion matrix sau khi huấn luyện MediaPipe Pose + BLSTM bỏ các đặc trưng phần đầu 46
Hình 36: Một số hình minh họa khi triên khai mô hình 47
Hình 37: Biểu đồ training của các mô hình thử nghiệm sử dụng full điểm khóa 50
Hình 38: Biểu đồ training của các mô hình thử nghiệm bỏ phần đầu 51
Hình 39: Biểu đồ training của các mô hình thử nghiệm bỏ phần đầu và cánh tay 52
Hình 40: Biểu đồ training của các mô hình thử nghiệm sử dụng full điểm khóa 53
Hình 41: Biểu đồ training của các mô hình thử nghiệm bỏ phần đầu 54
Trang 9PHỤ LỤC PHỤ LỤC 1 DANH MỤC ẢNH BIỂU ĐỒ HUẤN LUYỆN TRONG QUÁ TRÌNH HUẤN LUYỆN MÔ HÌNH 49
Trang 10THÔNG TIN KẾT QUẢ NGHIÊN CỨU
1 Tên đề tài: Nghiên cứu phát triển mô hình phát hiện ngã thông qua camera gia đình
2 Cấp dự thi: Cấp khoa
3 Nhóm sinh viên thực hiện
Họ và tên: Tống Duy Đạt
Lớp: K23A-ĐHCNTT Khoa: CNTT-TT
Điện thoại: 0385810566 Email: dattongduy1.0@gmail.com
4 Giáo viên hướng dẫn: TS Nguyễn Đình Công
5 Thời gian thực hiện: 08 tháng, từ tháng 09/2022 đến 04/2023
6 Cơ quan quản lý đề tài: Trường Đại học Hồng Đức
7 Đơn vị chủ trì đề tài: Khoa Công nghệ thông tin và truyền thông
Trang 11CHƯƠNG I MỞ ĐẦU 1.1 Tính cấp thiết của đề tài
Theo báo cáo của WHO (2021) [1], trên toàn cầu té ngã là một vấn đề sức khỏe được cộng đồng rất quan tâm Ước tính có khoảng 684 000 ca tử vong do ngã xảy ra mỗi năm, khiến nó trở thành nguyên nhân thứ hai gây tử vong do thương tích không chủ
ý, sau thương tích giao thông đường bộ Hơn 80% trường hợp tử vong liên quan đến ngã xảy ra ở các quốc gia có thu nhập thấp và trung bình, với các khu vực Tây Thái Bình Dương và Đông Nam Á chiếm 60% số ca tử vong Ở tất cả các khu vực trên thế giới, tỷ
lệ tử vong cao nhất ở người lớn trên 60 tuổi Té ngã không chỉ gây ra các chấn thương vật lý mà còn ảnh hưởng đến tâm lý của người bị ngã đặc biết là đối với người cao tuổi
Nó làm cho người cao tuổi sợ việc vận động, qua đó tác động một cách gián tiếp đến sức khỏe của họ Ngoài ra, khi điều trị chấn thương thường phải bị cách ly tạm thời ra khỏi cộng đồng, xã hội, làm tăng cảm giác cô đơn và có thể dẫn đến trầm cảm Việc phát hiện té ngã sớm có thể giúp người nhà, người chăm sóc (carer) hay bác sĩ đến một cách kịp thời và có thể giúp hạn chế hậu quả do té ngã gây ra Do đó, nhu cầu về các hệ thống phát hiện té ngã sớm và có khả năng thông báo cho người chăm sóc hay các người
có liên quan là rất cấp thiết Lĩnh vực thị giác máy tính, hàng loạt các thuật toán làm camera có thể quan sát và nhận biết các đối tượng, sự kiện xuất hiện trong khung hình của camera có thể quan sát với độ chính xác cao thế nên việc phát hiện ngã sớm là khả thi Tuy nhiên mỗi cách tiếp cận trên đều đã có những kết quả nghiên cứu đáng kể, nhưng cũng bộc lộ một số hạn chế nhất định Một số phương pháp có hạn chế là tốc độ tính toán thấp tốn nhiều tài nguyên nhưng độ chính xác cao Mặt khác một số phương pháp khác có tốc độ tính toán cao nhưng độ chính xác thấp Từ những điểm trên, nhóm nghiên cứu chúng tôi đề xuất một mô hình nhận dạng ngã sử dụng trí tuệ nhân tạo Mô hình đảm bảo tính chính xác, nhỏ gọn để có thể triển khai được trên các thiết bị phần cứng cấu hình thấp
Trang 121.2 Tổng quan tình hình nghiên cứu
Các phương pháp nhận diện ngã hiện nay trên thế giới chia làm 2 phương pháp chính:
(a) Sử dụng cảm biến: phương pháp này sử dụng các cảm biến, chẳng hạn như
con quay hồi chuyển, gia tốc kế, cảm biến quán tính, khí áp kế, v.v., để phát hiện ngã Phương pháp này có một số nhược điểm như thay pin thường xuyên, chi phí cao, sử dụng thiết bị đeo được, khoảng cách cảm nhận, v.v;
(b) Phát hiện tư thế con người từ hình ảnh video: phương pháp này có thể giải
quyết được các nhược điểm của phương pháp sử dụng cảm biến Phương pháp chia làm
2 kĩ thuật chính là kĩ thuật xử lý hình ảnh video để phát hiện các hoạt động bằng trí tuệ nhân tạo (SVM [2], CNN [3], YOLO [4], v.v.) trực tiếp từ những hình ảnh đó và kĩ thuật sử dụng tính năng nhận diện bộ khung xương người (ví dụ: OpenPose [5], AlphaPose [6], v.v.) trong hình ảnh video để phân loại các hoạt động, đồng thời sử dụng các kỹ thuật trí tuệ nhân tạo để cải thiện kết quả
Một số bài nghiên cứu nổi bật nhận diện ngã hiện hiện nay sử các phương pháp nêu trên là:
- Classification of indoor human fall events using deep learning (Sultana A., Deb K., Dhar P.K., Koshiba T) [7] các tác giả đã phát triển một kiến trúc để phân loại các
sự kiện ngã của con người bằng cách sử dụng 2D CNN [3] và GRUs [3] Kết quả thực nghiệm mô hình đề xuất đạt độ chính xác 99%
- Framework for Fall Detection Based on OpenPose Skeleton and LSTM/GRU Models (Lin C.B., Dong Z., Kuan W.K., Huang Y.F) [8] các tác giả đã đề xuất các phương pháp áp dụng OpenPose [5] để lấy các đặc trưng về khung xương và chuyển động tư thế 2D theo thời gian thực Các phương pháp này đã được thử nghiệm với các mô hình RNN [3] và LSTM [3] để tìm hiểu những thay đổi về điểm khớp của con người trong thời gian liên tục Các thử nghiệm trên bộ dữ liệu UR-Fall [9] cho thấy rằng chúng có thể phát hiện té ngã với độ chính xác nhận dạng lên tới 98.1% và 98.2%
Trang 13- Human Posture Classification from Multiple Viewpoints and Application for Fall Detection (Tran T.H., Nguyen D.T., Nguyen T.P) [10] các tác giả đã đề xuất các phương pháp không giám sát để ước lượng các tư thế của con người từ một tập các hành động nhất định Sau đó sử dụng mạng nơ ron tích chập để phân loại các dạng
tư thế Phương pháp cho kết quả với độ chính xác cao lên tới 99% và tốc độ khung hình cao
Trong nghiên cứu này, hưởng ứng phong trào nghiên cứu trí tuệ nhân tạo đang phát triển mạnh mẽ trong lĩnh vực chăm sóc sức khỏe Chúng tôi muốn tối ưu phát triển mô hình phát hiện ngã thông qua camera gia đình Giúp cho những người sử dụng biết được người thân trong nhà gặp nguy hiểm để tránh các rủi ro đáng tiếc xảy ra
- Tối ưu mô hình nhận dạng hành động
- Thử nghiệm một số mô hình phân loại để phân loại hành động có phải là ngã hay không
- Ứng dụng mô hình nhận dạng hành động để đưa ra cảnh báo ngã thông qua camera gia đình
Phạm vi nghiên cứu:
- Mô hình AI để nhận dạng khung xương từ 32 hoặc 17 điểm khóa trên cơ thể con người
- Mô hình nhận dạng hành động với hai tư thế là bị ngã và không bị ngã
- Các phương pháp tối ưu mô hình nhận dạng
- Phương pháp triển khai mô hình nhận dạng hành động
Trang 141.4 Dự kiến kết quả
- Mô hình nhận dạng hành động với độ chính xác cao trên 85%
- Bộ dữ liệu phục vụ cho phân loại ngã
Deep learning là một lĩnh vực đang phát triển rất nhanh, với sự xuất hiện của các mô hình mạng nơ-ron sâu mới và các ứng dụng đa dạng trong nhiều lĩnh vực khác nhau
2.2 Học sâu (Deep learning)
2.2.1 Cấu trúc của học sâu (Deep learning)
Mạng nơ ron (Neural Network): Là một mạng lưới các neuron nhân tạo được sắp xếp
theo các tầng liên kết với nhau Các tầng này bao gồm tầng đầu vào, tầng ẩn và tầng đầu
ra Trong một mạng nơ ron, dữ liệu đầu vào được đưa vào tầng đầu vào, sau đó thông qua các tầng ẩn để cuối cùng đưa ra dự đoán trên tầng đầu ra
Trang 15Hình 1: Ví dụ về neural network [11]
Nơ ron (Neuron): Là một đơn vị xử lý thông tin nhân tạo trong mạng nơ ron (Neural
Network) Mỗi neuron nhận đầu vào từ các neuron trong tầng trước đó, sử dụng một hàm activation để biến đổi giá trị đầu vào thành giá trị đầu ra của neuron
Hình 2:Ví dụ về Neuron trong Deep learning [12]
Hàm kích hoạt (Activation function): Là hàm số được áp dụng cho mỗi neuron để
biến đổi giá trị đầu vào thành giá trị đầu ra của neuron và thường kí hiệu là )) Các hàm activation phổ biến bao gồm sigmoid, ReLU và tanh Các hàm kích hoạt sử dụng sẽ được giới thiệu chi tiết hơn ở phần sau
Trang 16Hình 3:Ví dụ về hàm Activation [12]
Tầng ẩn: Là các tầng trong Neural Network không phải là tầng đầu vào hoặc tầng đầu
ra Các tầng ẩn giúp trích xuất các đặc trưng từ dữ liệu đầu vào và đưa ra dự đoán trên tầng đầu ra mô tả như hình 4
Tầng đầu ra: Là tầng cuối cùng trong Neural Network, chịu trách nhiệm cho việc đưa
ra dự đoán dựa trên đầu vào và các tham số của mô hình được mô tả như hình 4
Hình 4:Ví dụ về mạng deep learning có tẩng ẩn [12]
Hàm mục tiêu (Loss Function): Là hàm số được sử dụng để đánh giá hiệu suất của
mô hình Neural Network trong việc dự đoán đầu ra cho dữ liệu đầu vào Các hàm loss phổ biến bao gồm Cross-Entropy, Mean Squared Error và Binary Cross-Entropy
Trang 17Hình 5: Ví dụ về Loss function (các kí hiệu , , thể hiện là hàm
kích hoạt được sử dụng trong mạng) [13]
Optimizer: Là thuật toán được sử dụng để tối ưu hóa các tham số của Neural Network
trong quá trình huấn luyện Các thuật toán phổ biến bao gồm Gradient Descent, Stochastic Gradient Descent và Adam
Hình 6:Ví dụ về một vài thuật toán Optimizer [14]
Trang 18Một mạng deep learning tiêu chuẩn được mô tả như sau:
Hình 7 Kiến trúc mạng deep learning tiêu chuẩn [15]
2.2.2 Cách thức hoạt động của một kiến trúc deep learning
Ma trận kích thước trong đó )[ ] là giá trị thứ j trong layer i sau khi áp dụng activation function của dữ liệu thứ k trong dataset
Ma trận X là ma trận biểu diễn của dữ liệu đầu vào
[
( [ ])( [ ])( [ ]) ]
[15]
Ma trận kích thước trong đó [ ] là giá trị thứ j của layer I sau bước tính tổng linear của dữ liệu thứ k trong dataset và ) là bias của layer thứ I
Trang 19)[ ] ) ]
= [
( )[ ])( )[ ])( )[ ]) ]
( [ ]) ) ( ))( [ ]) ) ( ))( [ ]) ) ( )) ]
)
[
( ))( ))( )) ] ) )
[15]
Từ đó ta có công thức tính rút gọn lại như sau:
) ( )) ) ) ) ) )) ) ) )
̂ ) )) [15]
Như vậy từ input X ta có thể tính được giá trị dự đoán ̂, tuy nhiên việc chính cần làm là
đi tìm hệ số W và b Việc để có thể tìm được hai hệ số này thì chúng ta có thể dùng thuật toán Optimizer thông qua loss function
Kết luận: Mỗi kiến trúc deep learning lần lượt gồm có input layer, output layer, hidden
layer, activation function, loss function, optimizer Tuy nhiên tùy thuộc vào nhiệm vụ mà mỗi kiến trúc sẽ có các input layer, output layer, loss function, activation, optimizer và các công thức tính khác nhau Ví dụ ở trên chỉ là một mô hình deep learning đơn giản
2.3 Mạng nơ ron tích chập ( CNN )
Mạng nơ-ron tích chập (Convolutional Neural Network) là một kiểu mạng nơ-ron học sâu được sử dụng trong lĩnh vực thị giác máy tính Một đặc điểm nổi bật của CNN [3] là
Trang 20việc sử dụng các bộ lọc tích chập để trích xuất đặc trưng của đối tượng trong ảnh Sau đó, thông qua các lớp gộp (Pooling) [3], CNN [3] giảm kích thước của dữ liệu đầu vào và kết nối các lớp để đưa ra quyết định phân loại CNN [3] thường được sử dụng để giải quyết các bài toán nhận dạng và phân loại ảnh Để hiểu rõ hơn về quá trình hoạt động của CNN [3], đầu tiên chúng ta cần phải xử lý các hình ảnh đầu vào thông qua các bộ lọc tích chập (Kernels) [3] Các bộ lọc này thường có kích thước nhỏ hơn kích thước của ảnh và được
di chuyển trên toàn bộ ảnh để tìm kiếm các đặc trưng của đối tượng trong ảnh Sau khi trích xuất đặc trưng, các lớp gộp (Pooling) [3] sẽ giúp giảm kích thước của dữ liệu đầu vào và tăng tính chất trừu tượng của các đặc trưng Cuối cùng, các lớp kết nối đầy đủ (Fully Connected) [3] sẽ giúp phân loại đối tượng thông qua hàm Softmax [3] Nhờ vào cấu trúc đặc biệt của mình, CNN [3] đã chứng minh rằng nó là một trong những kiểu mạng nơ-ron học sâu hiệu quả nhất cho việc xử lý hình ảnh
Hình 8 Cấu trúc mạng nơ-ron tích chập [16]
2.3.1 Lớp tích chập (Convolutional layer)
Lớp tích chập là lớp đầu tiên để trích xuất các tính năng từ hình ảnh đầu vào Tích chập duy trì mối quan hệ giữa các điểm ảnh (pixel) bằng cách tìm hiểu các tính năng hình ảnh thông qua việc sử dụng các ô vuông nhỏ của dữ liệu đầu vào Nó là 1 phép toán có 2 đầu vào như ma trận hình ảnh và 1 bộ lọc hoặc hạt nhân (h) Với bộ lọc là 1 ma trận
Trang 21kích thước MxM Ảnh đầu ra G sẽ có kích thước (
của ảnh đầu ra được tính theo công thức:
[ ] )[ ] ∑ ∑ [ ] [ ] [3]
Đầu ra của lớp là 1 bản đồ đặc trưng (feature map) Đưa ra những thông tin về góc, cạnh Sau đó những bản đồ đặc trưng này được đưa vào các lớp phía sau để huấn luyện 1 vài tính năng khác của dữ liệu ảnh đầu vào, được biểu diễn như hình 3
Hình 9 Ví dụ về lớp tích chập [17]
2.3.2 Lớp lấy mẫu (Pooling)
Theo sau lớp tích chập là lớp lấy mẫu Mục đích chính của lớp này là giảm kích thước của bản đồ đặc trưng khi nó có số lượng tham số quá lớn để giảm chi phí đào tạo mô hình Các lớp lấy mẫu có nhiều loại khác nhau, chủ yếu là:
Max pooling: phần tử lớn nhất được lấy ra từ bản đồ đặc trưng, từ đó giúp trích
xuất ra những đặc trưng sắc nét nhất, loại bỏ những đặc trưng cấp thấp hơn
Trang 22Hình 10 Ví dụ về lớp lấy mẫu max pooling [17]
Average (Avg) pooling lấy ra giá trị trung bình của các đặc trưng Ví dụ 1 bản đồ
đặc trưng có kích thức 4x4 sau qua lớp Avg Pooling thì kích thước giảm còn 2x2 Sử dụng Avg Pooling giúp trích xuất các đặc trưng một cách ổn định và ―mượt‖ hơn do phép tính trung bình không biến động lớn
Hình 11: Ví dụ về lớp lấy mẫu average pooling [17]
2.3.3 Lớp kết nối đầy đủ (Fully-connected layer – FC)
Lớp kết nối đầy đủ (Fully Connected layer) là một kiểu mạng nơ-ron trong đó tất cả các đầu vào đều được kết nối đến tất cả các nơ-ron trong lớp Trong kiến trúc mạng nơ-ron tích chập (CNN), các lớp kết nối đầy đủ thường được đặt ở cuối của mạng và được sử dụng để tối ưu hóa mục tiêu của mạng, ví dụ như độ chính xác của một lớp phân loại Trước khi đưa vào lớp kết nối đầy đủ, các đầu vào được làm phẳng để tạo ra một vector đầu vào 1 chiều
Trang 23Hình 12 Ví dụ về lớp kết nối đầy đủ (Fully connected layer -FC) [17]
2.3.4 Hàm kích hoạt (Activation function)
Chức năng của hàm kích hoạt là quyết định hướng hoạt động của thông tin trong từng tầng của mạng Nhờ vào các hàm kích hoạt này, mạng có tính phi tuyến cao hơn, giúp tránh được hiện tượng mạng học chưa đủ sâu Một số hàm kích hoạt phổ biến được sử dụng trong mạng nơ-ron bao gồm ReLU, tanh, Sigmoid, và Softmax
Để phù hợp với bài toán phân loại (classification), đặc biệt là phân loại nhiều lớp CNN
sử dụng hàm Softmax làm lớp đầu ra Bởi vì hàm Softmax [3] có giá trị đầu ra là những giá trị xác suất của những prediction đối với mỗi lớp rất phù hợp việc giải quyết bài toán phân loại
Hàm Softmax:
Hàm Softmax có một tính chất quan trọng để được tin dùng trong các mô hình phân loại vì tổng các giá trị đầu ra của hàm Softmax luôn nằm trong khoảng (0: 1] và có tổng các giá trị bằng 1 Nhờ tính chất này mà khi đầu ra của một mô hình khi đi qua hàm Softmax chúng ta có thể biết được xác suất của đầu ra đấy sẽ thuộc vào lớp nào
Trang 24] [
] [
]
Input Hàm Softmax Output
Có thể thấy, x càng lớn thì xác suất của nó càng lớn Ngoài ra tổng các xác suất ở
ví dụ bằng 1 đúng với tính chất đã nêu ở trên
Hàm ReLU
Trong các lớp tích chập, hàm ReLU có lợi thế hơn so với các hàm kích hoạt khác vì nó
sẽ trả về giá trị đầu ra bằng đầu vào nếu đầu vào là giá trị dương, và trả về giá trị bằng 0 nếu đầu vào là giá trị âm Hàm ReLU giúp tăng tốc độ đào tạo của mạng nơ-ron sâu hơn
so với các hàm kích hoạt truyền thống bởi vì đạo hàm của hàm ReLU là 1, khi đầu vào là giá trị dương Vì mạng nơ-ron sâu không cần phải tính toán các thuật ngữ lỗi trong quá trình huấn luyện, nên việc đào tạo mạng nơ-ron sâu với hàm kích hoạt ReLU sẽ nhanh hơn Được biểu diễn dưới dạng công thức:
) )
Hình 13: Đồ thị hàm ReLU [18]
Tốc độ hội tụ của hàm ReLU sẽ nhanh hơn và được biết tốc độ hội tụ nhanh hơn hàm tanh 6 lần Hàm ReLU sẽ không bị bão hòa ở hai đầu như hàm sigmoid ReLU có một hạn chế đó là khi các giá trị nhỏ hơn 0 qua hàm ReLU [18] thì giá trị đó sẽ thành 0, hiện
Trang 25activation ở bước tiếp theo và các hệ số tương ứng từ các node cũng không được cập nhật với gradient descent [3]
2.4 Long short term memory (LSTM)
LSTM [3] làm một kiến trúc đặc biệt của RNN [3] có khả năng học được sự phụ thuộc dài hạn (long-term dependencies) được giới thiệu bởi Hochreiter & Schmidhuber (1997) Kiến trúc này đã được phổ biến và sử dụng rộng rãi cho tới ngày nay LSTM [3] đã tỏ ra khắc phục được rất nhiều những hạn chế của RNN [3] trước đây về triệt tiêu đạo hàm
Hình 14: Kiến trúc mạng LSTM [3]
Ở state thứ t của mô hình :
- Output: , , c là cell state, h là hidden state
- Input: : , , Trong đó là input ở state thứ t của model, ,
là output của layer trước
- tương ứng với forget gate, input gate và output gate
Trang 26( [ ] ) [3]
Bước tiếp theo chúng ta sẽ quyết định loại thông tin nào sẽ được lưu trữ trong ô trạng thái Bước này bao gồm 2 phần Phần đầu tiên là một tầng ẩn của hàm sigmoid được gọi là tầng cổng vào (input gate layer) quyết định giá trị bao nhiêu sẽ được cập nhật Tiếp theo, tầng ẩn hàm tanh sẽ tạo ra một véc tơ của một giá trị trạng thái mới ̃ mà có thể được thêm vào trạng thái Sau đó kết hợp kết quả của 2 tầng này để tạo thành một cập nhật cho trạng thái
[ ] ) [3]
) [3]
LSTM có khả năng giải quyết vấn đề biến mất hoặc triệt tiêu đặc trưng trong quá trình huấn luyện, giúp mạng có khả năng học và ghi nhớ thông tin trong thời gian dài, xử
lý các chuỗi đầu vào với chiều dài khác nhau LSTM được xây dựng để giải quyết các vấn
đề của RNN, do đó là một trong những kiến trúc mạng nơ-ron học sâu đáng tin cậy Tuy nhiên LSTM có khối lượng tính toán lớn, tốn nhiều thời gian huấn luyện và tài nguyên tính toán LSTM cần phải được thiết kế và điều chỉnh một cách thích hợp để tránh tình trạng quá khớp (overfitting) và giúp cho mạng học tối ưu nhất LSTM cũng có thể bị tình
Trang 27trạng vanishing gradient, nghĩa là đạo hàm của mạng tiến về 0 khi lan truyền ngược, gây khó khăn trong việc huấn luyện mạng
2.5 Gated Recurrent Unit (GRU)
GRU (Gated Recurrent Unit) [3] là một kiến trúc mạng nơ-ron học sâu trong lĩnh vực
xử lý ngôn ngữ tự nhiên và thị giác máy tính Nó là một dạng mở rộng của mạng nơ-ron đơn giản (Simple RNN) và được phát triển bởi Cho et al vào năm 2014 GRU sử dụng các cổng (gates) để quản lý luồng thông tin trong quá trình lan truyền thuận và lan truyền ngược, giúp nó có khả năng học được các phụ thuộc dài hạn Cụ thể, GRU có hai cổng là cổng cập nhật (update gate) và cổng xóa (reset gate), điều này giúp nó có khả năng quyết định xem thông tin nào sẽ được lưu trữ và thông tin nào sẽ bị loại bỏ
Hình 15: Kiến trúc và công thức tính của GRU [3]
2.6 Bidirectional Long Short-Term Memory (BLSTM)
BLSTM (Bidirectional Long Short-Term Memory) [3] là một kiến trúc mạng nơ-ron học sâu phổ biến trong lĩnh vực xử lý ngôn ngữ tự nhiên và nhận dạng giọng nói Nó là một dạng mở rộng của mạng LSTM (Long Short-Term Memory) [3], cho phép xử lý dữ liệu theo hai hướng khác nhau Trong một mạng LSTM thông thường, mỗi đơn vị đầu ra phụ thuộc vào trạng thái ẩn của các đơn vị đầu vào trước đó Tuy nhiên, trong một mạng BLSTM, các đơn vị đầu ra phụ thuộc vào cả các đơn vị đầu vào trước và sau đó Các đơn
vị đầu ra được tính toán bằng cách kết hợp thông tin từ cả hai hướng, giúp nó có khả năng
Trang 28học được các đặc trưng tương quan cả hai chiều Luồng hoạt động của mô hình được mô
tả ở hình 15
Hình 16: Kiến trúc BLSTM [3]
Trang 29CHƯƠNG III CÁC CÔNG NGHỆ NHẬN DIỆN TƯ THẾ CON NGƯỜI 3.1 Tổng quan bài toán nhận diện tư thế (HAR)
3.1.1 Giới thiệu bài toán nhận diện tư thế
Nhận diện tư thế là quá trình phân loại một tư thế đã được xác định trước đó (ví dụ như đứng, ngồi, nằm) từ hình ảnh được chụp bằng camera Người sử dụng sẽ đứng trước camera và hệ thống sẽ phân loại tư thế của người đó dựa trên các tư thế đã được định nghĩa trước đó Nhận diện tư thế người là một đề tài được nhiều người quan tâm và nghiên cứu để ứng dụng vào nhiều lĩnh vực:
- Y tế: có thể giúp cho người bệnh tập vật lý trị liệu, theo dõi bệnh nhân từ xa, cảnh báo các hành động có thể tổn hại đến cơ thể
- Giải trí: từ việc quan sát tư thế con người để ứng dụng các tư thế đó vào trong game tương tác
- Trong quân sự và hình sự: có thể sử dụng phân tích các hành động từ thực tế để đưa vào hệ thống mô phỏng
Hiện tại nhận diện tư thế (HAR) đang có 3 hướng tiếp cận chính:
a) Phương pháp sử dụng cảm biến, cách tiếp cận này liên quan đến việc sử dụng các cảm biến đeo được như gia tốc kế, con quay hồi chuyển và từ kế để thu thập dữ liệu
về chuyển động và hướng của cơ thể con người Sau đó, dữ liệu được xử lý và phân tích bằng thuật toán học máy để nhận ra các hoạt động khác nhau Cách tiếp cận này có ưu điểm là không xâm nhập và có thể được sử dụng để giám sát lâu dài các hoạt động
b) Phương pháp sử dụng Computer Vision, cách tiếp cận này liên quan đến việc phân tích dữ liệu video do camera ghi lại để nhận biết các hoạt động của con người Các phương pháp học sâu như mạng Convolutional Neural Networks (CNN) [3] và mạng Recurrent Neural Networks (RNN) [3] thường được sử dụng để học các đặc trưng từ ảnh
và phân loại các hoạt động Cách tiếp cận này phổ biến vì tính phổ biến của máy ảnh và máy tính sẵn có và độ bao phủ rộng rãi, lượng dữ liệu video lớn
Trang 30c) Phương pháp kết hợp, cách tiếp cận này kết hợp cả phương pháp sử dụng cảm biến và phương pháp Computer Vision để cải thiện độ chính xác của HAR Phương pháp
sử dụng cảm biến cung cấp dữ liệu về chuyển động và hướng của cơ thể con người, trong khi phương pháp Computer Vision cung cấp các dấu hiệu trực quan để cho việc nhận biết các hoạt động chính xác hơn Cách tiếp cận này đã được chứng minh là cải thiện độ chính xác của HAR, đặc biệt đối với các hoạt động phức tạp
3.1.2 Thách thức của nhận diện tƣ thế (HAR)
Có nhiều phương pháp để thực hiện HAR, trong đó, sử dụng cảm biến, computer vision hay kết hợp giữa cảm biến và computer vision là những phương pháp phổ biến nhất Mỗi phương pháp này đều có ưu điểm và nhược điểm riêng, phù hợp với từng bối cảnh và mục đích sử dụng khác nhau Việc tìm hiểu, áp dụng và phát triển các phương pháp HAR sẽ đóng vai trò quan trọng trong việc phát triển các ứng dụng công nghệ thông minh trong tương lai
Trước hết về phương pháp sử dụng cảm biến Phương pháp sử dụng cảm biến có thể giám sát các hoạt động cơ thể của con người mà không cần phải xâm nhập vào cơ thể Điều này có nghĩa rằng khi sử dụng phương pháp này các vấn đề về quyền riêng tư và tính cá nhân của người dùng sẽ không bị xâm phạm Bằng cách sử dụng các cảm biến như gia tốc kế, con quay hồi chuyển và từ kế, phương pháp này thu thập dữ liệu về chuyển động và hướng của cơ thể con người để phân tích các hoạt động khác nhau Cảm biến này
có thể được đeo trên cơ thể của người dùng hoặc được đặt trong các vật dụng như đồng
hồ thông minh, đồng hồ đeo tay, giày chạy bộ hoặc túi xách Điều này cho phép phương pháp này có thể được sử dụng để giám sát lâu dài các hoạt động cơ thể của con người Tuy nhiên, phương pháp sử dụng cảm biến cũng có một số nhược điểm Đầu tiên, cần phải đeo các cảm biến và thiết bị, điều này có thể làm tăng chi phí cho người dùng Thứ hai, cảm biến có thể bị trục trặc hoặc hư hỏng, gây ra sự cố về dữ liệu và làm giảm độ chính xác của phân tích Thứ ba, phương pháp này không phù hợp với môi trường hoạt động như thể thao ngoài trời, nơi người dùng có thể cần di chuyển nhiều và không thể đeo cảm biến
Trang 31Về phương pháp sử dụng Computer Vision (CV) Phương pháp sử dụng CV có thể giải quyết được các hạn chế về độ phụ thuộc của môi trường hoạt động, yêu cầu phải có thiết bị bên người mới có thể sử dụng của phương pháp sử dụng cảm biến Vì ngày nay tính phổ biến của máy ảnh và máy tính Hầu hết các thiết bị điện tử ngày nay đều có camera tích hợp, và các máy tính hiện đại cũng đủ mạnh để xử lý các thuật toán Computer Vision Do đó, phương pháp này rất tiện lợi để sử dụng và triển khai rộng rãi và đây cũng
là một ưu điểm lớn nhất của phương pháp này Phương pháp Computer Vision còn có thể
xử lý các loại dữ liệu trực quan khác nhau, không chỉ là ảnh mà còn có thể là video, các đoạn phim ngắn hoặc hình ảnh động Điều này làm tăng độ chính xác của quá trình phân loại và giúp người dùng có thể quan sát và kiểm tra kết quả thu được
Phương pháp kết hợp dù giải quyết được vấn đề về độ chính xác của mô hình nhưng phương pháp cũng sẽ có những ưu điểm và nhược điểm của hai phương pháp sử dụng thiết bị cảm biến và phương pháp CV Hơn thế nữa phương pháp còn phải yêu cầu thiết bị
đo và camera làm tăng chi phí cho hệ thống Vì lý do đó mà phương pháp yêu cầu máy tính có tốc độ tính toán lớn, yêu cầu kỹ năng chuyên môn cao để xử lý và phân tích dữ liệu thu thập được
3.2 Các mô hình state of the art sử dụng cho mô hình nhận diện tƣ thế
3.2.1 Tổng quan tình hình nghiên cứu
Dự đoán tư thế (Pose Estimation) là một nhiệm vụ thị giác máy tính (computer vision) đưa ra tư thế của một người trong một bức ảnh hoặc video Điều này thường được thực hiện bằng cách xác định hoặc định vị các điểm chính, những điểm chính này đại diện cho các khớp chính như cổ tay, khuỷu tay, đầu gối, v.v Những điểm này được đo đạc bằng các giải thuật phân tích hình ảnh và phân tích dữ liệu, từ đó cho phép dự đoán vị trí của mỗi khớp trong không gian 3 chiều Mục đích của việc dự đoán tư thế là để đưa ra thông tin về tư thế của người sử dụng, từ đó có thể áp dụng cho nhiều mục đích khác nhau Ví dụ, trong lĩnh vực y tế, dự đoán tư thế có thể được sử dụng để giám sát các bệnh nhân trong quá trình phục hồi sau chấn thương hoặc phẫu thuật Nó cũng có thể được sử
Trang 32dụng để đo lường tư thế của người lao động trong môi trường sản xuất để đảm bảo an toàn và tăng năng suất
Hình 17: Hình ảnh biểu diễn khung người [5]
Hiện nay, có nhiều cách tiếp cận cho bài toán dự đoán tư thế nhưng vẫn đi theo hai phương pháp chính là:
- Cách tiếp cận từ dưới lên (bottom-up): Mô hình phát hiện các điểm chính – các bộ phận của người – trong một hình ảnh nhất định và sau đó cố gắng tập hợp các nhóm điểm chính thành các khung xương người cho các đối tượng riêng biệt
Trang 33- Các tiếp cận từ trên xuống (top-down): Mô hình sử dụng một bộ dò đối tượng để
vẽ một hộp xung quanh (bounding box) đối tượng, sau đó dự đoán các điểm chính
Hình 18: Cách tiếp cận từ trên xuống và cách tiếp cận từ dưới lên [5]
3.2.2 Mô hình You Only Look Once (Yolov7 pose)
Pose-YOLOv7 [4] là một công cụ phát hiện độc đáo trong lĩnh vực xử lý hình ảnh và thị giác máy tính Nó được thiết kế để phát hiện nhiều điểm chính trong một giai đoạn bằng cách áp dụng phương pháp tiếp cận từ dưới lên, tương tự như các phương pháp tiếp cận từ dưới lên trong việc nhận dạng tư thế (pose estimation) Tuy nhiên, khác với các phương pháp truyền thống, YOLOv7 [4] không sử dụng bản đồ nhiệt (heat map) để dự đoán vị trí của các điểm chính, mà sử dụng một mô hình phân loại (classification model)
để dự đoán các vector tọa độ xác định vị trí của các điểm chính YOLOv7 [4] Pose là một phần mở rộng của bộ phát hiện tư thế một lần - YOLO-Pose [4], kết hợp ưu điểm tốt nhất của cả hai phương pháp tiếp cận từ trên xuống và từ dưới lên Nó cho phép đồng thời phát hiện và xác định vị trí các điểm chính, đảm bảo tính toàn vẹn và chính xác của kết quả phân tích Mô hình YOLOv7 [4] Pose đã được đào tạo trên tập dữ liệu COCO [19] (Common Objects in Context) bao gồm 17 cấu trúc liên kết quan trọng trong việc nhận dạng tư thế Tập dữ liệu này chứa hàng nghìn hình ảnh với các tư thế khác nhau, giúp mô
Trang 34hình học được các đặc trưng của từng tư thế và có khả năng phân loại và định vị các điểm chính một cách chính xác
YOLO-Pose sử dụng mạng CSP-Darknet53 [20] làm backbone CSP-Darknet53 [20]
là một kiến trúc mạng nơ-ron tích chập (CNN) [3] sử dụng phương pháp gộp mạng (network fusion) để kết hợp các thông tin đặc trưng từ các lớp khác nhau của mô hình, giúp tăng cường khả năng phân loại và định vị của mạng PANet [21] một kỹ thuật được
sử dụng để kết hợp các thông tin đặc trưng từ các tỷ lệ khác nhau của ảnh Nó cho phép
mô hình học được các đặc trưng về hình dạng và vị trí của đối tượng trong các kích thước khác nhau, giúp cải thiện hiệu suất của mô hình Vì những lợi ích trên nó được sử dụng để kết hợp các features từ backbone Tiếp theo đó các feature sẽ được thực hiện theo sau ở bốn đầu phát hiện (detection heads) ở các tỷ lệ khác nhau đề phát hiện các tư thế đối tượng Mỗi đầu phát hiện sẽ tạo ra các dự đoán về vị trí và độ tin cậy của các điểm chính trong một tầng của ảnh Cuối cùng mô hình sẽ sử dụng hai đầu tách rời (decoupled heaads) để dự đoán các hộp (boxes) và các điểm chính (keypoints) của tư thế Kiến trúc được mô tả như hình 10
Hình 19: Hình mô tả kiến trúc Yolo-Pose [22]
Như mô tả mỗi ảnh kích thước 640x640 pixel sau khi đưa vào mô hình sẽ đi qua