Bối cảnh và vấn đề nghiên cứu

Ung thư da là một trong những bệnh lý nghiêm trọng có xu hướng gia tăng trên toàn cầu. Việc phát hiện sớm các tổn thương da đóng vai trò quyết định trong việc nâng cao tỷ lệ sống sót cũng như hiệu quả điều trị cho bệnh nhân. Trong thực tiễn y khoa, chẩn đoán truyền thống chủ yếu dựa vào việc bác sĩ chuyên khoa quan sát, phân tích các đặc điểm lâm sàng như màu sắc, hình dạng, kích thước của nốt ruồi hoặc khối u dưới kính soi da. Phương pháp này đòi hỏi chuyên môn cao, tốn nhiều thời gian và có thể chịu ảnh hưởng bởi yếu tố chủ quan.

Trước thực trạng đó, việc ứng dụng trí tuệ nhân tạo, cụ thể là mạng nơ-ron tích chập (Convolutional Neural Network - CNN), mang lại giải pháp tự động hóa quá trình trích xuất đặc trưng không gian phức tạp từ hình ảnh da liễu mà mắt thường khó nhận biết chính xác. Hệ thống có khả năng xử lý lượng lớn dữ liệu hình ảnh trên các hệ thống tính toán hiệu năng cao, giúp giảm thiểu thời gian chẩn đoán và giảm tải áp lực cho đội ngũ y tế.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài gồm:

  1. Nghiên cứu tổng quan về cơ sở lý thuyết xử lý ảnh số, các phương pháp trích chọn đặc trưng và các kỹ thuật học máy, học sâu.
  2. Tìm hiểu kiến trúc, nguyên lý hoạt động của mạng nơ-ron tích chập (CNN) và ứng dụng trong chẩn đoán hình ảnh y tế.
  3. Thu thập, phân tích và tiền xử lý bộ dữ liệu ảnh soi da HAM10000 (loại bỏ trùng lặp, xử lý giá trị khuyết thiếu, giảm kích thước ảnh, mã hóa nhãn).
  4. Xây dựng, huấn luyện mô hình CNN phân loại 7 nhóm tổn thương da, tối ưu hóa các tham số và đánh giá hiệu suất mô hình.
  5. Thực hiện kiểm thử chương trình nhằm đảm bảo tính chính xác và độ tin cậy của giải pháp phần mềm.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Hình ảnh soi da thuộc 7 nhóm tổn thương sắc tố da phổ biến cùng các thuộc tính lâm sàng đi kèm trong bộ dữ liệu chuẩn.
  • Phạm vi dữ liệu: Bộ dữ liệu The HAM10000 dataset gồm 10.015 bản ghi hình ảnh y tế.
  • Phạm vi thực hiện: Báo cáo học phần Đồ án chuyên ngành (mã lớp: 20231IT6052001), thực hiện tại Khoa Công nghệ Thông tin – Trường Đại học Công nghiệp Hà Nội năm 2023.

Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa lý thuyết xử lý ảnh truyền thống và kỹ thuật học sâu hiện đại để giải quyết bài toán nhận dạng mẫu trong y tế:

Khung lý thuyết xử lý ảnh và trích xuất đặc trưng

  • Biểu diễn ảnh số: Ảnh số được biểu diễn dưới dạng ma trận hai chiều của các điểm ảnh (pixel) với mức xám nằm trong khoảng từ 0 đến 255. Các định dạng ảnh được xem xét bao gồm ảnh màu RGB (3 kênh màu), ảnh đa mức xám và ảnh nhị phân (chuyển đổi qua ngưỡng $T$).
  • Kỹ thuật trích chọn đặc trưng hình ảnh:
    • Đặc trưng màu sắc: Sử dụng biểu đồ tần số mức xám/màu (Histogram) và vector liên kết màu (Color Coherence Vector - CCV) để phân loại điểm ảnh liên kết và không liên kết.
    • Đặc trưng kết cấu (Texture): Phân tích thông qua ma trận đồng hiện (Co-occurrence Matrix), biến đổi Wavelet và bộ lọc Gabor để nắm bắt cấu trúc không gian và tần số của vùng tổn thương.
    • Đặc trưng hình dạng: Sử dụng lược đồ hệ số góc (Edge Direction Histogram gồm 73 phần tử) và vector liên kết hệ số góc (Edge Direction Coherence Vector) để xác định đường biên và diện tích tổn thương.

