1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Ứng dụng kỹ thuật máy học để trích xuất thông tin toa thuốc từ ảnh chụp

96 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Kỹ Thuật Máy Học Để Trích Xuất Thông Tin Toa Thuốc Từ Ảnh Chụp
Tác giả Nguyen Quoc Vuong, Vo Quoc Viet
Người hướng dẫn TS. Doan Duy
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Máy Tính
Thể loại Khóa Luận Tốt Nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 96
Dung lượng 34,47 MB

Nội dung

Ảnh chụp từ người dùng sẽ được gửi qua API đến serverFastAPI, từ đó server sẽ sử dụng mô hình Yolov8 đã được huấn luyện từ một tậpkhoảng hơn 1400 bức ảnh cho tác vụ phát hiện vùng đơn th

Trang 1

ĐẠI HOC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TINH

NGUYEN QUOC VUONG - 20522172

VO QUOC VIET - 20522155

KHOA LUAN TOT NGHIEP

UNG DUNG KY THUAT MAY HOC DE TRICH XUAT

THONG TIN TOA THUOC TU ANH CHUP

APPLYING MACHINE LEARNING TECHNIQUES TO EXTRACT MEDICAL INFORMATION FROM IMAGE OF

PRESCRIPTION

CU NHAN NGANH KY THUAT MAY TINH

GIANG VIEN HUONG DAN

TS DOAN DUY

TP HO CHÍ MINH, 2024

Trang 2

LỜI CẢM ƠN

Trong suốt quá trình 4 năm học đại học, chúng tôi tự nhận thấy mình thực

sự may mắn khi nhận được sự giảng dạy và giúp đỡ nhiệt tình của quý Thầy Cô

trường Đại học Công nghệ Thông tin - ĐHQG TPHCM Bởi vậy, chúng tôi mới

có thể vượt qua rất nhiều khó khăn thử thách và có được những bài học bồ ích

dé nâng cao kiến thức cũng như phát triển bản thân

Chúng tôi xin gửi gam những lời cảm ơn chân thành nhất đến toàn thé quýThay Cô trường Đại học Công nghệ Thông Tin - ĐHQG TPHCM vì sự tận tâm va

lòng nhiệt thành trong công việc giảng dạy đến cho biết bao thế hệ sinh viên như

chúng tôi Đặc biệt hơn cả, chúng tôi muốn cảm ơn TS Doan Duy — người đã luônbên cạnh đồng hành và hết lòng giúp đỡ chúng tôi trong suốt quá trình thực hiện

khóa luận tốt nghiệp này Dù cho có gặp bao nhiêu khó khăn và thử thách trong

khóa luận thì Thầy vẫn luôn đồng hành và đưa ra cho chúng tôi những ý tưởng vàcách làm đột phá dé chúng tôi có thé hoàn thành khóa luận

Ngoài ra, chúng tôi cũng xin chân thành cảm ơn ThS Nguyễn Thanh Thiện

là cán bộ phản biện khóa luận tốt nghiệp và Hội đồng bảo vệ đã đưa ra những góp ýquý báu để giúp cho chúng tôi có thê hoàn thiện hơn khóa luận của mình

Tóm lại, chúng tôi xin chân thành cảm ơn toàn thé quý Thầy Cô trường Daihọc Công nghệ Thông tin - ĐHQG TPHCM nói chung và quý Thầy Cô Khoa Kỹ

thuật máy tính nói riêng vì những kiến thức quý giá mà chúng tôi đã được đón nhận

trong suốt 4 năm học Kính mong quý Thay Cô luôn mạnh khỏe dé tiếp tục giảngdạy cho những thế hệ sinh viên tiếp theo

TP Hồ Chí Minh, tháng 07 năm 2024

Trang 3

MỤC LỤC

Chương 1 TÔNG QUAN DE TÀI - 2-2 2S£2S£+E£2E++E£EE£E+ErErrerrerree 2

1.1 Lý đo chọn đề tài -:- 5c StEx2ExEEEEEEE1211211211211211211 211211112111 tre 2

1.2 Một số công trình nghiên cứu liên quan 2 2 2+s£+s++sz+szxezxzxzez 3

1.3 Mục tiêu của đề tài -ccccc 2tr 4

1.4 Pham vi nghiên CỨU - - << ST TH TH 5

1.5 Phương pháp tiếp cận bài toán - ¿5+ ©2++2EE+EEE+EEESEE+erkesrkeerkerred 5

Chương2 CƠ SỞ LÝ THUYÊT 2-©22- E+2E2EE£EE£EEEEEEEEEEEEEEEEerkerrrrree 6

2.1 Tổng quan về trí tuệ nhân tạO ¿©2525 S+EE+EE£EE£EE£EE£EEEEEEEEEEEEEkrrerreree 6

2.1.1 Mô hình trí tuệ nhân tạo là gì -.- 5 55 5c +Se*+srserserrrrsrrrrrke 6 2.1.2 Mô hình máy học là gì - - + + E333 EEeeEseeeeeereeserrrereree 7 2.1.3 Mô hình Deep learning là gÌ - - 5 6 + *+sssksreskesske 8

2.2 Phát hiện vùng chứa đơn thuốc trên ảnh chụp -2- s2 se: 9

2.2.1 Các mô hình trí tuệ nhân tạo được sử dụng trong bài toán phát hiện

đối tượng TnỌxx««<e 9

2.2.2 _ Lý do lựa chọn mô hình Yolov8-seg loại n cho bài toán phát hiện

vùng chứa đơn thuốc trên ảnh chụp -. -¿- 2 ©+2©++2+++2x++zx++zxzzxrzrxez 122.3 Xác định vùng chứa chữ và trích xuất thông tỉn - 2-2 25s +2 17

2.3.1 Các mô hình trí tuệ nhân tạo được sử dụng cho bài toán nhận diện và

trich xUAt VAN DAN 1 17

2.3.2 Ly do chon Yolov8 cho bài toán phát hiện vùng chứa chữ va nhận dang, phân loại ký tự (text detection, text recOgnitiON) - 7-5 «<< «+55 20 2.4 Hệ quan tri cơ sở dữ liỆu Va S€TVT - -G SG 1v vn re 23

2.4.1 _ Hệ quản trị cơ sở dữ liệu là gì - - 5 S5 S+xssrseerrersrereersee 23

Trang 4

2.4.2 Lý do lựa chọn MongoDB đề làm hệ quản trị cơ sở dữ liệu 23

2.4.3 Lý do cần phải khai thác cơ sở dif liệu tên thuốc - 24

2.4.4 Lý do lựa chọn FastAPI dé làm server APPI - - 5+ cs+sczxcxez 25

Chương 3 PHƯƠNG PHAP THUC HIEN 2: 5¿©52+c++cszxserxez 27

3.1 Xây dựng kiến trúc hệ thống ¿- 2¿©+¿©+2++x++rx++rxezrxrsrxrrrree 273.2 Bài toán xác định vùng chứa thuốc trên ảnh chụp - 2-2 s22 29

3.2.1 Xây dựng bộ dữ liệu dé chuẩn bị cho việc huấn luyện mô hình 29

3.2.2 _ Phương pháp huấn luyện mô hình Yolov8-seg loại n 30

3.3 Bài toán xác định chữ và trích xuất thông tin 2-2 2 z+czzszzse2 33

3.3.1 Xây dựng bộ dữ liệu đầu vào cho bài toán phát hiện vùng chứa chữ

(Text Detection) @ ⁄2 ấc À, LẤU LH 1g xe 34

3.3.2 Huấn luyện mô hình phát hiện vùng chứa chữ (Text Detection) 373.3.3 Xây dựng bộ dữ liệu đầu vào cho bài toán nhận dạng, phân loại ký tự

(Text Recognition) 00 aaaẳaẳđaẳũiủũ 40

3.3.4 Huan luyén m6 hinh nhan dang, phan loai ky tu (Text Recognition)

"1" Ẩằằ 43

3.3.5 Kết hợp các mô hình và xử lý thông tin - 2 22z+cz+sz+sz 443.4 Xây dựng hệ quan tri cơ sở dt liệu va thiết ké S€TVT - ¿+ +cssx+cszs 53

3.4.1 Xây dựng hệ quan tri cơ sở dữ LU 255555 <*++s++seessess 53

3.4.2 Xây dung cơ sở đữ liệu tên thuỐc 2-2 s+s+++£zzzxzxzez 533.4.3 Thiết kế server API ecsseecsseeecssseeeesseeessseeessneeesssneesssneeessneesen 55

Chuong 4 KÉT QUÁ THỰC NGHIỆM 2 2 2 2+££+E+Ezzzrzreee 59

4.1 Kết quả bài toán phát hiện vùng chứa đơn thuốc trên ảnh chụp 59

4.1.1 Kết quả huấn luyện các mô hình Yolov8-seg loại n trên Google

COlab QQQQQQQnnnnnnnnnT n nnnkvkv v 59

Trang 5

4.1.2 Kết quả huấn luyện các mô hình trên ảnh thật -. : 60

4.2 Kết quả bài toán xác định chữ và trích xuất thông tin - - 64

