CHƯƠNG 1 GIỚI THIỆU 1. GIỚI THIỆU Trong thời đại khoa học công nghệ tiên tiến ngày nay, chúng ta thấy được sự phát triển vô cùng mạnh mẽ của các công nghệ áp dụng ứng dụng trí tuệ nhân tạo trong đời sống hàng ngày trở nên ngày càng phổ biến, như các ứng dụng trí tuệ nhân tạo trên ô tô tự hành của hãng Tesla, ứng dụng website tạo ảnh nghệ thuật Midjourney, hay cơn sốt website chatbot ChatGPT của OpenAI…, kéo theo đó là các công ty, start up về giải pháp ứng dụng trí tuệ nhân tạo tham gia vào mảng công nghệ đầy tiềm năng này ngày càng nhiều và phát triển. Trong đó, nhóm đã có cơ hội được tham gia thực tập tại môi trường doanh nghiệp về mảng trí tuệ nhân tạo này và thấy được việc sau khi đã huấn luyện được một mô hình học máy trí tuệ nhân tạo quá trình triển khai một ứng dụng trí tuệ nhân tạo từ mô hình học máy đó ra thực tế một cách tối ưu về mặt chi phí, khả năng bảo trì, tốc độ triển khai và một giao diện ổn định thân thiện với khách hàng là không hề đơn giản và còn nhiều điểm cần nghiên cứu tối ưu phát triển quy trình này để đảm bảo có được một giao diện với hiệu suất cao và nâng cao độ ổn định của ứng dụng trí tuệ nhân tạo. Nắm bắt được những điều trên và đồng thời nhóm cũng rất quan tâm đến nhu cầu ứng dụng công nghệ trí tuệ nhân tạo học máy trong chẩn đoán y tế các bệnh phổi là một căn bệnh vô cùng nguy hiểm và phổ biến trong cuộc sống.
Do đó, nhóm đã có nhiều động lực để theo đuổi và nhận đề tài: “THIẾT KẾ VÀ TRIỂN KHAI WEBSITE CHẨN ĐOÁN BỆNH PHỔI LÊN NỀN TẢNG ĐÁM MÂY”. Với sự hướng dẫn của giảng viên Nguyễn Mạnh Hùng. MỤC TIÊU ĐỀ TÀI Đề tài “THIẾT KẾ VÀ TRIỂN KHAI WEBSITE CHẨN ĐOÁN BỆNH PHỔI LÊN NỀN TẢNG ĐÁM MÂY” được thực hiện nhằm thiết kế hệ thống trang web theo quy trình tối ưu gồm các chức năng: 1 • Đăng nhập và đăng ký cho người dùng mới, giao diện trực quan. • Cho phép chẩn đoán bệnh viêm phổi thông qua ảnh x-quang.
• Cho phép phát hiện chẩn đoán khoanh vùng 14 loại bệnh phổi thông qua ảnh x-quang và lưu lại ảnh đã được chẩn đoán khoanh vùng. • Cho phép chẩn đoán bệnh ung thư phổi thông qua ảnh CT-SCAN. • Hiển thị thư viện các ảnh đã được chẩn đoán khoanh vùng 14 loại bệnh phổi, cho phép tải các ảnh đã được chẩn đoán về thiết bị và có chức năng cho phép xóa ảnh. • Nhập lưu lại các feedback ý kiến dự đoán của bác sĩ về các chẩn đoán của các ứng dụng chẩn đoán trên website.
• Giao diện feedback Draw Box app cho phép bác sĩ để lại feedback bằng chức năng vẽ khung lấy tọa độ của bounding box và đánh nhãn 14 loại bệnh phổi theo ý kiến dự đoán của bác sĩ, lưu lại các mẫu ảnh và thông tin của feedback. • Hiển thị thư viện feedback detection gồm các ảnh và thông tin mà bác sĩ đã vẽ khung khoanh vùng bệnh tại feedback Draw Box app, cho phép tải ảnh kèm file text chứa các thông tin về tọa độ bounding box, nhãn các loại bệnh, kích thước ảnh gốc và có chức năng cho phép xóa ảnh. • Hiển thị thư viện feedback classification gồm các ảnh và thông tin mà bác sĩ đã cho ý kiến đánh giá về các dự đoán của các ứng dụng chẩn đoán trên website và có chức năng cho phép xóa ảnh. • Đăng nhập trang quản trị dành cho tài khoản quản trị.
• Trang quản trị cho phép xem và tải xuống tất cả ảnh mà bác sĩ đã sử dụng website để chẩn đoán. Hiển thị và cho phép tải ảnh, tải thông tin tất cả feedback classification và feedback detection tại Draw Box app mà bác sĩ đã để lại góp ý và có chức năng cho phép xóa ảnh. • Trang quản trị hiển thị danh sách thông tin về người dùng (họ và tên, email, bệnh viện công tác, thời điểm đăng ký,.) và cho phép xóa người dùng. • Triển khai mã nguồn chạy trên cloud hosting.
2 • Backend: Viết API cho các mô hình học máy đã được huấn luyện, các mô hình học máy sử dụng môi trường gần giống nhau được tối ưu viết chung trong một tệp API và được đóng gói chung trong một docker và đưa lên Docker Hub. • Triển khai backend API đã được đóng gói docker trên Docker Hub lên Cloud. GIỚI HẠN ĐỀ TÀI Đề tài được triển khai trên các gói cloud server miễn phí dành cho sinh viên học tập với hiệu năng và khả năng chịu tải truy cập của máy chủ đám mây ở mức khá. Trong phạm vi đồ án này, người thực hiện chỉ thiết kế trang web nền tảng và triển khai website ứng dụng trí tuệ nhân tạo học máy lên đám mây theo quy trình tối ưu với các mô hình học máy được tác giả chia sẻ được huấn luyện sẵn với độ chuẩn xác chưa hoàn hảo dùng để demo chức năng.
Vì vậy, các chức năng chẩn đoán sẽ còn nhiều hạn chế về độ chính xác. Đề tài thiết kế ứng dụng nhằm hỗ trợ cho các bác sĩ tham khảo là chính không dành cho người dùng phổ thông và ứng dụng chỉ dùng để tham khảo không thể thay thế hoàn toàn khả năng chẩn đoán của bác sĩ. PHƯƠNG PHÁP NGHIÊN CỨU Các phương pháp được sử dụng để giải quyết đề tài: Phương pháp phân tích tổng kết kinh nghiệm, phương pháp thực nghiệm khoa học, phương pháp phân loại và hệ thống hóa lý thuyết, phương pháp phân tích và tổng hợp lý thuyết. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU Đối tượng nghiên cứu: ngôn ngữ lập trình Python và Framework Flask, tiêu chuẩn RESTful API, phần mềm docker, đám mây Azure, ngôn ngữ lập trình PHP, dự án Laravel, thư viện Bootstrap,.
Phạm vi nghiên cứu: Các API được đóng gói docker và chạy trên đám mây xử lý dữ liệu từ người dùng gửi về và trả các kết quả chẩn đoán bệnh phổi về giao diện người dùng. Trang đăng nhập người dùng cho phép sử dụng chức năng chẩn đoán, để lại feedback về các chẩn đoán. Thư viện ảnh cho phép xem, xóa, tải về các mẫu ảnh 3 đã được chẩn đoán. Thư viện feedback cho phép xem, xóa, tải về các ảnh và thông tin đã được người dùng để lại góp ý.
Trang đăng nhập quản trị cho phép xem, xóa tất thông tin của người dùng, cho phép xem, xóa, tải về tất cả thư viện mẫu ảnh và feedback của người dùng đã gửi. BỐ CỤC QUYỂN BÁO CÁO Quyển báo cáo gồm 5 chương. Giới thiệu: Nêu tổng quan về đối tượng nghiên cứu, phương pháp, mục đích thực hiện trong đề tài. Cơ sở lý thuyết: Khái quát, sơ lược về ngôn ngữ lập trình, thư viện hỗ trợ, dự án nguồn mở, mô hình xử lý dữ liệu và mô hình trí tuệ nhân tạo.
Thiết kế hệ thống: Xây dựng hệ thống website với các giao diện đăng nhập dành cho người dùng, các chức năng hỗ trợ trợ bác sĩ chuẩn đoán bệnh phổi, để lại các ý kiến đóng góp, thư viện các chuẩn đoán và phản hồi và trang quản trị viên với các chức năng quản trị người dùng. Kết quả: Hệ thống được thực thi trên máy chủ đám mây và vận hành đúng yêu cầu của đề tài. Kết luận và hướng phát triển: Nêu rõ ưu và nhược điểm của đề tài đang thực hiện và đưa ra các định hướng trong tương lai để nâng cấp hệ thống website hiện đại, tối ưu. TỔNG QUAN VỀ MÔ HÌNH MVC Tiến sĩ Trygve Reenskaug đã thêm MVC vào ngôn ngữ lập trình Smalltalk-76 khi ông gia nhập Trung tâm Nghiên cứu Xerox Palo Alto (PARC) vào giữa những năm 1970.
Sau đó, các phiên bản Smalltalk bổ sung đã áp dụng cách triển khai này vì nó rất hiệu quả. Xét về hiệu suất vào năm 1988, các bài viết của JOT đã cung cấp bức tranh rõ ràng nhất về MVC [1]. Mẫu thiết kế MVC là một mẫu kiến trúc phần mềm được sử dụng để phát triển giao diện người dùng máy tính. Mô hình bao gồm ba phần được kết nối với nhau, mỗi phần được giao một nhiệm vụ riêng biệt và độc lập.
Có ba phần: Thành phần được gọi là mô hình (dữ liệu), phục vụ như một liên kết giữa bộ điều khiển và dạng xem, chứa tất cả dữ liệu của ứng dụng. Thông tin mà chương trình sử dụng là một mô hình. View (giao diện) là một thành phần của giao diện người dùng; nó có thể là một cơ sở dữ liệu, một tệp XML thông thường hoặc một đối tượng đơn giản. Phương pháp hiển thị các mục trong một ứng dụng được gọi là dạng xem.
Controller là thành phần chịu trách nhiệm đáp ứng các yêu cầu của người dùng được thực hiện thông qua View, chẳng hạn như hiển thị cửa sổ, nút hoặc văn bản trong cửa sổ khác hoặc bất kỳ thứ gì khác mà người dùng có thể nhìn thấy. Model và View đều được bao gồm trong Controller. Nhận thông tin phản hồi và cập nhật cho phù hợp.1: Mô hình MVC Khi một yêu cầu của từ máy khách gửi đến máy chủ thì được Controller chặn lại để xem xét URL request hay sự kiện. Sau đó, Controller xử lý input của người dùng rồi giao tiếp với Model.
Model chuẩn bị data và gửi lại cho Controller. Cuối cùng, khi xử lý xong yêu cầu thì Controller gửi dữ liệu trở lại View và hiển thị cho người dùng trên trình duyệt.2: Luồng xử lý Model – View – Controller 2. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH VÀ THIẾT KẾ Ngôn ngữ lập trình là tập hợp các ký hiệu được chuẩn hóa theo quy tắc nhất định để viết các chương trình và được sử dụng trong lập trình máy tính để thực hiện các thuật toán. Sao cho cả con người và các thiết bị điện tử đều “hiểu” được chương trình làm việc mà lập trình viên mô tả trong phần mềm.
Ngôn ngữ lập trình PHP Ngôn ngữ PHP là một đoạn mã lệnh hay ngôn ngữ trình kịch bản được dùng để phát triển ứng dụng viết cho máy chủ. Ngôn ngữ này được chạy ở server, sinh ra 6 mã HTML trên máy khách. Nhờ vào đó, PHP tạo ra được các ứng dụng website, website có thể chạy trên máy chủ. PHP là một sự thay thế hiệu quả về chi phí, được yêu thích cho các đối thủ như ASP của Microsoft.
Mã văn bản, HTML, CSS, JavaScript và PHP đều có thể được tìm thấy trong các tệp PHP.php" được sử dụng cho các tệp PHP. PHP có thể thêm, xóa, thay đổi dữ liệu trong cơ sở dữ liệu được sử dụng để kiểm soát quyền truy cập của người dùng và có thể mã hóa dữ liệu.