Demo xây dựng hệ thống AI nhận diện bệnh da vảy nến (psoriasis) và viêm da cơ địa (eczema)

Nội dung chính

Giới thiệu chung về demo xây dựng hệ thống AI nhận diện bệnh da vảy nến (psoriasis) và viêm da cơ địa (eczema)

Tên project: Demo xây dựng hệ thống AI nhận diện bệnh da vảy nến (psoriasis) và viêm da cơ địa (eczema)

Tác giả: TungVT

Trong lĩnh vực y tế, các mô hình học sâu đang đóng vai trò ngày càng quan trọng trong hỗ trợ chẩn đoán hình ảnh. Đặc biệt với các bệnh da liễu, nơi hình ảnh bề mặt da đóng vai trò quyết định trong việc xác định bệnh, việc ứng dụng AI giúp rút ngắn thời gian nhận diện, tăng khả năng tiếp cận thông tin bệnh học cho cộng đồng.

Dự án “Xây dựng hệ thống AI nhận diện bệnh da vảy nến (psoriasis) và viêm da cơ địa (eczema) – phiên bản demo Google Colab” ra đời từ nhu cầu nghiên cứu một mô hình phân loại bệnh da đơn giản, hoạt động nhanh, có thể chạy thử nghiệm trực tiếp trên Google Colab mà không cần triển khai lên website hay máy chủ chuyên dụng.

Khác với những hệ thống hoàn chỉnh thường yêu cầu backend Python, cơ sở dữ liệu và hạ tầng triển khai, dự án này tập trung hoàn toàn vào quy trình nghiên cứu mô hình:

  • Tự thu thập dữ liệu bằng công cụ tự động hóa.

  • Làm sạch, chuẩn hóa dữ liệu.

  • Huấn luyện mô hình CNN bằng TensorFlow/Keras.

  • Kiểm thử mô hình bằng cách upload ảnh trực tiếp tại Colab.

  • Xuất file mô hình (.keras, .h5, .tfjs) phục vụ nghiên cứu tiếp theo.

Dự án dừng ở mức nghiên cứu – thực nghiệm, chưa triển khai giao diện web và hoàn toàn chạy nội bộ trong môi trường Google Colab.


Demo video

Mục tiêu của dự án

Mục tiêu tổng quát

Xây dựng một mô hình trí tuệ nhân tạo có khả năng nhận diện hai loại bệnh da phổ biến thông qua ảnh:

  • Psoriasis (vảy nến)

  • Eczema (viêm da cơ địa)

Mô hình hướng đến tính nhẹ, nhanh, dễ huấn luyện, dễ kiểm thử, phù hợp cho demo và nghiên cứu tiền khả thi.

Mục tiêu chi tiết

Thu thập dữ liệu hình ảnh ở quy mô vừa

Dữ liệu hình ảnh y tế thường khó tiếp cận, do vậy dự án sử dụng phương pháp tự động thu thập hình ảnh từ các nguồn công khai thông qua công cụ crawling.

Xây dựng mô hình CNN đơn giản nhưng hiệu quả

Mô hình nhắm đến:

  • Kích thước nhỏ

  • Thời gian huấn luyện nhanh

  • Độ chính xác vừa đủ để minh chứng tính khả thi

Kiểm thử mô hình bằng ảnh thực tế

Người dùng có thể upload ảnh bất kỳ vào Google Colab để kiểm chứng kết quả phân loại.

Xuất mô hình cho mục đích mở rộng trong tương lai

Bao gồm:

  • file .keras

  • file .h5

  • bộ mô hình TensorFlow.js dạng model.json + weight.bin


Lý do chọn dự án bệnh da liễu

Tính trực quan

Bệnh da có biểu hiện rõ rệt qua hình ảnh, phù hợp với Computer Vision.

Ít yêu cầu máy móc phức tạp

Không như X-quang, CT hay MRI, hình ảnh da có thể thu thập từ nhiều nguồn.

Tầm quan trọng trong đời sống

Vảy nến và eczema là các bệnh mãn tính phổ biến, ảnh hưởng đến chất lượng cuộc sống của hàng triệu người.

Khả năng mở rộng

Từ hai bệnh cơ bản có thể mở rộng thành hệ thống nhận diện nhiều loại bệnh da khác.


Quy trình dữ liệu của dự án

Dữ liệu là nền tảng của mọi mô hình AI. Dự án này xây dựng một pipeline đơn giản nhưng hiệu quả.


Công cụ thu thập dữ liệu

Selenium WebDriver

Dùng để mô phỏng thao tác người dùng trong trình duyệt, tự động:

  • Tìm kiếm hình ảnh

  • Kéo xuống trang để load thêm

  • Tải ảnh về máy

ChromeDriver

Giúp Selenium điều khiển trình duyệt Chrome cục bộ.

Ưu điểm của quy trình này

  • Tự động hoàn toàn

  • Thu được số lượng lớn ảnh nhanh chóng

  • Có thể chạy lại nhiều lần


Tối ưu hóa dữ liệu sau khi tải

Lọc ảnh lỗi

Một số ảnh có thể:

  • Bị trùng

  • Không phải hình ảnh da

  • Chứa watermark quá lớn
    → Những ảnh này được loại bỏ.

Chuẩn hóa kích thước ảnh

Dự án sử dụng kích thước chuẩn:

  • 224×224 px, RGB

  • Dùng hàm image.load_img()img_to_array()

Chuẩn hóa giá trị pixel