Mô hình học máy và học sâu

  • Học máy truyền thống: Khái quát về các nhánh học có giám sát (Supervised Learning), học không giám sát (Unsupervised Learning) và học tăng cường (Reinforcement Learning); các mô hình nền tảng như Hồi quy tuyến tính (Linear Regression) và Hồi quy Logistic (Logistic Regression) sử dụng hàm Logit để ước lượng xác suất phân loại nhị phân.
  • Mạng nơ-ron nhân tạo: Kiến trúc Perceptron đa tầng (Multilayer Perceptron - MLP) gồm tầng đầu vào (Input layer), các tầng ẩn (Hidden layers) và tầng đầu ra (Output layer) với các hàm kích hoạt phi tuyến.
  • Mạng nơ-ron sâu (Deep Neural Network - DNN): Mạng có nhiều tầng ẩn kết nối đầy đủ, cho phép trích xuất đặc trưng từ mức độ thấp đến mức độ trừu tượng cao trên các tập dữ liệu phi cấu trúc phức tạp.

Nguồn dữ liệu và phương pháp thực nghiệm

  • Nguồn dữ liệu: Sử dụng bộ dữ liệu chuẩn "The HAM10000 dataset" thu thập từ nền tảng Kaggle, bao gồm 10.015 ảnh soi da được lưu trữ trong 2 thư mục (HAM10000_images_part_1, HAM10000_images_part_2) kèm tệp siêu dữ liệu HAM10000_metadata.csv.
  • Phương pháp nghiên cứu: Tiến hành phân tích khám phá dữ liệu (EDA), áp dụng các kỹ thuật xử lý dữ liệu bảng và dữ liệu hình ảnh, xây dựng mạng nơ-ron tích chập CNN, thực nghiệm huấn luyện và đánh giá trên môi trường điện toán đám mây.

Thiết kế và triển khai

Đồ án được tổ chức theo quy trình kỹ thuật hoàn chỉnh từ khâu chuẩn bị môi trường, tiền xử lý dữ liệu, thiết kế kiến trúc mạng đến huấn luyện và theo dõi mô hình.

Môi trường và công nghệ thực nghiệm

  • Môi trường thực thi: Nền tảng Google Colaboratory (Colab) cung cấp máy chủ ảo hỗ trợ GPU/TPU, giao diện tương tác Jupyter Notebook và liên kết trực tiếp với Google Drive để lưu trữ dữ liệu và mô hình.
  • Thư viện lập trình: Ngôn ngữ Python với các thư viện chuyên dụng:
    • NumPy, Math: Tính toán ma trận số học và các phép toán đại số tuyến tính.
    • Pandas: Thao tác cấu trúc dữ liệu bảng (DataFrame), lọc bản ghi và tiền xử lý siêu dữ liệu.
    • Matplotlib.pyplot, Seaborn: Trực quan hóa dữ liệu thống kê và biểu đồ phân phối.
    • Keras (chạy trên nền TensorFlow): Xây dựng lớp mạng nơ-ron, hàm kích hoạt, tối ưu hóa và huấn luyện mô hình.
    • OS, Itertools, io: Quản lý đường dẫn tệp tin, biến môi trường và xử lý vòng lặp dữ liệu.

Kiến trúc mạng nơ-ron tích chập (CNN)

