Công việc của chúng tôi gồm ba phần chính: Đầu tiên, tạo ra bộ công cụ giúp đảm bảo thao tác gán nhãn của người dùngtrên dữ liệu thuận tiện và chính xác Kế tiếp, trực quan hóa hình ảnh b
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
——————– * ———————
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
HỆ THỐNG LÀM NHÃN CHO ẢNH CHỤP CẮT LỚP VI TÍNH VỚI SỰ TRỢ GIÚP CỦA
TRÍ TUỆ NHÂN TẠO
Hội đồng : Khoa học máy tính
Giảng viên hướng dẫn : TS Lê Thành Sách
Giảng viên phản biện : TS Nguyễn An Khương
Sinh viên thực hiện : Nguyễn Công Thành (1713153)
Trần Hải Đăng (1711016) Đàm Ngọc Hương (1711651)
TP Hồ Chí Minh, Tháng 07/2021
Trang 2Chúng tội cam đoan mọi điều được trình bày trong báo cáo, cũng như mãnguồn là do chúng tôi tự thực hiện - trừ các kiến thức tham khảo có trích dẫncũng như mã nguồn mẫu do chính nhà sản xuất cung cấp, hoàn toàn không saochép từ bất cứ nguồn nào khác Nếu lời cam đoan trái với sự thật, chúng tôi xinchịu mọi trách nhiệm trước Ban Chủ Nhiệm Khoa và Ban Giám Hiệu Nhà Trường.
Nhóm sinh viên thực hiện đề tài
Trang 3Lời cảm ơn
Để hoàn thành được đề tài luận văn tốt nghiệp này, nhóm sinh viên thựchiện đề tài đã nhận được sự hỗ trợ từ rất nhiều phía Đầu tiên và quan trọng nhất,nhóm xin gửi lời cảm ơn chân thành đến giảng viên hướng dẫn trực tiếp của nhóm
và Tiến sĩ Lê Thành Sách cũng như các thành viên trong GVLab Thầy và cácanh là người định hướng chính, cung cấp tài liệu cũng như theo dõi quá trình thựchiện đề tài và hỗ trợ khi nhóm gặp khó khăn
Nhóm vô cùng biết ơn sự tận tình dạy dỗ, giúp đỡ của quý thầy cô trongkhoa Khoa học & Kỹ thuật Máy tính nói riêng cũng như trường Đại học Báchkhoa TP Hồ Chí Minh nói chung Những kiến thức nhận được từ quý thầy cô là
vô cũng quý giá và bổ ích, hỗ trợ rất lớn cho nhóm để hoàn thành đề tài luận văntốt nghiệp này
Nhóm gửi lời cảm ơn đến gia đình, người thân, bạn bè, những người đã quantâm, động viên, giúp đỡ cả về thể chất lẫn tinh thần để nhóm có đủ nghị lực, sứckhỏe hoàn thành tốt đề tài luận văn tốt nghiệp đại học này
Với lòng biết ơn chân thành, nhóm xin gửi lời chúc sức khỏe, lời biết ơn vànhững lời chúc tốt đẹp nhất đến các quý thầy cô trong Khoa Khoa học và Kỹthuật Máy tính - Trường Đại Học Bách Khoa Đại Học Quốc Gia Thành phố HồChí Minh
Nhóm sinh viên thực hiện đề tài
Trang 4Việc phân đoạn ảnh y khoa mang lại nhiều lợi ích đầy hứa hẹn cho công tácchẩn đoán - điều trị trong y học Các số liệu thực tế cho thấy các mô hình phân
đoạn ảnh y khoa state-of-the-art tính đến thời điểm chúng tôi thực hiện luận văn
này đều thuộc nhóm dựa trên mạng neuron học sâu [1] Để tăng hiệu quả phânđoạn của các mô hình học sâu này đòi hỏi nhiều yếu tố như năng lực tính toán của
hạ tầng, kiến trúc của mạng neuron dùng trong phân đoạn và chất lượng của tập
dữ liệu được sử dụng trong quá trình huấn luyện mạng neuron Trong đó, ở mộtchừng mực nhất định, tương quan giữa tiềm năng cải tiến so với chi phí cải tiếncủa chất lượng của tập dữ liệu là thấp nhất Vì lẽ đó, trong luận văn này chúng tôi
cố gắng xây dựng một hệ thống hoạt động trên nền tảng web hỗ trợ việc xây dựngtập dữ liệu phân đoạn ảnh y khoa có độ tin cậy cao một cách nhanh chóng và đòihỏi ít tài nguyên về nhân lực Hệ thống mang đến nhiều công cụ hỗ trợ người gánnhãn mà đáng chú ý nhất chính là sự hỗ trợ của trí tuệ nhân tạo, khả năng trựcquan hóa ba chiều và sinh lát cắt ảo từ tập ảnh hai chiều
Công việc của chúng tôi gồm ba phần chính:
Đầu tiên, tạo ra bộ công cụ giúp đảm bảo thao tác gán nhãn của người dùngtrên dữ liệu thuận tiện và chính xác
Kế tiếp, trực quan hóa hình ảnh ba chiều từ tập ảnh y khoa, cũng như chongười dùng khả năng điều khiển hoàn toàn và đơn giản việc sinh ra lát cắt
ảo từ dữ liệu ba chiều cũng như gán nhãn trên chúng và
Cuối cùng, kết nối người dùng đến mạng học sâu U2Net3D [2], sử dụng môhình để gán sẵn nhãn như một tiền đề cho người gán nhãn tiếp tục trên nó,giảm bớt một phần đáng kể lượng công việc của họ
Trang 5Lời cảm ơn
Để thực hiện các công việc đó, đầu tiên chúng tôi khảo sát các công trìnhliên quan về mô phỏng ba chiều, xử lý ảnh trên nền tảng web và các mô hình họcsâu được ứng dụng trong xử lý ảnh y khoa để xây dựng cơ sở phương pháp luậncho các công việc của mình Sau khi đã có một cơ sở phương pháp luận vững chắc,chúng tôi tiến hành tổng hợp và phát triển công cụ gán nhãn Cuối cùng chúngtôi đánh giá công trình bằng cách mời nhiều sinh viên của trường đại học Y Dượcthành phố Hồ Chí Minh sử dụng và mô tả lại trải nghiệm của họ
Từ khóa: annotation tool, ai, unet, medical, image segmentation
Trang 6Lời cam đoan
1.1 Đặt vấn đề 11.2 Mục tiêu và phạm vi giới hạn của đề tài 21.3 Những thách thức 2
2.1 Trực quan khối ba chiều 42.1.1 Định nghĩa 42.1.2 Ray casting 42.1.3 Kết cấu 3D (3D texture) trong trực quan khối ba chiều 52.1.4 Thuật toán trực quan khối ba chiều 52.2 Đánh giá độ chính xác của việc gán nhãn 6
Trang 7Mục lục
2.2.1 Ma trận nhầm lẫn 6
2.2.2 Pixel Accuracy 7
2.2.3 Độ chính xác và độ truy hồi 8
2.2.4 Intersection over Union (IoU) 9
2.2.5 Hệ số tương đồng Dice 9
2.2.6 Chỉ số lỗi trùng thể tích 11
2.2.7 Chỉ số sai khác thể tích 11
3 CÁC CÔNG TRÌNH LIÊN QUAN 12 3.1 Mô đun phân đoạn ảnh của phần mềm 3D Slicer [3] 12
3.1.1 Ba mặt cắt trực giao và trực quan hóa phân đoạn từ tập ảnh ba chiều 12
3.1.2 Các công cụ cho gán nhãn thủ công và ứng dụng trí tuệ nhân tạo 15
3.2 Mô đun phân trực quan hóa 3D của phần mềm Vesalius 3D [4] 18
3.2.1 Ba mặt cắt trực giao và trực quan hóa phân đoạn từ tập ảnh ba chiều 18
3.2.2 Tính năng gán nhãn 19
3.3 Mô đun gán nhãn 2D của ứng dụng Training data [5] 19
3.3.1 Tính năng gán nhãn thủ công 20
3.3.2 Tính năng dự đoán nhãn bằng AI 21
4 TỔNG QUAN HỆ THỐNG LÀM NHÃN ẢNH Y KHOA DAT 22 4.1 Mục tiêu của hệ thống DAT 22
4.2 Phân tích yêu cầu 22
4.2.1 Quản trị hệ thống và dữ liệu 22
4.2.2 Chức năng gán nhãn 23
4.3 Công nghệ sử dụng 24
Trang 84.3.1 Techstack 24
4.3.2 Ngôn ngữ lập trình 24
4.3.3 Thư viện và frameworks 25
4.3.4 Cơ sở dữ liệu 27
4.3.5 Công cụ, phần mềm hỗ trợ 28
4.4 Kiến trúc hệ thống 29
4.4.1 Tổng quan kiến trúc hệ thống 29
4.4.2 Chi tiết kiến trúc hệ thống 30
5 HIỆN THỰC HỆ THỐNG 33 5.1 Chức năng đăng ký tài khoản và đăng nhập 33
5.1.1 Chức năng đăng ký tài khoản 33
5.1.2 Chức năng đăng nhập 34
5.1.3 Chức năng thay đổi mật khẩu 34
5.2 Chức năng tải lên tập dữ liệu làm nhãn, chia sẻ và xóa tập dữ liệu 36 5.2.1 Chức năng tải lên tập dữ liệu 36
5.2.2 Chức năng chia sẻ tập dữ liệu 37
5.2.3 Chức năng xóa tập dữ liệu 38
5.3 Chức năng gán nhãn 38
5.3.1 Trực quan khối ba chiều 39
5.3.2 Lát cắt ảo 41
5.3.3 Các công cụ gán nhãn thủ công 44
5.3.4 Điều chỉnh khoảng nhìn thấy của giá trị Hounsfield Unit 50
5.3.5 Gán nhãn tự động bằng trí tuệ nhân tạo 52
5.3.6 Các công cụ hỗ trợ đo đạc khi gán nhãn 57
5.4 Chức năng lưu nhãn 65
5.4.1 Tối ưu kích thước nhãn phía người dùng 65
Trang 9Mục lục
5.4.2 Lưu trữ nhãn trên máy chủ 66
6 THÍ NGHIỆM VÀ ĐÁNH GIÁ 67 6.1 Thí nghiệm trực tiếp sử dụng phần mềm 67
6.1.1 Dữ liệu dùng trong thí nghiệm - 3Dircadb [6] 67
6.1.2 Kết quả thí nghiệm 70
6.2 Thí nghiệm sử dụng kỹ thuật nén khi tải nhãn lên máy chủ 75
6.3 Tổng hợp, đánh giá hệ thống DAT 76
6.3.1 Ưu điểm 76
6.3.2 Nhược điểm 77
7 TỔNG KẾT 78 7.1 Thành quả đạt được 78
7.2 Định hướng phát triển 79
Trang 102.1 Bốn bước cơ bản trong trực quan khối (1) Ray casting, (2) Lấy
của phần mềm 3D Slicer [7] 143.3 Một ví dụ về việc lựa chọn màu sắc hiển thị cho vật thể trên mô
phỏng ba chiều trong mô đun phân đoạn ảnh của phần mềm 3DSlicer [7] 153.4 Một ví dụ về danh sách các công cụ trong bảng Effects của mô đun
phân đoạn ảnh của phần mềm 3D Slicer [7] Người dùng nháy đơnvào biểu tượng để chọn công cụ tương ứng 153.5 Một ví dụ về công cụ vẽ dùng cho gán nhãn trong mô đun phân
đoạn ảnh của phần mềm 3D Slicer [7] Người dùng nhấn giữ và dichuyển chuột để vẽ trên mặt cắt họ muốn 163.6 Một ví dụ về công cụ tăng trưởng vùng dùng cho gán nhãn trong
mô đun phân đoạn ảnh của phần mềm 3D Slicer [7] Người dùngchọn điểm khởi tạo và chọn bắt đầu, giải thuật sẽ lần lượt lan rộngnhãn ra các điểm kế cận với điểm được gán nhãn và thỏa điều kiện
về chênh lệch giá trị HU với điểm khởi tạo 17
Trang 11Danh sách hình vẽ
3.7 Một ví dụ về công cụ gán nhãn tự động bằng trí tuệ nhân tạo
Nvidia Clara dùng cho gán nhãn trong mô đun phân đoạn ảnh của phần mềm 3D Slicer [7] Người dùng chọn một trong các vật thể được hỗ trợ bởi trí tuệ nhân tạo và chọn bắt đầu, giải thuật sẽ tự
động gán nhãn vật thể được chọn trên ảnh 17
3.8 Cửa sổ làm việc của Vesalius 3D [4] 1-Thanh menu 2-Thanh điều khiển 3-Trực quan 3D 4-Nháy chuột phải hiện danh mục 5-Ba mặt các 2D 6-Ba trang ứng với ba chức năng: Trực quan hóa, đo lường, in 3D 18
3.9 Gán nhãn 3D từ các mặt cắt 2D [4] 19
3.10 Cửa sổ gán nhãn thủ công 2D trên ảnh y khoa của TrainingData [5] 1-Thanh menu chứa các công cụ gán nhãn, 2-Khu vực hiển thị ảnh y khoa 3-Cấu hình các nhãn, mỗi loại nhãn tương ứng với một màu 20
3.11 Một số mô hình huấn luyện có sẵn [5] 21
4.1 Các công nghệ sử dụng 24
4.2 Tổng quan kiến trúc hệ thống 29
4.3 Sơ đồ use case hệ thống DAT 30
4.4 Sơ đồ sequence diagram hệ thống DAT 31
4.5 Thiết kế cơ sở dữ liệu với Django Model 32
5.1 Giao diện đăng ký tài khoản 33
5.2 Giao diện đăng nhập vào hệ thống DAT 34
5.3 Giao diện menu đổi mật khẩu 35
5.4 Giao diện chức năng đổi mật khẩu 35
5.5 Giao diện tải lên tập dữ liệu mới và hiển thị những tập dữ liệu hiện có 36
Trang 125.6 Trực quan khối ba chiều của cùng một tập ảnh khi chưa được chuẩn
hóa (Hình 5.8a) và sau khi đã chuẩn hóa khoảng cách (Hình 5.8a) Không khó để thấy rằng trước khi được chuẩn hóa, hình ảnh ổ bụng được mô phỏng thiếu chính xác Từ đây có thể thấy được tầm quan trọng của việc chuẩn hóa khoảng cách các voxel trước khi đưa tập dữ liệu vào gán nhãn Điều này cũng đúng với việc
chuẩn hóa giá trị các voxel 37
5.7 Giao diện chia sẻ tập dữ liệu của mình với các người dùng khác 37
5.8 Giao diện xóa tập dữ liệu 38
5.9 Tổng quan giao diện làm nhãn 39
5.10 Render bằng kỹ thuật volume rendering 41
5.11 Ví dụ về khả năng di chuyển lát cắt ảo Người dùng có thể di chuyển lát cắt ảo bằng cách tịnh tiến (Hình 5.11b), xoay trên-dưới (Hình5.11c), xoay trái-phải (Hình 5.11d) và kết hợp các phép di chuyển trên (Hình 5.11e) 44
5.12 Công cụ vẽ nhãn bằng Brush 45
5.13 Công cụ vẽ vùng nhãn hình tròn 46
5.14 Công cụ vẽ vùng nhãn hình chữ nhật 47
5.15 Công cụ vẽ nhãn bằng Scissor 48
5.16 Công cụ xóa nhãn 49
5.17 Công cụ xóa nhãn 49
5.18 Một ví dụ cho thấy tác dụng của việc thay đổi khoảng nhìn thấy của giá trị Hounsfield Unit trong việc làm lộ ra các vật thể bị che khuất trên vùng trực quan khối ba chiều Hình 5.18a là trực quan khối ba chiều của vật thể khi khoảng nhìn thấy của giá trị Hounsfield Unit là từ −56 tới 124, với khoảng này các cơ quan nội tạng trong ổ bụng bị cơ bụng và các cơ liên sườn che khuất, không thể quan sát được bằng mắt thường Khi điều chỉnh về khoảng từ 47 tới 111, phần nội tạng bên trong lộ ra và có thể quan sát bằng mắt thường như ở hình 5.18b 50
Trang 13Danh sách hình vẽ
5.19 Một ví dụ cho thấy tác dụng của việc thay đổi khoảng nhìn thấy
của giá trị Hounsfield Unit trong việc tăng cường sự khác biệt giữa các vật thể khác nhau trên lát cắt ảo Bằng việc thu hẹp giới hạn nhìn thấy của giá trị Hounsfield Unit từ khoảng −1024 tới 1023 (Hình 5.19a) về −56 tới 124 và chuẩn hóa giá trị các điểm ảnh thấy được về khoảng từ 0 tới 1 (Hình 5.19b), ta có thể làm nổi bật hình
ảnh gan và khối u nằm trên nó 51
5.20 Một ví dụ về việc điều chỉnh và cập nhật khoảng nhìn thấy của giá trị Hounsfield Unit Xuất phát từ khoảng nhìn thấy từ đến thể hiện ở hai đầu cuối của thanh trượt ở vị trí được khoanh vùng bởi hình chữ nhật đỏ số 1 (Hình 5.20a), người dùng kéo thả hai đầu cuối của thanh trượt đến vị trí từ -43 tới 297 (Hình 5.20b), hình ảnh được hiển thị bởi trực quan khối ba chiều và lát cắt ảo (lần lượt nằm ở vị trí được khoanh vùng bởi hình chữ nhật số 2 và số 3) được cập nhật liên tục với tiến độ kéo thả của người dùng 52
5.21 Kiến trúc của U2Net3D trích từ công trình của Tùng và cộng sự [2], tạo nên từ các khối đơn vị gọi là U-Block 5.22 54
5.22 U-Block - khối đơn vị trong kiến trúc của U2Net3D trích từ công trình của Tùng và cộng sự [2] 55
5.23 Bảng số liệu trích từ công trình của Tùng và cộng sự [2] 55
5.24 Ví dụ về việc sử dụng tính năng gán nhãn tự động bằng trí tuệ nhân tạo Để tải nhãn dự đoán, người dùng nháy đơn vào nút “Load AI Prediction/Previous Work” được nằm trong vòng tròn đỏ số 1 trên thanh công cụ 56
5.25 Ví dụ về việc sử dụng tính năng gán nhãn tự động bằng trí tuệ nhân tạo Sau khi frontend nhận nhãn dự đoán, nhãn sẽ xuất hiện trên hai vị trí bao gồm lát cắt ảo nằm trong vòng tròn đỏ số 2 và vùng hiển thị nhãn nằm trong vòng tròn đỏ số 3 56
5.26 Công cụ di chuyển vị trí lát cắt ảo Pan 57
5.27 Kích thước ban đầu của lát cắt ảo 58
5.28 Kích thước khi phóng to lát cắt ảo 59
5.29 Kích thước khi thu nhỏ lát cắt ảo 60
Trang 145.30 Công cụ đo góc 61
5.31 Công cụ đo khoảng cách 62
5.32 Công cụ vẽ tự do cùng diện tích vùng nhãn được hiển thị 63
5.33 Công cụ xác định tọa độ tại một vị trí xác định 64
5.34 Công cụ xóa các công cụ đo lường 64
5.35 Định dạng cấu trúc nhãn 65
6.1 Mô phỏng trực quan các mẫu dữ liệu từ các bệnh nhân thứ 1, 2 và 3 của tập dữ liệu 3Dircadb [6] Sự khác biệt về lứa tuổi, chiều cao, cân nặng khiến các ảnh từ sáu bệnh nhân rất đa dạng về hình dáng, kích thước các cơ quan nội tạng cũng như phân phối giá trị HU của các cơ quan (khoảng nhìn thấy của giá trị HU để làm lộ cơ quan bên trong mỗi người tương đối chênh lệch nhau, dù không được thể hiện trong ảnh) 69
6.2 Mô phỏng trực quan các mẫu dữ liệu từ các bệnh nhân thứ 4, 5 và 6 của tập dữ liệu 3Dircadb [6] Sự khác biệt về lứa tuổi, chiều cao, cân nặng khiến các ảnh từ sáu bệnh nhân rất đa dạng về hình dáng, kích thước các cơ quan nội tạng cũng như phân phối giá trị HU của các cơ quan (khoảng nhìn thấy của giá trị HU để làm lộ cơ quan bên trong mỗi người tương đối chênh lệch nhau, dù không được thể hiện trong ảnh) 70
6.3 Ảnh trực quan khối ba chiều của các bệnh nhân 1 và 2 và nhãn do AI dự đoán tương ứng Với độ chính xác cao (Hình 5.23), trí tuệ nhân tạo có tác động tích cực về mặt thời gian và độ chính xác của việc gán nhãn 72
6.4 Ảnh trực quan khối ba chiều của các bệnh nhân 3 và 4 và nhãn do AI dự đoán tương ứng Với độ chính xác cao (Hình 5.23), trí tuệ nhân tạo có tác động tích cực về mặt thời gian và độ chính xác của việc gán nhãn 73
Trang 15Danh sách hình vẽ
6.5 Ảnh trực quan khối ba chiều của các bệnh nhân 5 và 6 và nhãn do
AI dự đoán tương ứng Với độ chính xác cao (Hình 5.23), trí tuệnhân tạo có tác động tích cực về mặt thời gian và độ chính xác củaviệc gán nhãn 746.6 So sánh khối lượng và tốc độ tải lên khí sử dụng và không sử dụng
kỹ thuật nén 75
Trang 162.1 Ma trận nhầm lẫn 6
6.1 Kết quả thí nghiệm trực tiếp gán nhãn, dice và recall có đơn vị (%),thời gian có đơn vị phút Giá trị dice và recall càng cao càng tốt,thời gian càng thấp càng tốt Số được in đậm là số tốt nhất của mộtđơn vị đo ứng với một bệnh nhân 716.2 So sánh hệ thống DAT với các ứng dụng 3D Slicer, Vesalius vàTrainingdata 76
Trang 17Thuật ngữ & từ viết tắt
AI Artificial Intelligence
CT Computed Tomography
DICOM Digital Image and Communications in Medicine
HU Hounsfield Unit
ISBI International Symposium on Biomedical Imaging
MICCAI International Conference on Medical Image Computing and Computer
Assisted Intervention
DAT Data Annotation Tool
Trang 18GIỚI THIỆU ĐỀ TÀI
1.1 Đặt vấn đề
Phân đoạn ảnh y khoa là bài toán quan trọng và đầy thách thức trong lĩnhvực phân tích ảnh y khoa Kết quả của quá trình phân đoạn ảnh y khoa sẽ cho racác thông tin then chốt liên quan tới hình dạng, kích thước và quan hệ về vị trícủa các cơ quan, khối u và các đối tượng cần được quan tâm khác trong chẩn đoán
và điều trị lâm sàng Trong tất cả các cách tiếp cận trước nay, kỹ thuật phân đoạnảnh dựa trên mạng neuron học sâu đã cho thấy hiệu suất ưu việt Bằng chứng lànhững mô hình phân đoạn đạt state-of-the-art trong các cuộc thi phân đoạn ảnh ykhoa hiện nay như [8] hay [9] đều là những mô hình dựa trên mạng neuron họcsâu
Sức mạnh của mạng neuron học sâu phụ thuộc vào ba yếu tố chính gồm sứcmạnh tính toán của hạ tầng, kiến trúc của mạng neuron và chất lượng của tập dữliệu huấn luyện mạng Ở một chừng mực nhất định, tương quan giữa tiềm năngcải tiến so với chi phí cải tiến của chất lượng tập dữ liệu là thấp nhất [10] chỉ ramột cách chính xác và chi tiết về sự cần thiết của một tập dữ liệu huấn luyện đadạng, chính xác và dồi dào đối với việc huấn luyện mô hình neuron học sâu
Để xây dựng tập dữ liệu đáp ứng được nhu cầu huấn luyện các mô hìnhmạng neuron học sâu giải quyết các bài toán khác nhau đòi hỏi người xây dựngtập dữ liệu phải có công cụ đặc thù nhằm giảm bớt gánh nặng về nhân lực, thờigian và vật chất, đặc biệt là với các loại dữ liệu yêu cầu chuyên môn đặc thù nhưảnh y khoa Với ảnh y khoa ba chiều, công đoạn gán nhãn cho dữ liệu đặc biệt
Trang 191.2 Mục tiêu và phạm vi giới hạn của đề tài
ích mà nó mang lại cho công nghệ phân đoạn ảnh, ở Việt Nam chưa có một công
cụ gán nhãn cho dữ liệu ba chiều nào được xây dựng và đưa vào hoạt động
Vì lý do trên, chúng tôi kế thừa công trình của Tùng và cộng sự [2] và pháttriển đề tài “Annotation Tool For CT Images With AI”, trong đó chúng tôi xâydựng một công cụ gán nhãn trên nền tảng web với sự hỗ trợ của trí tuệ nhân tạovới mong muốn đóng góp vào sự phát triển của cả ngành khoa học máy tính vàngành y, tạo ra nhiều giá trị tốt đẹp cho xã hội Việt Nam
1.2 Mục tiêu và phạm vi giới hạn của đề tài
Mục tiêu cuối cùng mà chúng tôi muốn đạt được là một hệ thống dựa trênnền tảng web hỗ trợ việc tạo ra nhãn cho các tập ảnh CT mà bác sĩ có thể truycập được từ một browser trên máy tính cá nhận và trực tiếp gán nhãn bằng cáchđiều khiển chuột và bàn phím Chúng tôi hướng đến việc hỗ trợ bác sĩ gán nhãnmột cách thật nhanh chóng, tốn ít công sức và tâm trí nhất có thể
Có nhiều vấn đề mà một công cụ làm việc với dữ liệu y học cần giải quyết,trong đó có vấn đề danh tính của người thao tác và vấn đề bảo mật danh tính củangười bệnh Trong luận văn này chúng tôi sẽ chỉ làm thí nghiệm trên các tập dữliệu mở với danh tính của người bệnh được giấu đi, cũng như giả thiết rằng ngườidùng hệ thống đã đuợc chứng thực về chuyên môn và trách nhiệm, vì vậy chúngtôi sẽ chỉ giới hạn công việc của bản thân trong phạm vi tạo ra một hệ thống cócác chức năng sau:
1 Tiếp nhận, lưu trữ và cung cấp dữ liệu về ảnh CT
2 Giúp người dùng trực quan hóa tập ảnh CT và cung cấp nhiều góc nhìn hơnvào tập ảnh CT thông qua kỹ thuật sinh lát cắt ảo
3 Giúp nguời dùng gán và lưu nhãn cho ảnh CT, có vận dụng trí tuệ nhân tạo
1.3 Những thách thức
Những khó khăn mà chúng tôi gặp phải trong quá trình xây dựng hệ thốngđến từ nhiều nguyên nhân
Trang 20Đầu tiên là tính phức tạp và chuyên sâu đặc thù của nghiệp vụ.
Ngành phân tích ảnh y khoa có nhiều khái niệm và quy tắc đòi hỏi chúng tôiphải xây dựng một nền tảng kiến thức thích hợp để tạo ra một tiếng nói chungnhằm chuyển đổi các khái niệm và quy tắc này thành các ràng buộc biểu diễn đượcbởi ngôn ngữ lập trình
Kế đó là giới hạn về công nghệ Khả năng làm việc với hệ thống ngay trêngiao diện web từ chính máy tính cá nhân của người dùng mang lại những lợi ích tolớn đối với trải nghiệm của họ, tuy nhiên nó giới hạn các lựa chọn của người lậptrình, từ đó nảy sinh một số thách thức
Giới hạn về phần cứng của máy tính cá nhân tạo ra sự gò bó trong các tác
vụ đòi hỏi tính toán nặng, cụ thể như tác vụ mô phỏng ba chiều, buộc chúng tôiphải tận dụng rất triệt để tài nguyên của máy tính cá nhân cũng như có biện phápphân phối khối lượng tính toán
Quyết định xây dựng hệ thống trên nền tảng web thu nhỏ lựa chọn về ngônngữ và framework Trên thực tế không có nhiều framework hỗ trợ các công việc
mô phỏng ba chiều và xử lý ảnh trên nền tảng web, buộc chúng tôi phải làm việcvới các framework chưa trưởng thành trong tình trạng thiếu hụt nguồn tài liệu
về cách sử dụng Chúng tôi cũng bị phụ thuộc vào các phương thức quản lý tàinguyên được cung cấp bởi browser
Trang 21sử dụng hàm truyền RGBA).
2.1.2 Ray casting
Ray casting là một kỹ thuật dựng hình được phát triển từ những năm 1960
và được sử dụng rộng rãi trong đồ họa máy tính và hình học tính toán Nó có khảnăng tạo ra góc nhìn ba chiều của một vật thể từ một tập ảnh 2 chiều Kỹ thuậtnày giúp xác định sự va chạm của một vật thể với một tia cho trước nhằm thuthập cái thông tin về vật thể mà tia này đi qua
Trang 222.1.3 Kết cấu 3D (3D texture) trong trực quan khối ba
chiều
Kết cấu 3D trong trực quan khối còn gọi là ánh xạ kết cấu (texture mapping),
là một kỹ thuật đặc biệt cho phép phân tách vật thể 3D thành các lát cắt trựcgiao Điều này có nghĩa là ta có thể áp dụng ánh xạ kết cấu 2D cho kết cấu 3Dnhằm trực quan khối vật thể
2.1.4 Thuật toán trực quan khối ba chiều
bóng, (4) Tổng hợp
Để trực quan một khối dữ liệu 3D, ta cần thực hiện những bước sau:
1 Ray casting: Đối với mỗi pixel của hình chiếu 2D cuối cùng, một tia nhìn
được bắn (cast) qua khối 3D (volume) Ở giai đoạn này, nên xem xét khối3D được bao bọc bởi một vật thể nguyên thủy có giới hạn - một đối tượnghình học đơn giản (thường là một khối lập phương) - được sử dụng để giaogiữa tia nhìn và khối
2 Lấy mẫu (sampling): Dọc theo phần của tia nhìn nằm trong khối 3D, các
điểm lấy mẫu cách đều nhau được chọn Nhìn chung, khối 3D không đượccăn chỉnh với tia nhìn và các điểm lấy mẫu thường sẽ nằm ở giữa các voxels
Do đó, cần phải nội suy các giá trị của mẫu từ các voxel xung quanh của nó
3 Tạo bóng (shading): Đối với mỗi điểm lấy mẫu, hàm truyền tải (transfer
Trang 232.2 Đánh giá độ chính xác của việc gán nhãn
của các giá trị chiếu sáng để tính toán Độ dốc đại diện cho định hướng củacác bề mặt cục bộ trong khối Sau đó, các mẫu được tô bóng (nghĩa là được
tô màu và chiếu sáng) theo hướng bề mặt của chúng và vị trí của nguồn sángtrong bối cảnh (scene)
4 Tổng hợp (compositing): Sau khi tất cả các điểm lấy mẫu đã được tô
bóng, chúng được kết hợp dọc theo tia nhìn, dẫn đến giá trị màu cuối cùngcho pixel trên hình chiếu 2D Để tổng hợp được giá trị màu cuối cùng chopixel trên hình chiếu 2D, có thể bắt đầu tính toán từ sau ra trước, tức làtính toán bắt đầu với mẫu xa người xem nhất và kết thúc bằng mẫu gầnngười xem nhất Cách này đảm bảo rằng các phần bị che của khối 3D khôngảnh hưởng đến điểm ảnh thu được Trong khi đó, thứ tự tính toán từ trước
ra sau có thể hiệu quả hơn về mặt tốc độ vì càng ra xa khỏi máy ảnh, nănglượng còn lại của tia nhìn càng giảm; do đó, sự đóng góp vào giá trị kết xuấtgiảm dần Ngoài ra, ra có thể tăng tốc độ tính toán bằng cách tăng khoảngcách giữa các điểm lấy mẫu
2.2 Đánh giá độ chính xác của việc gán nhãn
Để đánh giá hiệu quả của công cụ trong khả năng hỗ trợ người gán nhãn,chúng tôi
2.2.1 Ma trận nhầm lẫn
Khi đánh giá một mô hình mạng học sâu, chúng ta thường đề cập đến một
thuật ngữ gọi là ma trận nhầm lẫn (confusion matrix) [11] Một bảng dùng để
mô tả hiệu suất của một mô hình phân loại trên tập dữ liệu đã biết kết quả đúng,giúp ta có cái nhìn trực quan về hiệu suất các giải thuật
Giá trị thựcPositive NegativeGiá trị dự đoán PositiveNegative TPFN TNFP
Cụ thể hơn, khi xét một bài toán phân loại 2 lớp: trong đó một lớp nghiêm
Trang 24trọng hơn lớp kia cần được đự doán chính xác Giả sử ta đang xét bài toán phânloại gồm 2 lớp: ung thư (positive), không ung thư (negative).
Positive: Đối tượng được gán nhãn là ung thư
Negative: Đối tượng được gán nhãn là không phải ung thư
True Positive (TP): Khi mô hình dự đoán đúng đối tượng đó là ung thư.False Positive (FP): Khi mô hình dự đoán đối tượng đó là ung thư nhưngthực sự nó là không phải là ung thư
True Negative (TN): Khi mô hình dự đoán đúng đối tượng đó là không phảiung thư
False Negative (FN): Khi mô hình dự đoán đối tượng đó là không phải ungthư nhưng thực sự nó là ung thư
Bên cạnh đó, các chỉ số False Positive Rate (tỉ lệ báo động nhầm), FalseNegative Rate (tỉ lệ bỏ sót) cũng đáng được quan tâm
Với các bài toán có nhiều lớp dữ liệu, ta có thể xây dựng bảng True/FalsePositive/Negative cho mỗi lớp nếu coi lớp đó là lớp Positive, các lớp còn lại gộpchung thành lớp Negative
2.2.2 Pixel Accuracy
Một cách đánh giá cơ bản cho bài toán phân đoạn ảnh là tính tỉ lệ pixels(voxel) của ảnh đó được phân loại đúng Tuy nhiên trong bài toán phân đoạn (còngọi dense prediction) đôi khi độ đo accuracy không thể hiện được mô hình liệu cóhiệu suất tốt hay không vì xuất hiện các vấn đề như: mất cân bằng dữ liệu (mộtlớp trong ảnh có tỉ lệ xuất hiện quá nhỏ so với lớp còn lại) Miền giá trị của độ đo
Trang 252.2 Đánh giá độ chính xác của việc gán nhãn
sự đã được phân loại đủ hay chưa Do đó,nếu một mô hình chỉ tìm được đúng mộtđiểm positive mà nó chắc chắn nhất thì ta không thể gọi nó là một mô hình tốt
Trang 26Xét trường hợp recall = 1, có nghĩa là mọi điểm positive đều được tìm thấy.Tuy nhiên, đại lượng này lại không đo liệu có bao nhiêu điểm negative bị lẫn trong
đó Nếu mô hình phân loại mọi điểm là positive thì chắc chắn recall = 1, tuy nhiên
dễ nhận ra đây là một mô hình cho kết quả cực kì tệ
Một mô hình phân loại tốt là mô hình có cả Precision và Recall đều cao,tức càng gần một càng tốt Có hai cách đo chất lượng của bộ phân lớp dựa vàoPrecision và Reall: Precision-Recall curve và F1-score (Dice)
2.2.4 Intersection over Union (IoU)
Độ đo IoU (hay được biết đến Jascard Index [12]) là một trong những độ đođược sử dụng phổ biến trong bài toán phân đoạn ảnh
Ý tưởng cơ bản là IoU là tập hợp những pixel thuộc chung một lớp (phầntrùng lắp) giữa giá trị phân đoạn do mô hình dự đoán và nhãn thực (ground truth)của nó Độ đo này có phần gần giống với hệ số Dice, chúng thường được sử dụngtrong hàm đánh giá mất mát trong quá trình huấn luyện
IoU = |Predict ∩ Target|
và Lee Raymond Dice[14]
Hệ số Dice ban đầu được phát triển cho dữ liệu 2 lớp Có thể tính bằng cáchlấy 2 lần khu vực trùng lắp lên nhau của giá trị dự đoán và nhãn thực chia chotổng số pixel của ảnh Độ đo có miền giá trị từ [0,1] với giá trị 1 thể hiện cho việc
Trang 272.2 Đánh giá độ chính xác của việc gán nhãn
trùng lắp hoàn hảo giữa giá trị dự đoán và giá trị thực
Dice(A, B) = 2 ∗ |A ∩ B|
Trong đó, A là một ảnh đầu ra của mô hình, chứa các giá trị xác xuất do môhình dự đoán có thể đúng hoặc sai B là một ảnh (gọi là ảnh mục tiêu) chứa tậphợp những giá trị cho từng pixel được gán nhãn bởi chuyên gia A và B có cùngkích thước |A| đại diện cho toàn bộ pixel thuộc ảnh A
Có thể hiểu đơn giản, |A ∩ B| đại diện cho tập hợp những pixel thuộc cùngmột lớp của tập A và B
Trang 28Với TP là số lượng điểm ảnh True Positive, FN là số lượng điểm ảnh False Negative
và FP là số lượng điểm ảnh False Positive Chỉ số này nhận giá trị âm khi thể tíchphân đoạn nhỏ hơn thể tích nhãn và nhận giá trị dương khi thể tích phân đoạnlớn hơn thể tích nhãn
Trang 29đã rất trưởng thành và vẫn đang tiếp tục phát triển, khiến phần mềm trở thànhmột nguồn tài liệu tham khảo đáng quý Chúng tôi xin nêu và phân tích một sốtính năng chính của mô đun phân đoạn ảnh của phần mềm 3D Slicer.
3.1.1 Ba mặt cắt trực giao và trực quan hóa phân đoạn từ
tập ảnh ba chiều
Người dùng được cung cấp một cửa sổ gồm ba mặt cắt (mặt cắt giữa, mặtcắt trước và mặt cắt ngang) và một mô phỏng trực quan thể hiện các vật thể đượcphân đoạn trong không gian ba chiều (Hình 3.1) Các tập ảnh được phân chia dựa
trên ID người bệnh và ID của study của tập ảnh Bên trong một study, người dùng
chọn ra các bộ phận được phân đoạn (Hình 3.2) và lựa chọn màu hiển thị cho các
bộ phận đó (Hình 3.4) Người dùng có thể gán nhãn bằng các công cụ chỉnh sửa
từ bộ công cụ chỉnh sửa ảnh phân đoạn trên ba mặt cắt cho từng vật thể và cậpnhật nhãn trên mô phỏng trực quan Việc có một góc nhìn trực quan rõ ràng về
Trang 30các vật thể được phân đoạn trong tập ảnh ba chiều với các màu sắc khác nhaukết hợp với các thông số từ công cụ thống kê giúp người dùng dễ dàng đưa ra cácđánh giá chính xác cũng như hỗ trợ việc gán nhãn.
trực quan hóa tập ảnh ba chiều trong mô đun phân đoạn ảnh của phần mềm 3D Slicer [ 7 ] Người dùng có thể gán nhãn trên ba mặt cắt cho từng vật thể tương ứng và cập nhật nhãn trên mô phỏng trực quan.
Trang 313.1 Mô đun phân đoạn ảnh của phần mềm 3D Slicer [ 3 ]
mềm 3D Slicer [ 7 ].
Trang 32Hình 3.3: Một ví dụ về việc lựa chọn màu sắc hiển thị cho vật thể trên mô phỏng ba chiều trong mô đun phân đoạn ảnh của phần mềm 3D Slicer [ 7 ].
3.1.2 Các công cụ cho gán nhãn thủ công và ứng dụng trí
tuệ nhân tạo
Bộ công cụ gán nhãn của mô đun 3D Slicer cung cấp nhiều công cụ chỉnhsửa từ thủ công (cọ vẽ, tô, ), bán tự động (lấy ngưỡng, tăng trưởng vùng, nội suy, ) đến tự động hoàn toàn bằng NVIDIA Clara AI-Assisted Annotation) Nguờidụng có thể lựa chọn thay đổi công cụ sử dụng ở phần Effects (Hình 3.4)
ảnh của phần mềm 3D Slicer [ 7 ] Người dùng nháy đơn vào biểu tượng để chọn công cụ
Trang 333.1 Mô đun phân đoạn ảnh của phần mềm 3D Slicer [ 3 ] Chỉnh sửa thủ công
Người dùng có thể gán nhãn thủ công bằng các công cụ như cọ vẽ, tô vùngnằm trong đường bao, xóa, cắt Cách gán nhãn này cho phép người gán nhãnkiểm soát chặt chẽ nhãn gán ở bất kỳ độ phức tạp nào, tuy nhiên dễ thấy hạn chếcủa cách gán nhãn này nằm ở sự mất thời gian, tốn kém tâm sức của người gánnhãn Vì lẽ đó, cách chỉnh sửa thủ công thường được dùng như một cách để điềuchỉnh sau khi nhãn đã được xử lý tự động và bán tự động nhằm đảm bảo nhãnđạt độ chính xác mà các phương pháp trên chưa đạt được
của phần mềm 3D Slicer [ 7 ] Người dùng nhấn giữ và di chuyển chuột để vẽ trên mặt cắt
Trang 34Hình 3.6: Một ví dụ về công cụ tăng trưởng vùng dùng cho gán nhãn trong mô đun phân đoạn ảnh của phần mềm 3D Slicer [ 7 ] Người dùng chọn điểm khởi tạo và chọn bắt đầu, giải thuật sẽ lần lượt lan rộng nhãn ra các điểm kế cận với điểm được gán nhãn và thỏa điều kiện về chênh lệch giá trị HU với điểm khởi tạo.
Chỉnh sửa tự động
Với sự hỗ trợ của trí tuệ nhân tạo Clara từ Nvidia, 3D Slicer cho phép ngườidùng gán nhãn hoàn toàn tự động Với tính năng gán nhãn tự động, gánh nặngcông việc của người gán nhãn được giảm bớt rất nhiều
dùng cho gán nhãn trong mô đun phân đoạn ảnh của phần mềm 3D Slicer [ 7 ] Người dùng chọn một trong các vật thể được hỗ trợ bởi trí tuệ nhân tạo và chọn bắt đầu, giải thuật sẽ tự động gán nhãn vật thể được chọn trên ảnh.
Trang 353.2 Mô đun phân trực quan hóa 3D của phần mềm Vesalius 3D [ 4 ]
3.2 Mô đun phân trực quan hóa 3D của phần
3-Trực quan 3D 4-Nháy chuột phải hiện danh mục 5-Ba mặt các 2D 6-Ba trang ứng với ba chức năng: Trực quan hóa, đo lường, in 3D
Trang 363.2.2 Tính năng gán nhãn
Vesalius 3D cung cấp tính năng gán nhãn 3D bán tự động Khi người dùngthực hiện thao tác chỉnh sửa từ ba mặt cắt trực giao, Vesalius 3D tự động hiển thịkhối 3D tương ứng Người dùng có thể thực hiện gán nhãn trên nhiều mặt phẳngsong song dọc theo các trục Ox, Oy, Oz để tăng độ chính xác cho khối 3D
3.3 Mô đun gán nhãn 2D của ứng dụng Training
data [ 5 ]
TrainingData.io là một nền tảng quản lý dữ liệu huấn luyện của học máy, làcông cụ làm nhãn ảnh và video thành lập bởi một nhóm các nhà phát triển giảipháp cho Visual AI tại California - Mỹ Ứng dụng TrainingData.io cung cấp tínhnăng ghi nhãn dữ liệu huấn luyện được hỗ trợ bởi AI có độ chính xác cao Hệ thống
hỗ trợ dữ liệu ở nhiều định dạng như JPEG, PNG, DICOM, avi, mp4, zip, tar,
Trang 373.3 Mô đun gán nhãn 2D của ứng dụng Training data [ 5 ]3.3.1 Tính năng gán nhãn thủ công
Ứng dụng này cung cấp các công cụ gán nhãn như:
Draw - Vẽ nhãn tự do
Point - Xác định toạ độ của một điểm trên ảnh
Polygon - Giới hạn vùng nhãn theo hình đa giác
Rectangle - Giới hạn vùng nhãn theo hình chữ nhật
Length - Đo khoảng cách giữa hai điểm trên ảnh
Zoom in/zoom out - Thu nhỏ/phóng to ảnh
Bright - Điều chỉnh độ sáng của ảnh
Contrast - Điều chỉnh độ tương phản của ảnh
Invert - Đảo ngược màu ảnh
menu chứa các công cụ gán nhãn, 2-Khu vực hiển thị ảnh y khoa 3-Cấu hình các nhãn, mỗi loại nhãn tương ứng với một màu.
Trang 383.3.2 Tính năng dự đoán nhãn bằng AI
Trainingdata.io cung cấp API để dự đoán các nhãn bằng cách sử dụng môhình hiện có của người dùng mà không cần phải cung cấp cho họ mô hình của bạn.Ngoài ra, người dùng còn được cung cấp một số mô hình học máy hiện có như:phân đoạn phổi, phát hiện đối tượng(người, xe đạp, ô tô, đèn giao thông), để dựđoán các nhãn
Trang 394 TỔNG QUAN HỆ THỐNG LÀM
NHÃN ẢNH Y KHOA DAT
4.1 Mục tiêu của hệ thống DAT
Để đáp ứng nhu cầu làm nhãn ảnh y khoa phục vụ cho việc huấn luyện mạnghọc sâu, nhóm chúng tôi đã kế thừa và phát triển hệ thống DAT (Data AnnotationTool) của phòng lab Computer Vision and Graphics DAT là một công cụ làmnhãn dữ liệu đặc thù cho ảnh DICOM
Bài toán phân đoạn ảnh y khoa dùng mạng học sâu luôn cần một số lượng
dữ liệu lớn Nguồn dữ liệu dồi dào và chính xác là một trong những yếu tố giúpviệc huấn luyện mạng hiệu quả hơn Việc gán nhãn dữ liệu, đặc biệt là những tập
dữ liệu đặc thù như ảnh y khoa cần có một công cụ hỗ trợ hợp lý Nhận thức đượcnhu cầu này, nhóm đã cải thiện hệ thống DAT với nhiều chức năng phù hợp choviệc gán nhãn ảnh DICOM
4.2 Phân tích yêu cầu
4.2.1 Quản trị hệ thống và dữ liệu
- Quản lý dữ liệu:
Chức năng tải lên dữ liệu làm nhãn: Dữ liệu ảnh DICOM cần lãm nhãn sẽđược tải lên ở dạng dicom Sau đó, dữ liệu sẽ được đẩy lên và lưu trữ tạiDjango server
Chức năng chia sẻ tập dữ liệu: Người dùng có thể chia sẻ quyền truy cập vào
Trang 40tập dữ liệu với những người dùng khác thông qua chức năng ’Invite’, ngườiđược mời sẽ có quyền truy cập vào tập dữ liệu được chia sẻ.
Chức năng xoá tập dữ liệu: Cho phép người dùng xoá tệp ảnh y khoa khỏi
hệ thống
4.2.2 Chức năng gán nhãn
Tải lên và lưu trữ ảnh y khoa
Trực quan khối 3 chiều của tập dữ liệu
Sinh lát cắt ảo từ tập ảnh ba chiều
Vẽ nhãn bằng bút và vẽ nhãn theo hình tròn, hình chữ nhật
Chỉnh sửa nhãn bằng công cụ bút hoặc kéo
Xóa nhãn đang làm
Phóng to, thu nhỏ và kéo thả vị trí của lát cắt ảo
Đo độ dài giữa hai vị trí trên lát cắt ảo, góc, toạ độ của một vị trí cụ thể
Sử dụng dự đoán AI để làm nhãn nhanh và chính xác hơn
Tạo và lưu trữ nhãn
Thao tác undo
Thao tác điều chỉnh khối và lát cắt ảo theo giá trị Hounsfield Unit để làm rõtừng đối tương cụ thể : gan, mạch máu, phổi