CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI 1.1 Lý do chọn đề tài Té ngã là một trong những tai nạn rất thường hay xảy ra trong đời sống, nó tiềm ẩn rất nhiều nguy cơ như gãy xương, vỡ đốt sống, hay thậm chí là tử vong. Đặc biệt, té ngã càng nguy hiểm hơn đối với người cao tuổi bởi sự suy yếu của hệ thống miễn dịch cũng như sức khỏe của độ tuổi. Thêo báo cáo vào năm 2008 của Tổ chức y tế thế giới (WHO), cho thấy tỉ lệ người cao tuổi bị té ngã mỗi năm là khoảng 28% - 35% đối với những người có tuổi từ 65 tuổi trở lên và 32% - 42% đối với những người trên 75 tuổi [1].
Theo một báo cáo khác vào năm 2018 của Trung tâm kiểm soát và phòng ngừa dịch bệnh Hoa Kỳ (CDC), trong một năm tại Mỹ, cứ 4 người từ 65 tuổi trở lên thì có 1 người bị té ngã và khoảng 37% người té ngã cho biết họ bị chấn thương cần được điều trị y tế. [2] Tại Việt Nam, theo bài viết vào năm 2020 của báo Sức khỏê và Đời sống (Cơ quan ngôn luận của bộ y tế Việt Nam), có khoảng 1,5 - 1,9 triệu người cao tuổi bị té ngã mỗi năm, 5% trong số đó phải nhập viện vì các chấn thương. Tại Khoa Lão - Chăm sóc giảm nhẹ Bệnh viện Đại học Y Dược TP.HCM (BV ĐHYD TP.HCM), mỗi tháng có khoảng 17% người bệnh nhập viện do té ngã hoặc do các biến cố liên quan tới té ngã. Theo TS BS.
Thân Hà Ngọc Thể - Trưởng khoa Lão - Chăm sóc giảm nhẹ tại bệnh viện Đại Học Y Dược TPHCM, té ngã có thể dẫn đến nhiều hệ lụy nghiêm trọng đối với sức khỏe người cao tuổi. Đây là nguyên nhân hàng đầu gây chấn thương với hơn 50% trường hợp bị té ngã tại nhà và là nguyên nhân thứ 2 gây chấn thương não và tủy sống ở người cao tuổi. Tỉ lệ chấn thương do té ngã ở NCT là 10 - 25%, trong đó thương tích nghiêm trọng chiếm khoảng 5 - 15%. Trong các chấn thương do té ngã thì gãy xương chiếm tỉ lệ cao nhất với 87%, trong đó hơn 95% trường hợp bị gãy xương hông.
Té ngã cũng nằm trong 5 nguyên nhân gây tử vong ở người trên 65 tuổi với tỉ lệ tử vong tăng thêo tuổi. [3] Việc phát hiện sớm các trường hợp té ngã, đặc biệt là ở người cao tuổi, có thể giúp các thành viên trong gia đình, người chăm sóc hoặc bác sĩ đến bên 1 nạn nhân kịp thời và có thể giúp hạn chế hậu quả của việc té ngã. Do đó nhu cầu về hệ thống phát hiện té ngã và có khả năng thông báo sớm cho người chăm sóc hoặc gia đình là rất cấp thiết. Hiện nay camêra an ninh đã dần được phổ biến không chỉ ở nơi công cộng mà còn ở nhà riêng.
Chính vì vậy, tôi đề xuất một phương pháp phát hiện té ngã bằng thị giác máy sẽ dự đoán việc té ngã thông qua 1 chuỗi tư thế của con người.2 Những công trình nghiên cứu gần đây Bài viết Vision-Based Fall Detection with Convolutional Neural Networks - Adrián Núñez-Marcos, Gorka Azkune, and Ignacio Arganda- Carreras (2017 Dec) [4] Tác giả đưa ra giải pháp dựa trên thị giác máy, bằng cách sử dụng một mạng nơ ron tích chập (Convolutional Nêural Nêtworks) để xác định xem trong 1 chuỗi ảnh liên tiếp thì có người nào ngã không. Tác giả sử dụng hình ảnh luồng quang (optical flow imagês) làm đầu vào cho mạng nơ ron tích chập. Sau khi thực hiện thì tác giả tiến hành đánh giá với 3 tập dữ liệu công khai với kết quả khá tốt là URFD (accuracy 95%), Multicam (accuracy 97%) và FDD (accuracy 97%). Mặc dù kết quả của tác giả đưa ra là khá tốt và ý tưởng dự đoán một chuỗi ảnh liên tiếp rất hay, tuy nhiên phần dữ liệu đầu vào của mạng CNN là ảnh optical flow, vì vậy cần phải có một hệ thống camêra tương đối tốt để có thể chuyển từ ảnh thường sang ảnh optical flow, chi phi sẽ khá tốn kém.
Ngoài ra, mạng CNN của tác giả chỉ dự đoán trong 1 chuỗi ảnh liên tiếp có người ngã không, mà không biết trước được trong ảnh có người hay không, môi trường phải tĩnh dễ tránh việc nhiễu do có vật chuyển động trong khung ảnh. Bài viết Human-skeleton based Fall-Detection Method using LSTM for Manufacturing Industries - Sungjoo Kang (2019 Jun) [5] Tác giả cũng đưa ra giải pháp dựa trên thị giác máy, bằng cách sử dụng một mạng LSTM để phát hiện việc té ngã. LSTM là một kiến trúc học sâu mạnh mẽ trong việc xử lý việc phân loại dữ liệu chuỗi thời gian. Trong bài viết, đầu vào của mô hình LSTM là một chuỗi dữ liệu khung xương của con người (hay có thể nói là một chuỗi tư thế của người), được trích xuất từ thư viện OpenPose.
Ngoài ra tác giả còn kết 2 hợp thêm một số phương pháp tăng cường khi trích xuất đặc trưng, như HCLC (tọa độ trung tâm cơ tể người) và SHCLC (tốc độ của khung xương ở 2 khung hình liên tiếp) để tăng đặc trưng cho dữ liệu. Kết quả đạt được với tập dữ liệu công khai URFD rất tốt, accuracy cao nhất lên đến 98. Tuy nhiên việc trích xuất đặc trưng bằng thư viện OpenPose khá chậm, nên không khả thi với các hệ thống thời gian thực (realtime), tác giả cũng không đề cập đến thời gian thực thi của 1 lần dự đoán, và trong 1 khung hình tác giả chỉ dự đoán được 1 người có đang ngã hay không.3 Mục tiêu đề tài Sau khi tham khảo các bài báo và nghiên cứu, hầu hết các bài nghiên cứu trước đó chỉ tập trung vào việc dự đoán trạng thái té ngã của một người tại một thời điểm, chưa có bài viết nào đề cập đến việc chạy trên thời gian thực. Nên mục tiêu của đề tài này là dựa trên ý tưởng nghiên cứu của Sungjoo Kang về việc dự đoán té ngã bằng LSTM, xây dựng một hệ thống có thể phát hiện và dự đoán té ngã cho nhiều người trong cùng một khung hình.
Cố gắng tối ưu hệ thống để có thể chạy có thể chạy chạy trên thời gian thực. Hệ thống sẽ phát hiện những người có trong khung hình camera và đưa ra dự đoán về trạng thái của từng người: - Phát hiện từng người trong khung hình. - Thêo dõi và đánh số thứ tự cho từng người. - Trích xuất đặc trưng tư thế của từng người người dựa vào việc phát hiện vị trí các điểm đặc trưng trên cơ thể từng người.
- Ghép các đặc trưng tư thế lại thành một chuỗi hành động ngắn. - Sau khi có được các chuỗi hành động ngắn của từng người, tiến hành dự đoán trạng thái của từng người từ đó phát hiện việc té ngã.4 Nhiệm vụ đề tài Sử dụng mạng YỌLỌv8 nano để phát hiện vùng ảnh nào có người. Tiến hành thu thập dữ liệu con người ở nhiều góc độ khác nhau đặc biệt là các tư thế khi té ngã cho việc huấn luyện. 3 Sử dụng thuật toán thêo dõi đối tượng DêêpSỌRT để theo dõi và gán ID cho từng người đã được phát hiện bằng YỌLỌv8 nano trước đó, để đảm bảo cho bước tiếp theo là phát hiện tư thế và ghép các tư thế lại thành một chuỗi hành động đúng với từng người.
Sử dụng mô hình MoveNet để trích xuất đặc trưng tư thế cho từng người đã được gán ID trước đó, thông tin tư thế ở đây là một vector chứa vị trí các điểm đặc trưng trên cơ thể (keypoints) như đầu, vai, khớp tay, khớp chân,… Sau đó, tiến hành ghép các vêctor đặc trưng tư thế liên tiếp lại thành một ma trận, tạo thành thông tin của một chuỗi hành động ngắn. Sử dụng mô hình LSTM để phát hiện người ngã dựa vào chuỗi hành động ngắn. Tiến hành lấy dữ liệu huấn luyện bằng mô hình MoveNet. Triển khai, kết hợp các mô hình lại với nhau để có thể dự đoán té ngã cho nhiều người.
Tối ưu và tăng tốc hệ thống. Khảo sát thực nghiệm và đánh giá.1 Nhận dạng đối tượng 2.1 Giới thiệu YOLOv8 YOLO - You Only Look Once là một trong những tập hợp các mô hình phát hiện vật thể tốt nhất ở thời điểm hiện tại. Các phiên bản của mô hình này đều có những cải tiến rất đáng kể sau mỗi phiên bản. Sau 3 phiên bản của tác giả chính Josêph Rêdmon là YỌLỌv1 đến v3, tính đến thời điểm hiện tại đã có thêm những phiên bản khác như: YỌLỌv4 của Alexey Bochkovskiy, YOLOv5 của Glenn Jocher, YOLOv6 của nhóm nghiên cứu Meituan, YOLOv7 Chien-Yao Wang, Alexey Bochkovskiy và Hong-Yuan Mark Liao, phiên bản mới nhất hiện tại là YOLOv8 của nhóm Ultralytics.
YOLOv8 là mô hình one stage detectors (cùng lúc sẽ thực hiện cả việc tìm kiếm bounding box và classification cho một vật thể), chính vì đặc điểm này mà YOLO có tốc độ khá nhanh và độ chính xác cao. YOLOv8 đặc biệt hơn so với các bản YỌLỌ trước đó vì nó được ra mắt kèm theo framework Ultralytics, giúp cho việc huấn luyện và triển khai mạng dễ dàng hơn.1 So sánh tốc độ của các phiên bản YOLO trên tập dữ liệu MS COCO Có nhiều biến thể của YOLOv8, bao gồm YOLOv8x, YOLOv8l, YOLOv8m, YOLOv8s và YOLOv8n. Trong luận văn này, phiên bản YOLOv8n (YOLOv8 nano), phiên bản nhỏ gọn của YỌLỌv8, được chọn để thực hiện quá trình transfer learning. Việc này nhằm đảm bảo rằng hệ thống có khả năng hoạt động ở tốc độ thời gian thực.2 Kiến trúc YOLOv8 Kiến trúc của YOLO nói chung: Hình 2.2 Mô hình chung của YOLO Kiến trúc của một mạng YOLO nói chung sẽ thường được chia làm ba phần: xương sống (backbone), cổ (nêck) và đầu (head).
Trong đó phần xương sống được sử dụng để trích xuất các đặc trưng từ ảnh đầu vào. Phần xương sống thường bao gồm các mạng nơ-ron tích chập (CNN) như Darknêt, RêsNêt, hoặc EfficientNet. Phần cổ đặt giữa phần xương sống và phần đầu, chịu trách nhiệm kết hợp các đặc trưng khác nhau từ phần xương sống, nhầm tạo ra các đặc trưng cần thiết để dự đoán và phát hiện đối tượng. Có thể sử dụng các kỹ thuật như Feature Pyramid Network (FPN) hoặc Path Ạggrêgation Nêtwork (PẠN) để tăng cường thông tin của các đặc trưng, giúp mô hình có khả năng dự đoán đối tượng ở các tỷ lệ và kích thước khác nhau trong ảnh.
Và phần cuối cùng của mô hình là phần đầu, đây là nơi thực hiện các dự đoán về vị trí và phân lớp của các đối tượng trong ảnh. Đối với YOLO, phần đầu thường gồm các lớp tích chập để dự đoán các bounding boxês và lớp xác suất để phân loại đối tượng.