Tự động phân loại dạng thuốc dựa vào Deep Learning

Automatic Drug Classification based on Deep Learning

Y học đóng một vai trò quan trọng trong cuộc sống hàng ngày, đặc biệt là trong việc điều trị các bệnh khác nhau. Tuy nhiên, việc sử dụng thuốc đúng cách và hiệu quả không phải lúc nào cũng đơn giản. Theo Tổ chức Y tế Thế giới (WHO), 1/3 số ca tử vong liên quan đến thuốc là do sử dụng thuốc không đúng
cách. Với sự tiến bộ nhanh chóng của công nghệ hiện đại, việc phát triển các ứng dụng để xác định và hỗ trợ bệnh nhân xác định chính xác loại thuốc cần thiết không còn là một nhiệm vụ quá khó khăn. Những ứng dụng như vậy không chỉ hỗ trợ xác định loại thuốc phù hợp mà còn hỗ trợ bệnh nhân trong suốt quá trình điều trị. Trong bài báo này, chúng tôi đề xuất xây dựng một hệ thống phân loại hình ảnh bằng cách sử dụng mô hình Vision Transformers (ViTs) nhẹ để nhận dạng viên thuốc. Không giống như các nghiên cứu trước đây sử dụng các mô hình mạng thần kinh tích chập hạng nhẹ (CNN) đã đạt được các cột mốc quan trọng với các mô hình như MobileNets, RepVGG, v.v., chúng tôi đã sử dụng một mô hình kết hợp CNN hạng nhẹ với kiến trúc ViTs, có tên là RepViT. Thí nghiệm được tiến hành trên bộ dữ liệu mới cập nhật từ RxImage của Thư viện Y khoa Quốc gia (NLM) và bộ dữ liệu tự thu thập bao gồm 10 loại thuốc thường được sử dụng trong cuộc sống hàng ngày. Các kết quả thử nghiệm chứng minh rằng mô hình RepViT được đề xuất đã đạt được độ chính xác 93% trên bộ xác thực của tập dữ liệu người tiêu dùng RxIMAGE trong quá trình đánh giá.

TÁC GIẢ

Trương Tiến Thái Dương, Lê Phương Thảo

GIẢNG VIÊN HƯỚNG DẪN

NGÀNH

Năm:

Tổng quan đồ án

Thuốc là cần thiết để hỗ trợ những bệnh nhân có sức khỏe suy giảm hoặc để điều trị các tình trạng khác nhau. Tuy nhiên, việc sử dụng thuốc không phải lúc nào cũng mang lại kết quả hoàn toàn tích cực. Ví dụ như sử dụng quá liều, sử dụng không đúng cách, lạm dụng và đặc biệt là sai sót trong sử dụng thuốc. Đối với những người không phải là bác sĩ hoặc không có kiến thức y khoa, người bình thường rất dễ sử dụng sai thuốc, dẫn đến hậu quả không lường trước được. Theo Tổ chức Y tế Thế giới (WHO), 1/3 số ca tử vong liên quan đến sử dụng thuốc xuất phát từ việc bệnh nhân sử dụng thuốc không đúng cách, với khoảng 1,3 triệu bệnh nhân tử vong hàng năm do sai sót về thuốc.

Vì vậy, nhu cầu về các ứng dụng xác định chính xác thuốc cho bệnh nhân là rất lớn. Dựa trên hình ảnh, ứng dụng nhận dạng thuốc có thể giảm bớt thời gian và công sức mà bệnh nhân bỏ ra để tìm kiếm thông tin về thuốc. Đồng thời, nó có thể giúp các chuyên gia chăm sóc sức khỏe đưa ra quyết định chẩn đoán và điều trị chính xác.

Hiện nay có rất nhiều ứng dụng và hệ thống trực tuyến được sử dụng để nhận dạng hình ảnh viên thuốc. Thư viện Y khoa Quốc gia Hoa Kỳ (NLM) cung cấp hai dịch vụ trực tuyến: DailyMed và Pillbox. DailyMed chủ yếu được sử dụng bởi các chuyên gia chăm sóc sức khỏe. Dịch vụ này hiển thị thông tin nhãn do nhà sản xuất cung cấp, được thu thập dựa trên Mã thuốc quốc gia (NDC) hoặc từ khóa tìm thấy trong các phần khác nhau của nhãn. Pillbox phù hợp hơn với công chúng vì nó hiển thị thông tin dựa trên văn bản đầu vào như hình dạng hoặc màu sắc của viên thuốc. Nhiều trang web cung cấp chức năng tương tự như Pillbox, bao gồm Công cụ nhận dạng viên thuốc RxList, GoodRx, Drugs.com và Công cụ nhận dạng viên thuốc Healthline.

