− Sử dụng mô hình mạng nơ-ron CNN Convolutional Neural Networks để trích xuất đặc trưng và phân loại bệnh dựa trên tập dữ liệu vùng phổi đã được phân đoạn.. Sau đó, xây dựng mô hình huấn
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT Y SINH
ỨNG DỤNG XỬ LÝ ẢNH VÀ AI ĐỂ NHẬN BIẾT BỆNH VIÊM PHỔI Ở TRẺ
EM
Tp Hồ Chí Minh, tháng 08/2020
SKL 0 0 7 3 3 7
GVHD: Ngô Bá Việt SVTH: Ngô Thị Anh Thư MSSV:16129070
SVTH: Phạm Thiên Vương MSSV:16129085
Trang 2BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
TRẺ EM
GVHD: ThS Ngô Bá Việt SVTH1: Ngô Thị Anh Thư MSSV1: 16129070
SVTH2: Phạm Thiên Vương MSSV2: 16129085
Trang 3BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
SVTH2: Phạm Thiên Vương MSSV2: 16129085
Tp Hồ Chí Minh - 08/2020
Trang 4TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC
− Phần mềm huấn luyện: IDLE Python 3.5, Anaconda, Google Colab
− Tập dữ liệu Bệnh viện Montgomery và Bệnh viện Shenzhen và tập dữ liệu Chest X-Ray Images (Pneumonia) được sử dụng để phân đoạn vùng phổi trái và phải
− Sử dụng kiến trúc mô hình mạng U-Net để phân đoạn và trích xuất vùng phổi trái
và phải
− Sử dụng mô hình mạng nơ-ron CNN (Convolutional Neural Networks) để trích xuất đặc trưng và phân loại bệnh dựa trên tập dữ liệu vùng phổi đã được phân đoạn
− Thiết kế giao diện ứng dụng bằng PyQt5 với sự hỗ trợ của công cụ Qt Designing
2 Nội dung thực hiện:
− Tìm hiểu về mạng nơ-ron CNN (Convolutional Neural Networks)
− Xây dựng ba tập dữ liệu bao gồm: tập huấn luyện, tập xác nhận và tập thử nghiệm (training, validation và testing)
− Thực hiện việc tách phổi trái và phải ra khỏi ảnh nhằm giảm thông tin nhiễu
Trang 5− Tiến hành xây dựng mô hình CNNs cho bài toán phân loại ảnh
− Chạy thử nghiệm, chỉnh sửa và hoàn thiện hệ thống
− Đánh giá hệ thống đã huấn luyện
− Thiết kế giao diện hoạt động của hệ thống
− Thực hiện viết báo cáo đề tài
− Tiến hành báo cáo trước hội đồng
III NGÀY GIAO NHIỆM VỤ: 02/03/2020
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 04/08/2020
V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Ngô Bá Việt
Trang 6TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC
Tên đề tài: Ứng dụng xử lý ảnh và AI để nhận biết bệnh viêm phổi ở trẻ em
Tuần/ngày Nội dung Xác nhận
GVHD
Tuần 1
(2/3 - 8/3)
- Gặp GVHD để nghe phổ biến yêu cầu làm đồ
án, tiến hành chọn đồ án và viết đề cương tóm tắt yêu cầu đề tài đã chọn
(30/3 - 5/4) - Tiến hành xây dựng mô hình CNNs cho bài
toán phân loại ảnh
- Chỉnh sửa và hoàn thiện chương trình huấn luyện
Trang 7(6/7 - 12/7) - Viết báo cáo, quyển tóm tắt, làm slide báo cáo,
thiết kế poster A5
Trang 8LỜI CAM ĐOAN
Đề tài này là do nhóm tự thực hiện dựa vào một số tài liệu có sẵn dưới sự hướng dẫn của thầy hướng dẫn Th.S Ngô Bá Việt và không sao chép từ tài liệu hay công trình đã có trước đó Nếu phát hiện gian dối nhóm sẽ hoàn toàn chịu trách nhiệm
Người thực hiện đề tài
Trang 9LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn sâu sắc đến Thầy Ngô Bá Việt-Giảng viên bộ môn Điện Tử Công Nghiệp-Y Sinh, đã trực tiếp hướng dẫn và tận tình giúp đỡ, chia sẻ nhiều kinh nghiệm quý báu cho chúng em thực hiện tốt đề tài
Chúng em xin gửi lời chân thành cảm ơn các thầy cô trong Khoa Điện-Điện Tử nói chung, các thầy cô bộ môn Điện Tử Công Nghiệp-Y Sinh nói riêng đã giúp chúng
em có được cơ sở lý thuyết vững vàng và tạo những điều kiện tốt nhất cho chúng em hoàn thành đề tài
Chúng em cũng gửi lời đồng cảm ơn đến các bạn lớp 161290 đã chia sẻ trao đổi kiến thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện đề tài
Cuối cùng, xin cảm ơn đến cha mẹ, những đấng sinh thành đã luôn tạo điều kiện, quan tâm, chăm sóc, giúp đỡ, động viên chúng em trong suốt quá trình học tập và hoàn thành khoá luận tốt nghiệp
Xin chân thành cảm ơn!
Người thực hiện đề tài
Ngô Thị Anh Thư – Phạm Thiên Vương
Trang 10MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii
LỜI CAM ĐOAN v
LỜI CẢM ƠN vi
MỤC LỤC vii
LIỆT KÊ HÌNH VẼ x
LIỆT KÊ BẢNG xiii
BẢNG LIỆT KÊ TỪ VIẾT TẮT xiv
TÓM TẮT xvi
Chương 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 4
1.3 NỘI DUNG NGHIÊN CỨU 5
1.4 GIỚI HẠN 5
1.5 BỐ CỤC 5
Chương 2 CƠ SỞ LÝ THUYẾT 7
2.1 MÔ TẢ VỀ BỆNH VIÊM PHỔI 7
2.1.1 Khái quát về viêm phổi 7
2.1.2 Bệnh viêm phổi do vi-rút 7
2.1.3 Bệnh viêm phổi do vi khuẩn 8
2.2 CÁC PHƯƠNG PHÁP XỬ LÝ ẢNH SỬ DỤNG 9
2.2.1 Điểm ảnh lân cận 9
2.2.2 Lọc nhiễu 10
2.2.3 Phân đoạn ảnh 10
2.3 MẠNG NƠ-RON TÍCH CHẬP 11
2.3.1 Lớp tích chập 12
2.3.2 Lớp Pooling 14
2.3.3 Lớp kết nối đầy đủ 15
2.3.4 Hàm kích hoạt 15
2.3.5 Hàm mất mát 16
Trang 112.4 KIẾN TRÚC MẠNG U-NET 17
2.4.1 Giới thiệu 17
2.4.2 Xây dựng kiến trúc mạng U-Net 17
2.5 TIÊU CHUẨN VỀ TRÍ TUỆ NHÂN TẠO 19
2.6 HỆ THỐNG RFID 20
2.6.1 Giới thiệu công nghệ RFID 20
2.6.2 Giới thiệu về phần cứng 20
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG NHẬN DIỆN BỆNH VIÊM PHỔI Ở TRẺ EM 24
3.1 GIỚI THIỆU 24
3.2 SƠ ĐỒ KHỐI TOÀN HỆ THỐNG NHẬN DIỆN BỆNH VIÊM PHỔI Ở TRẺ EM 24 3.3 PHƯƠNG PHÁP PHÂN ĐOẠN PHỔI 26
3.3.1 Ứng dụng phương pháp U-Net vào quá trình phân đoạn phổi 26
3.3.2 Tập dữ liệu 26
3.3.3 Xây dựng mô hình phân đoạn ảnh X-quang phổi 27
3.3.4 Lọc ảnh X-quang phổi 30
3.4 XÂY DỰNG MÔ HÌNH HUẤN LUYỆN PHÂN LOẠI BỆNH 32
3.4.1 Xây dựng mô hình phân loại có bệnh hay không có bệnh 32
3.4.2 Xây dựng mô hình phân loại các bệnh về phổi 34
3.5 PHÂN TÍCH ĐÁNH GIÁ MẠNG HUẤN LUYỆN 35
3.6 THIẾT KẾ GIAO DIỆN QUẢN LÝ DỮ LIỆU BỆNH NHÂN VÀ HỆ THỐNG PHÂN LOẠI BỆNH VIÊM PHỔI 38
3.6.1 Giới thiệu phần mềm 38
3.6.2 Thiết kế giao diện 39
3.6.3 Phần mềm DB Browser for SQlite 40
3.6.4 Thiết kế hệ thống RFID 43
Chương 4 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 44
4.1 GIỚI THIỆU 44
4.2 KẾT QUẢ ĐẠT ĐƯỢC 44
4.2.1 Kết quả phân đoạn phổi 44
4.2.2 Kết quả huấn luyện phân loại bệnh viêm phổi 45
Trang 124.1.3 Giao diện hệ thống nhận diện và phân loại bệnh viêm phổi 49
4.1.4 Bộ đọc RFID 51
4.2 KẾT QUẢ THỰC NGHIỆM 52
4.3 HƯỚNG DẪN SỬ DỤNG HỆ THỐNG NHẬN DIỆN VIÊM PHỔI 55
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61
5.1 KẾT LUẬN 61
5.2 HƯỚNG PHÁT TRIỂN 61
TÀI LIỆU THAM KHẢO 63
PHỤ LỤC 67
Trang 13LIỆT KÊ HÌNH VẼ
Hình Trang
Hình 2.1 Ảnh chụp X-quang biểu hiện bệnh viêm phổi do vi-rút 8
Hình 2.2 Ảnh chụp X-quang biểu hiện bệnh viêm phổi do phế cầu 8
Hình 2.3 Các lân cận của điểm ảnh 9
Hình 2.4 Phương pháp lấy ngưỡng 10
Hình 2.5 Mô tả các lớp trong mô hình Convolutional neural network 12
Hình 2.6 Minh hoạ về stride: Khi stride là 1 thì ma trận đặc trưng có kích thước 3x3 và khi stride là 2 thì ma trận đặc trưng có kích thước 2x2 13
Hình 2.7 Khối đầu vào khi được đệm các bit 0 với padding là 2 14
Hình 2.8 Minh hoạ cho kiểu padding là 1 14
Hình 2.9 Mô tả hai loại lớp tổng hợp là max pooling và average pooling 15
Hình 2.10 Mạng nơ-ron đầy đủ chứa lớp kết nối đầy đủ FC ở cuối 15
Hình 2.11 Phân đoạn ảnh là có thể tách hình ảnh thành hai đoạn bao gồm con mèo và nền 17
Hình 2.12 Ví dụ mô tả kiến trúc mạng lưới U-Net 18
Hình 2.13 Module RFID MFRC522 21
Hình 2.14 Thẻ thụ động 22
Hình 2.15 Thẻ chủ động 22
Hình 2.16 Thẻ Tag bán tích cực 22
Hình 2.17 Bo mạch Arduino UNO R3 23
Hình 3.1 Sơ đồ khối hệ thống nhận diện và phân loại 24
Hình 3.2 Sơ đồ khối hệ thống quản lý dữ liệu bệnh nhân 25
Hình 3.3 Sơ đồ khối tổng quát quá trình phân đoạn phổi 27
Hình 3.4 Kiến trúc U-Net của khối phân đoạn phổi 29
Hình 3.5 Quá trình huấn luyện của mạng U-Net 30
Hình 3.6 Các thành phần không mong muốn còn sót trên ảnh đã phân đoạn 30
Hình 3.7 Lưu đồ quy trình giảm nhiễu cho ảnh 31
Hình 3.8 Mô hình mạng CNN để phân loại có bệnh hay không có bệnh 33
Hình 3.9 Mô hình mạng nơ-ron tích chập CNN để nhận diện-phân các loại bệnh 34
Hình 3.10 Mô tả hai dạng ma trận ma trận nhầm lẫn 36
Trang 14Hình 3.11 Mô tả cách tính Precision và Recall 37
Hình 3.12 Cửa sổ bắt đầu của công cụ hỗ trợ xây dựng GUI - Qt Designer 39
Hình 3.13 Công cụ có khung thiết kế, khối tiện ích, khối cài đặt giá trị và các khối hỗ trợ khác 40
Hình 3.14 Màn hình ban đầu của DB Browser 40
Hình 3.15 Các tab 'Database Structure' và 'DB Schema' khi mở cơ sở dữ liệu 41
Hình 3.16 Tập hợp các thao tác trong 'Database Structure' 41
Hình 3.17 Khởi tạo cơ sở dữ liệu mới 42
Hình 3.18 Khởi tạo các trường dữ liệu cần thiết 42
Hình 3.19 Thêm thông tin vào cơ sở dữ liệu và lưu lại 42
Hình 3.20 Sơ đồ kết nối giữa Arduino và module RC522 43
Hình 4.1 Tập dữ liệu ảnh X-quang đã được phân đoạn chỉ còn 2 lá phổi 44
Hình 4.2 Hình ảnh sau khi được xử lý các thành phần không mong muốn 45
Hình 4.3 Đồ thị độ chính xác và độ lỗi của tập dữ liệu train và tập dữ liệu val 46
Hình 4.4 Ma trận nhầm lẫn với hai ngỏ dự đoán 46
Hình 4.5 Ma trận nhầm lẫn với ba ngỏ dự đoán 48
Hình 4.6 Giao diện “Dữ liệu bệnh nhân”, nơi cập nhật, lưu trữ và truy xuất dữ liệu 49 Hình 4.7 Giao diện “Hệ thống nhận diện và phân loại bệnh viêm phổi ở trẻ em”, nơi chẩn đoán bệnh và xuất kết quả trực tiếp 50
Hình 4.8 Giao diện hoàn chỉnh nhận diện và phân loại hình ảnh phổi bình thường với hình thức “Chẩn đoán thông thường” 50
Hình 4.9 Giao diện hoàn chỉnh nhận diện và phân loại hình ảnh phổi mắc bệnh viêm phổi với hình thức “Chẩn đoán thông thường” 51
Hình 4.10 Giao diện hoàn chỉnh nhận diện và phân loại hình ảnh phổi mắc bệnh viêm phổi với hình thức “Chẩn đoán chuyên sâu” 51
Hình 4.11 Sản phẩm sau khi hoàn thành cho bộ đọc thẻ RFID kết nối với máy tính 52 Hình 4.12 Các cửa sổ giao diện mở đầu sau khi khởi động chương trình 55
Hình 4.13 Thứ tự các bước để đăng ký thông tin bệnh nhân mới 56
Hình 4.14 Hình ảnh nói lên việc đăng ký thông tin thành công sau khi đã quét ID 56
Hình 4.15 Nhấn vào nút “Cập nhật” để hiển thị dữ liệu lên giao diện 57
Trang 15Hình 4.16 Giao diện hoàn chỉnh nhận diện và phân loại hình ảnh phổi bình thường
với hình thức “Chẩn đoán thông thường” 57
Hình 4.17 Các bước để lưu kết quả vào dữ liệu bệnh nhân 58
Hình 4.18 Kết quả được cập nhật vào bảng dữ liệu bệnh nhân 58
Hình 4.19 Xem hình ảnh trong “Kho hình ảnh chẩn đoán” 59
Hình 4.20 Hình ảnh nhận được sau khi quét ID để tìm kiếm thông tin 59
Hình 4.21 Phiếu thông tin bệnh án bệnh nhân với đầy đủ các thông tin 59
Hình 4.22 Thông tin về kết quả chẩn đoán của bệnh nhân hiện ra khi nhấp vào ô “Kết quả chẩn đoán” 60
Trang 16LIỆT KÊ BẢNG
Bảng Trang
Bảng 2.1: Một số hàm kích hoạt thông dụng 16
Bảng 3.1: Bảng mô tả cách thức của phương pháp True/False-Positive/Negative dựa trên ma trận nhầm lẫn chưa chuẩn hóa 36
Bảng 3.2: Kết nối tương ứng giữa Arduino UNO và module RC522 43
Bảng 4.1: Thống kê kết quả thử nghiệm 20 hình ảnh phổi bình thường 52
Bảng 4.2: Thống kê kết quả thử nghiệm 20 hình ảnh mắc bệnh viêm phổi 53
Trang 17BẢNG LIỆT KÊ TỪ VIẾT TẮT
SDO Standards Developing Organization
API Application Programming Interface
GUI Graphical User Interface
IDE Integrated Development Environment
Trang 18NIH National Institutes of Health
RFID Radio Frequency Identification
Trang 19để
Sau đó, xây dựng mô hình huấn luyện CNN để nhận diện-phân loại bệnh viêm phổi với tập dữ liệu huấn luyện được sử dụng là Chest X-Ray Images (Pneumonia) đã qua phân đoạn phổi Khả năng nhận diện có bệnh hay không có bệnh đạt độ chính xác gần 93% trên tập train Độ chính xác Accuracy của toàn tập test đạt 92.9%, đảm bảo yêu cầu đã đặt ra cho hệ thống Trong đó, kết quả dự đoán đúng của tập NORMAL là 293/317 ảnh tức đạt 92.42% và tập PNEUMONIA là 796/855 đạt 93.09% Về khả năng phân loại viêm phổi do vi-rút và vi khuẩn, độ chính xác trên toàn tập test đạt 81.89%, trong đó, kết quả dự đoán đúng của tập NORMAL là 182/234 ảnh tức đạt 77.77%, tập BACTERIA là 236/242 đạt 97.52%, và tập VIRUS là 93/148 đạt 62.83% Nhìn chung đối với chẩn đoán 3 ngõ ra kết quả tuy không cao, nhưng vẫn đáp ứng được tính tham khảo của đề tài
Cuối cùng, nhóm đã hoàn thành giao diện nhận diện-phân loại được thiết kế nhờ giao diện của Python - PyQt5 cùng sự hỗ trợ của công cụ Qt Designer, với đa chức năng thực tế, kết hợp giữa RFID kết nối cơ sở dữ liệu bệnh nhân với việc chẩn đoán
Trang 20lý nghiêm ngặt để bảo đảm sức khỏe cho con người, giúp cho cuộc sống con người trở nên an toàn và chất lượng hơn Nhưng tình trạng chung diễn ra ở các bệnh viện hiện nay là sự quá tải bệnh nhân, dẫn đến chất lượng khám và chữa trị không được chu đáo
và chính xác nhất Đặc biệt là căn bệnh viêm phổi, trong đó trẻ em là đối tượng dễ bị tổn thương nhất
Viêm phổi là bệnh nhiễm trùng đường hô hấp dưới Bệnh có thể gặp ở mọi lứa tuổi, tuy nhiên viêm phổi thường xuất hiện nhiều hơn ở trẻ nhỏ, đặc biệt trẻ em dưới 5 tuổi và người cao tuổi [1] Triệu chứng điển hình của viêm phổi là sốt, ho đờm đục và đau ngực khi ho Tuy nhiên, các triệu chứng bệnh đôi khi bị lầm tưởng là bệnh cảm thông thường nên có thể dẫn đến việc đi viện trễ, lúc này điều trị khá khó khăn và có thể dẫn tới tử vong [1]
Viêm phổi là nguyên nhân gây tử vong truyền nhiễm lớn nhất ở trẻ em trên toàn thế giới [2] Viêm phổi đã giết chết 808.694 trẻ em dưới 5 tuổi vào năm 2017, chiếm 15% tổng số ca tử vong của trẻ em dưới 5 tuổi [2] Theo số liệu của quỹ nhi đồng Liên Hiệp Quốc, viêm phổi giết chết nhiều trẻ em hơn bất kỳ bệnh truyền nhiễm nào khác Chỉ tính trong năm 2018, viêm phổi cướp đi sinh mạng của hơn 800.000 trẻ em dưới năm tuổi, tương đương khoảng 2.200 mỗi ngày Kể từ năm 2000, tử vong dưới năm tuổi do viêm phổi đã giảm 54% và tính đến năm 2018, thì số liệu này giảm xuống gần 50% [3] Tuy có nhiều tiến bộ với số ca nhiễm giảm dần theo mỗi năm nhưng tính đến hiện tại thì tỉ lệ tử vong ở trẻ em do viêm phổi vẫn là cao nhất, và “Viêm phổi giết chết
nhiều trẻ em hơn bất kỳ bệnh truyền nhiễm nào khác” [3, 4].
Trong Y học hiện nay đã ghi nhận nhiều loại bệnh khác nhau (trên 14 bệnh) liên quan đến phổi và biến chứng thành ung thư phổi, đồng thời đối với mỗi loại bệnh lại
có thể chia thành nhiều nguyên nhân khác nhau [5] Tuy nhiên hầu hết các bệnh nhân mắc bệnh liên quan đến phổi đều có một số triệu chứng tương đồng nhau như những
Trang 21CHƯƠNG 1 TỔNG QUAN
cơn ho, khó thở, đau ngực, nên thông thường rất khó để phân biệt viêm phổi và các bệnh về đường hô hấp do triệu chứng rất giống nhau và điều đó gây nhiều khó khăn cho người bác sĩ chẩn đoán [6], đặc biệt là những người còn thiếu kinh nghiệm chẩn đoán và chuyên môn khi tìm nguyên nhân bệnh từ ảnh X-Quang Từ những yếu tố trên, các bác sĩ chẩn đoán bệnh sẽ không thể tránh khỏi những sai sót ngoài ý muốn Chính vì vậy, cộng đồng vẫn đang tích cực nghiên cứu ra những phương án mới để có thể giảm thiểu mức độ sai sót xuống thấp nhất và có thể giúp cho các bác sĩ thêm phần
tự tin về những chẩn đoán của mình trong bất kì hoàn cảnh nào Vì vậy, nhóm chúng
em quyết định nghiên cứu và ứng dụng xử lý ảnh và AI vào y học, có thể giúp phân biệt dạng viêm phổi
Hiện nay, khi cả thế giới đang trong làn sóng của cuộc cách mạng công nghiệp 4.0 và trí tuệ nhân tạo biết đến như chiếc chìa khoá để biến những ý nghĩ của con người thành hiện thực Các định nghĩa như trí tuệ nhân tạo hay máy học tuy chỉ mới xuất hiện trong vài thập niên gần đây nhưng nó đã chứng minh vai trò then chốt của mình và ngày càng xuất hiện thường xuyên hơn và len lỏi vào từng lĩnh vực trong đời sống, văn hóa, giải trí, giáo dục và y tế và đã trở thành một thứ không thể thiếu cho cuộc sống của con người hiện đại Nó đáp ứng được các yêu cầu khó khăn đòi hỏi khả năng xử lý phức tạp, tinh vi và chính xác Mới đây, các nhà nghiên cứu từ Trung tâm
Y tế Langone, thuộc Đại học New York (New York University - NYU) đã tạo ra một chương trình máy tính để “đọc” các tiêu bản cho việc chẩn đoán hai loại ung thư phổi phổ biến nhất với độ chính xác lên đến 97% Chương trình cũng đã được nghiên cứu
để phát hiện đột biến di truyền liên quan đến ung thư trong các mẫu chỉ bằng cách phân tích các hình ảnh của các mô khối u [7, 8] Như các hệ thống xử lý dữ liệu khác được thiết lập dựa trên cơ sở của công nghệ "Máy học" (Machine Learning), chương trình máy tính sẽ quét qua hình ảnh các lát cắt của mô và phát triển khả năng phân biệt
mô phổi bình thường với hai loại ung thư phổ biến nhất là ung thư biểu mô tuyến - Adenocarcinoma (chiếm khoảng 40%) và ung thư biểu mô tế bào vảy - Squamous Adenocarcinoma (25% đến 30%) Ngay cả các nhà giải phẫu bệnh giàu kinh nghiệm cũng gặp nhiều khó khăn khi phân biệt hai loại ung thư này để lập phác đồ điều trị [7, 8] Để tạo ra chương trình, các nhà nghiên cứu về máy học đã sử dụng phương pháp học tập sâu (Deep learning method), được phát triển và phát hành bởi Google [7, 8] Nghiên cứu được thực hiện bởi các nhà khoa học từ Trung tâm Y tế Langone thuộc
Trang 22CHƯƠNG 1 TỔNG QUAN
NYU và được công bố vào ngày 17/9/2018 trên Nature Medicine Kết quả cải thiện đáng kể độ chính xác về phương pháp chẩn đoán ung thư phổi với tỷ lệ chính xác là 83% [7, 8]
Về ứng dụng trí tuệ nhân tạo trong phát hiện bệnh viêm phổi ở trẻ em, các nhà nghiên cứu Sivaramakrishnan Rajaraman, Sema Candemir, Incheol Kim, George Thoma và Sameer Antani đã trình bày về dự án của họ trong bài báo nghiên cứu
“Visualization and Interpretation of Convolutional Neural Network Predictions in Detecting Pneumonia in Pediatric Chest Radiographs” (2018) Trong nghiên cứu này,
họ đã đánh giá, hình dung và giải thích hiệu suất của các mô hình mạng CNN tùy chỉnh để phát hiện viêm phổi và phân biệt rõ hơn giữa các loại vi khuẩn và virus trong ảnh chụp X-quang ngực ở trẻ em [9] Họ trình bày một chiến lược trực quan hóa mới
để định vị hóa khu vực trọng tâm (ROI) được coi là phù hợp cho các dự đoán mô hình trên tất cả các đầu vào thuộc về một lớp dự kiến Họ quan sát được rằng mô hình VGG16 tùy chỉnh đạt được độ chính xác 96,2% và 93,6% trong việc phát hiện bệnh và phân biệt giữa viêm phổi do vi khuẩn và virus Mô hình này vượt trội so với các công nghệ tiên tiến trong tất cả các số liệu hiệu suất và chứng minh độ lệch giảm, khả năng
dự đoán được cải thiện [9]
Một dự án khác trên thế giới về chủ đề này do các nhà nghiên cứu đến từ Trường Đại học Trung Sơn, Quảng Châu, Trung Quốc qua bài báo nghiên cứu khoa học “Classification of Bacterial and Viral Childhood Pneumonia Using Deep Learning
in Chest Radiography”, về phân loại viêm phổi ở trẻ em do vi khuẩn và virus bằng cách học sâu (Deep Learning) cũng thông qua ảnh chụp X-quang ngực ở trẻ em Họ đã
đề xuất một hệ thống CAD (Computer Aided Diagnosis - một hệ thống chẩn đoán với
sự hỗ trợ của máy tính) mới để xác định viêm phổi do vi khuẩn và virus qua ảnh chụp
X quang ngực Phương pháp này bao gồm hai phần là xác định vùng phổi và phân loại viêm phổi Đầu tiên, các vùng phổi trái và phải được phân đoạn và trích xuất với mô hình Fully Convolutional Neural Network (FCN) [10] Sau khi phân đoạn, một mô hình mạng Deep Convolutional Neural Network (DCNN) được sử dụng để phân loại các vùng phổi mục tiêu Sau đó, dựa trên mô hình DCNN, các đặc trưng của các vùng phổi mục tiêu được trích xuất tự động và hiệu suất được so sánh với các đặc trưng được lấy thủ công [10] Cuối cùng, các đặc trưng thông qua mô hình DCNN và các
Trang 23CHƯƠNG 1 TỔNG QUAN
loại SVM (Support Vector Machine) để phân loại nhị phân Phương pháp đề xuất được đánh giá trên bộ dữ liệu của Trung tâm y tế phụ nữ và trẻ em Quảng Châu, Trung Quốc, với tổng số 4.513 bệnh nhân nhi, từ 1 đến 9 tuổi, trong giai đoạn từ 2003 đến
2017 [10] Các thông số hiệu suất được đo lường bằng các tiêu chí khác nhau: độ chính xác, độ nhạy, độ đặc hiệu và diện tích dưới đường cong (AUC), là một tiêu chí toàn diện Kết quả thử nghiệm cho thấy độ chính xác hơn (0,8048 ± 0,0202) và độ nhạy hơn (0,7755 ± 0,0296) trong việc trích xuất các đặc trưng thông qua mô hình DCNN kết hợp với kỹ thuật Transfer learning Các giá trị của AUC thay đổi từ 0,6937 đến 0,8234 Và một nhóm các đặc trưng khác nhau đã cải thiện một chút giá trị AUC
từ 0,8160 ± 0,0162 lên 0,8234 ± 0,0014 [10]
Tại Việt Nam hiện nay vẫn chưa có đề tài nào liên quan đến việc sử dụng xử lý ảnh và AI trong chẩn đoán bệnh viêm phổi được công bố Qua đó, chúng em quyết
định làm đề tài “Ứng dụng xử lý ảnh và AI để nhận biết bệnh viêm phổi ở trẻ em”
Ứng dụng này sẽ sử dụng mô hình Fully Convolutional Neural Network (FCN) để phân đoạn và trích xuất vùng phổi trái và phải Sau đó, mô hình mạng nơ-ron CNNs (Convolutional Neural Networks) trên nền tảng thư viện có sẵn trong Python [11,12,13] sẽ được sử dụng để trích xuất đặc trưng và phân loại bệnh Cuối cùng, nhóm sẽ thiết kế một giao diện đồ họa GUI (Graphic User Interface) linh hoạt cho người dùng
1.2 MỤC TIÊU
Xây dựng hệ thống nhận diện và phân loại bệnh viêm phổi ở trẻ em trên tập dữ liệu Chest X-Ray Images (Pneumonia) với các công việc cụ thể như sau:
₋ Xây dựng mô hình U-Net để phân đoạn và trích xuất vùng phổi trái và phải
₋ Ứng dụng kiến trúc mạng nơ-ron CNN trên nền tảng thư viện có sẵn để xây dựng thành công một hệ thống phân loại bệnh viêm phổi với độ chính xác tối thiểu là 85% với tập ảnh huấn luyện và 75% với tập ảnh thử nghiệm
₋ Thiết kế một giao diện nhận biết và phân loại bệnh với hoạt động thao tác dễ dàng, có đầy đủ các chức năng như nhập ảnh vào, nhận biết ảnh, hiển thị kết quả Ngoài ra, trong hệ thống có sự hỗ trợ của RFID, giúp tìm kiếm thông tin bệnh nhân nhanh chóng và dễ dàng từ thẻ RFID của mỗi bệnh nhân
Trang 24CHƯƠNG 1 TỔNG QUAN
1.3 NỘI DUNG NGHIÊN CỨU
− Xây dựng ba tập dữ liệu bao gồm: tập huấn luyện, tập xác nhận và tập thử nghiệm (training, validation và testing)
− Xây dựng chương trình thực hiện việc tách phổi trái và phải ra khỏi ảnh nhằm giảm thông tin nhiễu
− Xây dựng mô hình CNN cho bài toán phân loại ảnh
− Chạy thử nghiệm, chỉnh sửa và hoàn thiện hệ thống
− Đánh giá hệ thống đã huấn luyện
− Thiết kế giao diện hoạt động của hệ thống và kết nối với RFID
1.4 GIỚI HẠN
₋ Đề tài trọng tâm vào việc phân tích kết quả có bệnh viêm phổi ở trẻ em hay không Vấn đề phân tích kết quả bệnh viêm phổi do vi-rút hay vi khuẩn chỉ mang tính tham khảo cho hướng phát triển tương lai Tất cả kết quả chẩn đoán
chỉ dừng lại ở mức độ tham khảo, độ chính xác không là tuyệt đối
₋ Do vấn đề an toàn thông tin trong y tế, những dữ liệu về hình ảnh X-quang phổi được lấy về từ các kho dữ liệu cộng đồng, đề tài không lấy các dữ liệu trực tiếp
từ các bệnh viện ở Việt Nam
1.5 BỐ CỤC
● Chương 1: Tổng Quan
Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án
● Chương 2: Cơ Sở Lý Thuyết
Tìm hiểu chung về quá trình xử lý ảnh, kiến thức về Máy học (Machine Learning), mạng nơ-ron thông thường và kiến trúc mạng nơ-ron tích chập CNN Tìm hiểu các phương pháp dùng trong phân đoạn hình ảnh và nhận diện, phân loại hình ảnh Ngoài ra, vì liên quan đến lĩnh vực Y học nên một số tiêu chuẩn liên quan sẽ được tìm hiểu
● Chương 3: Hệ Thống Nhận Diện Và Phân Loại Bệnh Viêm Phổi Ở Trẻ Em
Đưa ra các yêu cầu của hệ thống và xây dựng sơ đồ khối hệ thống Thiết kế cơ
sở dữ liệu cho hệ thống, xây dựng mô hình phân đoạn phổi từ dữ liệu gốc, xây dựng
Trang 25CHƯƠNG 1 TỔNG QUAN
mô hình hệ thống nhận diện-phân loại và các phương pháp đánh giá hệ thống Cuối cùng, thiết kế giao diện nhận diện-phân loại cho hệ thống
● Chương 4: Kết Quả, Nhận Xét và Đánh Giá
Thực thi chương trình và trình bày kết quả đạt được Dựa trên kết quả thu được, nhận xét-so sánh-đánh giá độ chính xác của hệ thống
● Chương 5: Kết Luận và Hướng Phát Triển
Tổng hợp lại kết quả đã đạt được và những hạn chế trong đề tài cần được giải quyết, đối chiếu, kiểm chứng với các mục tiêu, yêu cầu đã đặt ra và đề xuất hướng phát triển cho đề tài trong tương lai
Trang 26CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Chương 2 CƠ SỞ LÝ THUYẾT
2.1 MÔ TẢ VỀ BỆNH VIÊM PHỔI
2.1.1 Khái quát về viêm phổi
Viêm phổi là một bệnh nhiễm trùng phổi có thể do vi khuẩn, vi rút hoặc nấm gây ra Nhiễm trùng làm cho túi khí của phổi (phế nang) bị viêm và ở một hoặc cả hai phổi sẽ tràn đầy chất lỏng hoặc mủ trong đó [14] Điều đó có thể làm cho khí oxy khó
đi vào máu Các triệu chứng của viêm phổi có thể từ nhẹ đến nặng, bao gồm ho, sốt,
ớn lạnh và khó thở [14]
Có nhiều yếu tố ảnh hưởng đến mức độ nghiêm trọng của một trường hợp viêm phổi, chẳng hạn như loại vi trùng gây nhiễm trùng phổi, tuổi của người bệnh và sức khỏe tổng thể của họ Những người có nguy cơ cao nhất là trẻ sơ sinh và trẻ nhỏ, người lớn từ 65 tuổi trở lên và những người có vấn đề sức khỏe khác [14]
Viêm phổi là nguyên nhân gây tử vong truyền nhiễm lớn nhất ở trẻ em trên toàn thế giới Viêm phổi đã giết chết 808.694 trẻ em dưới 5 tuổi vào năm 2017, chiếm 15% tổng số ca tử vong của trẻ em dưới 5 tuổi [14]
Một số đặc điểm để phân biệt giữa phổi bình thường và bệnh viêm phổi thuỳ thông qua chụp X-quang như sau [16]:
2.1.2 Bệnh viêm phổi do vi-rút
Các loại virus gây bệnh thường là các chủng hay xuất hiện trên đường hô hấp của loài người như hợp bào hô hấp, virus cúm hoặc adenovirus Chúng thường gây ra các vụ dịch và gây bệnh theo mùa, bệnh thường biểu hiện nhẹ, tự thuyên giảm mà không cần điều trị đặc hiệu gì [17] Trong số các virus phân lập được từ đường hô hấp, thường gặp nhất là RSV (36,5%), tiếp đến là Rhinovirus (31,5%), Parainfluenza (14%)
và Adenovirus (7,5%) [18]
Trang 27CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Triệu chứng viêm phổi do vi-rút khởi đầu là các biểu hiện viêm long đường hô hấp trên bao gồm ho, hắt hơi, ngạt mũi, chảy nước mắt nước mũi, kèm theo đó bệnh nhân đau đầu, đau mỏi người, đau rát họng, khàn tiếng, ho khan hoặc ho có đờm trắng trong [19]
Dựa theo một số kinh nghiệm chẩn đoán lâu năm của bác sĩ, ta vẫn có thể chẩn đoán phân biệt sơ bộ thông qua ảnh chụp X-quang khi khẩn cấp, sau đó thực hiện thêm một số xét nghiệm để củng cố thêm độ chính xác Đối với ảnh X-quang của phổi mắc bệnh viêm phổi do vi-rút, biểu hiện trên phổi mờ nhạt ranh giới, không rõ ràng, thường
ở vùng dưới phổi như hình 2.1 [20]
Hình 2.1 Ảnh chụp X-quang biểu hiện bệnh viêm phổi do vi-rút
2.1.3 Bệnh viêm phổi do vi khuẩn
Viêm phổi do vi khuẩn chủ yếu là do tình trạng bội nhiễm thêm trong lúc sức
đề kháng đang bị suy yếu Các loại vi khuẩn gây bệnh thường gặp như khuẩn S.Pneumoniae, khuẩn Haemophilus influenzae (Hib), E.coli, [17]
Triệu chứng viêm phổi do vi khuẩn bao gồm bệnh nhân có biểu hiện nhiễm trùng rõ như môi khô, lưỡi bẩn, hơi thở hôi, có thể đi kèm với sốt cao Người bệnh ho khạc đờm mủ, đờm đục hoặc đờm màu xanh vàng [19]
Đối với ảnh X-quang của phổi mắc bệnh viêm phổi do vi khuẩn, thường gặp 50% là cho hình ảnh phổi bị đông đặc như bệnh viêm phổi thùy, điển hình như viêm phổi do phế cầu như hình 2.2 [21]
Hình 2.2 Ảnh chụp X-quang biểu hiện bệnh viêm phổi do phế cầu
Trang 28CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
có các điểm ảnh thuộc một dạng lân cận khác gọi là lân cận chéo của điểm ảnh, tập hợp đó gọi tắt là Np(p):
Np(p) = {(x+1, y+1) ; (x+1, y-1); (x-1, y+1); (x-1, y-1)} (2.2) Với các điểm trong tọa độ Np(p) được xem là 4 hướng Đông-Nam, Đông-Bắc, Tây-Nam, Tây-Bắc [22]
Hình 2.3 Các lân cận của điểm ảnh
Tập kết hợp: N8(p) = N4(p) + Np(p) là tập hợp lân cận 8 của điểm ảnh p [22]
* Chú ý: Nếu tọa độ (x, y) nằm ở biên (mép) ảnh, một số điểm sẽ nằm ngoài ảnh
Các mối liên kết được sử dụng để xác định giới hạn (Boundaries) của đối tượng vật thể hoặc xác định vùng trong một ảnh Một liên kết được đặc trưng bởi tính liền kề giữa các điểm và mức xám của chúng [22] Có 3 loại liên kết:
● Liên kết 4: Hai điểm ảnh p và q được nói là liên kết 4 nếu q nằm trong một các lân cận của p, tức q thuộc N4(p)
● Liên kết 8: Hai điểm ảnh p và q nằm trong một các lân cận 8 của p, tức q thuộc N8(p)
● Liên kết m (liên kết hỗn hợp): Hai điểm ảnh p và q được nói là liên kết m nếu q thuộc N4(p) hoặc q thuộc Np(p)
Trang 29CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.2.2 Lọc nhiễu
Nhiễu là một loại tín hiệu hay những thành phần không mong muốn và thường xuất hiện trong ảnh hay trong thu nhận tín hiệu nói chung, nó không chỉ gây ra biến dạng tín hiệu thu được mà còn làm thay đổi thông tin có được Nhiễu làm cho ảnh trở nên xấu, mờ và làm nhiễu thông tin nhận được từ ảnh Đối với một bài toán thông thường thì nhiễu của ảnh là sự mất nét, mờ ảnh, nhiễu Gaussian một loại nhiễu thường xuất hiện trên ảnh chủ yếu là do cảm biến của máy ảnh
Trong bài toán nhận dạng đối tượng của ảnh thì nhiễu được xem là tất cả những pixel nằm ngoài đối tượng được chọn, có nhiều cách để loại bỏ loại nhiễu này như sử dụng các bộ lọc như lọc trung bình, lọc trung vị, lọc Sobel
2.2.3 Phân đoạn ảnh
Phân đoạn hình ảnh thường được sử dụng để định vị các đối tượng và ranh giới (đường, đường cong ) trong hình ảnh Chính xác hơn, phân đoạn hình ảnh là quá trình gán nhãn cho mọi pixel trong ảnh sao cho các pixel có cùng nhãn chia sẻ một số đặc điểm nhất định [23]
Kết quả của phân đoạn hình ảnh là một tập hợp các phân đoạn bao phủ toàn bộ hình ảnh hoặc một bộ các đường viền được trích xuất từ hình ảnh [23] Có rất nhiều cách để phân đoạn một hình ảnh, sau đây là một vài ví dụ về một số phương pháp cụ thể:
● Ngưỡng: Điểm quan trọng của phương pháp này là việc lựa chọn giá trị ngưỡng (có thể là một hoặc một vài giá trị), dựa vào giá trị ngưỡng này để tiến hành tỷ
lệ mức xám thành ảnh nhị phân Một số phương pháp phổ biến được sử dụng như phương pháp tối đa Entropy, cân bằng ngưỡng Histogram, phương pháp
Otsu (tối đa sai) [24]
Hình 2.4 Phương pháp lấy ngưỡng
Trang 30CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
● Phân cụm: Kỹ thuật này cho phép tạo một hình ảnh được phân đoạn có nhãn bằng thuật toán phân cụm cụ thể Sử dụng phân cụm dựa trên K-means có nghĩa
là phân cụm, phân đoạn một hình ảnh thành số cụm [24]
● Phân đoạn dựa trên đồ thị: Trong kỹ thuật này, một biểu đồ được tính từ tất cả các pixel trong ảnh, các đỉnh và đáy trong biểu đồ được sử dụng để xác định vị trí các cụm trong ảnh để chia chúng thành các cụm nhỏ hơn, hoạt động này được lặp lại với các cụm nhỏ hơn và nhỏ hơn cho đến khi không còn cụm nào được hình thành [24]
● Phát hiện cạnh: Ranh giới khu vực và các cạnh có liên quan chặt chẽ với nhau,
vì thường có sự điều chỉnh mạnh về cường độ tại các ranh giới khu vực và thường được tổ chức thành một tập hợp các đoạn đường cong gọi là các cạnh [24] Tuy nhiên, để phân đoạn một đối tượng từ một hình ảnh, người ta cần các ranh giới vùng kín
● Học máy: Sử dụng mạng nơ ron tích chập (CNN), một kỹ thuật học sâu gọi là phân đoạn ngữ nghĩa cho phép bạn liên kết mọi pixel của hình ảnh với nhãn lớp Các ứng dụng cho phân đoạn ảnh bao gồm lái xe tự hành, kiểm tra công nghiệp, hình ảnh y tế và phân tích hình ảnh vệ tinh [24]
2.3 MẠNG NƠ-RON TÍCH CHẬP
Mạng nơ-ron tích chập (CNN-Convolutional Neural Network) là một trong
những mô hình học sâu tiên tiến giúp cho chúng ta xây dựng được những hệ thống xử
lý ảnh thông minh với độ chính xác cao như hiện nay Nếu chỉ sử dụng mô hình fully connected neural network (mỗi node trong hidden layer được kết nối với tất cả các node trong layer trước), thì sẽ tạo ra rất nhiều tham số (Parameter) giữa lớp đầu vào với các lớp ẩn [25, 26, 27] Chính vì thế, việc áp dụng thêm mạng nơ-ron tích chập CNN vào các lớp trong neural network ta có thể giải quyết được vấn đề lượng lớn tham số mà vẫn lấy ra được các đặc trưng của ảnh
Mô hình Convolutional neural network gồm Ảnh đầu vào →Lớp tích chập (convolution layer) + Lớp tổng hợp (pooling layer)→Lớp kết nối đầy đủ (fully connected layer)→Đầu ra như hình 2.5:
Trang 31CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Hình 2.5 Mô tả các lớp trong mô hình Convolutional neural network
Kiến trúc mạng CNN gồm 3 loại lớp chính: lớp tích chập, lớp tổng hợp và lớp kết nối đầy đủ
2.3.1 Lớp tích chập
Lớp tích chập (Convolutional layer) là một tập các ma trận đặc trưng (feature map) và mỗi ma trận đặc trưng này là một bản scan của đầu vào ban đầu, nhưng được trích xuất ra các đặc trưng (feature) cụ thể
Lớp tích chập là lớp quan trọng nhất và cũng là lớp đầu tiên của của mô hình CNN Lớp này có chức năng chính là phát hiện các đặc trưng có tính không gian hiệu quả dựa trên lý thuyết xử lý tín hiệu số, lấy tích chập để trích xuất thông tin quan trọng
từ dữ liệu [28] Trong tầng này có 4 đối tượng chính là: ma trận đầu vào, bộ lọc (filter), trường tiếp nhận (receptive field) và ma trận đặc trưng (feature map) Lớp tích chập nhận đầu vào là một ma trận 3 chiều và một bộ lọc cần phải học [28] Mỗi bộ lọc
có kích thước không gian nhỏ theo chiều rộng và chiều cao, nhưng mở rộng chiều sâu đầy đủ như chiều sâu của khối đầu vào [29] Bộ lọc này sẽ trượt qua từng vị trí trên bức ảnh để tính tích chập (convolution) giữa bộ lọc và phần tương ứng trên bức ảnh Phần tương ứng này trên bức ảnh gọi là trường tiếp nhận, tức là vùng mà một nơ-ron
có thể nhìn thấy để đưa ra quyết định, và ma trận cho ra bởi quá trình này được gọi là
ma trận đặc trưng [28]
Trường tiếp nhận: Khi làm việc với các yếu tố đầu vào có kích thước cao như hình ảnh, như đã phân tích ở trên, việc kết nối các nơ-ron với tất cả các nơ-ron ở khối trước đó là không thực tế Thay vào đó, chúng ta sẽ kết nối mỗi nơ-ron chỉ với một vùng cục bộ của khối đầu vào Phạm vi không gian của kết nối này là một siêu tham số
Trang 32CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
được gọi là trường tiếp nhận của nơron (tương đương đây là kích thước bộ lọc) Phạm
vi của kết nối dọc theo trục độ sâu luôn bằng độ sâu của khối đầu vào [29]
Sắp xếp không gian khối đầu ra: Kết nối của từng nơ-ron trong lớp tích chập với khối đầu vào đã được nêu ở trên, nhưng việc có bao nhiêu nơ-ron trong khối đầu ra hoặc cách chúng được sắp xếp như thế nào Ba siêu tham số kiểm soát kích thước của khối lượng đầu ra bao gồm: chiều sâu, bước nhảy và khoảng đệm mức 0 [29]
● Đầu tiên, chiều sâu của khối đầu ra là một siêu tham số Nó tương ứng với số lượng bộ lọc muốn sử dụng mỗi lần học, mỗi bộ lọc để tìm kiếm các đặc điểm khác nhau trong đầu vào Kích thước bộ lọc là một trong những tham số quan trọng nhất của tầng tích chập Kích thước này tỉ lệ thuận với số tham số cần học tại mỗi tầng tích chập
và là tham số quyết định trường tiếp nhận của tầng này Kích thước bộ lọc của tầng tích chập hầu hết đều là số lẻ, ví dụ như 3x3 hay 5x5 Với kích thước bộ lọc lẻ, các giá trị của ma trận đặc trưng sẽ xác định một tâm điểm ở tầng phía trước Nếu chọn bộ lọc
có kích thước 2x2, 4x4 thì sẽ gặp khó khăn khi muốn tìm vị trí tương ứng của các giá trị ma trận đặc trưng trên không gian ảnh [28]
● Thứ hai, xác định bước nhảy (Stride) khi trượt bộ lọc Khi bước nhảy là 1 thì chúng ta di chuyển các bộ lọc một điểm ảnh mỗi lần Khi bước nhảy là 2 thì các bộ lọc
sẽ nhảy 2 điểm ảnh mỗi lần tại thời điểm trượt bộ lọc xung quanh Điều này sẽ tạo ra khối đầu ra nhỏ hơn theo không gian [29]
Hình 2.6 Minh hoạ về stride: Khi stride là 1 thì ma trận đặc trưng có kích thước 3x3
và khi stride là 2 thì ma trận đặc trưng có kích thước 2x2
● Thứ ba, khối đầu vào đôi khi sẽ được đệm các bit 0 (zero-padding) xung quanh đường viền Kích thước của khoảng đệm bit 0 này là một siêu tham số Khoảng đệm bit 0 cho phép chúng ta kiểm soát kích thước không gian của khối lượng đầu ra, bảo
Trang 33CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
toàn chính xác kích thước không gian của khối đầu vào sao cho độ rộng đầu vào và đầu ra là như nhau [29]
Hình 2.7 Khối đầu vào khi được đệm các bit 0 với padding là 2
Khi điều chỉnh padding là 1, tức là đã thêm 1 ô bọc xung quanh các cạnh của input
Hình 2.8 Minh hoạ cho kiểu padding là 1
Kích thước của khối đầu ra: Kích thước không gian của khối đầu ra là một hàm của khối đầu vào với kích thước (W), kích thước của vùng tiếp nhận của các nơ-ron là
F, bước nhảy được áp dụng là S và kích thước của khoảng đệm bit 0 được sử dụng là
P Công thức tính toán kích thước khối đầu ra là [29]:
Wout = (W – F + 2P)/S +1 (2.3)
2.3.2 Lớp Pooling
Pooling là làm giảm các siêu tham số cần phải tính toán, từ đó giảm thời gian tính toán, tránh overfitting Pooling có 1 cửa sổ trượt gọi là pooling window, cửa sổ này trượt qua từng giá trị của ma trận dữ liệu đầu vào (thường là các ma trận đặc trưng trong lớp tích chập), chọn ra một giá trị từ các giá trị nằm trong cửa sổ trượt (với maxpooling sẽ lấy giá trị lớn nhất)
Trang 34CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Lớp Pooling thường được sử dụng ngay sau lớp tích chập để đơn giản hóa thông tin đầu ra để giảm bớt số lượng nơ-ron nhưng vẫn giữ được các thuộc tính quan trọng Keras hiện tại đang hỗ trợ nhiều loại lớp tổng hợp khác nhau, nhưng 2 loại pooling layer phổ biến là: max pooling và average pooling [25, 26, 27]
Hình 2.9 Mô tả hai loại lớp tổng hợp là max pooling và average pooling
2.3.3 Lớp kết nối đầy đủ
Lớp cuối cùng của mô hình CNN trong bài toán phân loại ảnh là lớp kết nối đầy
đủ (Fully connected layer) Lớp này có chức năng chuyển ma trận đặc trưng ở tầng trước thành vector chứa xác suất của các đối tượng cần được dự đoán Số nơ-ron ở lớp này phụ thuộc vào số đầu ra mà ta muốn tìm ra
Hình 2.10 Mạng nơ-ron đầy đủ chứa lớp kết nối đầy đủ FC ở cuối
2.3.4 Hàm kích hoạt
Hàm kích hoạt là những hàm phi tuyến được áp dụng vào đầu ra của các nơ-ron trong tầng ẩn của một mô hình mạng, và được sử dụng làm dữ liệu đầu vào cho tầng tiếp theo Một số hàm kích hoạt thường được dùng trong huấn luyện mạng nơ-ron được liệt kê trong bảng 2.1 [30]:
Trang 35CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Trang 36CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
)) 1
log(
) 1 ( ) log(
(
1 )
m W
số nút ra là K và là đầu ra thực tế của nút thứ yk là đầu ra thực tế của nút thứ k, còn k
là đầu ra ước lượng được cho nút thứ k tương ứng [31] Khi đó, công thức tính hàm lỗi
−
i
i k i
k K
k
i
y m
W J
1
) )
(i) k 1
)
)) 1
log(
) 1 ( ) log(
(
1 )
Hình 2.11 Phân đoạn ảnh là có thể tách hình ảnh thành hai đoạn bao gồm con mèo
và nền
Trong phân đoạn hình ảnh, công việc ta cần làm không chỉ là biến một bản đồ đặc trưng thành các vector độc lập mà còn cần phải chuyển đổi các vector này trở lại hình ảnh, đây thực sự là một công việc khó khăn vì biến đổi ngược lại luôn khó khăn hơn với việc tạo ra một vector từ hình ảnh ban đầu Vì thế mạng U-Net được xây dựng
để giải quyết bài toán này [32]
2.4.2 Xây dựng kiến trúc mạng U-Net
Trong khi chuyển đổi một hình ảnh thành một vectơ, mô hình mạng đã học cách ánh xạ các đặc trưng của hình ảnh Các bản đồ có tính năng tương tự được sử
Trang 37CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
dụng cho việc biến đổi thành vector đặc trưng để mở rộng chính vector đấy thành hình ảnh được phân đoạn Điều này sẽ bảo vệ tính nguyên vẹn trong cấu trúc của hình ảnh,
nó sẽ làm giảm sự biến dạng rất lớn [32]
Hình 2.12 Ví dụ mô tả kiến trúc mạng lưới U-Net
Như hình 2.12, kiến trúc U-Net bao gồm ba phần chính: Phần co lại (Contraction), phần nút cổ chai (Bottleneck) và phần mở rộng (Expansion section) Mỗi kích thước của bản đồ được chỉ định ở phía dưới bên trái và số lượng kênh được chỉ định ở trên nó Các hộp nửa màu xám biểu thị các bản đồ mà một nửa các kênh của chúng được sao chép Bản đồ ngoài cùng bên trái là hình ảnh thang độ xám 256×256 được lấy mẫu từ bản đồ độ cao kỹ thuật số và dự đoán mặt nạ vòng nhị phân của CNN
ở bên phải Mũi tên màu xanh biểu thị các kết cấu, trong khi mũi tên màu xám biểu thị sao chép (bỏ qua các kết nối) [33]
Phần co lại được làm từ nhiều khối co Mỗi khối lấy một đầu vào áp dụng hai lớp chập 3x3 theo sau là lớp max-pooling kích thước 2x2 Số lượng bản đồ đặc trưng sau mỗi khối tăng gấp đôi để kiến trúc có thể học các cấu trúc phức tạp một cách hiệu quả Lớp đáy là trung gian giữa lớp co lại và lớp mở rộng Nó sử dụng hai lớp CNN 3x3, sau đó là hai lớp chập CNN 3x3 tiếp tục chập lên lớp maxpooling 2x2 [33] Nhưng trái tim của kiến trúc này nằm ở phần mở rộng Tương tự như lớp co, nó cũng bao gồm một số khối mở rộng Mỗi khối chuyển đầu vào cho hai lớp CNN 3x3, sau đó
là lớp lấy mẫu 2x2 Ngoài ra, sau mỗi số khối của các bản đồ đặc trưng được sử dụng bởi lớp chập được lấy một nửa để duy trì tính đối xứng Tuy nhiên, mỗi lần đầu vào cũng được thêm vào bởi các bản đồ đặc trưng của lớp co lại tương ứng Hành động này sẽ đảm bảo rằng các tính năng được học trong khi ký hợp đồng với hình ảnh sẽ
Trang 38CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
được sử dụng để tái tạo lại nó Số lượng khối mở rộng giống như số khối co lại Sau
đó, ánh xạ kết quả đi qua một lớp CNN 3x3 khác với số lượng bản đồ tính năng bằng với số lượng phân đoạn mong muốn [33]
2.5 TIÊU CHUẨN VỀ TRÍ TUỆ NHÂN TẠO
Hiện nay, đối với ngành trí tuệ nhân tạo ở Việt Nam nói riêng và trên toàn thế giới nói chung còn rất mới và nó chỉ thực sự được quan tâm trong khoảng 10 năm trở lại đây nên các bộ tiêu chuẩn trong lĩnh vực này vẫn còn đang trong quá trình soạn thảo và hoàn thiện Năm 2017, IEC và ISO đã trở thành tổ chức phát triển tiêu chuẩn quốc tế (SDO) đầu tiên thành lập một ủy ban chung (ISO / IEC JTC 1 / SC 42) sẽ thực hiện các hoạt động tiêu chuẩn hóa cho trí tuệ nhân tạo [34]
Trong cuộc họp đầu tiên thành lập một ủy ban chung (ISO / IEC JTC 1 / SC 42), đã thiết lập một cấu trúc để cho phép phương pháp tiếp cận hệ sinh thái AI sẽ bao gồm [34]:
● Tiêu chuẩn cơ sở: Với sự đa dạng của các bên liên quan đến AI, điều cần thiết
là phải có các tiêu chuẩn nền tảng cung cấp khuôn khổ Điều này cho phép các nhà cung cấp công nghệ và người dùng sẽ tương tác với nhau một cách thống nhất Ưu tiên phát triển các tiêu chuẩn quốc tế về khái niệm và thuật ngữ AI theo tiêu chuẩn ISO / IEC AWI 22989 và các hệ thống trí tuệ nhân tạo sử dụng máy học theo tiêu chuẩn ISO / IEC AWI 23053
● Phương pháp tính toán và đặc điểm của hệ thống AI: Trọng tâm của AI là các phương pháp tính toán và kỹ thuật thuật toán trao quyền cho những hiểu biết được cung cấp bởi các công cụ AI Nhìn vào các hệ thống AI chuyên dụng hiện
có (Lập trình ngôn ngữ tư duy hoặc thị giác máy tính) để hiểu và xác định các phương pháp tính toán, kiến trúc và đặc điểm cơ bản của chúng Đồng thời cần điều tra từ thực tiễn, quy trình và phương pháp công nghiệp để ứng dụng các hệ thống AI
● Độ tin cậy: Đảm bảo sự tin cậy ngay từ đầu là một trong những khía cạnh thiết yếu để áp dụng rộng rãi công nghệ, tìm cách để đạt được tính minh bạch, an toàn, bảo mật và quyền riêng tư, hỗ trợ ra quyết định của hệ thống AI Đánh giá các mối đe dọa và rủi ro liên quan đến các hệ thống AI bằng các kỹ thuật và phương pháp giảm thiểu của chúng
Trang 39CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.6 HỆ THỐNG RFID
2.6.1 Giới thiệu công nghệ RFID
Công nghệ RFID (Radio Frequency Identification) là công nghệ nhận dạng đối tượng bằng sóng vô tuyến bằng cách sử dụng các trường điện từ để tự động nhận dạng
và theo dõi các thẻ được gắn vào các đối tượng [35] Cho phép thiết bị đọc đọc thông tin chứa trong thiết bị khác mà ở khoảng cách gần mà không cần tiếp xúc trực tiếp Công nghệ RFID chủ yếu dùng ba loại tần số là: tần số thấp LF, tần số cao HF, tần số siêu cao UHF [36]
Một hệ thống RFID bao gồm các thành phần sau:
₋ Tag RFID: Là thành phần bắt buộc phải có của một hệ thống RFID, được đặt lên đối tượng cần xác định
₋ Bộ đọc - đầu đọc RFID: Là thành phần bắt buộc, có nhiệm vụ kích hoạt thẻ, truyền dữ liệu bằng sóng vô tuyến với thẻ, thực hiện giải điều chế và giải mã tín hiệu nhận được từ thẻ ra dạng tín hiệu cần thiết để chuyển về máy tính
₋ Ăngten (Antenna): Làm nhiệm vụ bức xạ, thu sóng điện từ và gia công tín hiệu
₋ Mạch điều khiển: Hầu hết reader mới đều có thành phần này gắn liền với chúng Cho phép các thành phần bên ngoài như con người, chương trình máy tính giao tiếp điều khiển các chức năng của reader
₋ Cảm biến: Hỗ trợ xuất và nhập của hệ thống
₋ Máy chủ và hệ thống phần mềm: Về mặt lí thuyết, một hệ thống RFID có thể hoạt động mà không cần các thành phần này Nhưng thực tế, một hệ thống RFID gần như không có ý nghĩa nếu không có thành phần này
2.6.2 Giới thiệu về phần cứng
a Module RFID MFRC522
Module MFRC522 như hình 2.13, là module đọc/ghi trong môi trường giao tiếp tại tần số 13.56MHz Module hỗ trợ đọc các chuẩn ISO/IEC 1443 A/MIFARE và NTAG [37]
Trang 40CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
SPI (Max = 10 Mbit/s)
I2C (Fast Mode: 400 kbit/s, High Speed Mode: 3400 kbit/s)
b Thẻ RFID
Thẻ RFID là thiết bị có thể lưu trữ và truyền dữ liệu về bộ đọc bằng sóng vô tuyến Dữ liệu có thể là một số nhận dạng đơn giản được lưu trữ trong một thẻ chỉ đọc hoặc dữ liệu phức tạp hơn Thẻ RFID gồm chip bán dẫn nhỏ (bộ nhớ của chip có thể chứa từ 96 đến 512bit dữ liệu, nhiều gấp 64 lần so với mã vạch) và anten được thu nhỏ [37]
Phân loại thẻ Tag [37]:
+ Thẻ thụ động (Passive Tag): Không cần có nguồn điện bên trong Thẻ có cấu trúc đơn giản, kích thước mỏng và nhỏ, có tuổi thọ cao nhưng khoảng cách đọc khá gần