Mô hình CNN được thiết kế gồm các thành phần chính:

  • Lớp tích chập (Convolutional Layer): Thực hiện tích chập ma trận hình ảnh đầu vào với các bộ lọc (filters) để tạo ra các bản đồ đặc trưng (Feature maps).
  • Hàm kích hoạt ReLU (Rectified Linear Unit): Áp dụng hàm phi tuyến tính biến đổi các giá trị pixel âm về 0, giúp tăng tốc độ huấn luyện và giảm thiểu sai số.
  • Lớp Pooling (Max-Pooling): Giảm kích thước không gian của bản đồ đặc trưng bằng cách lấy giá trị lớn nhất trong từng vùng lân cận, giúp giảm số lượng tham số tính toán và kiểm soát hiện tượng quá khớp (Overfitting).
  • Lớp kết nối đầy đủ (Fully Connected Layer): Thực hiện làm phẳng (Flatten) dữ liệu đa chiều thành vector một chiều và kết nối toàn bộ các nơ-ron, kết hợp với hàm kích hoạt Softmax ở tầng cuối để tính toán phân phối xác suất dự đoán cho 7 lớp tổn thương da.

Quy trình tiền xử lý dữ liệu

  1. Làm sạch dữ liệu: Phân tích tệp metadata cho thấy chỉ có 7.470 định danh tổn thương duy nhất (lesion_id). Nhóm tác giả sử dụng phương thức drop_duplicates trên cột lesion_id để loại bỏ các ảnh trùng lặp của cùng một tổn thương. Kiểm tra giá trị khuyết thiếu phát hiện 52 bản ghi bị thiếu thông tin ở cột tuổi (age), các giá trị này được điền bằng giá trị trung bình của độ tuổi thông qua hàm fillna().
  2. Thay đổi kích thước ảnh: Nhằm tối ưu dung lượng bộ nhớ và tăng tốc độ xử lý khi huấn luyện, toàn bộ ảnh được thu nhỏ kích thước với tỷ lệ giảm 0,25 (chiều rộng và chiều cao giảm 4 lần so với ảnh gốc).
  3. Tách biến và mã hóa nhãn: Tách tập dữ liệu thành biến đặc trưng đầu vào (features) và biến mục tiêu (target). Sử dụng hàm to_categorical trong keras.utils để chuyển đổi nhãn cell_type_idx thành dạng mã hóa one-hot vector có độ dài tương ứng với 7 lớp phân loại.

Thiết lập huấn luyện và hàm tùy biến

  • Custom Callback: Xây dựng lớp TimeHistory(Callback) để theo dõi và ghi lại thời gian thực thi chính xác của từng epoch trong quá trình huấn luyện.
  • Tham số huấn luyện: Sử dụng hàm model.fit_generator kết hợp với kỹ thuật tăng cường dữ liệu augmented_data.flow, thiết lập kích thước batch (batch_size = 10), số epoch huấn luyện (epochs = 50), số bước mỗi epoch (steps_per_epoch = len(x_train_normalized) / 10), tích hợp trọng số lớp (class_weight = class_weights) để xử lý hiện tượng mất cân bằng dữ liệu, cùng các callback reduce_lr và csv_logger.

Nội dung chính theo từng chương

Chương I. Tổng quan về đề tài và cơ sở lý thuyết

Chương này thiết lập nền tảng lý luận cho toàn bộ đề tài. Tác giả trình bày tính cấp thiết của việc phát hiện sớm tổn thương da và vai trò của học sâu trong thị giác máy tính. Nội dung đi sâu vào các khái niệm cốt lõi của ảnh số (pixel, mức xám, không gian màu, lược đồ Histogram, nhị phân hóa ảnh), các phương pháp trích chọn đặc trưng cổ điển (màu sắc qua lược đồ và CCV, kết cấu qua ma trận đồng hiện và biến đổi Wavelet/Gabor, hình dạng qua lược đồ góc cạnh). Đồng thời, chương 1 khái quát lịch sử phát triển của trí tuệ nhân tạo từ năm 1943 (Warren McCulloch và Walter Pitts), các thuật toán học máy cơ bản (Linear Regression, Logistic Regression) và kiến trúc mạng nơ-ron nhân tạo đa tầng MLP.