Mặc dù nhận dạng thuốc dựa trên hình ảnh có thể giải quyết được nhiều vấn đề nhưng vẫn có những thách thức khi triển khai ứng dụng. Một ứng dụng phải cung cấp độ chính xác cao và kết quả nhanh khi xác định tên thuốc từ hình ảnh được nhận dạng. Để giải quyết những vấn đề này, bên cạnh việc sử dụng một mô hình phù hợp, việc lựa chọn tập dữ liệu cho phép mô hình khái quát hóa tốt sau khi huấn luyện cũng là một thách thức. Điều này là do hình ảnh do người dùng chụp thường có chất lượng thấp và chứa nhiều yếu tố nhiễu khác nhau, khiến việc nhận dạng và phân loại thuốc chính xác trở nên khó khăn hơn.

Trong dự án này, chúng tôi đề xuất phát triển hệ thống phân loại hình ảnh viên thuốc sử dụng mô hình kết hợp giữa CNN hạng nhẹ và Vision Transformer (ViT) hạng nhẹ, có tên RepViT. Cơ sở lý luận của việc sử dụng mô hình RepViT lai bao gồm:

  • Giống như nghiên cứu truyền thống về phân loại đối tượng trong ảnh, các mô hình CNN nhẹ đã trở thành phương pháp tiếp cận chủ đạo. Tuy nhiên, nhu cầu tính toán của CNN trở thành bất lợi khi triển khai trên các thiết bị di động có hạn chế về tài nguyên.
  • Nếu việc triển khai trên các thiết bị di động có tài nguyên hạn chế là một bất lợi đối với các mô hình CNN nhẹ, thì điểm mạnh của Vision Transformers (ViT) nằm ở việc triển khai chúng trên các thiết bị đó. Một số nghiên cứu đã chỉ ra rằng ViT có thể mang lại kết quả tốt hơn các mô hình CNN nhẹ trong các tác vụ thị giác máy tính như phân loại và phát hiện đối tượng. Tuy nhiên, việc đạt được hiệu suất cao đi kèm với việc tăng số lượng tham số trong ViT, từ đó làm tăng độ trễ của mô hình trên thiết bị di động. Để hạn chế nhược điểm này, một số nghiên cứu đã đề xuất các giải pháp như kết hợp các lớp chập với ViT để tạo ra mô hình ViT nhẹ và quả thực, ViT nhẹ đã chứng tỏ được hiệu suất vượt trội so với CNN.

Mô hình RepViT được đề xuất cho dự án này là sự kết hợp giữa CNN hạng nhẹ và Vision Transformer hạng nhẹ (ViT). Cụ thể, bắt đầu từ MobileNetV3L, một CNN hạng nhẹ tiêu chuẩn, các tác giả đã tích hợp các thiết kế kiến trúc hiệu quả từ các ViT hạng nhẹ để tạo ra một mô hình RepViT mới, thuộc họ hạng nhẹ. CNN. Trước đây, các mô hình CNN hạng nhẹ như MobileNet và VGG16 cho thấy hiệu suất thấp hơn so với ViT hạng nhẹ khi triển khai trên các thiết bị di động có hạn chế về tài nguyên. Tuy nhiên, RepViT mới, một CNN hạng nhẹ, đã chứng tỏ hiệu suất và hiệu quả vượt trội so với các ViT hạng nhẹ hàng đầu hiện nay. Vì vậy, RepViT không chỉ mang lại độ chính xác cao trong việc phân loại đối tượng trong hình ảnh mà còn triển khai thành công trên các thiết bị di động có tài nguyên hạn chế.

Như đã đề cập trước đó, việc chọn một mô hình phù hợp là rất quan trọng, nhưng việc chọn một tập dữ liệu cho phép mô hình khái quát hóa sau khi đào tạo cũng quan trọng không kém. Ở đây, chúng tôi đã sử dụng tập dữ liệu RxIMAGE dùng cho Dự án chụp ảnh tính toán để nhận dạng thuốc tránh thai (C3Pi) và tập dữ liệu mà chúng tôi đã tự thu thập về 10 loại thuốc thường được sử dụng. Cụ thể, bộ dữ liệu RxIMAGE được sử dụng để nghiên cứu trong y học. Nó được chia thành hai loại: Ảnh tham chiếu, được chụp theo cách giống người dùng trong điều kiện ánh sáng yếu và ảnh chụp không rõ nét, và Ảnh người tiêu dùng, là ảnh tiêu chuẩn với tiêu điểm rõ ràng, đủ ánh sáng và viên thuốc được đặt ở trung tâm của hình ảnh. Trong dự án này, chúng tôi đã sử dụng dữ liệu hình ảnh của người tiêu dùng để đào tạo và đánh giá với tỷ lệ phân chia dữ liệu phù hợp.

