Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
2,03 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN VĂN ĐẠT HỆ THỐNG THEO DÕI SỨC KHỎE ỨNG DỤNG IOT VÀ MƠ HÌNH DỰ ĐỐN TÌNH TRẠNG BỆNH NHÂN Chuyên ngành : Kỹ thuật điện tử Mã số: 8520203 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng 01 năm 2023 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG – HCM Cán hướng dẫn khoa học : PGS.TS TRƯƠNG QUANG VINH…… Cán chấm nhận xét : TS HUỲNH HỮU THUẬN ……………… Cán chấm nhận xét : TS NGUYỄN MINH SƠN ………………… Luận văn thạc sĩ bảo vệ Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 09 tháng 01 năm 2023 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ luận văn thạc sĩ) PGS.TS Hoàng Trang - Chủ tịch hội đồng TS Nguyễn Lý Thiên Trường - Thư ký hội đồng TS Trần Hoàng Linh - Ủy viên TS Huỳnh Hữu Thuận - Cán chấm phản biện TS Nguyễn Minh Sơn - Cán chấm phản biện Xác nhận Chủ tịch Hội đồng đánh giá LV Trưởng Khoa quản lý chuyên ngành sau luận văn sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG PGS TS Hoàng Trang TRƯỞNG KHOA ĐIỆN-ĐIỆN TỬ Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: NGUYỄN VĂN ĐẠT MSHV: 2070148 Ngày, tháng, năm sinh: 21/05/1992 Nơi sinh: Bến Tre Chuyên ngành: Kỹ thuật điện tử Mã số : 8520203 I TÊN ĐỀ TÀI: Hệ thống theo dõi sức khỏe ứng dụng IoT mô hình dự đốn tình trạng bệnh nhân (Health monitoring system using IoT and patient's condition predictive model) II NHIỆM VỤ VÀ NỘI DUNG: Nghiên cứu, xây dựng mơ hình hệ thống theo dõi sức khỏe ứng dụng IoT Xây dựng, lựa chọn ứng dụng mơ hình dự đoán dùng phương pháp học máy học sâu để dự đốn tình trạng sức khỏe bệnh nhân Thực nghiệm hệ thống phần cứng (3 mô-đun đọc số liệu) phần mềm (dựng server, thiết kế website theo dõi thơng số, tích hợp mơ hình dự đốn huấn luyện vào hệ thống) III NGÀY GIAO NHIỆM VỤ : (Ghi theo QĐ giao đề tài) 05/09/2022 IV NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo QĐ giao đề tài) 18/12/2022 V CÁN BỘ HƯỚNG DẪN : PGS.TS Trương Quang Vinh Tp HCM, ngày tháng năm 202… CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO PGS TS Trương Quang Vinh TRƯỞNG KHOA ĐIỆN - ĐIỆN TỬ i Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân LỜI CẢM ƠN Đề tài “Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân” nội dung chọn chấp thuận Bộ môn Điện tử, khoa Điện – Điện tử, Trường Đại học Bách Khoa – Đại học Quốc gia Thành phố Hồ Chí Minh để thực luận văn tốt nghiệp Thạc sĩ Để luận văn hồn thành tại, xin gửi lời cảm ơn chân thành đến: - Thầy PGS.TS Trương Quang Vinh tận tình hướng dẫn, định hướng giúp tơi giải đáp khó khăn, thắc mắc suốt học đề tài - Bộ môn Điện tử, khoa Điện – Điện tử, phòng Đào tạo Sau đại học trường Đại học Bách Khoa tạo môi trường học tập, nghiên cứu phù hợp, tạo điều kiện cho tơi mặt thủ tục để đăng ký thực trọn vẹn luận văn Cuối cùng, xin gửi lời cảm ơn đến quý anh chị đồng nghiệp, gia đình bạn bè tạo thêm điều kiện thời gian, thường xuyên động viên, giúp đỡ tơi q trình hồn thành khóa học thực luận văn Trân trọng cảm ơn! TP Hồ Chí Minh, ngày 02 tháng 01 năm 2023 Học viên Nguyễn Văn Đạt ii Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân TĨM TẮT LUẬN VĂN THẠC SĨ Với phát triển mạnh mẽ IoT trí tuệ nhân tạo, cơng nghệ ngày giúp ích người nhiều lĩnh vực, có chăm sóc sức khỏe Luận văn tập trung nghiên cứu để đề xuất mơ hình IoT phù hợp ứng dụng theo dõi sức khỏe bệnh nhân, đồng thời ứng dụng trí tuệ nhân tạo để dự đốn tình trạng sức khỏe bệnh nhân Mơ hình IoT đề xuất sử dụng cảm biến để đọc số sinh hiệu từ bệnh nhân, bao gồm: thân nhiệt, nhịp tim SpO2 Số liệu hiển thị chỗ, đồng thời truyền đến Server thông qua giao thức MQTT Tại Server, số đo lưu trữ vào sở liệu, hiển thị lên trang web giám sát thông qua dạng số liệu tường minh dạng đồ thị thống kê Trang web có nhiệm vụ tiếp nhận thông tin phụ trợ bệnh nhân tuổi, giới tính, xác định giường bệnh sử dụng ghi khác Trí tuệ nhân tạo nghiên cứu để ứng dụng vào đề tài thơng qua mơ hình dự đốn huấn luyện phương pháp máy học học sâu Đầu vào mơ hình dự đốn thơng số đo từ cảm biến, kết hợp với thơng tin tuổi giới tính bệnh nhân Tập liệu huấn luyện tạo giả lập (do chưa tìm nguồn liệu phù hợp chưa có chuyên gia y tế hỗ trợ gán nhãn) Đầu thuộc dạng phân loại tình trạng sức khỏe “bình thường” “bất thường” Ba loại mơ hình xây dựng, huấn luyện đánh giá: Mạng nơ-ron nhân tạo (ANN), Random Forest XGBoost Kết mơ hình Random Forest cho kết dự đoán tốt (với độ xác 99.95%, đánh giá dựa vào thơng số “accuracy”) Theo đó, mơ hình dùng Random Forest lựa chọn để triển khai vào hệ thống Để kiểm thử, sản phẩm phần cứng mô-đun thu thập số liệu thi công, đồng thời trang web giám sát, sở liệu, mơ hình dự đốn thành phần khác Server thiết lập để hoạt động môi trường mạng cục Kết hệ thống hoạt động đáp ứng yêu cầu đặt ban đầu, nhiên có tồn khoảng sai số chất lượng cảm biến Các kết thực phịng thí nghiệm, chưa vận hành thực tế mơi trường bệnh viện iii Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân ABSTRACT With the strong development of IoT and artificial intelligence, technology is increasingly helping people in many fields, including healthcare The thesis focuses on researching to propose a suitable IoT model in the patient health monitoring application, and at the same time applying artificial intelligence to predict the patient's health status The proposed IoT model will use sensors to read vitals from the patient, including: body temperature, heart rate, and SpO2 The data is displayed locally, and transmitted to the Server through the MQTT protocol At the Server, the measurements will be stored in the database, displayed on the monitoring website through explicit data and statistical graphs The website is also responsible for receiving ancillary information of the patient such as age, gender, identification of the bed in use and other notes Artificial intelligence is also studied for application to the topic through predictive models trained by machine learning and deep learning methods The input to the predictive model is parameters measured from the sensors, combined with the patient's age and gender information The training data set is simulated (because no suitable data source has been found and no medical experts support labeling) The output is in the category of “normal” or “abnormal” health status Three types of models were built, trained and evaluated: Artificial Neural Networks (ANN), Random Forest and XGBoost The results of the Random Forest model give the best prediction results (with an accuracy of 99.95%, based on the "accuracy" parameter) Accordingly, the model using Random Forest was selected to deploy into the system For testing, the hardware product of data collection modules has been built, and the monitoring site, database, predictive model and other components at the Server have also been set up to operate in a local network environment As a result, the hardware can work and meet the original requirements, but there is a margin of error due to the quality of the sensors The results are made in the laboratory, not in actual operation in a hospital environment iv Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân LỜI CAM ĐOAN Tôi xin cam đoan luận văn đề tài “Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân” cơng trình nghiên cứu cá nhân tơi thời gian thực luận văn thạc sĩ Trường Đại học Bách Khoa – ĐHQGHCM Mọi số liệu sử dụng phân tích luận văn kết nghiên cứu tơi tự tìm hiểu, phân tích cách khách quan, trung thực, có nguồn gốc rõ ràng chưa cơng bố hình thức Các trích dẫn, tài liệu tham khảo ghi rõ nguồn gốc Tơi xin chịu hồn tồn trách nhiệm có khơng trung thực thơng tin sử dụng cơng trình nghiên cứu TP.Hồ Chí Minh, ngày 02 tháng 01 năm 2023 Nguyễn Văn Đạt v Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân MỤC LỤC NHIỆM VỤ LUẬN VĂN THẠC SĨ i LỜI CẢM ƠN ii TÓM TẮT LUẬN VĂN THẠC SĨ iii LỜI CAM ĐOAN .v DANH MỤC BẢNG BIỂU ix DANH MỤC HÌNH ẢNH xi DANH MỤC CÁC TỪ VIẾT TẮT xiv CHƯƠNG MỞ ĐẦU 1.1 Giới thiệu đề tài .1 1.2 Nhiệm vụ đề tài .2 1.3 Phạm vi đề tài CHƯƠNG 2.1 TỔNG QUAN Tình hình nghiên cứu ngồi nước 2.1.1 Các hệ thống IoT lĩnh vực theo dõi sức khỏe: 2.1.2 Các nghiên cứu mơ hình dự đốn lĩnh vực sức khỏe: 2.2 Những vấn đề tập trung giải quyết: 16 2.3 Các kiến thức liên quan: 16 2.3.1 Thân nhiệt: 16 2.3.2 Nhịp tim: .17 2.3.3 Chỉ số bão hòa oxy máu (SpO2): 18 CHƯƠNG 3.1 THIẾT KẾ HỆ THỐNG 20 Tổng quan hệ thống: 20 3.1.1 Sơ đồ khối hệ thống: .20 vi Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân 3.1.2 Đặc tả hệ thống: 21 3.1.3 Các thông số hệ thống: 22 3.2 Chi tiết thành phần hệ thống: 23 3.2.1 3.2.1.1 Sơ đồ khối mô-đun thu thập số liệu: 23 3.2.1.2 Sơ đồ kết nối mạch chi tiết mô-đun thu thập số liệu: 23 3.2.1.3 Thi công phần cứng: 24 3.2.1.4 Lưu đồ giải thuật xử lý mô-đun thu thập số liệu: .24 3.2.2 3.3 Chi tiết mô-đun thu thập số liệu: 23 Chi tiết khối Server: 25 3.2.2.1 Sơ đồ thành phần Server: 26 3.2.2.2 MQTT Broker 26 3.2.2.3 Cơ sở liệu 27 3.2.2.4 Trang web web server .28 3.2.2.5 Dịch vụ xử lý Server: 29 Mơ hình dự đốn tình trạng bệnh nhân .30 3.3.1 Vai trị mơ hình dự đoán hệ thống 30 3.3.2 Phương pháp thực mơ hình dự đốn .31 3.3.3 Tập liệu 31 3.3.3.1 Nguồn gốc tập liệu: 31 3.3.3.2 Phương pháp tạo tập liệu: 31 3.3.3.3 Mô tả tập liệu: 32 3.3.4 Huấn luyện đánh giá kết mơ hình dự đốn: 33 3.3.4.1 Mơ hình Artificial Neural Network (ANN): 33 3.3.4.2 Mơ hình Random Forest: .38 vii Hệ thống theo dõi sức khỏe ứng dụng IoT mô hình dự đốn tình trạng bệnh nhân 3.3.4.3 3.3.5 Mơ hình XGBoost 43 Lựa chọn triển khai mơ hình dự đoán vào hệ thống: .50 3.3.5.1 Lựa chọn mơ hình dự đốn: 50 3.3.5.2 Triển khai mơ hình dự đốn vào hệ thống .50 CHƯƠNG KẾT QUẢ THỰC HIỆN VÀ BÀN LUẬN 52 4.1 Kết thực phần cứng: 52 4.2 Kết xây dựng phần mềm: 53 4.3 Bàn luận .55 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .56 5.1 Kết luận 56 5.2 Ưu điểm .57 5.3 Khuyết điểm tồn .57 5.4 Hướng phát triển 57 TÀI LIỆU THAM KHẢO 59 PHỤ LỤC 64 Phụ lục A: Mô tả linh kiện mô-đun thu thập số liệu: .64 Phụ lục B: Chi tiết bước triển khai mơ hình dự đốn tình trạng sức khỏe bệnh nhân vào hệ thống theo dõi sức khỏe xây dựng: 66 Phụ lục C: Chi tiết giao diện trang web hệ thống giám sát sức khỏe bệnh nhân .72 LÝ LỊCH TRÍCH NGANG .76 viii Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân [31] Bệnh viện đa khoa quốc tế VinMec, “Nhịp tim chuẩn bao nhiêu.” Internet: https://www.vinmec.com/vi/tin-tuc/thong-tin-suc-khoe/nhip-tim-chuan-la-baonhieu/, 25 Sep 2022 [32] Bệnh viện đa khoa quốc tế VinMec, “Chỉ số SpO2 người bình thường bao nhiêu,” Internet: https://www.vinmec.com/vi/tin-tuc/thong-tin-suc-khoe/chiso-spo2-o-nguoi-binh-thuong-la-bao-nhieu/ [33] P Đ Lựu Sinh lý học y khoa, tập Hà Nội: Nhà xuất Y học, 2008, p 214 [34] S Moturi, “Classification Model for Prediction of Heart Disease using Correlation Coefficient Technique,” International Journal of Advanced Trends in Computer Science and Engineering, no 2, pp 2116-2123, Apr 2020, doi: 10.30534/ijatcse/2020/185922020 [35] M Badawy et al., “Healthcare Predictive Analytics Using Machine Learning and Deep Learning Techniques: A Survey,” Research Square, Aug 2022, doi: 10.21203/rs.3.rs-1885746/v2 [36] “Sklearn.ensemble.RandomForestClassifier.” Internet: https://scikit- learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier html, 20 Nov 2022 [37] P Probst et al., “Hyperparameters and Tuning Strategies for Random Forest,” arXiv, 2018, doi: 10.48550/ARXIV.1804.03515 [38] J Thorn, “ Random Forest: Hyperparameters and how to fine-tune them.” Internet: https://towardsdatascience.com/random-forest-hyperparameters-andhow-to-fine-tune-them-17aee785ee0d, 24 Nov 2022 [39] W Koehrsen, “Hyperparameter Tuning the Random Forest in Python.” Internet: https://towardsdatascience.com/hyperparameter-tuning-the-random-forest-inpython-using-scikit-learn-28d2aa77dd74, 25 Nov 2022 [40] Xgboost developers, “XGBoost Parameters.” Internet: https://xgboost.readthedocs.io/en/stable/parameter.html, 26 Nov 2022 62 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân [41] “Train, convert and predict a model - sklearn-onnx 1.11 documentation.” Internet:https://onnx.ai/sklearn-onnx/auto_examples/plot_convert_model.html, 30 Nov 2022 [42] “Investigate a pipeline - sklearn-onnx 1.11 documentation.” Internet: https://onnx.ai/sklearn-onnx/auto_examples/plot_investigate_pipeline.html, 02 Dec 2022 [43] Ssalgadodev, “Make predictions with AutoML ONNX Model in NET - Azure Machine Learning.” Internet: https://learn.microsoft.com/vi-vn/azure/machinelearning/how-to-use-automl-onnx-model-dotnet#define-model-input-schema, 04 Dec 2022 [44] Natke, “OnnxMapType(Type, Type) Constructor.” Internet: https://learn.microsoft.com/vivn/dotnet/api/microsoft.ml.transforms.onnx.onnxmaptype.-ctor?view=mldotnet#Microsoft_ML_Transforms_Onnx_OnnxMapType ctor_System_Typ e_System_Type, 05 Dec 2022 63 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân PHỤ LỤC Phụ lục A: Mô tả linh kiện mô-đun thu thập số liệu: Bảng 6.1 Mô tả thành phần mô-đun thu thập số liệu STT Thành phần Cảm biến Chức Đo thân nhiệt bệnh nhân Thông số kỹ thuật - Nguồn: 5V DC - Tầm đo: -40 đến MLX90614 125 C ̊ - Độ phân giải phép đo: 0.02°C - Giao tiếp: I2C - Dịng tiêu thụ: 25mA Mơ-đun Cảm Đo nhịp tim số SpO2 - Nguồn: 5V DC biến bệnh nhân - Dòng tiêu thụ: MAX30100 600uA - Độ phân giải ADC: 14 bit - Giao tiếp: I2C Arduino pro Xử lý giá trị thân nhiệt, nhịp tim - Chip: ATmega328P mini SpO2 đo từ cảm biến, - Tần số xung nhịp: hiển thị lên hình LCD, gửi giá 16MhZ trị đo qua UART cho ESP8266 - Nguồn: 5V DC 64 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân Kit thu phát Nhận liệu chứa số đo thân - Nguồn: 5V DC ESP8266 nhiệt, nhịp tim, SpO2, mã giường - Chip chính: Wifi NodeMCU bệnh, gửi liệu đến server SoC ESP8266 Lua CP2102 thông qua wifi (giao thức MQTT); - Chip giao tiếp nhận liệu phản hồi từ server USB: CP2102 trạng thái sức khỏe bệnh nhân, - Phiên xuất cảnh báo tình trạng sức firmware: NodeMCU khỏe bệnh nhân qua đèn báo Lua mô-đun phát âm - Công suất phát: 25dBm - Tần số Wifi: GHz - Chuẩn: 802.11 b/g/n Mô-đun LCD Hiển thị chỗ số đo thân - dòng, 16 ký tự 16x2 – I2C nhiệt, nhịp tim, SpO2 dòng - Chữ đen, đèn xanh - Giao tiếp: I2C - Chip LCD: HD44780 - IC chuyển giao tiếp LCD sang I2C: PCF8574T - Nguồn: 5V DC Đèn báo hiệu Cảnh báo tình trạng sức khỏe - Led 5mm bệnh nhân chuyển biến xấu - Màu: đỏ ánh sáng - Dòng tiêu thụ: 65 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân ~10mA Mơ-đun phát Cảnh báo tình trạng sức khỏe - Chip chính: âm bệnh nhân chuyển biến xấu ISD1820 âm - Nguồn: 5V DC - Loa: 8Ohm, 0.5W - Tần số lấy mẫu: 6.4KHz Phụ lục B: Chi tiết bước triển khai mơ hình dự đốn tình trạng sức khỏe bệnh nhân vào hệ thống theo dõi sức khỏe xây dựng: Bước 1: Huấn luyện mơ hình với dạng pipeline: Nền tảng thực hiện: Google Colab Thư viện: pipeline sklearn Các thông số huấn luyện: lấy từ kết tìm siêu tham số tối ưu công cụ RandomizedSearchCV Mã nguồn [41], [42]: #import thư viện from sklearn.pipeline import make_pipeline #tạo model dạng pipeline với thơng số có từ RandomizedSearchCV model_pipeline = make_pipeline (RandomForestClassifier( n_estimators=100, min_samples_split=5, min_samples_leaf=2, max_features='sqrt', max_depth = None, criterion = 'gini', bootstrap = False )) #fit model model_pipeline.fit (x_train, y_train) 66 công cụ Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân Bước 2: Chuyển mơ hình sang dạng ONNX [41]: - Nền tảng thực hiện: Google Colab - Thư viện: skl2onnx - Mã nguồn [41], [42]: #import thư viện !pip install skl2onnx from skl2onnx import convert_sklearn from skl2onnx.common.data_types import FloatTensorType #khởi tạo dạng input initial_types = [('feature_input', FloatTensorType( [None, x_train.shape[1]]))] #chuyển đổi định dạng mơ hình sang dạng ONNX model_onnx = convert_sklearn( model_pipeline, 'pipeline_rf', [('feature_input', FloatTensorType([None, 5]))]) # And save with open("pipeline_rf.onnx", "wb") as f: f.write(model_onnx.SerializeToString()) Kết bước file mơ hình với định dạng ONNX (tên file: “pipeline_rf.ONNX”) Bước 3: Khảo sát thông số đầu vào, đầu mơ hình: Để khảo sát thơng số đầu vào đầu mơ hình ONNX tạo từ bước 3, công cụ “netron.app” sử dụng [43]: - Trên công cụ “netron.app”, mở mơ hình dạng “pipeline_rf.ONNX” bước trước - Cơng cụ “netron.app” hiển thị sơ đồ cấu trúc mơ hình, có dạng thể hình 6.1: 67 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân Hình 6.1 Sơ đồ cấu trúc mơ hình dự đốn dạng ONNX - Chọn vào nút có nhãn “output_label” để biết thơng số thuộc tính mơ hình Các thơng số thuộc tính mơ hình “pipeline_rf.ONNX” thể hình 6.2: Hình 6.2 Các thơng số thuộc tính mơ hình dự đốn dạng ONNX Ở bước này, cần ý ghi lại giá trị thuộc tính “name” “type” input output Thơng tin sử dụng lại bước Bước 4: Thiết lập kết nối mơ hình ONNX vào ứng dụng viết C#: Thực phần mềm Visual Studio, ngơn ngữ C#, bao gồm bước [43], thực dự án đặt tên “AppServer”: Bước 4.1 Thiết lập thư viện cấu hình cần thiết: 68 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân - Trên dự án AppServer, cài đặt gói NuGet có tên: Microsoft.ML, Microsoft.ML.OnnxRuntime, Microsoft.ML.OnnxTransformer - Trong tập tin mã nguồn “Form1.cs”, khai báo sử dụng thư viện NuGet cài đặt: using using using using System.Linq; Microsoft.ML; Microsoft.ML.Data; Microsoft.ML.Transforms.Onnx; - Gán tham chiếu đến mơ hình dạng ONNX Đầu tiên, tiến hành chép mơ-hình ONNX huấn luyện bước trước vào thư mục gốc dự án AppServer Có thể đổi tên mơ hình tùy ý Ở sử dụng tên mơ hình “mymodel_onnx1.onnx” - Tiếp theo, mở tập tin “AppServer.csproj”, thêm dòng mã bên để thực gán tham chiếu đến mơ hình “mymodel_onnx1.onnx”: PreserveNewest - Mở tập tin Form1.cs, thêm đoạn mã nguồn xác định đường dẫn mơ-hình khởi tạo đối tượng MLContext vào class có tên “Form1”: static string ONNX_MODEL_PATH = "mymodel_onnx1.onnx"; MLContext mlContext = new MLContext(); Bước 4.2 Định nghĩa giản đồ đầu vào mơ hình: - Trong tập tin ‘Form1.cs”, tạo class có tên “OnnxInput” với thuộc tính giống khảo sát bước 3: 69 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân public class OnnxInput { [VectorType(5, 1)] //dạng input [ColumnName("feature_input")] //tên input theo tên thể hiển bước public float[] feature_input { get; set; } } Bước 4.3 Định nghĩa giản đồ đầu mơ hình: - Trong tập tin ‘Form1.cs”, tạo class có tên “OnnxOutput” với thuộc tính giống khảo sát bước 3: public class OnnxOutput { [ColumnName("output_label"), OnnxMapType(typeof(Int64), typeof(Single))] public Int64[] output_label { get; set; } } Ở bước này, lệnh “OnnxMapType” sử dụng để chuyển đổi kiểu liệu cho phù hợp liệu đầu vào thực tế (kiểu interger) liệu thư viện ML.NET hỗ trợ (kiểu single) Bước 4.4 Định nghĩa đường ống dự đoán (prediction pipeline): - Tạo phương thức với dạng “GetPredictionPipeline” có tên “ITransformer” tập tin Form1.cs: static ITransformer GetPredictionPipeline(MLContext mlContext) { } - Bên phương thức “GetPredictionPipeline”, thực định nghĩa tên cột đầu vào đầu ra: var inputColumns = new string[] { "feature_input" }; var outputColumns = new string[] { "output_label" }; - Gọi lệnh khởi tạo đường ống: var onnxPredictionPipeline = GetPredictionPipeline(mlContext); 70 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân - Định nghĩa đường ống, gọi phương thức “Fit” : var onnxPredictionPipeline = mlContext Transforms ApplyOnnxModel( outputColumnNames: outputColumns, inputColumnNames: inputColumns, ONNX_MODEL_PATH); var emptyDv = mlContext.Data.LoadFromEnumerable(new OnnxInput[] { }); return onnxPredictionPipeline.Fit(emptyDv); Bước 5: Thực tác vụ dự đoán: - Khởi tạo “predictionEngine”, sử dụng phương thức “Create Prediction Engine”: var onnxPredictionEngine = mlContext.Model.CreatePredictionEngine(onnxPredictionPipeline); - Tạo liệu đầu vào với tên “testInput”: var testInput = new OnnxInput { feature_input = new float[] { float.Parse(temp), float.Parse(heart_rate), float.Parse(spo2), float.Parse(tuoi), float.Parse(gioi_tinh) } }; - Sử dụng “predictionEngine” để thực dự đoán dựa vào liệu đầu vào “testInput” cung cấp: var prediction = onnxPredictionEngine.Predict(testInput); - Nhận ngõ kết dự đoán trả về: ketqua_dudoan = prediction.output_label.First(); Như trình sử dụng mơ hình với dạng ONNX để thực dự đốn ứng dụng cá nhân hóa hồn thành bước Kết dự đốn tiếp tục lưu trữ vào sở liệu, hiển thị giao diện,…tùy theo mục đích thiết kế hệ thống 71 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân Phụ lục C: Chi tiết giao diện trang web hệ thống giám sát sức khỏe bệnh nhân - Giao diện trang giám sát thông số tình trạng sức khỏe bệnh nhân: Hình 6.3 Giao diện trang giám sát thơng số tình trạng sức khỏe bệnh nhân - Giao diện hiển thị 100 số đo thân nhiệt bệnh nhân dạng biểu đồ: 72 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân Hình 6.4 Giao diện biểu đồ hiển thị 100 giá trị số đo thân nhiệt bệnh nhân - Giao diện hiển thị 100 số đo nhịp tim bệnh nhân dạng biểu đồ: Hình 6.5 Giao diện biểu đồ hiển thị 100 giá trị số đo nhịp tim bệnh nhân - Giao diện hiển thị 100 giá trị số đo SpO2 bệnh nhân dạng biểu đồ: 73 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân Hình 6.6 Giao diện biểu đồ hiển thị 100 giá trị số đo SpO2 bệnh nhân - Giao diện hiển thị 100 cảnh báo tình trạng sức khỏe bệnh nhân dạng biểu đồ: Hình 6.7 Giao diện biểu đồ đường hiển thị 100 giá trị cảnh báo tình trạng sức khỏe bệnh nhân Hình 6.8 Giao diện biểu đồ trịn thể 100 giá trị cảnh báo tình trạng sức khỏe bệnh nhân - Giao diện trang tra cứu, nhập liệu thông tin bệnh nhân: 74 Hệ thống theo dõi sức khỏe ứng dụng IoT mô hình dự đốn tình trạng bệnh nhân Hình 6.9 Giao diện trang tra cứu, nhập liệu thông tin bệnh nhân - Giao diện trang giới thiệu: Hình 6.10 Giao diện trang web giới thiệu thông tin 75 Hệ thống theo dõi sức khỏe ứng dụng IoT mơ hình dự đốn tình trạng bệnh nhân LÝ LỊCH TRÍCH NGANG Họ tên: NGUYỄN VĂN ĐẠT Ngày, tháng, năm sinh: 21/05/1992 Nơi sinh: Bến Tre Địa liên lạc: 497 Hòa Hảo, Phường 7, Quận 10, TP Hồ Chí Minh Email: nvdat.sdh20@hcmut.edu.vn nvdat@hcmut.edu.vn QUÁ TRÌNH ĐÀO TẠO: Đại học: - Nơi đào tạo: Trường Đại học Bách Khoa – ĐHQG-HCM - Ngành học: Kỹ thuật Điện tử - Truyền thông (Hệ Vừa làm vừa học) - Điểm trung bình tích lũy: 8.15 - Thời gian đào tạo: từ tháng 04/2014 đến 04/2018 Cao học: - Nơi đào tạo: Trường Đại học Bách Khoa – ĐHQG-HCM - Ngành học: Kỹ thuật Điện tử - Khóa: 2020 - Điểm trung bình tích lũy: 7.98 (34 tín mơn học) Q TRÌNH CƠNG TÁC: Từ tháng 09/2013 đến 04/2018: - Cơng ty TNHH sản xuất cân Nhơn Hòa Địa chỉ: 514-516-518 Quốc lộ 13, phường Hiệp Bình Phước, TP.Thủ Đức - Công việc: Thợ điện công nghiệp Từ tháng 05/2018 đến 12/2022: - Trung tâm dịch vụ Ký túc xá Bách Khoa – Trường Đại học Bách Khoa – ĐHQGHCM Địa chỉ: 497 Hòa Hảo, phường 7, quận 10, TP Hồ Chí Minh - Cơng việc: Kỹ sư tịa nhà 76