Chương 2. Kỹ thuật học sâu CNN trong chẩn đoán bệnh

Chương 2 tập trung giới thiệu chi tiết về bộ dữ liệu The HAM10000 dataset thu thập từ Kaggle với hơn 10.000 ảnh soi da của 7 loại bệnh lý:

  • Nốt ruồi hắc tố (Melanocytic nevi - nv)
  • Ung thư hắc tố da (Melanoma - mel)
  • Dày sừng tổn thương lành tính (Benign keratosis-like lesions - bkl)
  • Ung thư biểu mô tế bào đáy (Basal cell carcinoma - bcc)
  • Bệnh dày sừng ánh sáng (Actinic keratoses - akiec)
  • Tổn thương mạch máu (Vascular lesions - vasc)
  • U sợi bì (Dermatofibroma - df)

Tệp HAM10000_metadata.csv chứa 10.015 bản ghi với các trường thông tin: lesion_id, image_id, dx, dx_type, age, sex, localization. Chương 2 cũng trình bày chi tiết nguyên lý hoạt động của từng lớp trong mạng CNN (Convolution, ReLU, Pooling, Fully Connected) và thiết lập môi trường thực nghiệm trên Google Colab cùng các thư viện mã nguồn mở Python.

Chương 3. Thực nghiệm, kết quả nghiên cứu

Nội dung chương 3 ghi lại toàn bộ quá trình thực nghiệm. Tác giả trình bày kết quả khám phá dữ liệu:

  • Phân bố bệnh lý: Tồn tại sự mất cân bằng dữ liệu lớn, trong đó lớp Melanocytic nevi (nv) chiếm số lượng áp đảo.
  • Loại định danh chẩn đoán (dx_type): Phần lớn các trường hợp được xác thực kỹ thuật thông qua sinh thiết mô bệnh học (histo) hoặc theo dõi định kỳ (follow-up).
  • Vị trí tổn thương (localization): Xuất hiện nhiều nhất ở vùng lưng, chi dưới và thân mình.
  • Đặc điểm nhân khẩu học: Độ tuổi mắc bệnh tập trung nhiều nhất từ 35 đến 70 tuổi; tỷ lệ phân bố giữa nam và nữ tương đối đồng đều.

Chương này trình bày chi tiết việc cài đặt các hàm đánh giá sai số và độ chính xác: hàm tính sai số toàn phương trung bình (MSE), căn bậc hai sai số toàn phương trung bình (RMSE), sai số phần trăm tuyệt đối trung bình (MAPE), ma trận nhầm lẫn (Confusion Matrix) và báo cáo phân loại (Classification Report gồm Precision, Recall, F1-Score, Support, Macro Avg, Weighted Avg).

Chương 4. Kiểm thử chương trình

Chương 4 hệ thống hóa các khái niệm về kiểm thử phần mềm, phân loại các mức độ và phương pháp kiểm thử được áp dụng cho chương trình phân loại tổn thương da. Nội dung bao gồm việc kiểm tra tính ổn định của các hàm xử lý dữ liệu, khả năng dự đoán của mô hình khi tiếp nhận ảnh đầu vào mới, và đánh giá kết quả kiểm thử trên các tập dữ liệu độc lập nhằm đảm bảo phần mềm hoạt động chính xác theo thiết kế.

Kết quả và đóng góp

Kết quả định lượng

Mô hình CNN được đánh giá toàn diện trên cả 3 tập dữ liệu (huấn luyện, xác thực và kiểm thử). Các chỉ số đạt được cụ thể như sau:

Tập dữ liệu Độ chính xác (Accuracy) Hàm mất mát (Loss) Ghi chú đánh giá
Tập huấn luyện (Training Set) ~78,20% Đạt mức hội tụ tốt Học hiệu quả các đặc trưng không gian
Tập xác thực (Validation Set) ~78,20% 0,6547 Giá trị mất mát thấp hơn tập huấn luyện, không bị overfit nặng
Tập kiểm thử (Test Set) ~78,05% Chênh lệch không đáng kể Khả năng tổng quát hóa ổn định trên dữ liệu mới

Phân tích chi tiết ma trận nhầm lẫn (Confusion Matrix) trên tập kiểm thử cho thấy:

  • Nhãn dự đoán chính xác nhiều nhất: Nhãn nv (Melanocytic nevi) đạt 1.055 mẫu dự đoán đúng, do chiếm tỷ trọng mẫu lớn trong tập dữ liệu gốc.
  • Nhãn có độ sai lệch cao nhất: Nhãn bkl (Benign keratosis-like lesions) với 108 trường hợp bị phân loại nhầm sang các nhóm tổn thương khác.

Đóng góp của đề tài

  1. Xây dựng hoàn chỉnh quy trình xử lý dữ liệu ảnh y tế: Đưa ra giải pháp làm sạch dữ liệu trùng lặp lesion_id từ 10.015 bản ghi xuống 7.470 tổn thương duy nhất, điền khuyết thiếu dữ liệu lâm sàng và nén ảnh tỷ lệ 0,25 giúp giảm tải tài nguyên tính toán.
  2. Tích hợp bộ công cụ đánh giá đa chiều: Xây dựng các hàm tự định nghĩa tính toán đồng thời các chỉ số thống kê (RMSE, MSE, MAPE), chỉ số phân loại (Precision, Recall, F1-Score) và cơ chế theo dõi thời gian qua lớp TimeHistory.
  3. Ứng dụng thực tiễn: Cung cấp bằng chứng thực nghiệm về tính khả thi của mạng nơ-ron tích chập trong việc hỗ trợ sàng lọc và phân loại 7 dạng tổn thương sắc tố da, làm cơ sở cho việc phát triển các ứng dụng y tế thông minh và chẩn đoán từ xa.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên phạm vi và nội dung thực nghiệm được trình bày trong văn bản, đề tài còn một số hạn chế:

  • Hiện tượng mất cân bằng dữ liệu: Số lượng mẫu giữa các nhóm bệnh lý có sự chênh lệch lớn (lớp nv chiếm đa số), dẫn đến độ chính xác phân loại của một số lớp thiểu số (như bkl) còn hạn chế.
  • Giảm kích thước ảnh: Việc nén kích thước ảnh xuống 4 lần (hệ số 0,25) giúp tăng tốc độ huấn luyện nhưng có thể làm giảm bớt các chi tiết kết cấu vi mô ở đường biên tổn thương.

Hướng nghiên cứu tiếp theo được nhóm tác giả đề xuất:

  • Cải tiến kiến trúc mạng học sâu, thử nghiệm các mô hình nơ-ron tiên tiến hơn hoặc kết hợp các kỹ thuật Transfer Learning.
  • Nghiên cứu áp dụng các phương pháp cân bằng dữ liệu chuyên sâu để cải thiện độ nhạy trên các nhóm bệnh lý hiếm.
  • Tích hợp mô hình vào ứng dụng di động hoặc thiết bị hỗ trợ chẩn đoán da liễu tại chỗ phục vụ công tác chăm sóc sức khỏe cộng đồng.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, Khoa học dữ liệu, Trí tuệ nhân tạo đang thực hiện đồ án chuyên ngành hoặc khóa luận tốt nghiệp về xử lý ảnh y tế.
  • Các nhà phát triển phần mềm y tế cần tham khảo quy trình tiền xử lý bộ dữ liệu HAM10000, xử lý ảnh trùng lặp và phân tích siêu dữ liệu lâm sàng bằng Pandas và Seaborn.
  • Người học deep learning muốn tham khảo cách xây dựng các hàm kiểm thử, hàm tính toán sai số hồi quy/phân loại (RMSE, MSE, MAPE) và custom callback theo dõi thời gian huấn luyện trong Keras.

