Cùng với sự phát triển của khoa học công nghệ, trí tuệ nhân tạo được xem là nhân tố định hình tương lai. Với sự phát triển nhanh chóng trong những năm gần đây, trí tuệ nhân tạo đã thực sự đi vào cuộc sống. Hàng loạt các công nghệ mới sử dụng trí tuệ nhân tạo ra đời giúp ích cho con người trong nhiều lĩnh vực như an ninh, bảo mật, y học, giáo dục... Với sự phát triển của khoa học 1, ảnh y tế đã phát triển thành một lĩnh vực quan trọng trong việc phân tích hình ảnh, cùng với việc áp dụng các thuật toán học máy như deep learning trong y học, ảnh y học sẽ giúp các bác sĩ chẩn đoán bệnh một cách chính xác và hiệu quả.
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN HUỲNH THUÝ HIỀN C C R L T SỬ DỤNG PHƯƠNG PHÁP DEEP LEARNING TRONG NHẬN DẠNG DỮ LIỆU Y TẾ DU LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2021 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN HUỲNH THUÝ HIỀN C C SỬ DỤNG PHƯƠNG PHÁP DEEP LEARNING R L T TRONG NHẬN DẠNG DỮ LIỆU Y TẾ DU Chuyên ngành : Khoa học máy tính Mã số : 8480101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS Phạm Minh Tuấn Đà Nẵng – Năm 2021 C C DU R L T -i- LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng hướng dẫn trực tiếp TS Phạm Minh Tuấn Mọi tham khảo dùng luận văn trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm cơng bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi xin chịu hồn tồn trách nhiệm Tác giả C C R L T Nguyễn Huỳnh Thuý Hiền DU -ii- TÓM TẮT ĐỀ TÀI SỬ DỤNG PHƯƠNG PHÁP DEEP LEARNING TRONG NHẬN DẠNG DỮ LIỆU Y TẾ Học viên: Nguyễn Huỳnh Thuý Hiền Chuyên ngành: Khoa học máy tính Mã số: 8480101 Khóa:36 Trường Đại học Bách khoa – ĐHĐN Tóm tắt - Cùng với sự phát triển của khoa học cơng nghệ, trí tuệ nhân tạo được xem nhân tố định hình tương lai Với sự phát triển nhanh chóng C C những năm gần đây, trí tuệ nhân tạo thực sự vào cuộc sống Hàng loạt công nghệ mới sử dụng trí tuệ nhân tạo đời giúp ích cho R L T người nhiều lĩnh vực an ninh, bảo mật, y học, giáo dục DU Với sự phát triển của khoa học [1], ảnh y tế phát triển thành một lĩnh vực quan trọng việc phân tích hình ảnh, với việc áp dụng thuật toán học máy deep learning y học, ảnh y học giúp bác sĩ chẩn đốn bệnh một cách xác hiệu quả Luận văn bao gồm nội dung sau: (1) Nghiên cứu tổng quan xử lý ảnh phương pháp xử lý ảnh (2) Giải pháp đề xuất (3) Triển khai nhận xét Từ khóa – ảnh y tế, phân tích dữ liệu y tế, deep learning, machine learning, CNN -iii- MEDICAL IMAGE ANALYSIS WITH DEEP LEARNING Abstract - Along with the development of science and technology, artificial intelligence is considered a factor shaping the future With the rapid development in recent years, artificial intelligence has really come to life A series of new technologies using artificial intelligence have been created to help people in many fields such as security, security, medicine, education With the development of science, medical imaging has grown into an C C important area of image analysis [1], along with the application of R L T machine learning algorithms such as deep learning in medical imaging, will help doctors diagnose the disease correctly and effectively DU The thesis includes the following contents: (1) Research about the medical image, image analysis in medical imaging (2) The solution to detect medical image based on deep learning (3) Deploy, analyze and evaluate the results of the system Key words – medical image, medical image analysis, deep learning, machine learning, CNN -iv- MỤC LỤC LỜI CAM ĐOAN i TÓM TẮT ĐỀ TÀI ii MỤC LỤC iv DANH MỤC CÁC HÌNH ẢNH vi DANH MỤC TỪ VIẾT TẮT viii MỞ ĐẦU 1 LÝ DO CHỌN ĐỀ TÀI MỤC TIÊU VÀ NHIỆM VỤ 2.1 Mục tiêu C C 2.2 Nhiệm vụ ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU R L T 3.1 Đối tượng DU 3.2 Phạm vi nghiên cứu PHƯƠNG PHÁP NGHIÊN CỨU 4.1 Phương pháp nghiên cứu tài liệu 4.2 Phương pháp nghiên cứu thực nghiệm BỐ CỤC LUẬN VĂN CHƯƠNG NGHIÊN CỨU TỔNG QUAN 1.1 GIỚI THIỆU 1.2 TỔNG QUAN VỀ XỬ LÝ ẢNH 1.2.1 Các bước cần thiết xử lý ảnh 1.2.2 Các vấn đề cơ bản xử lý ảnh 1.3 CÁC ỨNG DỤNG CỦA DEEP LEARNING TRONG ẢNH Y TẾ 1.3.1 Ảnh ảnh y tế 1.3.2 Các ứng dụng của deep learning ảnh y tế 12 1.3.3 Các cơng trình nghiên cứu của deep learning ngồi nước 14 1.4 DEEP LEARNING VÀ CÁC MƠ HÌNH 15 1.4.1 Deep learning 15 -v1.4.2 Các mơ hình deep learning 19 CHƯƠNG 2: GIẢI PHÁP ĐỀ XUẤT 28 2.1 TỔNG QUAN ĐỀ XUẤT 28 2.2 BỘ DỮ LIỆU 29 2.2.1 Tổng quan dữ liệu y tế 29 2.2.2 Bộ dữ liệu ảnh y tế 32 2.2.3 Xây dựng bộ dữ liệu 33 2.3 TIỀN XỬ LÝ (DATA PRE-PROCESSING) 34 2.4 TRÍCH CHỌN ĐẶC TRƯNG 37 2.4.1 Convolution layer 37 2.4.2 Filter 39 2.5 C C HUẤN LUYỆN 40 R L T 2.5.1 Học có giám sát (supervised learning ) 41 2.5.2 Học không giám sát (unsupervised learning) 42 DU CHƯƠNG 3: TRIỂN KHAI VÀ NHẬN XÉT 43 3.1 DỮ LIỆU THỬ NGHIỆM 43 3.2 NGÔN NGỮ PYTHON VÀ THƯ VIỆN HỌC MÁY 44 3.2.1 Ngôn ngữ Python 44 3.2.2 Thư viện học máy 45 3.3 KẾT QUẢ THỬ NGHIỆM 46 3.4 ĐÁNH GIÁ KẾT QUẢ VỚI CÁC NGHIÊN CỨU LIÊN QUAN 48 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49 TÀI LIỆU THAM KHẢO 50 PHỤ LỤC 52 -vi- DANH MỤC CÁC HÌNH ẢNH Số hiệu Tên hình vẽ Trang 1 Ảnh minh hoạ chụp X-Quang 11 Ảnh minh hoạ chụp MRI 11 Ảnh minh hoạ chụp X-Quang, MRI 12 Ảnh ví dụ deep learning 17 Ảnh minh hoạ cấu trúc mạng lưới thần kinh cách training18 18 Ảnh minh hoạ mơ hình CNN 20 Phân lớp ảnh 21 Ảnh minh hoạ neuron kích thước 5x5 22 Neuron lớp ẩn 1 10 Neuron lớp ẩn 11 Feature map 12 Ảnh minh hoạ pooling layer 24 13 Ảnh minh hoa pooling layer kích thước 2x2 25 14 Ảnh đặt tất cả lớp thành một CNN 25 15 Ảnh minh hoạ mạng RNN 27 Mơ hình tổng qt 28 2.2 Ví dụ của ảnh MRI chụp đầu gối 30 Ví dụ của ảnh X-Quang ngực 31 Ví dụ ảnh siêu âm túi mật 31 Ví dụ ảnh CT Scan ngực cắt ngang 32 Ví dụ ảnh mô học Histopathology 32 Ảnh histopathology của IDC ví dụ âm tính dương tính 33 Mơ hình hố tách datasets thành training, validation, testing 34 Tách dataset từ dữ liệu gốc biễu diễn dưới dạng code 34 10 Ví dụ ảnh gốc với a nhãn negative b positive 35 11 Các bước tiền xử lý mức normal 35 C C R L T DU 22 23 23 -vii2 12 Tiền xử lý với a ảnh gốc b sau tiền xử lý 35 13 Thuật toán xử lý mức second normal 36 14 Tiền xử lý mức second với a ảnh gốc b sau xử lý 36 15 Thuật toán xử lý mức over pre-processing 36 16 Ảnh trước sau xử lý mức over 37 17 Filter phát hiện cạnh 38 18 Ảnh ví dụ áp dụng filter 38 19 Minh hoạ trình xử lý với bộ lọc filter 39 20 Ảnh 2D 3D 40 21 Minh hoạ mơ hình học có giám sát 42 Ảnh mơ tả cấu trúc dữ liệu 43 Ảnh chia dữ liệu gốc thành dữ liệu huấn luyện thử nghiệm 46 3 Ảnh trình huấn luyện dựa dữ liệu ảnh histopathology 47 Ảnh kết quả trình huấn luyện 47 Biểu đồ so sánh kết quả 48 D T U R L C C -54trainLabels = [int(p.split(os.path.sep)[-2]) for p in trainPaths] trainLabels = to_categorical(trainLabels) classTotals = trainLabels.sum(axis=0) classWeight = dict() # loop over all classes and calculate the class weight for i in range(0, len(classTotals)): classWeight[i] = classTotals.max() / classTotals[i] trainAug = ImageDataGenerator( C C R L T # initialize the training data augmentation object DU rescale=1 / 255.0, rotation_range=20, zoom_range=0.05, width_shift_range=0.1, height_shift_range=0.1, shear_range=0.05, horizontal_flip=True, vertical_flip=True, fill_mode="nearest") # initialize the validation (and testing) data augmentation object valAug = ImageDataGenerator(rescale=1 / 255.0) -55- # initialize the training generator trainGen = trainAug.flow_from_directory( config.TRAIN_PATH, class_mode="categorical", target_size=(48, 48), color_mode="rgb", shuffle=True, C C batch_size=BS) R L T # initialize the validation generator DU valGen = valAug.flow_from_directory( config.VAL_PATH, class_mode="categorical", target_size=(48, 48), color_mode="rgb", shuffle=False, batch_size=BS) # initialize the testing generator testGen = valAug.flow_from_directory( config.TEST_PATH, class_mode="categorical", -56target_size=(48, 48), color_mode="rgb", shuffle=False, batch_size=BS) # initialize our CancerNet model and compile it model = CancerNet.build(width=48, height=48, depth=3, classes=2) C C opt = Adagrad(lr=INIT_LR, decay=INIT_LR / NUM_EPOCHS) R L T model.compile(loss="binary_crossentropy", optimizer=opt, metrics=["accuracy"]) # fit the model DU H = model.fit( x=trainGen, steps_per_epoch=totalTrain // BS, validation_data=valGen, validation_steps=totalVal // BS, class_weight=classWeight, epochs=NUM_EPOCHS) # reset the testing generator and then use our trained model to # make predictions on the data -57print("[INFO] evaluating network ") testGen.reset() predIdxs = model.predict(x=testGen, steps=(totalTest // BS) + 1) # for each image in the testing set we need to find the index of the # label with corresponding largest predicted probability predIdxs = np.argmax(predIdxs, axis=1) C C # show a nicely formatted classification report R L T print(classification_report(testGen.classes, predIdxs, target_names=testGen.class_indices.keys())) DU # compute the confusion matrix and and use it to derive the raw # accuracy, sensitivity, and specificity cm = confusion_matrix(testGen.classes, predIdxs) total = sum(sum(cm)) acc = (cm[0, 0] + cm[1, 1]) / total sensitivity = cm[0, 0] / (cm[0, 0] + cm[0, 1]) specificity = cm[1, 1] / (cm[1, 0] + cm[1, 1]) # show the confusion matrix, accuracy, sensitivity, and specificity print(cm) print("acc: {:.4f}".format(acc)) -58print("sensitivity: {:.4f}".format(sensitivity)) print("specificity: {:.4f}".format(specificity)) # plot the training loss and accuracy N = NUM_EPOCHS plt.style.use("ggplot") plt.figure() plt.plot(np.arange(0, N), H.history["loss"], label="train_loss") C C plt.plot(np.arange(0, N), H.history["val_loss"], label="val_loss") R L T plt.plot(np.arange(0, N), H.history["accuracy"], label="train_acc") plt.plot(np.arange(0, N), H.history["val_accuracy"], label="val_acc") DU plt.title("Training Loss and Accuracy on Dataset") plt.xlabel("Epoch #") plt.ylabel("Loss/Accuracy") plt.legend(loc="lower left") plt.savefig(args["plot"]) C C DU R L T C C DU R L T C C DU R L T C C DU R L T C C DU R L T C C DU R L T C C DU R L T C C DU R L T C C DU R L T C C DU R L T ... BÁCH KHOA NGUYỄN HUỲNH THUÝ HIỀN C C SỬ DỤNG PHƯƠNG PHÁP DEEP LEARNING R L T TRONG NHẬN DẠNG DỮ LIỆU Y TẾ DU Chuyên ngành : Khoa học m? ?y tính Mã số : 8480101 LUẬN VĂN THẠC SĨ KHOA HỌC M? ?Y TÍNH Người... phạm quy chế đào tạo, hay gian trá, xin chịu hoàn toàn trách nhiệm Tác giả C C R L T Nguyễn Huỳnh Thuý Hiền DU -ii- TÓM TẮT ĐỀ TÀI SỬ DỤNG PHƯƠNG PHÁP DEEP LEARNING TRONG NHẬN DẠNG DỮ LIỆU Y TẾ Học... thực tế, lợi ích mà Deep learning đem lại, tơi đề xuất đề tài: Vì lý định chọn đề tài ? ?Sử dụng phương pháp deep - 2learning nhận dạng liệu y tế? ?? MỤC TIÊU VÀ NHIỆM VỤ 2.1 Mục tiêu Nghiên cứu kỹ