Đồ án tốt nghiệp: Chẩn đoán một số bệnh phổi bằng xử lý ảnh và học sâu

Khóa luận tốt nghiệp ứng dụng xử lý ảnh và học sâu để chẩn đoán bệnh phổi. Tìm hiểu chi tiết về phương pháp, mô hình và kết quả thực nghiệm.

Chuyên ngành

Công Nghệ Phần Mềm

Người đăng

Ẩn danh

Thể loại

Khóa Luận Tốt Nghiệp

2020

120
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Chẩn Đoán Bệnh Phổi bằng Học Sâu

Chẩn đoán bệnh phổi đã trở thành một trong những ứng dụng quan trọng nhất của học sâu và xử lý ảnh trong lĩnh vực y tế hiện đại. Với sự phát triển của công nghệ trí tuệ nhân tạo, việc phân tích hình ảnh X-quang phổi không còn phụ thuộc hoàn toàn vào kinh nghiệm của bác sĩ mà có thể được hỗ trợ bởi các mô hình máy học tiên tiến. Đồ án này tập trung vào việc xây dựng một hệ thống tự động chẩn đoán các bệnh phổi thông qua xử lý ảnh y tếmạng nơ-ron tích chập. Mục tiêu chính là cải thiện độ chính xác, tốc độ và hiệu quả trong quá trình chẩn đoán, từ đó giúp các chuyên gia y tế đưa ra quyết định nhanh chóng và chính xác hơn. Dự án này không chỉ có giá trị khoa học mà còn có ứng dụng thực tiễn cao trong các bệnh viện và cơ sở y tế.

1.1. Tính Cấp Thiết của Đề Tài

Bệnh phổi là một trong những nguyên nhân gây tử vong hàng đầu trên thế giới. Việc chẩn đoán sớm bệnh phổi là yếu tố then chốt để cứu sống bệnh nhân. Tuy nhiên, số lượng bác sĩ chuyên khoa giới hạn và khó khăn trong việc phân tích hình ảnh y tế phức tạp. Học sâu và xử lý ảnh có thể giúp tự động hóa quá trình này, giảm tải công việc cho các chuyên gia y tế và cải thiện tính khả dụng của các dịch vụ chẩn đoán.

1.2. Ý Nghĩa Khoa Học và Thực Tiễn

Đồ án này không chỉ nghiên cứu các mô hình pre-trained như VGG16, MobileNet, DenseNet121 mà còn ứng dụng chúng vào bài toán thực tế. Kết quả đạt được sẽ góp phần vào kho tàng kiến thức về ứng dụng trí tuệ nhân tạo trong y tế, đồng thời tạo ra một sản phẩm có thể được sử dụng trong thực hành lâm sàng.

II. Cơ Sở Lý Thuyết và Công Nghệ Áp Dụng

Nền tảng của đồ án dựa trên ba công nghệ chính: mạng nơ-ron nhân tạo, xử lý ảnhmạng nơ-ron tích chập. Mạng nơ-ron tích chập (CNN) là kiến trúc được sử dụng phổ biến nhất trong phân loại ảnh y tế vì khả năng trích xuất đặc trưng tự động. Các mô hình pre-trained như VGG16, MobileNet và DenseNet121 đã được huấn luyện trên hàng triệu hình ảnh, cho phép chúng tôi sử dụng lại những kiến thức này thông qua kỹ thuật transfer learning. Xử lý ảnh đóng vai trò quan trọng trong việc chuẩn hóa, cải thiện chất lượng hình ảnh X-quang trước khi đưa vào mô hình. Phương pháp lan truyền ngược (Backpropagation) được sử dụng để huấn luyện mô hình, điều chỉnh các trọng số sao cho giảm thiểu lỗi dự đoán.

2.1. Mạng Nơ ron Tích Chập CNN

Mạng nơ-ron tích chập bao gồm các lớp tích chập, lớp pooling và lớp kết nối đầy đủ. Phép tích chập là phép toán cốt lõi, cho phép mô hình phát hiện các đặc trưng như cạnh, kết cấu và các hình dạng phức tạp trong hình ảnh. Nhờ vậy, CNN có khả năng mạnh mẽ trong phân loại hình ảnh y tế mà không cần trích xuất đặc trưng thủ công.

2.2. Transfer Learning và Mô Hình Pre trained