Câu hỏi thường gặp

1. Bộ dữ liệu HAM10000 được sử dụng trong đồ án có đặc điểm gì và bao gồm những loại tổn thương nào?
Bộ dữ liệu gồm 10.015 bản ghi hình ảnh soi da thu thập từ Kaggle, được gán nhãn thuộc 7 loại tổn thương sắc tố da: Melanocytic nevi (nv), Melanoma (mel), Benign keratosis-like lesions (bkl), Basal cell carcinoma (bcc), Actinic keratoses (akiec), Vascular lesions (vasc) và Dermatofibroma (df). Tệp metadata đi kèm cung cấp các thuộc tính lesion_id, image_id, dx, dx_type, age, sex, localization.

2. Nhóm tác giả đã thực hiện các bước làm sạch dữ liệu nào trước khi huấn luyện?
Nhóm đã sử dụng phương thức drop_duplicates trên cột lesion_id để lọc bỏ các ảnh chụp trùng lặp ở các góc độ khác nhau của cùng một tổn thương, giảm từ 10.015 ảnh xuống 7.470 tổn thương duy nhất. Ngoài ra, 52 giá trị bị thiếu ở cột age đã được điền bằng giá trị độ tuổi trung bình qua phương thức fillna(inplace=True).

3. Vì sao kích thước hình ảnh phải thay đổi và tỷ lệ thay đổi là bao nhiêu?
Do kích thước ảnh gốc lớn gây tốn bộ nhớ và kéo dài thời gian huấn luyện trên tập dữ liệu hơn 10.000 ảnh, nhóm tác giả đã giảm kích thước chiều rộng và chiều dài ảnh theo hệ số 0,25 (nhỏ hơn 4 lần so với ảnh gốc) trước khi đưa vào mảng dữ liệu huấn luyện.

4. Kết quả phân loại của mô hình trên tập kiểm thử (test set) đạt được như thế nào?
Mô hình CNN đạt độ chính xác (Test Set Accuracy) khoảng 78,05% với giá trị hàm mất mát chênh lệch không đáng kể so với tập huấn luyện. Trên ma trận nhầm lẫn, nhãn nv được dự đoán đúng nhiều nhất (1.055 mẫu) và nhãn bkl có số lượng dự đoán sai nhiều nhất (108 mẫu).

5. Nhóm tác giả theo dõi thời gian huấn luyện qua các epoch bằng cách nào?
Nhóm đã xây dựng lớp tùy biến TimeHistory(Callback) kế thừa từ thư viện Keras. Lớp này ghi lại thời gian thực thi sau mỗi epoch vào một danh sách, cho phép thống kê và kiểm tra tổng thời gian đào tạo sau khi hoàn tất.

Kết luận

Báo cáo học phần Đồ án chuyên ngành "Phân loại tổn thương da bằng CNN" của nhóm sinh viên Trường Đại học Công nghiệp Hà Nội đã thực hiện thành công việc ứng dụng mạng nơ-ron tích chập vào phân loại 7 nhóm bệnh lý da liễu trên bộ dữ liệu chuẩn HAM10000. Đề tài xây dựng hoàn chỉnh quy trình kỹ thuật từ làm sạch dữ liệu, xử lý ảnh, thiết kế kiến trúc CNN đến kiểm thử và đánh giá đa chỉ số với độ chính xác đạt trên 78%. Kết quả nghiên cứu chứng minh tiềm năng ứng dụng của thị giác máy tính trong y tế và tạo nền tảng thuận lợi cho các hướng phát triển hệ thống chẩn đoán hỗ trợ bác sĩ trong tương lai.