Mọi ảnh được scale về khoảng 0.0 – 1.0, giúp mô hình hội tụ nhanh hơn.


Cấu trúc thư mục dữ liệu

Toàn bộ dataset được tổ chức lại thành:

Vai trò của cấu trúc này

  • Giúp Keras tự động gán nhãn phân loại

  • Dễ dàng chia training và validation

  • Dễ mở rộng sang nhiều loại bệnh khác


Xây dựng mô hình AI bằng TensorFlow/Keras

Lựa chọn mô hình

Dự án sử dụng Convolutional Neural Network (CNN) – một dạng mạng nơ-ron chuyên xử lý ảnh.

Lý do chọn CNN

  • Nhẹ

  • Dễ huấn luyện

  • Ít yêu cầu phần cứng

  • Chạy mượt trên Google Colab Free


Thiết kế kiến trúc mô hình

Lớp convolution

Dùng để trích xuất đặc trưng từ ảnh:

  • cạnh

  • vùng màu

  • họa tiết da

Lớp pooling

Giảm kích thước và tránh overfitting.

Lớp Dense cuối

Dự đoán kết quả:

  • 2 neuron (eczema / psoriasis)

  • Activation: softmax

Optimizer

  • Adam (tối ưu đa năng)

Loss function

  • Categorical Crossentropy

Metric

  • Accuracy


Quá trình huấn luyện

Batch size

32

Epochs

10–20 (tùy thử nghiệm)

Augmentation dữ liệu (nếu dùng)

  • Horizontal flip

  • Zoom

  • Rotation

Kết quả huấn luyện

  • Training accuracy → tăng dần

  • Validation accuracy → ổn định quanh mức khả thi

Đối với dataset nhỏ, mô hình không nhắm tới độ chính xác tuyệt đối mà tập trung vào tính minh chứng.


Kiểm thử mô hình trong Google Colab

Dự án dừng tại bước này – chưa triển khai web.

Kiểm thử bằng upload ảnh thủ công

Người dùng có thể:

  1. Chạy cell files.upload()

  2. Chọn ảnh bất kỳ

  3. Hệ thống tự xử lý ảnh

  4. Mô hình trả về xác suất 2 lớp bệnh

Điều này giúp kiểm chứng:

  • mô hình hoạt động

  • pipeline tiền xử lý chính xác

  • dự đoán đã chính xác với dữ liệu thực


Xuất mô hình cho nghiên cứu tiếp theo

Mặc dù dự án không triển khai website, toàn bộ file mô hình được export để phục vụ hướng phát triển sau này.

Các định dạng đã export

1. File .keras

  • Dành cho huấn luyện tiếp

  • Dễ sử dụng nhất

2. File .h5

  • Tương thích cao

  • Dễ tích hợp vào các framework khác

3. Tệp TensorFlow.js

  • model.json

  • group1-shard1.bin

Cho phép triển khai mô hình chạy trực tiếp trên trình duyệt nếu muốn phát triển giai đoạn sau.


Giới hạn của dự án (do dừng ở mức demo)

Không triển khai web

Chưa xây dựng:

  • giao diện người dùng

  • script TFJS

  • backend xử lý

  • API

  • hệ thống upload ảnh trực tuyến

Dataset còn hạn chế

Chỉ thu thập mức cơ bản, không qua kiểm định y tế.

Mô hình tương đối đơn giản

Chưa thử nghiệm:

  • ResNet

  • MobileNet

  • EfficientNet

  • Transfer Learning thực thụ

Chưa đánh giá mô hình chuyên sâu

Không có:

  • confusion matrix

  • precision/recall

  • F1-score

  • ROC curve


Hướng phát triển trong tương lai

Dự án demo này có thể mở rộng thành một hệ thống hoàn chỉnh:

1. Mở rộng dataset lớn hơn

Có thể dùng:

  • Kaggle

  • Bệnh viện (nếu có sự cho phép)

  • AI-generated images

2. Dùng mô hình mạnh hơn

MobileNet hoặc EfficientNet giúp độ chính xác tăng mạnh.

3. Xây dựng website thật

Hệ thống có thể triển khai bằng:

  • TFJS (chạy trực tiếp trong trình duyệt)

  • Flask API

  • FastAPI + GPU server

  • App Android/iOS

4. Hệ thống chuyên sâu

  • Phát hiện vùng tổn thương da

  • Khoanh vùng bằng Segmentation

  • Gợi ý cấp độ nguy cơ


Kết luận

Dự án “Xây dựng mô hình AI nhận diện bệnh da (psoriasis – eczema) bằng CNN – Demo Google Colab” là một nghiên cứu thử nghiệm mang tính sư phạm và khám phá công nghệ AI y tế.

Mặc dù chưa triển khai website và chỉ dừng ở mức demo chạy trực tiếp trên Google Colab, dự án đã thực hiện đầy đủ các bước quan trọng của một pipeline AI thực thụ:

  • Thu thập dữ liệu tự động

  • Làm sạch và chuẩn hóa dữ liệu

  • Huấn luyện mô hình bằng TensorFlow/Keras

  • Kiểm thử mô hình bằng ảnh người dùng

  • Xuất mô hình phục vụ mở rộng tương lai

Kết quả mô hình chứng minh rằng ngay cả với dataset nhỏ và phần cứng giới hạn, một cá nhân cũng có thể tự triển khai một hệ thống AI phân loại bệnh da đơn giản hoạt động được và có khả năng phát triển thành sản phẩm lớn.

Be the first to comment

Leave a Reply

Your email address will not be published.


*