4.2.1 Kết quả huấn luyện mô hình phát hiện vùng chứa chữ (Text Pro — 4AÔÔÔÔÔÒÔ 64 4.2.2 Kết quả huấn luyện mô hình nhận dạng, phân loại ký tự (Text Gv 0101:0177 66

4.2.3 Kết quả thực tế khi chạy các mô hình trên ảnh thật 68

4.3 Kết quả xây dựng hệ quản trị cơ sở dit liệu và thiết kế server 72

4.3.1 Kết quả của xây dựng hệ quản trị cơ sở dữ liệu - 72

4.3.2 Kết quả của xây dựng cơ sở dit liệu tên thuốc - 73

4.3.3 Kết quả của thiết kế server API 2 2©c2+cs+x+eczrezrrrszes 74 4.4 Xây dung ứng dụng để kiểm tra hệ thống -¿ ¿¿©s2©s+c5zee: 76 Chương 5 KÉT LUẬN VÀ HƯỚNG PHÁT TRIEN . - 79

5.1 Kết quả dat được -s-©22-©c<2cxeSckcrxeEEkeErkerkkerkerkeerkerrkerrree 79 5.2 Ưu điểm và nhược điểm của để tài -ccccccceccxterrrrrrtrrrrerrrrieg 80 5.2.1 Ưuđiểm c chi 80 2 80

5.3 9 0‹: ni n8 80

5.4 Hướng phát triển của đề tài - + s+SE+Ek+EEEEE2ESEEEEEEEEEEEEErrrrrerree 81

Trang 6

DANH MỤC HÌNH Hình 2.1 1: Lich sử hình thành của AI (nguồn: AngelHack Vietnam) 7

Hình 2.1 2: Quy trình hoạt động của machine learning (nguồn: VTC Academy) 8 Hình 2.1 3: Mối liên hệ giữa những khái niệm (nguồn: Dynamic Optimization) 9

Hình 2.2 1: Minh họa về mô hình R-CNN (nguồn: Flinter) .-‹ -.«‹+ 10

Hình 2.2 2: Minh họa về mô hình Yolo (nguồn: Viblo) - ¿525525522 11Hình 2.2 3: Thời gian xuất hiện các phiên ban Yolo (đến tháng 1 năm 2024) 12

Hình 2.2 4: Độ chính xác trung bình của các phiên bản YolÌo «- -s« 16

Hình 2.3 1: Minh họa kết quả khi sử dung Tesseract - -: 5z-5+ 18

Hinh 2.3 2: Minh hoa két quả khi sử dung EAST ooo eee eeceeseceeeeneceeeeneeeeeeneenees 19Hình 2.3 3: Minh họa kết quả khi sử dung PaddleOCR 2-2 2 5+: 19

Hình 2.3 4: Minh họa kết quả khi sử đụng YOlo - 2-2-2 2 £+5++sz+sz2s£2s++š 20

Hình 2.4 1: Cau trúc của MongoDB (nguồn: Icantech) - 2-2 2 sszzszzss 24

Hình 2.4 2: Hiệu suất các framework dé tạo nên server phổ biến (nguồn: VNLab)26

: Kiến trúc hệ thống của đề tài - ¿2 2 ++£++E+E+EzEzrsrrerree 27

: Giao diện trang web thuegpU.VIN - s1 ve 28

: Các kiểu ảnh chụp hóa đơn thường gặp trong bộ dif liệu 30: Quy trình huấn luyện mô hình của bài toán - 2-2 252522 30

: Những bức ảnh đã được đánh nhãn ở RobofÏow - - 31

: Cây thư mục cần cho việc huấn luyện mô hình Yolov8 32

Trang 7

Hình 3.2.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.3.

Hình 3.4.

Hình 3.4.

Hình 3.4.

: Huấn luyện mô hình ở trên google colab 2-2 z+sz+sz+szzs+2 33

1: Luéng xử lý bài toán xác định chữ và trích xuất thông tin 34

2: BO dit li€u ca ICDAR 0n 35

3: Bộ dữ liệu tự thu thập của nhóm nghiên cứu - - -«<ss«++ 35 4: Ví dụ về toa thuốc CAUP 4 36

5: Ví dụ về toa thuốc điện tử - -cc+ccccckxrrrtrtrrrrrtrrrrrirrrrirrrr 36 6: Minh họa việc gan nhãn cho bộ dữ liệu . - «+55 «++s<+++ 37 7: Minh họa kết quả khi gan nhãn và lưu tập dữ liệu thành công 37

8: Bắt đầu quá trình huấn luyện mô hình (Text Detection) 39

9: Tập dữ liệu sau khi đã cắt và thu thập thành công - 40

10: Minh họa về việc gan nhãn cho mô hình nhận dang ký tự 4I 11: Minh họa việc gan nhãn và lưu tập dữ liệu thành công 42

12: Sử dụng google fonts để tăng cường dữ liệu - - 43

13: Thống kê số lượng nhãn đã được gán theo lớp . : - 43

14: Bắt đầu quá trình huấn luyện mô hình (Text Recognition) 44

15: Quy trình kết hợp các mô hình và trích xuất thông tin 44

16: Kết quả khi chạy mô hình Text Detection (chưa qua xử lý) 45

17: Minh họa trục tọa độ trong YOLO - - 5-5 sekseseererxee 47 18: Minh họa về trường hợp anh có phan chữ nghiêng, xéo 47

19: Luồng xử lý của kỹ thuật sắp xếp vùng chứa chữ 47

20: kết quả khi chạy mô hình Text Recognition (chưa qua xử lý) 48

21: Luéng xu ly cua ky thuat sap xép các ky tự được nhận dạng 49

22: Luéng xử lý chung của kỹ thuật kết hợp hai mô hình và so sánh 52

23: Luéng xử lý cụ thé của kỹ thuật so sánh từng vùng chữ 52

1: Mô hình cơ sở dữ liệu của đề tài 2- 2+ s+2cx++zxerxrerxerrxee 53 2: Giao diện trang web Drugbanik.VI - c- 5 56+ *++skEseseersekee 54 3: Vi du một tên thuốc xuất hiện hai lần ở trang web Drugbank.vn 55

Trang 8

Hình 4.1.

Hình 4.1.

Hình 4.1.

Hình 4.1.

Hình 4.1.

Hình 4.1.

Hình 4.1.

Hình 4.1.

Hình 4.1.

Hình 4.1.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.2.

Hình 4.3.

1: Nơi lưu trữ mô hình sau khi kết thúc huấn luyện ở google colab 59

2: Độ chính xác được tự động đánh giá sau khi kết thúc huấn luyện 60

: Phân tích mô hình qua từng epoch «+ +- «+ +ss*+svxsseesseeesee 60 : Những kiêu ảnh chính ở trong bộ dữ liệu thật để đánh giá mô hình .61

: Kết qua của mô hình khi kiểm tra trên những bức ảnh thật 61

: Độ chính xác của các mô hình với số lượng dữ liệu khác nhau (2) 62

3 4 5 6: Độ chính xác của các mô hình với số lượng dữ liệu khác nhau (1) 62

7 8: Thông số mAP50 và mAP50.95 trên tập 100 bức ảnh thực tế 63

9 : Lưu đồ thuật toán xác định vùng chứa đơn thuốc ở trên ảnh 63

10: Đâu vào và dau ra của bài toán xác định vùng chứa đơn thuôc 64

1: Kết quả huấn luyện thành công mô hình phát hiện vùng chứa chữ 65

2: Các giá trị của mô hình Text Detection khi huấn luyện thành công 65

3: Kết quả các thông số mà mô hình đạt được qua mỗi epochs 66

4: Kết quả các lớp cua mô hình nhận dang ký tự (l) 67

5: Kết quả các lớp của mô hình nhận dạng ký tự (2) - 67

6: Kết quả các lớp của mô hình nhận dạng ký tự (3) - 67

7: Kết quả các thông số mô hình dat được qua mỗi epochs 68

8: Biểu đồ các giá trị của mô hình Text Recognition đã huấn luyện 68

9: Kết quả thực tế của mô hình phát hiện vùng chữ (tốt nhất) 69

10: Kết quả thực tế của mô hình nhận dạng ký tự (tốt nhất) 69

11: Kết quả thực tế của mô hình phát hiện vùng chữ (xấu nhất) 70

12: Kết quả thực tế của mô hình nhận dạng ký tự (xấu nhất) 70

13: Kết quả khi chạy trên đơn thuốc có tiếng Việt (1) - 71

14: Kết quả khi chạy trên đơn thuốc có tiếng Việt (2) . - 71

1: Giao diện khi lưu trữ dữ liệu ở MongoDB Compass 72

Trang 9

Những dữ liệu sau khi đã được lưu vào MongoDB 72

Cơ sở tên thuốc có dấu ¿-++++++EE++tEEEkrrtEkkrrrttrrrrirrrire 73

Cơ sở tên thuốc không dấu - - 2-2 2 2+2 E£+E£+E+£EE+EE2EE2EzEzreee 73Hình ảnh về server APL .cccccsscessessesssessesssessecsssesessecssessessessusesecsecaseeses 74

Minh họa về cách sử dụng một APÌL - 555k +ssesseerreeres 75

Mô hình Use Case của Ung dụng . - s55 s + ssseseereeereees 76

Miéu tả các màn hình của ứng dụng (1) . «++«<<<<-x+s++ 78 Miéu tả các màn hình của ứng dụng (2) . «++<c++sex+sxs 78

Trang 10

DANH MỤC BANG

Bảng 2 1: So sánh các mô hình OT - - - 5 +1 3311335 ESEEEerrsreerrrereeee 21

Bang 3 1: Thống kê số lượng nhãn đã được gán ở mỗi tap dữ liệu được chia 38

Bang 3 2: Thông số các mô hình pretrained của Yolov8 - 2+5: 38

Bảng 3 3: Bảng chỉ tiết về các API của Server scscscsssesssesssesssesssesssesseessesssecssecasecsses 56

Bang 4 1: Thời gian xử lý CỦa S€TVT s1 HH ng 75

Trang 11

DANH MỤC TU VIET TAT

AI Artificial Intelligence

API Application Programming Interface

CNN Convolutional Neural Network

DBMS Database Management System

E-ELAN Extended Efficient Layer Aggregation Network

HTTP HyperText Transfer Protocol

OCR Optical Character Recognition

GPU Graphic Processing Unit

GUI Graphical User Interface

TPU Tensor Processing Unit

R-CNN Regions with CNN features

Trang 12

TOM TAT KHÓA LUẬN

Đề tài "UNG DỤNG KỸ THUẬT MAY HỌC DE TRÍCH XUẤT THONG TINTOA THUỐC TỪ ANH CHỤP" tập trung vào việc trích xuất tên thuốc từ ảnh chụpcủa đơn thuốc bằng các công nghệ và kỹ thuật tiên tiến Thông qua việc trích xuấttên thuốc từ ảnh chụp, người dùng có thé dé dàng quản lý và tìm hiểu về các loạithuốc được chỉ định

Các công nghệ và giải pháp nổi bật trong dé tài này bao gồm Yolov§,MongoDB và FastAPI Ảnh chụp từ người dùng sẽ được gửi qua API đến serverFastAPI, từ đó server sẽ sử dụng mô hình Yolov8 đã được huấn luyện từ một tậpkhoảng hơn 1400 bức ảnh cho tác vụ phát hiện vùng đơn thuốc và hơn 8000 bứcảnh cho tác vụ nhận diện và trích xuất thông tin đề trích xuất được thông tin từ đơn

thuốc Thông tin sau khi trích xuất sẽ được so sánh với cơ sở dữ liệu chứa hơn

28000 tên thuốc khác nhau đề phân biệt chính xác giữa tên thuốc và các từ thôngthường Cuối cùng, các tên thuốc sau khi đã được trích xuất sẽ được trả về chongười dùng thông qua API và tự động lưu trữ xuống MongoDB để phục vụ việcquản lý và truy vấn đữ liệu

Ngoài ra, server sử dụng FastAPI cũng cung cấp các API cho phép người

dùng thêm mới đơn thuốc, truy xuất đữ liệu, xóa, sửa các đơn thuốc cũ, điều này

giúp cho tăng tính ứng dụng của đề tài này vào các ứng dụng di động

Đề tài "UNG DỤNG KỸ THUẬT MAY HỌC DE TRÍCH XUẤT THONG TINTOA THUỐC TỪ ANH CHỤP" có ý nghĩa to lớn đối với cộng đồng bởi nó cung

cấp những kiến thức y khoa mà người dùng thường khó tiếp cận Nếu kết hợp với

các ứng dụng di động, đây chắc chắn sẽ là một công cụ hữu ích và đáng trải

nghiệm.

Trang 13

Chương 1 TONG QUAN DE TÀI

phức tạp.

Dù rằng các đơn thuốc được cung cấp từ các cơ sở y tế thường ghi rõ tên

thuốc tuy nhiên phần lớn mọi người vẫn phải nhờ đến sự trợ giúp của các bác sĩhoặc những người có kiến thức về y khoa dé hiểu rõ về loại thuốc đó và cách sửdụng Điều này không chỉ làm mất thời gian mà còn khiến cho việc quản lý, muasắm và sử dụng thuốc trở nên bị động Nhiều người không thể tự mình chủ độngtrong việc xác định và sử dụng thuốc, dẫn đến tình trạng sử dụng thuốc không đúngcách hoặc không hiệu quả Vấn đề này không chỉ ảnh hưởng đến sức khỏe cá nhân

mà còn tạo áp lực lên hệ thống y tế, đòi hỏi cần có những giải pháp hiệu quả va dé

tiép cận hon.

Từ những lý do trên, việc nghiên cứu va phát triển hệ thống tự động nhận

dạng đơn thuốc và trích xuất thông tin tên thuốc từ đơn thuốc đó là vô cùng cầnthiết Hệ thống này sẽ giúp người dùng hiểu và biết được nội dung đơn thuốc một

cách dễ dàng và nhanh chóng Dé tài "Ung dụng kỹ thuật máy hoc dé trích xuất

thông tin toa thuốc từ ảnh chụp" không chỉ hướng tới người dùng là bệnh nhân, màcòn hỗ trợ các nhà sản xuất thuốc và các nhà cung cấp dịch vụ y tế Hệ thống này cóthé nâng cấp và phát triển trên các các ứng dụng di động, giúp cung cấp dịch vụ y tế

Trang 14

tốt hơn và hiệu quả hơn cho khách hàng Bằng cách cung cấp thông tin chính xác và

kịp thời, những ứng dụng này sẽ góp phần nâng cao chất lượng chăm sóc sức khỏe

và cải thiện sự hài lòng của người dùng.

1.2 Một số công trình nghiên cứu liên quan

Hiện nay, trên thị trường có rất nhiều ứng dụng hỗ trợ người dùng tra cứu tên

thuốc và cung cấp các thông tin chỉ tiết như thành phần của thuốc, năm sản xuất,

nước sản xuất, cách dùng, va nhiều thông tin khác Một số ứng dụng nôi bật có thể

kế đến như Nhà thuốc An Khang, Drug Bank, Từ điển thuốc: Tra cứu thuốc, và

Medicine Dict [1] Những ứng dụng nay đã phan nào giúp người dùng dé dàng tiếp

cận thông tin về thuốc, từ đó hiểu rõ hơn về các sản pham y tế mà họ sử dụng Tuynhiên, một đặc điểm chung của các ứng dụng này là yêu cầu người dùng phải tựnhập tên thuốc vào hệ thống trước khi có thé nhận được thông tin tương ứng Điềunày không chỉ mất thời gian mà còn gây khó khăn cho những người không nhớchính xác tên thuốc hoặc không biết cách viết đúng tên thuốc

Bên cạnh đó, cũng đã có một số công trình nghiên cứu tích hợp trí tuệ nhân

tạo để tự động trả về tên thuốc Một trong những công trình nôi bật là VAIPE - hệ

thống theo dõi và hỗ trợ chăm sóc sức khỏe thông minh được phát triển bởi nhóm

nghiên cứu tai Trung tâm Sức khỏe thông minh VinUni-llHinois, Đại học VinUni, va

các cộng sự tại Trường Công nghệ Thông tin và Truyền thông, Đại học Bách khoa

Hà Nội Công trình này đã đạt top 5 tại giải AI Award năm 2022 [2], thể hiện tiềm

năng to lớn của trí tuệ nhân tạo trong lĩnh vực chăm sóc sức khỏe Tuy nhiên, ứng

dụng VAIPE chỉ trích xuất thông tin tên thuốc từ ảnh chụp các viên thuốc thực tếchứ không phải từ đơn thuốc bằng giấy Điều này gây khó khăn cho người dùng khi

họ chỉ có đơn thuốc trong tay và chưa mua thuốc, từ đó làm hạn chế khả năng tra

cứu thông tin nhanh chóng và chính xác.

Đề tai "Ứng dụng kỹ thuật máy học dé trích xuất thông tin toa thuốc từ ảnhchụp" của chúng tôi mang đến một giải pháp khác biệt và tiên tiến hơn Chúng tôitập trung vào việc tự động trích xuất thông tin tên thuốc từ ảnh chụp của đơn thuốc,

Trang 15

giúp người dùng nhanh chóng nhận được thông tin về các loại thuốc được chỉ định

mà không cần phải nhập tên thuốc thủ công Băng cách sử dụng các công nghệ hiệnđại như Yolov8, MongoDB và FastAPI, hệ thống của chúng tôi không chỉ nâng caohiệu quả tra cứu thông tin mà còn giúp người dùng tiết kiệm thời gian và công sức.Điều này đặc biệt hữu ích trong những tình huống khẩn cấp hoặc khi người dùngcần nhanh chóng biết thông tin về thuốc đề sử dụng đúng cách và hiệu quả Với giảipháp này, chúng tôi hy vọng sẽ đóng góp tích cực vào việc cải thiện chất lượngchăm sóc sức khỏe và hỗ trợ người dùng trong việc quản lý thông tin y tế của mình.1.3 Mục tiêu của đề tài

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

Xây dựng thành công một giải pháp phần mềm có thé trích xuất được thông

tin tên thuốc từ ảnh chụp đơn thuốc của người dùng Cụ thê hơn, phát triển

một giải pháp phần mềm tự động nhận diện và trích xuất chính xác các thôngtin tên thuốc từ hình anh đơn thuốc từ đó giúp người dùng dé dang quản ly

thông tin thuốc Giải pháp này cũng được tạo ra nhằm giảm thiểu sai sót và

tăng tính nhất quán so với phương pháp nhập liệu thủ công hiện tại

Mục tiêu chỉ tiết:

Hiện thực thành công các chức năng chính của các thành phần trong phần mềm:

« Tiền xử lý ảnh: Từ một tắm ảnh đơn thuốc đầu vào, hệ thống sẽ xác định

toàn bộ vùng mà đơn thuốc xuất hiện trên bức ảnh, từ đó cắt ra được một bức

ảnh mới chỉ chứa đơn thuốc Chức năng này nhằm tối ưu hóa chất lượng ảnh

để chuẩn bị cho bước nhận diện và trích xuất thông tin, đồng thời đảm bảotính chính xác cao hơn so với việc sử dụng ảnh gốc không qua xử lý

e Nhận diện ký tự và trích xuất thông tin: Từ bức ảnh đã được cắt, hệ thống sẽ

xác định các vùng chứa chữ và tiếp đến sẽ nhận diện và trích xuất các thôngtin từ những vùng đã xác định Điều này bao gồm việc sử dụng các thuậttoán OCR kết hợp với Deep Learning dé nhận dạng chính xác nội dung chữ

Trang 16

viết tay hoặc in ấn, cải thiện đáng kể so với các phương pháp OCR truyền

thống Đây là bước quan trọng để đảm bảo dữ liệu thu thập được là chính xác

và đáng tin cậy.

‹ Xây dung server API dé chia sẻ kết quả: Sau khi đã có kết quả trích xuất,

server API sẽ được tạo ra dé người dùng và các ứng dụng khác có thé gọi tới

và sử dụng Server API này sẽ cung cấp các phương thức cơ bản như: tríchxuất thông tin tên thuốc, lưu, xem xóa, sửa những kết quả đã trích xuất Điềunày giúp cho việc tích hợp hệ thống vào các ứng dụng y tế khác trở nên linh

hoạt Việc xây dựng server API không chỉ đảm bảo tính mở rộng của phần

mềm mà còn giúp các bên liên quan dé dàng tiếp cận, sử dụng và quản lý dữ

liệu một cách hiệu quả.

1.4 Phạm vi nghiên cứu

Với ý tưởng xây dựng một giải pháp giúp cho người dùng có thể quản lýthông tin tên thuốc từ đơn thuốc một cách dễ dàng Đề tài tập trung nghiên cứu,phát triển một phần mềm day đủ các chức năng đơn giản đáp ứng đủ các nhu cầutrích xuất và quản lý thông tin từ các loại đơn thuốc khác nhau mà được thu thập từ

bệnh viện và các cơ sở y tê được câp phép bởi Bộ Y tê.

1.5 Phương pháp tiếp cận bài toán

Đề đạt được mục tiêu của đề tài “Ứng dụng kỹ thuật máy học dé trích xuấtthông tin toa thuốc từ ảnh chụp” chúng tôi sẽ thiết kế một hệ thống hoàn chỉnh băng

cách sử dụng FastAPI làm server API, sau đó chúng tôi sẽ tích hợp những mô hình

máy học đã được huấn luyện dựa trên Yolov8 vào server Từ đó, một bức ảnh có thégửi đến server và sẽ trả kết quả tên thuốc sau khi đã phân tích thông qua API Ngoài

ra, hệ thống của chúng tôi còn cung cấp chức năng xem, lưu trữ, chỉnh sửa và xóa

dữ liệu đơn thuốc của người dùng thông qua những API khác nhau và MongoDB từ

đó giúp ích cho việc quản lý và truy vẫn kết quả sau này

Trang 17

Chương2 CƠ SỞ LÝ THUYET

2.1 Tổng quan về trí tuệ nhân tạo

2.1.1 M6 hình trí tuệ nhân tạo là gì

Tri tuệ nhân tạo (AI — Artificial Intelligence) là một nhánh rộng lớn của ngành

khoa học máy tính, liên quan đến việc xây dựng các máy móc thông minh có khả

năng thực hiện các tác vụ thường đòi hỏi trí thông minh của con người Hay nói cách khác, đây là quá trình mô phỏng lại bộ não của con người trên máy tính [3] AI

bắt đầu xuất hiện vào năm 1950 với các nghiên cứu về lý thuyết trí tuệ máy và họcmáy Từ đó đến nay, AI đã có nhiều bước tiến trong việc phát triển các thuật toánmáy hoc nâng cao [4] Cu thể hơn về các bước phát triển của AI sẽ được mô tả ở

hình 2.1.1.

Hiện nay, AI được chia thành 4 loại chính [3]:

¢ Reactive machine: Đây là một công nghệ AI được lập trình dé phản ứng với

các tình huống cụ thê, các công việc không có sự thay đổi Công nghệ này

được sử dụng rộng rãi trong các hệ thong tự động hóa, robot, hệ thong diéu

hành và các ứng dụng thương mai điện tử.

e Limited Memory: Đây là một công nghệ AI có bộ nhớ hạn chế, có khả năng

lưu trữ dữ liệu và dựa vào dữ liệu quá khứ dé dự đoán những gì có thể xảy ra

tiếp theo Công nghệ này thường được sử dụng trong các hệ thống nhận dạnggiọng nói, xử lý ngôn ngữ tự nhiên.

e Theory of Mind: Đây là một loại AI được lập trình để hoc hỏi và tự điều

chỉnh các mô hình để giải quyết các vấn đề phức tạp, công nghệ AI nàyhướng đến việc đưa các suy nghĩ và cảm xúc như của con người vào trong trítuệ nhân tạo Công nghệ này thường được sử dụng trong các hệ thống máy

học, trích xuất thông tin và các ứng dụng tương tự.

e Self-awareness: Đây là một loại AI được lập trình để tự đánh giá và phát

triển chính nó, công nghệ này giúp con người phát triển các hệ thống AI độc

Trang 18

lập và tăng cường khả năng học hỏi Công nghệ này được sử dụng rộng rãi

trong các hệ thống tự chân đoán, tự động vận hành

Máy học hay học máy (machine learning) là một nhánh quan trọng của AI, nó

là một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện chính bản thân

chúng dựa trên dữ liệu mẫu Máy học có thể tự đưa ra dự đoán hoặc đưa ra quyếtđịnh mà không cần được lập trình cụ thể Đề làm được những điều đã nói kể trên thi

sẽ cần phải trải qua những bước như hình 2.1.2

Các mô hình máy học thường được chia làm 3 loại chính [5]:

e Máy học có giám sát: Đây là cách sử dụng các tập dữ liệu được gắn nhãn dé

huấn luyện thuật toán phân loại hoặc dự đoán kết quả một cách chính xác

e Máy học không giám sát: Day là cách sử dung các thuật toán học máy dé

phân tích và phân cụm các tập dữ liệu không được gán nhãn Các thuật toán

này phát hiện ra các mẫu hoặc nhóm dữ liệu ẩn mà không cần sự can thiệp

của con người.

Trang 19

e Máy học bán giám sát: Đây là sự kết hợp giữa máy học giám sát và máy học

không giám sát Trong quá trình huấn luyện, nó sử dụng một tập dữ liệu nhỏ

hơn học có giám sát dé hướng dẫn phân loại, trích xuất tinh năng từ một tập

dữ liệu lớn hơn, không được gắn nhãn

Hình 2.1 2: Quy trình hoạt động của machine learning (nguồn: VTC Academy)

2.1.3 M6 hình Deep learning là gì

Deep learning (học sâu) được coi là một lĩnh vực ở trong machine learning,

tuy vậy deep learning được xây dựng dựa trên những khái niệm phức tạp hơn Deep

learning chủ yếu hoạt động với mạng thần kinh nhân tạo dé bắt chước khả năng tu

duy và suy nghĩ của bộ não con người Tuy nhiên, không giống như một bộ não

sinh học nơi mà bat kỳ no-ron nào cũng có thé liên kết với các nơ-ron khác thì cácmạng thần kinh nhân tạo này có các lớp rời rac, các kết nối và các hướng truyền dit

liệu Mỗi nơ-ron ở trong deep learning sẽ đảm nhiệm một chức năng và độ “sâu”

của deep learning sẽ được dựa vào sô lớp và sô liên kêt của các nơ-ron [6].

Tóm lại, AI, Machine learning hay Deep learning đều là những công nghệ tiên

tiến và đang giúp cho con người giải quyết những bài toán phức tạp mà từ trước đến

Trang 20

nay chưa có cách nao tôi ưu hơn đê tiép cận Cả ba khái niệm trên đêu có sự liên quan với nhau và sự liên quan ây sẽ được miêu tả ở trong hình 2.1.3.

Hình 2.1 3: Mỗi liên hệ giữa những khái niệm (nguồn: Dynamic Optimization)

2.2 Phát hiện vùng chứa đơn thuốc trên ảnh chụp

2.2.1 Cac mô hình trí tuệ nhân tạo được sử dụng trong bài toán phát hiện

đối tượng

Phát hiện đối tượng (Object Detection) được coi là một trong những lĩnh vựcquan trọng nhất trong việc phát triển của học sâu (Deep Learning) và xử lý ảnh

(Image Processing) Với sự ra đời của mạng nơ-ron tích chập (CNN) và những tiễn

bộ của thị giác máy tính (Computer Vision) đã mang đến cách tiếp cận mới cũng

như nhiều thuật toán phát hiện đối tượng hiệu quả hơn Từ đó đã có một số mô hình

phổ biến dùng cho bài toán phát hiện đối tượng sử dung CNN Có thé ké đến nhưcác thuật toán cua mô hình họ R-CNN và các mô hình họ Yolo[7].

Trang 21

Ở phần này chúng tôi sẽ giới thiệu về các họ mô hình đã nêu ở trên [7] [8]:

Họ mô hình R-CNN: R-CNN (Regions with CNN features) là lớp các mô

hình xác định vùng đặc trưng dựa trên các mạng CNN được phát triển bởi

Ross Girshick và các cộng sự Lớp các mô hình này gồm 3 mô hình chính là

R-CNN, Fast R-CNN và Faster R-CNN được thiết kế cho các nhiệm vụ định

vị vật thể và nhận diện vật thể Đầu tiên là R-CNN được ra mắt vào năm

2014, Fast R-CNN là phiên bản nâng cấp và được ra mắt vào năm 2015, cuối

cùng thì phiên bản tốt nhất của họ mô hình này là Faster R-CNN được ra mắt

vào năm 2016 Về mặt tổng quan, các mô hình của họ R-CNN nói ở trên sẽ

sử dụng một quy trình hai bước dé có thé giải quyết được bài toán object

detection đó là: dự đoán vùng hộp giới hạn (bounding box) và phân loại

(classification) Mặc dù đặc điềm trên sẽ giúp các mô hình họ R-CNN có độ

chính xác rat cao tuy nhiên tốc độ xử lý của những mô hình kể trên là không

ấn tượng và thuật toán xử lý cũng khá phức tạp Minh họa về quy trình ấy sẽ

1 Input 2 Extract region 3 Compute 4 Classify

image proposals (~2k) CNN features regions

Hình 2.2 1: Minh hoa về mô hình R-CNN (nguồn: Flinter).

Họ mô hình Yolo: Yolo (You Only Look Once) lần đầu tiên được công bồ là

vào năm 2015 ở một bài báo có tên là “You Only Look Once: Unified,

Real-Time Object Detection” Và ké từ 2016 cho đến nay các phiên ban Yolo đã

được điều chỉnh và cập nhật thường xuyên từ nhiều cá nhân và tổ chức khác

nhau Yolo là một mô hình mạng CNN cho việc phát hiện, nhận dạng, phân

10

Trang 22

loại đối tượng Yolo được tạo ra từ việc kết hợp giữa các convolutional

layers và connected layers Trong đó các convolutional layers sẽ trích xuất ra

các feature của ảnh còn fully-connected layers sẽ dự đoán ra xác suất và tọa

độ của đối tượng [9] Yolo đã kết hợp được cả hai quy trình dự đoán vùng

hộp giới han (bounding box) va phân loại (classification) vào bài toán object

detection từ đó nâng cao hiệu suất và giảm độ phức tạp trong việc xử lý bài

toán [10], trái ngược với các phương pháp họ R-CNN đó là sử dụng một cửa

số trượt để phát hiện vùng có vật thể và sau đó mới đến bước tiếp theo là

chạy một mã dé phan loai đối tượng đã được xác định đó, việc chia ra làm

hai bước như vậy khiến cho với mỗi bức ảnh thì cần phải chạy hàng trăm đếnhàng nghìn lần mới ra được kết quả Ngoài ra, Yolo còn sử dụng một kết quảđầu ra đơn giản hơn là chỉ cần dựa vào hồi quy (regression) dé có thé đưa rađược các detection output, trái ngược với Fast R-CNN phải sử dụng hai kếtquả đầu ra riêng biệt để phân loại xác suất hình ảnh và hồi quy cho hộp tọa

độ (bounding box) Thuật toán của Yolo sẽ được miêu tả ở hình 2.2.2.

trong cách xử lý Điều này rất cần thiết cho đề tài của chúng tôi bởi vì người dùng

sẽ cần một kết quả trả về nhanh và chính xác Vì vậy, tôi kết luận lại rằng sẽ sử

dụng mô hình họ Yolo cho bài toán phát hiện vùng chứa đơn thuốc ở trên ảnh chụp

II

Trang 23

2.2.2 Lý do lựa chọn mô hình Yolov8-seg loại n cho bài toán phát hiện

vùng chứa đơn thuốc trên ảnh chụp

Mặc dù đã lựa chọn được sẽ sử dụng mô hình họ Yolo, tuy nhiên Yolo còn có

rất nhiều phiên bản từ Yolov1 đến Yolov8 (tính đến thang 1 năm 2024) và ở các

phiên bản sau nhà phát hành còn cho ra các phiên bản loại n, s, m, I, x với độ phức

tap tăng dần dé cho người dùng có thể lựa chọn tùy thuộc vào bài toán cụ thé củamình Vì vậy, việc chọn mô hình Yolo nào và chọn phiên bản như thế nào cho phù

hợp với bài toán phát hiện vùng chứa đơn thuốc trên bức ảnh cũng rất cần thiết Chitiết về thời glan ra mắt của từng phiên bản sẽ được minh họa ở hình 2.2.3

Hình 2.2 3: Thời gian xuất hiện các phiên bản Yolo (đến tháng 1 năm 2024)

Tiếp đến, chúng tôi sẽ phân tích kỹ từng phiên bản của Yolo và đưa ra quyếtđịnh sẽ chọn phiên bản Yolo nào cho bài toán xác định vùng chứa đơn thuốc trênảnh chụp Như đã biết Yolo có 8 phiên bản từ Yolov1 đến Yolov§ (tính đến tháng 1

12

Trang 24

năm 2024) và những phiên bản vê sau đêu là những ban nâng cap xuât sac cua những phiên bản trước đó [11][12].

'Yolov1: Được tạo ra bởi Joseph Redmon vào năm 2015, nguyên lý vận hành

của Yolov1 là chia bức ảnh thành các 6 lưới S x S và nhận diện chúng một

các đồng bộ Nếu tâm tọa độ của bounding box ở vào bất kỳ trong một

những ô lưới đã chia thì ô lưới đó sẽ chịu trách nhiệm về việc phát hiện đốitượng đó Mỗi ô lưới chỉ có thể liên quan tối đa đến hai bounding box khácnhau Yolov1 dựa trên một framework có tên là Darknet và có kiến trúc sửdụng 24 convolutional layers Yolov1 có điểm mạnh là có kiến trúc đơn giản,cùng với phương pháp hồi quy cho phép chỉ cần chạy 1 bước dé cho ra kếtquả làm cho nó nhanh hơn so với các mô hình trước kia và có thể chạy thời

gian thực.

Yolov2: Là một bản nâng cấp của Yolovl được phát triển bởi JosephRedmon và Ali Farhadi và ra mắt vào năm 2016 Những cải tiến so vớiYolovl có thé kế đến như: Chuan hóa hàng loạt (batch normalization) đã

được tích hợp vào Yolov2 đề có thê làm tăng khả năng hội tụ (convergence)

và làm giảm khả năng bi overfitting khi train, sự thật là khi Yolov2 có được

sự tích hợp này thì độ chính xác đã tăng 2% so với Yolovl Yolov2 sử dụng

cách train với những bức ảnh có độ phân giải cao hơn cụ thé là với độ phân

giải 448 x 448 so với 224 x 224 của Yolovl từ đó làm tăng độ chính xác của

việc dự đoán Yolov2 sử dụng rất nhiều hộp neo (anchor boxes) dé dự đoán

của hộp giới hạn (bounding box) của bức ảnh so với chỉ xác định một

bounding box trực tiếp lên layer của Yolov1

Yolov3: Yolov3 là một bản nâng cấp của Yolov2 được phát triển bởi JosephRedmon và Ali Farhadi và được công bố vào năm 2018 Những cải tiến sovới Yolov2 có thể kế đến như: Yolov3 sử dụng một kiến trúc mới là

Darknet-53 với 53 convolutional layer giúp cho Yolov3 vừa có độ chính xác

cao hơn vừa có tốc độ xử lý nhanh hơn Ngoài ra, Yolov3 còn tích hợp mộtkiến trúc hoàn toàn mới đó là Spatial pyramid pooling (SPP) từ đó làm tăng

13

Trang 25

độ chính xác trung bình thêm 2.7% Yolov3 đã sử dụng một dự đoán đa quy

mô (multi-scale predictions) điều này giúp cho Yolov3 có thé dự đoán nhiều

loại vật thể nhỏ hơn, thứ mà là điểm yếu ở các phiên bản Yolo trước

Yolov4: Yolov4 được phát hành vào năm 2020, đây là phiên bản đầu tiên mà

không phải do nhà sáng lập của Yolo tạo ra mà do một nhóm khác, đó là bao

gồm: Alexey Bochkovskiy, Chien-Yao Wang, and Hong-Yuan Mark Liao.Một số cải tiến so với các thế hệ Yolo trước đây: Yolov4 sử dụng cấu trúc

xương sống là CSPDarknet53, SCPDarknet53 đã tích hợp khối kết nối giữacác đoạn (CSPNet) điều này giúp cho mô hình giảm đi sự phức tạp trong tính

toán nhưng vẫn giữ nguyên được độ chính xác Ở Yolov4 nhóm tác giả đã

giới thiệu hai thành phan mới đã được tích hợp vào, đó chính là:

‘bag-of-freebies’ và ‘bag-of-specials’ Trong đó, bag-of-freebies có nhiệm vụ là quan

sát sự liên quan của các hộp giới hạn mà bị chồng chéo lên nhau và sẽ loại

bỏ những hộp giới hạn dư thừa nếu nó xác định vật thé tương tự nhau Cònđối với bag-of-specials tuy nó làm tăng thời gian suy luận của mô hìnhnhưng nó cũng sẽ làm cho hiệu suất của mô hình được nâng cao hơn

Yolov5: Yolov5 được công bố chỉ vài tháng sau Yolov4 bởi Glenn Jocher,founder và CEO của Ultralytics Yolov5 phát triển dựa trên Pytorch thay vìDarknet như ở các phiên bản trước từ đó giúp cho mô hình này tiếp cận đếnnhiều người hơn do Pytorch dễ sử dụng hơn và cộng đồng Pytorch cũngđông đảo hơn Yolov5 sử dụng kiến trúc xương sống vẫn là CSPDarknet53nhưng có một số điều chỉnh, đó là được tích hợp Stem - một lớp convolutionvới kích thước lớn dé giảm bộ nhớ và chi phí tính toán của mô hình

Yolov6: Yolov6 được công bố vào năm 2022 bởi Meituan Vision AI

Department có trụ sở ở Trung Quốc, đây chính là phiên bản được đơn vị nêutrên tạo ra dé phục vụ cho mục đích công nghiệp Một số thay đổi ở phiênbản Yolov6 này có thé ké đến là: Kiến trúc xương sống của Yolov6 là là một

dạng kiến trúc xương sông hoàn toàn mới cơ bản dựa trên RepVGG được gọi

là Efficient làm cho mô hình có tính song song cao hơn và có hiệu suất hoạt

14

Trang 26

động cao hơn trên nhiều loại phần cứng từ đó duy trì được tốc độ và độ chính

xác Yolov6 đã không còn sử dụng các hộp anchor như ở các phiên bản trước

vì đây là mô hình phục vụ cho mục đích hẹp hơn các phiên bản trước làm

cho tốc độ xử lý bên trong của Yolov6 nhanh hơn so với các mô hình sử

dụng hộp anchor trước.

Yolov7: Yolov7 được công bố cũng trong năm 2022, lần này Yolov7 đượctạo ra bởi những người đã từng tạo ra Yolov4 do đó họ đã có những cải tiếndựa trên Yolov4 Có hai thay đổi chính ở Yolov7 đó là: Thứ nhất, Yolov7 đã

sử dụng nâng cấp kiến trúc xương sống đó là Yolov7 đã tích hợp vào một

E-ELAN (extended efficient layer aggregation network) đây là một nghiên cứu

dé nhắm đến nâng cao chất lượng của các thành phan như chi phí truy cập

vùng nhớ, tỉ lệ của các input va output, và các đường dan gradient từ đó làm

tăng hiệu suất và tốc độ Thứ hai là Yolov7 đã thêm vao phần mở rộng môhình (compound model scaling) điều này giúp cho mô hình có thé mở rộnglinh hoạt cả về chiều rộng và chiều cao dé phù hợp với đa dang các phạm viyêu cầu ứng dụng hơn

Yolov8: Đây là phiên bản mới nhất (tính đến thang 1 năm 2024) ra đời vàotháng 1 năm 2023 bởi ultralytics, cũng là đơn vi đã công bố Yolov5, đâychính là mô hình có độ hiệu quả cao, tốc độ xử lý nhanh va dé sử dụng nhấttại thời điểm ra mắt Những cải tiến chính của Yolov8 là Yolov8 vẫn sử dungcấu trúc xương sống là CSPDarknet53 nhưng có sự thay đôi ở CSPLayer bây

giờ được gọi là C2f module Module C2f (cross-stage partial bottleneck with

two convolutions) kết hợp giữa các tính năng nâng cao với việc phát hiệnngữ cảnh nhạy bén giúp cải thiện rất nhiều về độ chính xác khi xác định đối

tượng Ngoài ra, Yolov8 còn sử dụng một mô hình không có anchor như ở

Yolov6 cộng với việc tách rời head dé xử lý các tác vụ một cách độc lập.Cách làm này cho phép mỗi phan của Yolov8 chỉ tập trung vào một công

việc nhất định từ đó cải thiện được độ chính xác tổng thé lên rất cao và giảiquyết được van đề tốc độ xử lý còn chậm ở phiên bản Yolov5 Yolov8 còn

15

Trang 27

cho ra mắt phiên ban Yolov8-seg dé thực hiện các nhiệm vu segmentation,

lúc nay backbone vẫn giống như Yolov8 thường những C2f sé được theo saubởi 2 segmentation head giúp cho Yolov8-seg đạt được hiệu quả cực kỳ cao

đối với nhiều kiểu xác định đối tượng nhưng vẫn giữ được tốc độ xử lý cao.

Ngoài ra, cả Yolov8 và Yolov8-seg đều có 5 phiên bản giống như Yolov5 là

n, s, m, |, x đê cho người dùng có thê thoải mái lựa chon tùy thuộc vào yêu

câu thực tê của công việc.

Variant Framework Backbone AP (%) Comments

VI Darknet Darknet-24 63.4 Only detect a maximum of two objects in the same grid.

Introduced batch norm, k-means clustering for anchor boxes.

về DEMGHEB TDRDGHELZUA óc Capable of detecting > 9000 là sắn

V3 Have Darknet-53 36.2 Utilized multi-scale predictions and spatial pyramid pooling

leading to larger receptive field.

V4 Darknet CSPDarknet-53 43.5 Presented bag-of-freebies including the use of CIoU loss.

First variant based in PyTorch, making it available to a wider V5 PyTorch Modified CSPv7 55.8 audience Incorporated the anchor selection processes into

the YOLO-v5 pipeline.

Focused on industrial settings, presented an anchor-free

V6 PyTorch EfficientRep 52.5 pipeline Presented new loss determination mechanisms

(VEL, DEL, and SIoU/GIoU).

Architectural introductions included E-ELAN for faster

V7 PyTorch RepConvN 56.8 convergence along with a bag-of-freebies including

RepConvN and reparameterization-planning.

Anchor-free reducing the number of prediction boxes whilst

V8 PyTorch YOLO-v8 0.9 speeding up non-maximum suppression Pending paper for

further architectural insights.

Hình 2.2 4: Độ chính xác trung bình cua các phiên ban Yolo

Qua tat cả những phân tích ké trên và độ chính xác trung bình của từng phiênbản ở hình 2.2.4, chúng tôi nhận thấy rằng việc sử dung Yolo cụ thé hơn là Yolov8-seg là phù hợp nhất đối với bài toán xác định vùng chứa đơn thuốc ở trên ảnh chụp.Điều này là bởi vì Yolov8-seg đã được nâng cấp từ những điểm chưa tốt của các

phiên bản trước đó và khi sử dụng Yolov8-seg thì chúng tôi sẽ xác định được vùng

chứa đơn thuốc day đủ và chính xác nhất Cụ thé hơn, chúng tôi sẽ sử dụng phiên

bản Yolov8-seg loại n bởi vì độ phức tạp của bai toán xác định vùng chứa đơn

thuốc ở trên ảnh chụp không phải là quá lớn và với việc sử dụng một phiên bản gọnnhẹ như vậy chúng tôi sẽ tiết kiệm được thời gian chạy cũng như tiết kiệm được tàinguyên của hệ thống

16

Trang 28

2.3 Xác định vùng chứa chữ và trích xuất thông tin

2.3.1 Các mô hình trí tuệ nhân tạo được sử dụng cho bài toán nhận diện và

trích xuât văn bản

Đối với đề tài trích xuất thông tin đơn thuốc nói riêng hay còn nói chung là bàitoán nhận dạng và trích xuất văn bản trên hình ảnh có chứa văn bản Tầm quantrọng của đề tài này bao gồm nhiều khía cạnh từ việc nhận diện và trích xuất thôngtin quan trọng trên toa thuốc đến việc xử lý và lưu trữ thông tin một cách hiệu quả,

an toàn Cho nên, bài toán này đang được rất nhiều sự quan tâm từ các nhà nghiêncứu trong thời gian gần đây, băng chứng cụ thể là nhiều nghiên cứu đã được công

bố gần đây hay như việc bài toán được ứng dụng rộng rãi hơn trong thực tế, nhưcho thấy thông qua các cuộc thi như (ICDAR Robust Reading Competitions) Cuthể hơn là bài toán này sử dụng công nghệ nhận diện ký tự quang học (OCR) và xử

lý ngôn ngữ tự nhiên (NLP) Đặc biệt, OCR trong ảnh chụp tài liệu đã đạt được

tự từ hình ảnh, tài liệu giấy, biển báo, hoặc bat kỳ bề mặt nào có chứa văn bản, sau

đó chuyền chúng thành dữ liệu kỹ thuật số OCR sử dụng các kỹ thuật chính ở đây

có thể nói như là nhận diện vùng chữ (Text Detection) và nhận dạng ký tự (Text

Recognition).

Vì như vậy, hiện nay có rất nhiều mô hình OCR hiện dai được phát triển dégiải quyết bài toán này Dưới đây là một số thông tin về các mô hình đó :

e Tesseract : là một công cụ OCR mã nguồn mở do Google phát triển, tesseract

đã được cải tiến liên tục qua các phiên bản, với khả năng nhận diện đa ngôn

ngữ và xử lý văn bản phức tạp Tuy nhiên, bởi vì là mã nguôn mở nên đôi

17

Trang 29

khi nó có thé gặp khó khăn với các hình ảnh có độ phân giải thấp hoặc nềnphức tap[26][27] Kết quả minh họa được minh họa qua (Hình 2.3.1)

‘SHOPPING | SHOPPING OE tren |

om ee [ISSM

$19.98

xxxx xxx HEHE TIN

SPPROVED

Hinh 2.3 1: Minh hoa két qua khi str dung Tesseract

e EAST : là một thuật toán tiên tiễn trong việc xác định và định vị văn bản trên

hình ảnh tự nhiên, EAST sử dụng một mạng CNN đa lớp dé trích xuất đặctrưng tir hình anh[17][18] Mang CNN được thiết ké dé nhận biết và hiểu cấu

trúc của văn bản trong hình ảnh Quá trình này giúp mô hình xác định các

đặc trưng quan trọng như đường viền, góc, và cấu trúc của các ký tự và từ.Đặc biệt, EAST còn sử dụng một kiến trúc mạng học sâu dựa trên hình chữ

U, để dự đoán hình dạng hình chữ U của các vùng chứa văn bản trên hìnhảnh Điều này là quan trọng trong việc xác định và định vị các khu vực chứa

văn bản có hình dạng đặc biệt như hình dạng của đoạn văn bản trên đơn

thuốc, kiến trúc dạng hình chữ U giúp EAST cải thiện khả năng xác định và

định vị các vùng chứa văn ban trong các hình ảnh có hình dạng phức tạp[3].

Điều này tạo nên sự chuyên môn cho EAST trong việc xử lý hình ảnh vănbản có hình dạng phức tạp và nhiều biến thể Kết quả minh họa của mô hình

EAST được minh họa qua (Hình 2.3.2)

18

Trang 30

HAA BANAT ad

234 ep 44 2} MRP

279 39 S8 32 PRICE

1 XE A8 19 wT

An 18,012 XƯƠNG Windia RUA Ut

Hinh 2.3 2: Minh hoa két qua khi sir dung EAST

e PaddleOCR : là một công cu OCR mã nguon mở, được xây dung dựa trên

nền tảng PaddlePaddle, là một khung học sâu mạnh mẽ PaddleOCR nồi bậtvới khả năng hỗ trợ nhiều ngôn ngữ, bao gồm cả tiếng Trung và tiếng Anh,

và có thể nhận diện văn bản trong các hình ảnh phức tạp với độ chính xác

cao, PaddleOCR hỗ trợ hơn 80 ngôn ngữ[23][24] Ngoài việc nhận diện văn bản, PaddleOCR còn hỗ trợ phát hiện văn bản trong ảnh, giúp xác định vùng

văn bản trước khi tiên hành nhận diện[25] Tuy nhiên, vì chỉ là mã nguồn mởnên vẫn chưa đạt được hiệu quả và độ chính xác cao Kết quả của mô hình

PaddleOCR được minh họa qua (Hình 2.3.3)

85 0.994

EFTPOS 0.904

0.62 0.818

: TOTAL INCLUDESGSTOF 0.888

Hình 2.3 3: Minh họa kết quả khi sử dụng PaddleOCR

e Yolov5: Là một trong những mô hình phát hiện đối tượng tiên tiến nhất,

Yolov5 có khả năng xử lý hình ảnh rất nhanh, cho phép áp dụng trong các

ứng dụng yêu cầu nhận diện đối tượng thời gian thực[20][22] Yolov5 đã cải

thiện đáng ké về độ chính xác và khả năng phát hiện đối tượng nhỏ hoặctrong các điều kiện phức tạp

19

Trang 31

e_ Yolov8[34] : là một trong những mô hình phát hiện đối tượng tiên tiến nhất,

YOLO có khả năng xử lý hình ảnh rất nhanh, cho phép áp dụng trong các

ứng dụng yêu cầu nhận diện đối tượng thời gian thực[20] Thay vì chia hìnhảnh thành nhiều phần và phân tích từng phần riêng lẻ, YOLO sử dụng mộtmạng nơ-ron duy nhất để dự đoán vị trí và nhãn của các đối tượng trongảnh[22] Với các phiên bản nâng cấp liên tục, YOLO đã cải thiện đáng kể về

độ chính xác và khả năng phát hiện đối tượng nhỏ hoặc trong các điều kiệnphúc tạp Kết quả của mô hình YOLO được minh họa qua (Hình 2.3.4)

“il (064 10m (Img Je Betmetinoa (Chiêu:| [0] Tối:

Tai ra 'Chiu: ¡0 Tối: _ [I|

3 rín|7mg(SiJ)ì omg), :

SL:|28.-Sáng [I] [Trwal jD[ (Chiều [i] Tối: l0]

[Hẹn|tái [khám: 28/02/2019)

Hình 2.3 4: Minh họa kết quả khi sử dụng Yolo

2.3.2 Lý do chọn Yolov8 cho bài toán phát hiện vùng chứa chữ và nhận

dang, phân loại ký tự (text detection, text recognition)

Trong quá trình nghiên cứu và phát triển hệ thống nhận diện văn bản và phát

hiện vùng chữ, việc lựa chọn mô hình phù hợp là yếu tố then chốt dé đạt được hiệusuất cao và độ chính xác tối ưu Hiện nay, có nhiều mô hình OCR phục vụ cho bàitoán này, mỗi mô hình đều có những ưu điểm và nhược điểm riêng Sau quá trìnhtìm hiểu và so sánh, chúng tôi đã lựa chọn Yolov8 cho cả bài toán nhận diện vùngchữ và nhận dạng, phân loại ký tự Đề làm rõ hơn, hãy xem bảng so sánh (Bảng 1.1)

dưới đây:

20

Trang 32

Bang 2 1: So sánh các mô hình OCR.

Tiéu chi Tesseract EAST PaddleOCR Yolov8 Yolov5

Độ chính xác | Trung bình | Cao với văn | Cao, hỗ trợ đa | Rất cao, tốt Cao, tốt đôi với văn bảntrên toa thuốc bản rõ ràng | ngôn ngữ tốt | đối với các đối trung bình và lớn

Độ phức tạp khi | Thap,dé | Trung bình | Cao, yêu cầu | Thấp, dễ tích | Trung bình, triển khai dễ

triển khai tích hợp cấu hình hợp dàng với tài liệu hỗ trợ tốt

nhiều

Khả năng mở Hạn chế Trung bình | Cao, liên tục Rất cao và Cao, cộng đồng hỗ trợ

rộng va cập được cải thiện | cộng đồng hỗ lớn, liên tục cải tiến

nhật trợ lớn

Khả năng phát Hạn chế Cao với đối Cao, nhưng Rất cao, hiệu Cao, hiệu quả với đối

hiện đối tượng tượng lớn | cần tùy chỉnh quả với các tượng trung bình va lớn,

đối tượng nhỏ | nhưng kém hơn với đối

tượng nhỏ và phức tạp

Dựa vào bảng so sánh trên, có thể thấy rằng Yolov8 vượt trội ở nhiều khía

cạnh quan trọng so với các mô hình OCR khác.

Yolov8 cung cấp hiệu suất xử lý rất nhanh, phù hợp cho bài toán trích xuấtthông tin từ ảnh chụp toa thuốc, yêu cầu nhận diện thời gian thực Ngoài ra, Yolov8

sử dụng một mạng nơ-ron duy nhat đê dự đoán vi trí và nhãn của các đôi tượng

21

Trang 33

trong ảnh, giúp đơn giản hóa quá trình xử lý và tăng độ chính xác Các phiên bảntrước của YOLO đã chứng minh khả năng xuất sắc trong việc phát hiện đối tượng

nhỏ trong các điều kiện phức tạp, và Yolov8 tiếp tục cải thiện điều này[34] Điềunày đặc biệt hữu ích trong việc nhận diện vùng chữ trên các đơn thuốc, nơi văn bảnthường có kích thước nhỏ và nằm trong các bối cảnh phức tạp với nhiều loại vàdạng toa thuốc khác nhau

Yolov8 còn có khả năng phát hiện đối tượng ở nhiều cấp độ khác nhau trongcùng một hình ảnh, từ các đối tượng lớn đến các đối tượng nhỏ hon[34][21] Điềunày có nghĩa là mô hình có thể nhận diện cả các đoạn văn bản lớn và các ký tự đơn

lẻ một cách hiệu quả[30] Khả năng này rất quan trọng trong việc nhận diện vùng

chữ trên hình ảnh chứa văn bản, nơi sự đa dạng về kích thước và hình dạng của vănbản có thé gây khó khăn cho các mô hình khác

Một trong những ưu điểm lớn nhất của Yolov8 là khả năng triển khai linh hoạt

trong nhiều môi trường khác nhau[31] Mô hình có thé được tích hợp dé dàng vào

các hệ thống hiện có và triển khai trên các nền tảng phần cứng đa dạng, từ máy tính

cá nhân đến các thiết bị di động và các thiết bị máy tính nhúng Điều này giúp mở

rộng khả năng ứng dụng của Yolov§ trong lĩnh vực y tế và khá phù hợp với bài toán

trích xuất thông tin từ ảnh chụp toa thuốc

Đối với bài toán nhận dạng va phân loại ky tự (Text Recognition), Yolov8cũng thể hiện hiệu quả vượt trội Với kiến trúc mạng nơ-ron sâu, Yolov8 có khảnăng học và nhận biết các đặc trưng phức tạp của ký tự, từ đó tăng cường độ chínhxác trong việc nhận dạng và phân loại Điều này đặc biệt quan trọng khi xử lý cácđơn thuốc có các ký tự và thông tin đa dạng Nhiều mô hình OCR gặp khó khăn khinhận dạng các ky tự nhỏ hoặc bị mờ nhưng Yolov8 được tối ưu hóa để có thé nhậndiện chính xác các ký tự nhỏ, đảm bảo rằng không có thông tin nào bị bỏ

s6t[33][34].

Nhờ các ưu điêm vượt trội vê độ chính xác, kha năng nhận diện trong điêu

kiện phức tạp, tối ưu hóa cho nhận dạng ký tự nhỏ và tốc độ xử lý nhanh[32][34],

22

Trang 34

Yolov8 là lựa chọn lý tưởng cho bài toán nhận dạng và phân loại ký tự Việc lựa

chọn Yolov8 cho bài toán trích xuất thông tin từ ảnh chụp toa thuốc sẽ mang lại

hiệu quả cao, đảm bảo tính chính xác và tin cậy của thông tin được trích xuất, đồng

thời cải thiện trải nghiệm người dùng và hiệu quả hoạt động của hệ thống trong các

ứng dụng y té[34]

2.4 Hệ quản trị cơ sở dữ liệu và server

2.4.1 Hé quan trị cơ sở dữ liệu là gì

Hệ quản trị cơ sở dữ liệu hay còn gọi là DBMS (Database Management

System) là một phần mềm được tạo ra dé quan lý, tô chức và xử lý cơ sở dữ liệu Hệquản trị cơ sở dit liệu cung cấp công cụ và có các chức năng như: tạo, truy van, cập

nhật và xóa dữ liệu ở trong cơ sở đữ liệu.

Hệ quản trị cơ sở dữ liệu là một công cụ cực kỳ hữu hiệu vì nó cho phép người

dùng thực hiện các tác vụ như tạo, sửa đổi, cập nhật, xóa cấu trúc cơ sở dữ liệu, truy

van theo yêu cầu, bảo mật dữ liệu, sao lưu và khôi phục dữ liệu cùng nhiều chức

năng khác Trên thị trường hiện nay có một vài hệ quản trị cơ sở dữ liệu phổ biến có

thé ké đến như: MySQL, PostgreSQL, Oracle, SQL Server và MongoDB

2.4.2 Lý do lựa chon MongoDB dé làm hệ quản trị cơ sở dữ liệu

MongoDB là một hệ quản tri cơ sở dữ liệu phi quan hệ (NoSQL) với mã

nguồn mở, điều này giúp cho MongoDB rất linh hoạt và thích ứng với nhiều loạikiêu dữ liệu khác nhau MongoDB cũng cung cấp giải pháp dé lưu trữ và xử lý dit

liệu phi câu trúc và có khả năng mở rộng dễ dàng.

Với mỗi cơ sở đữ liệu (database) ở trong MongoDB sẽ chứa các bộ sưu tập

(collections) khác nhau, cho phép tao dir liệu (documents) và bộ sưu tập trong đó.

Trong bộ sưu tập có chứa các tài liệu, các tài liệu này chứa dữ liệu mà người dùng

sẽ lưu trữ vào Một bộ sưu tập có thé chứa nhiều tài liệu và không nhất thiết tài liệu

này phải giống với tài liệu khác MongoDB cũng cung cấp khả năng truy cập từ xathông qua các kết nối mạng TCP/IP Điều này cho phép ứng dụng hoặc máy chủ từ

23

Trang 35

xa kết nối và tương tác với dữ liệu được lưu trữ ở trong MongoDB Điều này mang

lại sự tiện lợi và linh hoạt trong việc quản lý và truy xuất dữ liệu dù cho có ở bất cứ

đâu [13] Cấu trúc của MongoDB sẽ được miêu ta ở hình 2.4.1

Với những chức năng ké ở trên, chúng tôi nhận thấy rằng việc lựa chọnMongoDB là rất thích hợp dé lưu trữ dữ liệu cho đề tài “Ung dung kỹ thuật máy học

để trích xuất thông tin toa thuốc từ ảnh chụp” bởi vì đữ liệu chúng tôi muốn lưu trữbao gồm cả ảnh chụp và chuỗi các tên thuốc Cho nên việc sử dụng một hệ quảntrị cơ sở dir liệu phi cau trúc như MongoDB là rất hợp lý Hơn nữa, MongoDB còn

hỗ trợ truy cập từ xa và thao tác với dữ liệu ở trong thời gian thực với độ bảo mật

rất cao vì MongoDB có thé chỉ định những dia chi IP nào có quyền truy cập vào nó,điều này rat cần thiết cho dé tài bởi vì người dùng sẽ truy cập vào server dé sử dungtất cả các chức năng theo thời gian thực

Documents

Documents |

|

mm | se.

Hình 2.4 1: Cau trúc của MongoDB (nguồn: Icantech)

2.4.3 Lý do cần phải khai thác cơ sở dữ liệu tên thuốc

Theo như mục tiêu của đề tài “Ứng dụng kỹ thuật máy học để trích xuất thôngtin toa thuốc từ ảnh chụp”, đầu ra cuối cùng của hệ thống sẽ là tên các loại thuốc ở

trên ảnh chụp đơn thuốc Tuy vậy, ở bước trích xuất nội dung sẽ trích xuất tất cả các

24

Trang 36

chữ có trên đơn thuốc bởi vì mô hình trích xuất thông tin không thể xác định đượcchính xác vùng nào là vùng chứa tên thuốc để trích xuất do có rất nhiều loại đơn

thuốc và mỗi đơn thuốc đều có một cách sắp xếp vị trí các loại thông tin khác nhau.

Vì lý do trên, việc có một cơ sở dữ liệu tên thuôc đây đủ và đúng chuân của

Bộ Y tê Việt Nam là rât cân thiệt Bởi vì sau khi đã trích xuât được thông tin của cả đơn thuôc thì sẽ qua một bước so sánh với cơ sở dữ liệu tên thuôc đó và cuôi cùng

sẽ lọc ra được đâu là tên thuốc và đâu là những nội dung khác

2.4.4 Lý do lựa chọn FastAPI để làm server API

FastAPI là một framework hiệu suất cao cho ngôn ngữ lập trình Python, chạy

trên máy chủ web, được thiết kế để xây dựng các API nhanh chóng và mạnh mẽ Nókết hợp sức mạnh của Python với các tính năng hiện đại trong phát triển web đểcung cấp hiệu suất tốt và tài liệu API tự động

Một sô đặc điêm quan trọng và tôi ưu của FastAPI so với các framework khác

sẽ được miêu tả như hình 2.4.2 và có thé ké đến như [14]:

e Hiệu suất cao: FastAPI được xây dựng dựa trên Starlette và Pydantic, cho

phép sử dụng khả năng bat đồng bộ của Python dé xử lý các yêu cầu đồng

thời với hiệu suất cao

e Tài liệu API tự động: FastAPI tự động tạo tài liệu API dựa trên các chú thích

kiểu Python và OpenAPI Nó cung cấp giao diện Swagger UI tương tác để

khám phá và thử nghiệm các API dễ dàng.

e Xác nhận kiểu và kiểm tra dữ liệu: Sử dụng Pydantic, FastAPI cho phép xác

định kiểu dữ liệu và kiểm tra dữ liệu tự động, giúp bảo đảm dữ liệu được gửi

và nhận qua API là hợp lệ.

e Hỗ trợ Bất đồng bộ: FastAPI hỗ trợ hoàn toàn lập trình bất đồng bộ, cho

phép xử lý các hoạt động I/O-bound một cách hiệu quả.

e Dễ tích hợp va sử dụng: Nó tích hợp dé dàng với các thư viện và framework

khác của Python, giúp các nhà phát triển làm việc với công cụ ưa thích của

họ.

25

Trang 37

8nk Framework Performance (higher is better) Errors Cls Lng Plt FE Aos DB Dos Orm IA

¡ Nfastapi-uvicorn-orjson 11,575 Es 100.0% (52.9) Mee _fy my vM Ủn Fg) tin Ea Ren

2 Nfastapi " —ẼÃ _—— .Ă oe Gun Lín _Pg tin Raw Rea

3 M@ fastapi-uvicorn 21279) 6°29: (52.5) Mer _fy asy ưM Lin _Pg tin Raw Rea

4 Mfastapi-gunicorn-orjson 11,272 [29,195 (52.6) Mo Py ay Gun i

5 Ñfastapi-hypercorn 8416 | I 72,09: (24.3) ae Eva =) 9

6 Mfastapi-hypercom-orjson 8,369 Es 73,69 (24.2) Me _fy ay hyp Lin _Pg Lin Raw Rea

7 Mi lumen-workerman 4336 | a 42.595 (14.0) ,Mư PHP wor Non

sm laravel-workerman 4,656 [LT 40.9% (13.5) „PA PHP wor Non

3 Mcakephp 5,778 TT 3 3.2% (10.9) „FaL PHP fpm ge

10 ml lumen-swoole 3,770 ( 53.1% (10.9) MeL PHP sụo Non

14 m® laravel-swoole 3,593 [I 31.69 (10.4) „li PHP mưo Non

12 gi lumen 5,190 28.0% (9.2) Ma PHP {em _ngx

13 m® Laravel 2,947 (NNN 25.9% (8.5) Ful_PHP_fpm ngx

14 @ lumen-laravel-s 2,932 NN 25.8% (8.5) „Mơ PHP swo Non

15 m® laravel-laravel-s 2,826 NN 24.55% (8.2) Fut PHP swo Non tin Ful Rea

16 Wi fastapi-gunicom-orm 2,009 (INN 1 7.7 (5.8) Mo _fy _zy Gun bir

17 Mi cakephp-workerman 1,676 [NM 14.7% (4.8) fut PHP wor Non _Ln My Lin _Ful Rea

18m@ laravel-roadrunner 1,6ói (NNN 14.6% (4.8) Ful PHP ro Non

19 m® django-postgresql 1,623 WGN 14.3% (4.7) Fut Py Wsg Mei LLn Pg tin’ Fut Rea

20 m® django 1,494 [MN 13.196 (4.3) „PA Py Wsg Mei

Hình 2.4 2: Hiệu suất các framework dé tạo nên server phổ biến (nguồn: VNLab)

Từ những phân tích kể trên, chúng tôi nhận thấy rằng FastAPI là thích hợpnhất đối với đề tài “Ung dụng kỹ thuật máy hoc dé trích xuất thông tin toa thuốc từ

ảnh chụp” bởi vì sự tiện dụng và khả năng tương thích với nhiều nền tảng khác

nhau và tốc độ xử lý rất nhanh của nó Đặc biệt hơn nữa, phần xử lý hình ảnh và

trích xuất thông tin sẽ được viết bằng ngôn ngữ lập trình Python và việc sử dụng

một framework hiệu suất cao cho ngôn ngữ lập trình Python như FastAPI sẽ tạo nên

sự tương thích và nâng cao hiệu suất cho hệ thống

26

Trang 38

Chương 3 PHƯƠNG PHÁP THỰC HIỆN

Hình 3.1 1: Kiến trúc hệ thống của đề tài.

Theo như mục tiêu và phạm vi của đề tài “Ứng dụng kỹ thuật máy học để tríchxuất thông tin toa thuốc từ ảnh chụp”, chúng tôi đã thảo luận và thống nhất rằng sẽthiết kế kiến trúc hệ thống theo mô hình client-server như trong Hình 3.1.1, cụ thé

về các phan sẽ như sau:

e_ Đối với phan client: Day chính là phần của người dùng, khi người dùng

muốn sử dụng hệ thống để lấy thông tin tên thuốc thì người dùng sẽ chụpmột bức ảnh và gọi đến server thông qua HTTP request, sau đó phía server

sẽ xử lý bức ảnh và gửi lại kết quả cho người dùng thông qua HTTPresponse Ngoài ra, người dùng còn có thé thêm mới, xem, xóa và chỉnh sửacác dữ liệu của mình bằng cách gọi các HTTP request tương ứng đến server.e_ Đối với phan server: Đây chính là phần nội dung chính và cốt lõi của đề tài

“Ung dụng kỹ thuật máy học dé trích xuất thông tin toa thuốc từ ảnh chụp”,đây cũng là phần chịu trách nhiệm xử lý tất cả các yêu cầu của người dùngnhư: trích xuất thông tin tên thuốc, xem thông tin, thêm mới, xóa và chỉnhsửa dữ liệu của người dùng Cụ thể hơn, sau khi nhận được một HTTP

request yêu cầu trích xuất thông tin tên thuốc của người dùng, phần FastAPI

27

Trang 39

trong server sẽ có nhiệm vụ lấy bức ảnh mà người dùng gửi đến sau đó gửiđến phần xử lý bức ảnh và trích xuất thông tin tên thuốc dựa trên những môhình Yolov8 mà chúng tôi đã huấn luyện Sau khi đã trích xuất được thôngtin tên thuốc thì sẽ lưu thông tin ấy vào MongoDB để cho người dùng dễdàng quản lý Ngoài ra, server cũng sẽ lắng nghe các yêu cầu khác của ngườidùng như: xem, thêm mới, xóa và chỉnh sửa dữ liệu, lúc này phần FastAPI sẽchuyền hướng các yêu cầu đó đến phần MongoDB và bỏ qua phần xử lý ảnh

dựa trên Yolov8.

Dé hiện thực được một kiến trúc hệ thống như trên thì việc có một máy chủ cócấu hình đủ mạnh và tương thích với các thành phần như: Yolov8, FastAPI,MongoDB là rất cần thiết Sau một thời gian nghiên cứu và tìm hiểu, chúng tôi đãtìm ra một giải pháp đó là thuê một server gpu trên trang web thuegpu.vn dé triểnkhai phần server của mình lên đó

B Oia: 300 GB B ồơa: 300 GB B Ôơa: 300 GB

@ CPU: 20 Nhân © CPU: 20 Nhân @ CPU: 14 Nhân

P40 | Server4|CPUE5-2667 8,000 RTX3090 | Server1|CPUES- 16,000 RTX3090 | Server2|CPUES- 16,000

v3 đ 2690 v4 đ 2667 v3 đ

@ Bai @E @

Ge 48000 MB 8 48000 MB 8 48000 MB

G Oda: 300 GB G Ôza: 600 GB B Oia: 600 GB

@ CPU: 14 Nhân @ CPU: 20 Nhân @ CPU: 14 Nhân

Hình 3.1 2: Giao diện trang web thuegpu.vn

Theo như hình 3.1.2, trang web thuegpu.vn có rất nhiều các lựa chọn máy chủ

để chúng tôi có thể lựa chọn sao cho phù hợp với mục đích của bài toán Ở đây,chúng tôi sẽ thuê một server P40 với giá là 8.000 VND trên 1 giờ Cấu hình của

28

Trang 40

máy ở trên là GPU NVIDIA P40, 48G RAM với 24 nhân và 300G bộ nhớ Những

thông số ở trên hoàn toàn đủ sức để chạy tất cả những chức năng trên server màchúng tôi đã thiết kế ra Kết quả tốc độ khi chạy sẽ được miêu tả ở phần kết quả

3.2 Bài toán xác định vùng chứa thuốc trên ảnh chụp

3.2.1 Xây dựng bộ dữ liệu để chuẩn bị cho việc huấn luyện mô hình

Sau khi đã xác định được mục tiêu và mô hình của bai toán xác định vùng chứa đơn thuôc trên ảnh chụp, chúng tôi sẽ tiên hành sử dụng Roboflow làm công

cụ để đánh nhãn vì đây là một framework dễ sử dụng và có rât nhiều các chức năng

hữu ích cho việc huấn luyện mô hình{ I 5]

Sau khi tìm kiếm ở trong kho dữ liệu công khai của Roboflow, chúng tôi đãtìm thấy được một nguồn dữ liệu có khoảng 1400 bức ảnh về hóa đơn nói chung[16] Chúng tôi đã tìm kiếm và lựa chọn hóa đơn dé làm dit liệu cho bài toán xácđịnh vùng chứa đơn thuốc trên ảnh chụp là vì có hai lý do Thứ nhất, việc thu thậpcác đơn thuốc rất khó khăn do các bệnh viện, nhà thuốc và mọi người thường bảomật thông tin các đơn thuốc rất kỹ Thứ hai, đơn thuốc ở Việt Nam có kiểu dáng rấtgiống kiểu dáng của các hóa đơn bởi vì tong quan lại nêu không quan tâm đến nội

dung ở trong đó thì cả đơn thuốc và hóa đơn đều là những hàng chữ đen được in lên

một tờ giấy trắng Tóm lại, chúng tôi sẽ sử dụng bộ dữ liệu là hơn 1400 ảnh chụp

hóa đơn cho bài toán xác định vùng chứa đơn thuốc trên ảnh chụp và vì kết quảchúng tôi đã kiểm tra (sẽ được nói ở phan 4.1) rất tốt cho nên chúng tôi vẫn sẽ sửdụng mô hình huấn luyện trên tập dữ liệu này

29

Ngày đăng: 06/12/2024, 15:23