PHƯƠNG PHÁP THỰC HIỆN

A. Dataset

Dự án Nhiếp ảnh Điện toán để Nhận dạng Thuốc (C3PI) đã tạo cơ sở dữ liệu RxIMAGE gồm các hình ảnh kỹ thuật số chất lượng cao có sẵn miễn phí về thuốc theo toa và dữ liệu liên quan để sử dụng trong việc tiến hành nghiên cứu thị giác máy tính trong tìm kiếm và truy xuất dựa trên văn bản và hình ảnh. Ảnh chụp viên thuốc cho cơ sở dữ liệu RxIMAGE được chụp trong điều kiện ánh sáng trong phòng thí nghiệm, từ máy ảnh ngay phía trên mặt trước và mặt sau của viên thuốc, ở độ phân giải cao và sử dụng kỹ thuật chụp ảnh macro kỹ thuật số chuyên dụng. Các thuật toán phân đoạn hình ảnh sau đó được áp dụng để tạo ra các hình ảnh JPEG trong cơ sở dữ liệu.

  • Reference Images: Chứa 4000 hình ảnh tham khảo. Tập dữ liệu này được ghi lại trong các điều kiện tối ưu như ánh sáng đầy đủ, độ phân giải rõ ràng và viên thuốc được đặt ở giữa trên nền trơn. Mỗi viên có 2 hình: mặt trước và mặt sau.
  • Consumer Images: Bao gồm 133.000 hình ảnh tương ứng với 4.236 loại thuốc. Bộ này mô phỏng điều kiện chụp của người dùng, chụp ảnh trong điều kiện ánh sáng yếu hoặc không rõ nét. Mỗi viên thuốc được chụp ảnh từ nhiều góc độ.

B. Các phương pháp đánh giá hiệu suất

Các thử nghiệm phân loại hình ảnh của chúng tôi được thực hiện trong môi trường được kiểm soát và tối ưu hóa cao để đảm bảo độ tin cậy và khả năng tái tạo của kết quả. Chúng tôi đã sử dụng bộ dữ liệu Dự án chụp ảnh tính toán để nhận dạng viên thuốc (C3PI), chuẩn hóa kích thước hình ảnh thành 224×224 pixel cho cả giai đoạn đào tạo và thử nghiệm. Để tăng cường tập dữ liệu, chúng tôi đã áp dụng nhiều kỹ thuật khác nhau, bao gồm lật ngang, xoay, làm mờ Gaussian, nhiễu Gaussian và điều chỉnh độ sáng. Tập dữ liệu được chia thành các tập con huấn luyện, kiểm tra và xác nhận theo tỷ lệ 7:2:1.

Để tối ưu hóa, chúng tôi đã sử dụng trình tối ưu hóa AdaBelief kết hợp với bộ lập lịch tốc độ học tập CosineAnnealingWarmRestarts, giúp điều chỉnh tốc độ học tập theo tham số, tạo điều kiện hội tụ nhanh hơn và tránh các mức tối thiểu cục bộ. Để nâng cao hơn nữa quá trình đào tạo, chúng tôi đã sử dụng tính năng Dừng sớm để ngăn chặn việc trang bị quá mức và các kỹ thuật Độ chính xác hỗn hợp tự động để tăng tốc tính toán. Môi trường được xây dựng cẩn thận này đảm bảo hiệu suất và độ chính xác tối ưu cho các mô hình phân loại hình ảnh của chúng tôi.

C. Số liệu và môi trường thử nghiệm

Về số liệu thử nghiệm, độ phức tạp của mô hình được đánh giá thông qua GMAC (Các phép toán tích lũy nhân Giga), FLOPS (Các phép toán dấu phẩy động mỗi giây) và số lượng Tham số, như được nêu chi tiết trong bảng. Điểm chính xác, thu hồi và điểm F1 được sử dụng để đánh giá hiệu suất phát hiện, trong khi ACC (Độ chính xác) đóng vai trò là thước đo hiệu suất bổ sung. Hơn nữa, chỉ số Độ trễ, được biểu thị bằng FPS (Khung hình trên giây), đo thời gian mà mô hình cần để xử lý một truy vấn, từ đó ước tính hiệu suất thời gian chạy của nó.

