Tác giả Hoang Nhut Huynh và các cộng sự thực hiện công trình nghiên cứu “Classification of Stages Diabetic Retinopathy Using MobileNetV2 Model” [1] huấn luyện mô hình MobileNetV2 phân lớ
Trang 1Dang Quốc Bao
PHAN LOAI ANH CHUP DAY MAT
HỖ TRỢ CHAN DOAN
BENH VONG MAC TIEU DUONG
LUẬN VAN THAC SĨ
NGANH CONG NGHE THONG TIN
Mã số: 848.02.01
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS Lê Minh Hưng
TP HO CHÍ MINH - NĂM 2022
Trang 2Lời cam đoan
Tôi xin cam đoan luận văn này do chính tôi thực hiện dưới sự hướng dẫn khoa học
của TS Lê Minh Hưng, giảng viên Trường Dai học Công Nghệ Thông Tin.
Các dữ liệu nghiên cứu và mô hình thực nghiệm của tôi trong luận văn này là
trung thực, phần mềm ứng dung do tôi lập trình, phân tích, thiệt kế
Các thông tin được trích dẫn trong luận văn này đều được chỉ rõ nguồn gốc Nếu
sai, tôi xin chịu hoàn toàn trách nhiệm.
Tac giả luận văn
Đặng Quốc Bảo
Trang 3Lời cảm ơn
“Trước tiên, xin cảm ơn thầy Tiến sĩ Lê Minh Hưng vì đã gợi mở, quan tâm, giúp
đỡ, nhiệt tình hướng dẫn cho em trong suốt thời gian thực hiện luận văn tốt nghiệp
này.
Em cũng xin gởi lời cám ơn đến tất cả quý thầy cô trường Đại học Công nghệThông tin đã trực tiếp giảng dạy trong suốt khóa học, những người bạn đã luôn quantâm, sẵn sàng giúp đỡ trong quá trình học tập và nghiên cứu.
Ngoài ra, em xin chân thành cảm ơn sự quan tâm hỗ trợ, tạo điều kiện và hết lòngđộng viên về tỉnh thần lẫn vật chất của tất cả các thành viên trong gia đình trong suốt
thời gian qua.
TP.Hồ Chí Minh, tháng 12 năm 2022
Tac giả luận văn
Đặng Quốc Bảo
Trang 4MỤC LỤC
DANH MỤC CÁC BANG
DANH MỤC HÌNH VE, DO THỊ
DANH MỤC TU VIET TAT, KY HIE!
CHUONG 1 TONG QUA
1.1 Giới thiệu chung
1.2 Tình hình nghiên cứu trong và ngoài nước
1.2.1 Tình hình nghiên cứu trong nước estrerterterrrterrrrrrerrrrrrrrrox
lO
1.2.2 Công trình nghiên cứu ngoài nước
1.3 Lý do thực hiện đề tài sie? 1.4 Mục tiêu đề tài se HH Hgirdrrtorditteptsntterottroetsssonreeeooroue 2 1.5 Đối tượng nghiên cứu seed
oe 1.6 Phạm vi nghiên cứu.
1.7 Giới hạn, tính mới, tính khoa học của đề tài „13 1.7.1 Giới hạn của đề
1.7.2 Tính mới của đề tài
1.7.3 Tính khoa học của đề tài
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Bệnh võng mạc tiểu đường (đái tháo đường)
Trang 52.7.2 Tăng độ tương phản cho ảnh
2.7.3 Tăng cường dữ liệu (data augmentation)
CHƯƠNG 3 MÔ HÌNH THỰC NGHIỆM VA KET QUẢ
3.1 Ý tưởng xây dựng hệ thống và hoạt động
3.2 Bộ dữ liệu làm thực nghiệm
3.2.1 Bộ dữ liệu được công bố trên Kaggle
3.2.2 Bộ dữ liệu tại bệnh viện DKKV Cai Lay
3.3 Hoạt động của phần mm ©©©©©©<terterrtrttrrrrrrrrrerxresssrrsersrrsrrerssrsrrsorosee OO 3.3.1 Huấn luyện mô hình học sâu.
3.6 Kết qua thực nghiệm tt HrrrridittsstniterosoreesssoorreeoooooỔf7
3.6.1 Kết quả thực nghiệm trên bộ APTOS 2019
3.6.2 Kết quả thực nghiệm trên bộ Bệnh viện Cai Lậy
Trang 63.6.3 So sánh kết quả với các nghiên cứu kh:
CHƯƠNG 4 KET LUẬN VÀ KHUYEN NGHỊ.
4.1 Luận văn đã giải quyết được
4.2 Những hạn chế của hệ thống và hướng giải quyết
4.3 Kết qua đạt được và ý nghĩa.
4.4 Hướng phát triễn -«+cccceetriererrriiiiiriirrriirrirriirrrrrrririisorrreoooooouuĐ 2
+63
TAI LIEU THAM KHAO
Trang 7DANH MỤC CÁC BẢNG
Bang 1.1 Một số công trình phân loại ảnh chụp đáy mắt
Bảng 2.1 So sánh các mô hình học sâu
Bảng 3.1 Phân bố ảnh của tập huấn luyện và tập kiêm tra
Bang 3.2 Phân bố ảnh cua tập huấn luyện và tập kiểm tra
Bảng 3.3 Các thông số trong quá trình huấn luyện mô hình
Bảng 3.4 Các tham số (Hyperparameters) được sử dụng trong các mô hình
Trang 8DANH MỤC HÌNH VẼ, ĐÒ THỊ
Hình 1.1 Hình ảnh bệnh võng mạc tiểu đường
Hình 1.2 Các bệnh lý đặc trưng của bệnh võng mạc tiêu đường
Hình 1.3 Giao diện ứng dụng DrAidTM cho Radiology.
Hình 2.1 Các giai đoạn tiến triển của bệnh lý võng mạc tiều đường
Hình 2.2 Cấu trúc đại diện của một mạng nơ ron tích chập
Hình 2.3 Kiến trúc VGG16
Hình 2.4: Kiến trúc GoogleNet - Inception version 3
Hình 2.5: Kiến trúc ResNet 50 =
Hình 2.6 Mở rộng mô hình (Model Scaling)
Hình 2.7 Cấu trúc gốc của mô hình EfficentNet
Hình 2.8 Kiến trúc của mô hình Inception-Resnet-V2
Hình 2.9 Kiến trúc của khối Stem trong mô hình Inception-Resnet-V2
Hình 2.10 Kiến trúc của khối Inception A, B, C trong mô hình Inception-Resnet
Hình 2.11 Kiến trúc của khối Reduction A trong mô hình Inception-Resnet
Hình 2.12 Kiến trúc của khối Reduction B trong mô hình Inception-Resnet-V2
Hình 2.13 Ảnh chụp đáy mắt trước và sau khi cắt bỏ viền đen
Hình 2.14 Ảnh chụp đáy mắt trước và sau khi tăng độ tương phản
Hình 2.15 Ảnh chụp đáy mắt sau khi được xử lý bằng các phương pháp tăng cường dữ
liệ
Hình 3.3 Ảnh trước khi cắt bỏ vid
Hình 3.4 Ảnh sau khi cắt bỏ viền
Hình 3.5 Quá trình huấn luyện mô hình học sâu
Hình 3.6 Phân bố dữ liệu các lớp của giai đoạn huấn luyệ
Hình 3.7 Phân bố dữ liệu các lớp của giai đoạn xác nhật
Hình 3.8 Phân bố dữ liệu các lớp của giai đoạn kiểm tra
Hình 3.9 Mô tả độ chính xác và hàm mat mát
Hình 3.10 Kết quả độ chính xác, độ nhạy, độ đặc hiệu của mô hình EfficientNetB3 41Hình 3.11 Kết quả độ chính xác, độ nhạy, hiệu của mô hình VGGI6 Hình 3.12 Kết quả độ chính xác, độ nhạy, độ đặc hiệu của mô hình Inception-V3
Hình 3.13 Kết quả độ chính xác, độ nhạy, hiệu của mô hình ResNet50
Hình 3.14 Kết quả độ chính xác, độ nhạy, độ đặc hiệu của mô hình
Inception-ResNet-V2 : Hình 3.15 Kêt quả độ chính xác, độ nhạy, độ đặc hiệu của mô hình EfficientNet B3 46
Hình 3.16 Kết quả độ chính xác, độ nhạy, độ đặc hiệu của mô hình VGG16
Hình 3.17 Kết quả độ chính xác, độ nhạy, hiệu của mô hình Inception-V3
Trang 9= 30 Hình 3.20 Sơ đô hoạt động của hệ thông :
Hình 3.21 Cơ sở dữ liệu của ứng dụng quan lý khám chữa bệnh 52
Hình 3.22 Giao điện phân loại ảnh chụp day mắt (5 lớp) trong ứng dụng quản ly khám
chữa bệnh
Hình 3.23 Giao diện kết quả chụp đáy mắt
Hình 3.24 Giao diện in kết quả chụp đáy mắt
Hình 3.25 Giao diện tìm kiếm bệnh nhân chụp đáy mat
Trang 10DANH MỤC TU VIET TAT, KÝ HIỆU
STT Từ viết tắt Từ viết đầy đủ
1 |AI Artificial intelligence
2 | APTOS Asia Pacific Tele-Ophthalmology Society
3 | CNN Convolutional Neural Network
4 |DL Deep Learning
5_|DR Diabetic Retinopathy
6 | DTD Dai thao duéng
7_| GPU Graphics processing unit
8 | ILSVRC ImageNet Large Scale Visual Recognition
Challenge
9 |ML Machine Learning
10_| HIS Hospital Information System
II | VMBTD Võng mạc đái tháo đường,
Trang 11CHƯƠNG 1 TONG QUAN
1.1 Giới thiệu chung
Các ứng dụng của máy học, học sâu đến các ngành y học trong thời gian gần
đây nhận được sự chú ý rất lớn từ các nhà nghiên cứu, cùng với đó là những thànhtựu và kết quả rất đáng được mong đợi đã đạt được Phân tích, xử lý ảnh y tế, chânđoán bệnh bằng máy học ngày một nhanh chóng và chính xác hơn
Bệnh võng mạc đái tháo đường (VMDTD) là kết quả các mạch máu rất nhỏ
trong võng mạc bị ton thương do bệnh đái thao đường (DTD) gây ra Bệnh có nhiều
giai đoạn như: chưa tăng sinh (nhẹ/vừa/nặng), và tăng sinh (nặng nhất) Khi nặng cóthê dẫn tới giảm hoặc mắt thị lực
Mạch máu mới tăng sinh
Phình mạch
Xuất tiết dạng chấm
Hình 1.1 Các bệnh lý đặc trưng của bệnh VMĐTĐ (Nguồn hình [8])
Trang 12Hình 1.2 Hình ảnh chụp đáy mắt
1.2 Tình hình nghiên cứu trong và ngoài nước
1.2.1 Tình hình nghiên cứu trong nước
Trí tuệ nhân tạo ngày càng được ứng dụng nhiều trong y học như: hỗ trợchân đoán bệnh; nghiên cứu, phát triển thuốc; tối ưu hóa trong điều trị cho từng cá
nhân; chỉnh sửa gen.
Tác giả Hoang Nhut Huynh và các cộng sự thực hiện công trình nghiên cứu
“Classification of Stages Diabetic Retinopathy Using MobileNetV2 Model” [1]
huấn luyện mô hình MobileNetV2 phân lớp bệnh VMDTD trên bộ dữ liệu APTOS
2019, sử dụng ký thuật xác thực cross validation để đánh giá mô hình huấn luyện,
độ chính xác tới 93.89%.
Các công trình nghiên cứu như: “Nội suy ảnh trong hỗ trợ chân đoán hình
Trang 13Năm 2019, Vinmec cùng với Bệnh viện Phôi Trung ương và VinBrain đã
hợp tác trién khai ứng “DrAid - AI Trợ lý bác sĩ trong chân đoán hình ảnh” [7],.
Đây là một trong những phần mềm dau tiên tại Việt Nam ứng dụng trí tuệ nhân tao,kết hợp thị giác máy tính và công nghệ xử lý ngôn ngữ tự nhiên hỗ trợ chân đoán vàđiều trị bệnh
Hình 1.3 Giao diện ứng dụng DrAidTM cho Radiology (Nguồn hình [7])
1.2.2 Công trình nghiên cứu ngoài nước
Trong các năm gần đây, có nhiều công trình nghiên cứu thuật toán máy học,
mô hình học sâu đề phân loại bệnh VMĐTĐ Có nhiều hướng tiếp cận khác nhaucho bài toán phân loại ảnh chụp đáy mắt
Enrique V Carrera cùng cộng sự với công trình “Automated detection of
điabetic retinopathy using SVM” [4], sử dụng các kỹ thuật xử lý ảnh để trích xuấtđặc trưng: xác định mạch máu, vi phình mạch, xuất tiết sau đó dùng thuật toánSVM để phát hiện bệnh VMĐTĐ trên ảnh chụp đáy mắt, đạt độ chính xác 92.4%
Việc nghiên cứu các mô hình học sâu ngày càng rộng rãi cùng với việc phát
triển mạnh phần cứng máy tính hỗ trợ máy học, học sâu, các kỹ thuật xử lý ảnh,
tăng cường tập dữ liệu cho các tập dir liệu ít, việc huấn luyện các mô hình trở nên
dễ đàng, nhanh chóng hơn, độ chính xác cũng cao hơn rất nhiều
Alan Lands cùng cộng sự của ông với công trình “Implementation of deep
Trang 14learning based algorithms for diabetic retinopathy classification from fundus
images” [5] str dung cac kiến trúc ResNet50, DenseNet121, DenseNet169 trên bộ
dữ liệu APTOS 2015 và 2019 tổng cộng 23302 ảnh Áp dụng kỹ thuật tăng cường(lật, tăng độ sáng, tăng độ tương phản) cho bộ dữ liệu để tăng lên số lượng 7000 ảnhmỗi lớp Tiền xử lý ảnh bằng phương pháp “Gaussian Blur Subtraction” Huấn
luyện các mô hình học sâu cho độ chính xác khá cao: ResNet50 (89%), DenseNet121 (93%), DenseNet169 (95%).
Tập dữ | Hướng h STT Tên tác giả Tên công trình Kết quả
Saket S | Retinopathy APTOS
2 | Chaturvedi và | Grading using | 2019
cộng sự Deep Inception Accuracy:
Net V3
Convolutional ° 63.23%
Neural Network
Trang 15cộng sự deep learning based | +
algorithms for APTOS 8 2019 DenseNe | Training
1.3 Lý do thực hiện đề tài
Trong xã hội hiện đại ngày nay, bệnh tiểu đường là một trong số các bệnhmãn tính thường gặp nhất, các biến chứng từ bệnh này cũng rất nhiều Các thiết bịhiện đại đã có thé chụp được ảnh đáy mắt với độ phân giải cao giúp bác sĩ chanđoán bệnh tốt hơn Tuy nhiên, việc chan đoán gặp nhiều khó khăn đòi hỏi phải có
kiến thức chuyên môn, kinh nghiệm nhiều Do đó việc hỗ trợ chan đoán của trí tuệ
nhân tạo dựa vào ảnh chụp đáy mắt là rất cần thiết Giúp giảm bớt các khó khăn khichẩn đoán bệnh, hạn chế việc chẩn đoán sai
1.4 Mục tiêu đề tài
Luận văn nay sẽ trình bay cơ sở lý thuyết trong phân loại bệnh VMĐTĐ.Giới thiệu các mô hình học sâu phân loại ảnh y khoa độ phân giải cao, giải quyếtbài toán phân lớp bệnh VMĐTĐ Xây dựng phần mềm phân loại bệnh VMĐTĐ củaảnh chụp đáy mắt, hỗ trợ chân đoán trong khám chữa bệnh
Phân loại ảnh chụp đáy mắt xem ảnh đó thuộc lớp nào trong các lớp: Không
bệnh (No DR), Bệnh nhẹ (Mild), Bệnh trung bình (Moderate), Bệnh nang (Severe),
Bệnh tăng sinh — giai đoạn nặng nhất (Proliferative) bằng phương pháp sử dụng mô
hình học sâu phân loại ảnh có độ phân giải cao.
1.5 Đối tượng nghiên cứu
Trang 16Nghiên cứu tổng quan về phân loại bệnh VMĐTĐ trên ảnh chụp đáy mắt.Các mô hình học sâu trong bài toán phân loại ảnh chụp đáy mắt: VGG 16, Inception
'V3, Resnet 50, Inception-Resnet V2, EfficientNet B3.
1.7 Giới han, tính mới, tính khoa học của đề tài
1.7.1 Giới hạn của đề tài
Đề tài nghiên cứu đặc điểm phân loại bệnh của ảnh chụp day mắt Tìm hiểu,
áp dụng các mô hình học sâu vào bài toán phân loại ảnh chụp đáy mắt Tìm hiểu
thêm các mô hình học sâu khác đê áp dụng vào bài toán.
1.7.2 Tính mới của đề tài
Tìm hiểu các phương pháp phân loại bệnh VMĐTĐ trên ảnh chụp đáy mắt.Ứng dụng mô hình học sâu mới EfficientNet vào bài toán phân loại ảnh chụp đáy
mat.
Thu thập dữ liệu ảnh chụp day mắt của người bệnh đến khám và được bác sĩchỉ định chụp ảnh đáy mắt tại Phòng khám mắt của Bệnh viện ĐKKV Cai Lậy Ảnhchụp đáy mắt được phân loại bởi bác sĩ tại Bệnh viện ĐKKV Cai Lậy và Bệnh viện
Mắt Tp.HCM Thực hiện gan nhãn dữ liệu Tiền xử lý dữ liệu (cắt bỏ vùng màu đen
Trang 171.7.3 Tính khoa học của đề tài
Đề tài đã áp dụng các mô hình học sâu mới phát triển vào bài toán phân lớpảnh chụp day mắt Tìm hiểu lý thuyết và làm các thực nghiệm dé so sánh kết qua
với các mô hình khác.
Trang 18CHƯƠNG 2 CƠ SỞ LÝ THUYET
2.1 Bệnh võng mạc tiểu đường (đái tháo đường)
2.1.1 Võng mạc là gì
Võng mạc là bộ phận của mắt, có chức năng gửi tín hiệu dọc theo thần kinhthị giác đến não bộ giúp chúng ta có thể nhìn thấy Võng mạc (màng thần kinh)chính là lớp màng trong cùng của nhãn cầu
- Mild: Giai đoạn bệnh nhẹ
- Moderate: Giai đoạn bệnh vừa
- Severe: Giai đoạn bệnh nặng
- Proliferative: Giai đoạn bệnh nặng nhất
Trang 19Hình 2.1 Sự tiến triển của bệnh lý VMĐTĐ (Nguồn hình [6])
2.2 Lý thuyết máy học
Bài toán xử lý, phân loại ảnh y tế đã có nhiều công trình nghiên cứu đượcđưa ra nhằm nâng cao độ chính xác cho kết quả phân loại Bắt đầu với các thuật
toán machine learning, phương pháp này chủ yếu phân tích nghiên cứu và thử
nghiệm các ký thuật trích xuất đặc trưng nhằm chọn ra phương pháp tối ưu nhất để
đưa vào bộ phân loại.
Có hai cách phổ biến phân nhóm các thuật toán Machine learning:
e Dua trên phương thức học (learning style)
e Dua trên chức năng (function).
2.3 Lý thuyết học sâu
2.3.1 Khái niệm Mạng nơ ron tích chập (mạng CNN)
Một mạng nơ ron tích chập thường có 3 thành phần sau đây:
+ Lớp tích chập (Convolution): Là lớp cơ bản trong kiến trúc CNN.
+ Lớp Pooling: Là lớp làm giảm kích thước không gian biểu diễn dé giảm sốlượng tham số, tránh được tình trạng quá khớp (over-fitting)
+ Lớp Fully connected (FC): Là tầng kết nói đầy đủ các noron, thường thấy
trong các lớp cuối của mạng CNN
Trang 20CONVOLUTION + RELY POOLING CONVOLUTION + RELU POOLING riAnw SOFTMAX
vv CONNECTED
há Y.
HIDDEN LAYERS CLASSIFICATION
Hình 2.2 Cấu trúc đại diện của một mạng nơ ron tích chập.
(Nguồn hình: Mathworks.com [])
2.3.2 Kiến trúc mạng VGG-16
VGG-16 là một mạng học sâu tích chập (CNN) được đề xuất năm 2014
trong bài báo “Very Deep Convolutional Networks for Large-Scale Image Recognition” [6]
Kiến trúc mạng VGG được thé hiện trong hình 3.1, trong đó kiến trúc Dđược coi là kiến trúc tốt nhất và được gọi là VGG-16 VGG-16 bao gồm rất nhiềulớp tích chập (convolutional layer) có chiều sâu khác nhau đi kèm với max
pooling nhằm mục đích giảm số chiều của anh, theo sau bởi 3 lớp fully-connected
Đầu vào của VGG-16 là anh RGB có kích thước 224 x 224 pixel Dau ra là Ivector đặc trưng kích thước 1 x 1 x 1000 dùng để nhận dạng 1000 class
Đây là một kiến trúc có số lượng tham số: 138.000.000
VGG-16 vẫn dữ các đặc điểm của kiến trúc AlexNet nhưng có những cải tiến
hơn:
« Kiến trúc VGG-16 sâu hon, bao gồm 13 lớp tích chập 2 chiều (so với
AlexNet là 5) và 3 lớp fully connected.
Trang 21+ _ Trong VGG-16 xuất hiện khái niệm về khối tích chập (block) Day là nhữngkiến trúc gồm một tập hợp các layers CNN được lặp lại giống nhau.
« VGG-16 cũng kế thừa lại hàm kích hoạt activation ReLU ở mô hình
AlexNet.
+ VGG-16 cũng là kiến trúc đầu tiên thay đổi thứ tự của các block khi xếp
nhiều lớp CNN + max pooling thay vì xen kẽ chỉ một lớp CNN + max
pooling.
+ VGG-16 chi sử dụng các bộ lọc kích thước nhỏ 3x3 sẽ giúp giảm số lượng
tham số cho mô hình và mang lại hiệu quả tính toán tốt hơn
Nhược điểm chính của VGG Net là:
- Huấn luyện mô hình chậm
Trang 22Hình 2.4: Kiến trúc GoogleNet - Inception version 3 (Nguồn hình [2])
Inception-V3 kế thừa từ Inception-V1, có 24 triệu tham số Toàn bộ các lớp
tích chập của Inception-V3 được theo sau bởi một lớp batch normalization và một hàm kích hoạt ReLU.
Inception-V3 giải quyết được van đề thắt cổ chai Kích thước của các lớpkhông bị giảm một cách đột ngột Đồng thời Inception-V3 có một cách tính toánhiệu quả hơn nhờ sử dụng phương pháp nhân tố (factorisation methods)
2.3.4 Kiến trúc mạng ResNet50 (2015)
Mạng ResNet (Residual Network) được giới thiệu vào năm 2015 Có nhiềubiến thể với số lớp khác nhau: ResNet-18, ResNet-34, ResNet-50, ResNet-101,
ResNet-152
Trang 23Hình 2.5: Hình minh họa kiến trúc ResNet (Nguồn hình [2])
ResNet là kiến trúc được sử dụng phổ biến nhất hiện tại ResNet cũng là kiến
trúc sớm nhất áp dụng chuẩn hoá batch normalization Mặc dù là một mạng rất sâukhi có tới 152 lớp nhưng chỉ khoảng 26 triệu tham số
Dù có kiến trúc khối kế thừa lại từ GoogleNet nhưng ResNet lại dễ triển khaihơn rất nhiều vì kiến trúc cơ sở của nó chỉ gồm các khối tích chập và khối xác định
2.3.5 Kiến trúc mạng EfficientNet
Những đóng góp chính của kiến trúc này:
« Thiết kế kiến trúc cơ sở đơn giản kích thước di động (simple mobile-size
baseline architecture): EfficientNet B0
« _ Cung cấp phương pháp mở rộng kết hợp (compound scaling) một cách hiệuquả giúp tăng kích thước model dé đạt được độ chính xác cao nhất
Trang 24(@) baseline (0) width seaing (©) depth scaing (6) resolution scaling (€) compound scaling
Hình 2.6 Mở rộng mô hình (Model Scaling) (Nguồn hình [20])
Mỗi mô hình chứa 7 khối, các khối này còn có một số khối con khác nhau
mà số lượng của chúng được tăng lên tương ứng với các phiên bản mô hình từ
EfficientNetB0 đến EfficientNetB7
Tổng số lớp trong EfficientNet-BO là 237 và trong EfficientNet-B7 là 813
Tất cả các lớp này đều được tao ra từ 5 mô-đun sau:
- Mô-đun 1: điểm bắt đầu cho các khối con
- Mô-đun 2: điểm bắt đầu cho khối con đầu tiên của tất cả 7 khối chínhngoại trừ khối đầu tiên
- Mô-đun 3: kết nối các khối
- Mô-đun 4: kết hợp các khối
- Mô-đun 5: kết các khối con
Các mô-đun này được tiếp tục kết hợp để tạo thành các khối con sẽ được sửdụng theo một cách nhất định trong các khối
Sub-block 1 được sử dụng chỉ được sử dụng như khối con đầu tiên trong
Trang 25Sub-block 2 được sử dụng làm khối con đầu tiên trong tat cả các khối khác.
Sub-block 3 được sử dụng cho bat kỳ khối con nào ngoại trừ khối đầu tiên
Kiến trúc mạng có thể sâu 164 lớp là sự kết hợp giữa những ưu điểm của cầu
trúc Inception và Residual block giúp giảm thời gian huấn luyện dữ liệu, dễ tối ưuhóa và cho độ chính xác cao trong quá trình phân loại dữ liệu ảnh Đầu vào của
Inception-ResNet là ảnh RGB có kích thước 299 x 299 pixel.
Inception-ResNet là mô hình được xây dựng dựa trên những ưu điểm củakhối Inception và Residual
Trang 26Kiến trúc của Inception-Resnet V2 tương tự như mô hình
Inception-Resnet-VI nhưng khác nhau ở các khối Stem, Inception và Reduction
Trang 282.4 Chuyển đổi mô hình học sâu ONNX
ONNX (Open Neural Network Exchange) là một công cụ hé tro chuyén đổigiữa nhiều framework phổ biến hiện nay như Keras, Tensorfow, Scikit-learn,Pytorch và XGBoost Trong luận văn này dùng ONNX dé chuyển đổi model đãđược huấn luyện sang định dạng kết hợp được với NetFramwork
Đoạn mã dưới đây mô tả việc chuyển đổi mô hình viết bằng Pytorch sang
dang ONNX được sử dụng trong luận văn.
model = torchvision.models.vgg16 ()
path = "/content/ckpt/best model.pth"
torch save (model.state_đict(), path)
model.load_state_dict (torch.1oad (path) )
model.eval ()
torch.onnx.export (model, dummy input, "Best model.onnx")
Trang 292.5 Phân tích, so sánh về lý thuyết của các mô hình học sâu:
Trong luận văn nay, sử dụng các mô hình VGG16, InceptionV3, ResNet50,
Inception-ResNet-V2, EfficientNet B3 đã được huấn luyện trước trên bộ dữ liệu
Khi xây dựng mô hình phân loại chúng ta sẽ muốn biết tỷ lệ các mẫu được
phân lớp đúng trên tổng số mẫu là bao nhiêu Tỷ lệ đó được gọi là độ chính xác Độ
chính xác giúp chúng ta đánh giá hiệu quả của mô hình phân loại trên bộ dữ liệu.
Mô hình càng tốt khi độ chính xác càng cao
Một mô hình phân loại đưa ra kết quả phân loại được thống kê trên bảng
chéo như sau:
Trang 30Bảng 2.2 Bảng chéo thống kê dự đoán mô hình
Negative FN-False Negative | TN-True Negative
Các chỉ số Positive, Negative, TP, FP, TN, FN lần lượt có ý nghĩa là :
Positive: mẫu là dương tính
Negative: mẫu là âm tính
True Positive (TP): đối tượng ở lớp Positive, mô hình phân loại vào lớp
Positive (dy đoán đúng)
True Negative (TN): đối tượng ở lớp Negative, mô hình phân loại vào lớp
Negative (dự đoán đúng)
False Positive (FP): đối tượng ở lớp Negative, mô hình phân loại vào lớp
Positive (dy đoán sai) — Type I Error
False Negative (FN): đối tượng ở lớp Positive, mô hình phân loại vào lớp
Negative (dự đoán sai) — Type II Error
Trang 31Recall = (2.3)
2.7 Trinh bay các phương pháp tiền xử lý dữ liệu, tăng cường dữ liệu cho tập
dữ liệu ảnh chụp đáy mắt
2.7.1 Cắt ảnh
Cắt bỏ đi một phần nền (background) đen thừa và không có ích gì cho quá
trình huấn luyện mô hình sau này Vi dụ:
Hình 2.13 Ảnh chụp đáy mắt trước và sau khi cắt bỏ viền đen (Nguồn hình [8])
Đoạn mã dưới đây thực hiện việc cắt bỏ viền đen trên ảnh chụp đáy mắt
Trang 32def crop_image from gray(img, tol=7):
if img.ndim == 2:
mask = img > tol
return img[np.ix_(mask.any(1), mask.any(0))]
elif img.ndim == 3:
gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
mask = gray_img > tol
check_shape = img[:, :, 0] [np.ix_(mask.any(1),
2.7.2 Tăng độ tương phản cho anh
Tang độ tương phản cho ảnh dé làm nỗi bật các chỉ tiết khó nhìn thay: mạchmáu, các vệt màu xanh vàng hay các đốm đen xung quanh võng mạc,
Hình 2.14 Ảnh chụp đáy mắt trước và sau khi tăng độ tương phản (Nguồn hình [8])
Đoạn mã dưới đây thực hiện việc làm tăng độ tương phản trên ảnh chụp đáy
mắt
Trang 33def make cont(img path, to_gray=False, IMG SIZE=224):
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = cv2.resize(img, (IMG _SIZE, IMG SIZE))
cimg = cv2.addWeighted(img, 4, cv2.GaussianBlur(img, (0, 0),
return cimg
2.7.3 Tăng cường dữ liệu (data augmentation)
Kỹ thuật tăng cường dữ liệu dé tăng số lượng và sự đa dang của các tập dữ
liệu ảnh Giúp cải thiện hiệu suất mô hình và tránh overfitting trong khi huấn luyện
Đôi với ảnh chụp võng mạc đáy mắt, áp dụng một số bước xử lí như sau:
- Tăng độ sáng
- Tăng độ tương phan
- Thực hiện ngẫu nhiên lật ngang hoặc không cho ảnh được cắt ra
- Thực hiện ngẫu nhiên lật dọc hoặc không cho ảnh được cắtra
- Xoay ảnh
- Thay đồi kích thước ngẫu nhiên của ảnh và cắt ngẫu nhiên để có được ảnh
có kích thước phù hợp với mô hình học sâu Ví du như VGG 16 thì cắt ảnh ra
có kích thước 224 x 224 pixel.
Đoạn mã dưới đây thực hiện việc làm tăng độ tương phản trên ảnh chụp đáy
Trang 34from albumentations import (
Compose, HorizontalFlip, CLAHE, HueSaturationValue,
RandomBrightness, RandomContrast, RandomGamma,OneOf,
ToFloat, ShiftScaleRotate,GridDistortion, ElasticTransform,