Transfer learning cho phép sử dụng lại các mô hình đã huấn luyện trên tập dữ liệu lớn. VGG16, MobileNet và DenseNet121 là những mô hình được chọn vì độ chính xác cao và tính hiệu quả khác nhau. MobileNet đặc biệt hữu ích cho các ứng dụng nhúng với yêu cầu tài nguyên thấp, trong khi DenseNet121 cung cấp độ chính xác cao hơn với số lượng tham số ít hơn so với VGG16.

III. Phương Pháp Xây Dựng Mô Hình Chẩn Đoán

Quá trình xây dựng mô hình chẩn đoán bệnh phổi bao gồm nhiều bước: thu thập và chuẩn bị tập dữ liệu hình ảnh X-quang, tiền xử lý ảnh, xây dựng mô hình và huấn luyện. Tập dữ liệu được chia thành ba phần: huấn luyện, xác thực và kiểm tra. Tiền xử lý ảnh bao gồm chuẩn hóa pixel, thay đổi kích thước và tăng cường dữ liệu (data augmentation) để cải thiện tính tổng quát của mô hình. Các hàm mất mát như categorical crossentropy được sử dụng để đo lường hiệu suất. Các phương pháp tối ưu hóa như Adam optimizer giúp điều chỉnh hiệu quả các tham số mô hình. Quá trình huấn luyện được theo dõi chặt chẽ để tránh overfitting và đảm bảo mô hình hoạt động tốt trên dữ liệu chưa thấy.

3.1. Tiền Xử Lý và Chuẩn Bị Dữ Liệu

Tiền xử lý ảnh là bước tiên quyết để cải thiện chất lượng dữ liệu đầu vào. Các kỹ thuật bao gồm chuẩn hóa pixel (normalization) để đưa giá trị pixel vào khoảng [0,1], thay đổi kích thước ảnh theo yêu cầu của mô hình, và tăng cường dữ liệu (rotation, flip, zoom) để tăng số lượng mẫu huấn luyện và giảm nguy cơ overfitting.

3.2. Huấn Luyện và Đánh Giá Mô Hình

Quá trình huấn luyện sử dụng thuật toán Backpropagation kết hợp với các bộ tối ưu hóa như Adam. Độ chính xác (Accuracy), Precision, Recall và F1-score được sử dụng để đánh giá mô hình. Ma trận nhầm lẫn (Confusion Matrix) giúp hiểu rõ hơn về hiệu suất của mô hình trên từng loại bệnh.

IV. Triển Khai và Ứng Dụng Thực Tiễn

Sau khi xây dựng và huấn luyện thành công mô hình, bước tiếp theo là triển khai nó thành một ứng dụng web dễ sử dụng. Dự án sử dụng Flask - một framework Python nhẹ nhàng - để tạo ra giao diện người dùng thân thiện. Ứng dụng cho phép người dùng (bác sĩ hoặc kỹ thuật viên) tải lên hình ảnh X-quang và nhận được kết quả chẩn đoán tự động trong vài giây. Giao diện được thiết kế để dễ hiểu, hiển thị không chỉ dự đoán bệnh mà còn mức độ tin cậy của dự đoán. Hệ thống hỗ trợ phân loại nhiều bệnh phổi như viêm phổi, lao phổi và các bệnh liên quan khác. Triển khai này không chỉ chứng minh tính khả thi của mô hình mà còn tạo ra một công cụ hữu ích cho các chuyên gia y tế trong thực hành lâm sàng.

4.1. Xây Dựng Giao Diện Web bằng Flask

Flask được lựa chọn vì tính đơn giản và linh hoạt. Giao diện web cho phép tải lên hình ảnh, xử lý ảnh trên máy chủ và trả về kết quả chẩn đoán. Hệ thống được thiết kế để xử lý nhanh chóngcung cấp thông tin rõ ràng về độ tin cậy của từng dự đoán bệnh.

4.2. Hướng Phát Triển Tương Lai

Những cải tiến tiếp theo có thể bao gồm tích hợp nhiều loại ảnh y tế khác (CT, MRI), cải thiện độ chính xác bằng các mô hình mới hơn, triển khai trên thiết bị di động cho khả năng tiếp cận rộng hơn, và tích hợp với hệ thống quản lý bệnh nhân trong bệnh viện.

28/12/2025

Trích đoạn nội dung tài liệu

MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Convolutional Neural Network (CNNs - Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến. Nó giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay. Như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động.

CNN được sử dụng nhiều trong các bài toán nhận dạng các đối tượng, vật thể trong ảnh, phân loại ảnh. Nhận thấy, việc áp dụng CNN vào y tế để giải quyết các vấn đề chẩn đoán liên quan đến hình ảnh như phim X-Quang, ảnh điện ti là hoàn toàn phù hợp và mang lại lợi ích cao. Một mô hình hoàn chỉnh, chính xác cao góp phần rất lớn trong việc giúp đỡ các bác sĩ đưa ra quyết định đúng đắn một cách nhanh chóng. Trong cuộc sống, các bệnh về phổi là những bệnh hết sức phổ biến, việc chẩn đoán các bệnh này phải được thực hiện qua các thủ tục xét nghiệm, chẩn đoán bằng phim X- Quang.

Trong đó việc khảo sát hình chụp X-Quang là bước quan trọng nhất trong việc đưa ra chẩn đoán. Vì thế, để làm cho khâu quan trọng này trở nên đơn giản hơn, nhóm quyết định xây dựng một mô hình học sâu để giải quyết vấn đề này. Và để thực hiện được, cần tìm hiểu các kiến thức liên quan mà quan trọng hơn cả là kiến thức về mạng nơ-ron tích chập. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN Về mặt khoa học, đề tài này nghiên cứu về mảng học sâu, đó chính là thuật toán CNN, về vấn đề đã được công bố trước đó, phù hợp với việc học tập trong môi trường giáo dục.

Tuy nhiên không thể phủ nhận được hiệu quả của mô hình này với những ứng dụng quan trọng của nó như hệ thống nhận diện gương mặt của Facebook, Google. Bằng phát minh thuật toán này, việc làm cho suy nghĩ của máy tính càng gần giống như trí óc của con người. Sự phát triển của công nghệ AI nói chung và học sâu nói riêng cũng được nhận định là sẽ đe dọa đến loài người khi ngày càng máy tính càng có suy nghĩ, hiểu biết. Nhưng việc bùng nổ công nghệ này đang mang lại lợi ích lớn cho loài người, biểu 10 hiện rõ nhất là trong lĩnh vực y tế.

Đó cũng là nội dung mà nhóm sẽ trình bày trong đề tài này: chẩn đoán một số bệnh phổi bằng phim X-Quang dựa trên thuật toán CNN. MỤC TIÊU NGHIÊN CỨU Mục tiêu cuối cùng của việc nghiên cứu đề tài này là để trả lời câu hỏi làm sao để giúp cho việc chẩn đoán các bệnh về phổi bằng hình chụp X-Quang của các bác sĩ trở nên nhanh chóng, làm giảm thời gian và công sức của các bác sĩ từ đó nâng cao năng suất công việc. Hơn nữa, khi mô hình huấn luyện đạt đến mức độ chính xác cao, khâu kiểm tra kết quả chẩn đoán của con người có thể được lược bỏ hoàn toàn và được tự động hóa bởi máy móc. Từ đó, góp phần tạo ra một hệ sinh thái y khoa tiên tiến, giảm được nhiều chi phí mà mang lại độ chính xác cao, về lâu dài có thể thay thế con người trong khâu chẩn đoán bệnh.

11 Chương 2: CƠ SỞ LÝ THUYẾT Máy tính “nhìn” theo cách khác con người. Trong thế giới máy tính chỉ có những con số. Mỗi hình ảnh có thể được biểu diễn dưới dạng mảng 2 chiều những con số được gọi là các pixel. Mặc dù máy tính nhìn nhận theo cách khác con người, chúng ta vẫn có thể dạy máy tính nhận diện các mẫu như con người.

Điều quan trọng là chúng ta cần nghĩ về hình ảnh theo một cách khác đi. Cách máy tính nhìn một đối tượng Để dạy thuật toán nhận diện đối tượng trong hình ảnh, ta sử dụng một loại mạng nơ-ron nhân tạo (Artificial Neural Network): mạng nơ-ron tích chập. Tên của nó được dựa trên phép tính quan trọng được sử dụng trong mạng đó là tích chập. Mạng nơ-ron tích chập lấy cảm hứng từ não người.

Nghiên cứu trong những thập niên 1950 và 1960 của D.N Wiesel trên não của động vật đã đề xuất một mô hình mới cho việc cách mà động vật nhìn nhận thế giới. Trong báo cáo, hai ông đã diễn tả 2 loại tế bào nơ-ron trong não và cách hoạt động khác nhau: tế bào đơn giản (simple cell – S cell) và tế bào phức tạp (complex cell – C cell). Các tế bào đơn giản được kích hoạt khi nhận diện các hình dáng đơn giản như đường nằm trong một khu vực cố định và một góc cạnh của nó. Các tế bào phức tạp có vùng tiếp nhận lớn hơn và đầu ra của nó không nhạy cảm với những vị trí cố định trong vùng.

Trong thị giác, vùng tiếp nhận của một nơ-ron tương ứng với một vùng trên võng mạc nơi mà sẽ kích hoạt nơ-ron tương ứng. 12 Năm 1980, Fukushima đề xuất mô hình mạng nơ-ron có cấp bậc gọi là neocognitron. Mô hình này dựa trên khái niệm về S cell và C cell. Mạng neocognitron có thể nhận diện mẫu dựa trên việc học hình dáng của đối tượng.

Sau đó vào năm 1998, mạng nơ-ron tích chập được giới thiệu bởi Bengio, Le Cun, Bottou và Haffner. Mô hình đầu tiên của họ được gọi tên là LeNet-5. Mô hình này có thể nhận diện chữ số viết tay. 13 Chương 3: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 3.

KIẾN THỨC CƠ SỞ 3. Mạng Nơ-ron nhân tạo 3. Khái niệm về Perceptron và mạng Perceptron Perceptrons (tri giác), được hiểu trong ANN như một nơ-ron nhân tạo. Perceptrons được phát triển vào khoảng những năm 1950 - 1960 bởi nhà khoa học Frank Rosenblatt và được lấy cảm hứng từ những ý tưởng trước đó của Warren McCulloch và Walter Pitts.

Các thành phần của một Perceptron: • Các giá trị đầu vào (input) là các giá trị nhị phân 𝑥1 , 𝑥2 , 𝑥3 , … Số lượng các giá trị input có thể tùy ý, phụ thuộc vào mục đích sử dụng. • Các giá trị đầu ra (output) là một giá trị nhị phân 0 hoặc 1. Đầu ra của nơ-ron này có thể sẽ làm input cho nơ-ron khác trong cùng một mạng perceptron. • Ngưỡng 𝑡 là một tham số giống như weight, để xác định kết quả output.

• Các trọng số (weight) 𝑤1 , 𝑤2 , 𝑤3 , … được thêm vào để thể hiện tầm quan trọng của từng input đối với kết quả output. Các giá trị trọng số tham gia vào việc tính toán kết quả output bằng cách tính tổng các 𝑥𝑖 𝑤𝑖. Nếu kết quả 𝑤𝑖 𝑥𝑖 > 𝑡 thì output là 1, ngược lại, output là 0: 1, ∑ 𝑤𝑖 𝑥𝑖 > 𝑡 𝑖 𝑜𝑢𝑡𝑝𝑢𝑡 = { 0, ∑ 𝑤𝑖 𝑥𝑖 ≤ 𝑡 𝑖 Hình 3. Mô hình của perceptron Mạng perceptron (Perceptron Network - PN) gồm các perceptron được xếp thành các lớp.

Các perceptron trong lớp thứ nhất đưa ra quyết định bằng các tổng hợp các input. Các lớp tiếp theo đưa ra quyết định dựa vào kết quả output của các perceptron 14 trong lớp trước đó. Như vậy các perceptron của lớp sau sẽ đưa ra các quyết định có tính chính xác cao hơn các perceptron của lớp trước đó. Mạng perceptron Nếu gọi 𝑥 là véc-tơ các giá trị input, 𝑤 là véc-tơ các giá trị weight và đặt 𝑤 ∙ 𝑥 = ∑𝑖 𝑤𝑖 𝑥𝑖.

Chuyển 𝑡 sang vế trái và thay thế nó bằng giá trị Perceptron’s bias 𝑏 (𝑏 = −𝑡 ). Khi đó ta có: 1, 𝑤∙𝑥+𝑏 >0 𝑜𝑢𝑡𝑝𝑢𝑡 = { 0, 𝑤∙𝑥+𝑏 ≤0 Giá trị Perceptron’s bias 𝑏 có thể được biết như đại lượng đo lường khả năng perceptron được kích hoạt (tức là giá trị output của perceptron là 1). Một perceptron có bias 𝑏 càng lớn thì khả năng perceptron được kích hoạt cũng càng lớn. Ngoài cách perceptron tổng hợp các yếu tố để đưa ra kết luận, còn một cách nữa để thực hiện là sử dụng các phép toán logic AND, OR và NAND.

Hàm kích hoạt (Activation Functions - AFs) Hàm kích hoạt có chức năng đưa ra quyết định cuối cùng (tức là output) của một nơ-ron. Hàm kích hoạt cũng được biết với một tên gọi khác là hàm lan truyền. Hàm kích hoạt chia làm 2 loại sau: • Hàm kích hoạt tuyến tính • Hàm kích hoạt phi tuyến 3. Hàm kích hoạt tuyến tính Hàm kích hoạt tuyến tính biểu diễn toán học của hàm kích hoạt tuyến tính là một đường thẳng 𝑦 = 𝑓 (𝑥) = 𝑥.

Do đó, output của hàm số sẽ không được giới hạn trong một phạm vi nào hay nói cách khác, hàm kích hoạt tuyến tính có phạm vi trong khoảng (−∞, +∞).3 Đồ thị biểu diễn hàm tuyến tính 3. Hàm kích hoạt phi tuyến Không giống như hàm kích hoạt tuyến tính, các hàm phi tuyến tính có phạm vi giới hạn xác định được nên được áp dụng nhiều nào việc quyết định của nơ-ron. Các hàm kích hoạt phi tuyến tính thường sử dụng: a. Hàm kích hoạt Sigmoid (Hàm kích hoạt Logistic) Công thức hàm sigmoid: σ(z)=1/(1+e^(-z)) Công thức đạo hàm hàm sigmoid: σ^' (z)=σ(z).(1-σ(z)) Hàm sigmoid có dạng đường cong giống như hình chữ S.4 Đồ thị hàm sigmoid và đạo hàm của nó 16 Lý do hàm sigmoid được sử dụng là vì giá trị của hàm này nằm trong phạm vi khoảng (0, 1).

Và kết quả output cũng được biết như việc dự đoán xác suất của một mô hình. Hàm kích hoạt Tanh Công thức hàm tanh: tanh⁡(z)=(e^z-e^(-z))/(e^z+e^(-z)) Công thức đạo hàm hàm tanh: tanh^' (z)=1-tanh^2⁡z Hình 3.5 Đồ thị hàm tanh và đạo hàm của nó Phạm vi giá trị của hàm tanh là khoảng (-1, 1) c. Hàm kích hoạt ReLU (Rectified Linear Unit) Công thức hàm ReLU: 𝑅(𝑧) = max(0, 𝑧) 1, 𝑧 > 0 Công thức đạo hàm hàm ReLU: 𝑅′ (𝑧) = { 0, 𝑧 < 0 Hình 3.6 Đồ thị hàm ReLU d. Các hàm kích hoạt khác: Leaky ReLU, Softmax, ELU.

Đạo hàm và thuật toán giảm độ dốc (Gradient Descent) 3. Đạo hàm và khảo sát sự biến thiên của hàm số 17 Đạo hàm mô tả sự biến đổi của hàm số, hay nói cách khác, đạo hàm mô tả quỹ đạo của một hàm số hay độ dốc của nó. Để khảo sát độ dốc của một đồ thị hàm số, người ta dựa vào đạo hàm của hàm số đó. Ví dụ: 𝑑𝑓 Cho hàm số 𝑓 (𝑥) = 𝑥 2 , ta có đạo hàm 𝑓 ′ (𝑥) = = 2𝑥.

Ta có nhận xét: 𝑑𝑥 Với 𝑥 = −1, 𝑓 ′ (𝑥) = 𝑓 ′ (−1) = −2. Do 𝑓 ′ (𝑥 = −1) < 0 thì hàm số giảm. Do 𝑓 ′ (𝑥 = 1) > 0 thì hàm số tăng.1 Sự biến thiên của hàm số f(x)=x^2 𝑥 −∞ 0 +∞ −∞ +∞ 𝑓 (𝑥 ) 0 Hình 3.7 Đồ thị hàm số f(x)=x^2 3.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