Đối với môi trường thử nghiệm, chúng tôi đã sử dụng hai máy chủ đám mây riêng trong nghiên cứu này. Cả hai máy chủ đều xử
lý giai đoạn huấn luyện và đánh giá hiệu suất nhận dạng của tất cả các mô hình đã chọn. Ngoài ra, bo mạch nhúng Raspberry Pi 4 được sử dụng để ước tính khả năng tương thích khi triển khai các mô hình trên các thiết bị có nguồn lực hạn chế. Thông số kỹ thuật chi tiết cho tất cả các thiết bị được cung cấp trong bảng I:

image 211

D. Xây dựng và triển khai ứng dụng

Sử dụng các ngôn ngữ như NodeJS, Python, Java, v.v. để triển khai máy chủ và tạo API để triển khai mô hình lên máy chủ. Khi lưu trữ mô hình trên máy chủ, mô hình phải ở định dạng thích hợp (ví dụ: tệp .pth nếu sử dụng thư viện PyTorch). Cấu hình API: Sau khi triển khai máy chủ, hãy định cấu hình API để chấp nhận yêu cầu từ máy khách và gọi mô hình để xử lý. Ví dụ: định cấu hình API để chấp nhận các yêu cầu bằng phương thức POST, với dữ liệu đầu vào là tệp hình ảnh và trả về kết quả dự đoán của mô hình.

Lời gọi mẫu: Gọi mô hình để dự đoán loại thuốc trong ảnh. Việc gọi mô hình có thể được thực hiện bằng các thư viện như Keras, TensorFlow hoặc PyTorch.

Kết quả trả về: Sau khi mô hình xử lý xong hình ảnh, trả về kết quả dự đoán cho client thông qua API. Kết quả sẽ hiển thị trên giao diện ứng dụng.

image 212

THỬ NGHIỆM VÀ ĐÁNH GIÁ

image 213
image 214

Sau khi tiến hành thử nghiệm huấn luyện trên tập hợp con người tiêu dùng của bộ dữ liệu RxIMAGE, mô hình RepViT đã đạt được độ chính xác 93%. Chúng tôi đã so sánh các mô hình khác nhau trên cùng một tập dữ liệu RxIMAGE với 10 lớp, đánh giá chúng dựa trên hai chỉ số: Số khung hình mỗi giây (FPS) và Độ chính xác. Các kết quả được tóm tắt trong bảng. Phân tích kết quả về độ chính xác, các mô hình RepViT (RepViT_m1 và RepViT_m2) cho thấy hiệu suất cao với độ chính xác lần lượt là 84% và 87%, trong khi vẫn duy trì số lượng tham số tương đối thấp là 6,8M và 8,8M.

Về tốc độ dự đoán, model RepViT_m1 và RepViT_m2 lần lượt đạt 3,70 FPS và 2,54 FPS, xếp vào nhóm top model về tốc độ xử lý. Những kết quả này chứng minh rằng các mô hình RepViT được đề xuất của chúng tôi hoạt động tốt trong việc xác định hình ảnh viên thuốc, mang lại sự cân bằng giữa độ chính xác và tốc độ dự đoán. Sự cân bằng giữa độ chính xác cao và tốc độ xử lý nhanh là lý do chính để chọn mô hình RepViT cho nhiệm vụ này.

Ứng dụng kiến trúc RepViT

image 215
image 216

Kết quả

Trong bài báo này, chúng tôi đã đề xuất một hệ thống phân loại hình ảnh thuốc dựa trên hình dạng, màu sắc, v.v. Để tạo ra một bộ dữ liệu toàn diện, chúng tôi đã lọc dữ liệu tải về để tránh các hình ảnh bị lỗi và cân bằng số lượng hình ảnh trong mỗi danh mục trong bộ dữ liệu RxIMAGE. Sau đó, chúng tôi đã huấn luyện các mô hình, đánh giá chúng, và chọn mô hình tốt nhất, RepViT, để triển khai ứng dụng. Kết quả cho thấy mô hình đạt độ chính xác dự đoán 93% trên tập kiểm tra của bộ dữ liệu RxIMAGE, chứa 4,236 loại thuốc khác nhau. Chúng tôi đã so sánh kết quả của các mô hình với RepViT với các mô hình ViT nhẹ trên cùng bộ dữ liệu RxIMAGE với 10 loại thuốc khác nhau. Về tốc độ nhận diện, nó xếp hạng Top 3 trong số các mô hình trong Bảng 2, và đạt độ chính xác cao nhất là 87%. Cuối cùng, chúng tôi hy vọng ứng dụng này sẽ hữu ích cho mọi người trong việc sử dụng đúng thuốc, từ đó có thể giảm số lượng tử vong hàng năm trên toàn thế giới.