Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 82 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
82
Dung lượng
2,34 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THỊ MAI HƯƠNG NGHIÊN CỨU MỘT SỐ THUẬT TOÁN PHÂN CỤM DỮ LIỆU NỬA GIÁM SÁT VÀ ỨNG DỤNG PHÂN ĐOẠN ẢNH X-QUANG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN - 2017 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THỊ MAI HƯƠNG NGHIÊN CỨU MỘT SỐ THUẬT TOÁN PHÂN CỤM DỮ LIỆU NỬA GIÁM SÁT VÀ ỨNG DỤNG PHÂN ĐOẠN ẢNH X-QUANG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Giáo viên hướng dẫn: TS.Nguyễn Đình Dũng THÁI NGUYÊN - 2017 LỜI CAM ĐOAN Tôi xin cam đoan luận văn tơi thực hiện, hướng dẫn khoa học TS Nguyễn Đình Dũng, kết lý thuyết trình bày luận văn tổng hợp từ kết cơng bố có trích dẫn đầy đủ, kết chương trình thực nghiệm luận văn tác giả thực hồn tồn trung thực, sai tơi hồn tồn chịu trách nhiệm Thái Nguyên, tháng năm 2016 Học viên Lê Thị Mai Hương i LỜI CẢM ƠN Luận văn hồn thành Trường Đại học Cơng nghệ Thông tin Truyền thông hướng dẫn TS Nguyễn Đình Dũng Tác giả xin bày tỏ lịng biết ơn tới thầy giáo thuộc Trường Đại học Công nghệ Thông tin Truyền thông, thầy cô giáo thuộc Viện Công nghệ Thông tin – Viện Hàn lâm Khoa học Công nghệ Việt Nam tạo điều kiện, giúp đỡ tác giả trình học tập làm luận văn Trường, đặc biệt tác giả xin bày tỏ lòng biết ơn tới TS Nguyễn Đình Dũng tận tình hướng dẫn cung cấp nhiều tài liệu cần thiết để tác giả hồn thành luận văn thời hạn Xin chân thành cảm ơn anh chị em học viên cao học bạn bè đồng nghiệp trao đổi, khích lệ tác giả trình học tập làm luận văn Trường Đại học Công nghệ Thông tin Truyền thông – Đại học Thái Nguyên Cuối tác giả xin gửi lời cảm ơn đến gia đình, người bên cạnh, động viên khuyến khích tơi q trình thực đề tài Thái Nguyên, ngày tháng năm 2017 Học viên Lê Thị Mai Hương ii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN i DANH MỤC TỪ VIẾT TẮT v DANH MỤC HÌNH VẼ vi LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ PHÂN CỤM DỮ LIỆU VÀ BÀI TOÁN PHÂN ĐOẠN ẢNH X-QUANG NHA KHOA 1.1 Khai phá liệu 1.1.1 Khái niệm khai phá liệu 1.1.2 Quá trình khai phá tri thức sở liệu 1.1.3 Các kỹ thuật tiếp cận khai phá liệu: 1.2 Phân cụm liệu 1.2.1 Khái niệm phân cụm liệu 1.2.2 Các bước để phân cụm liệu 1.2.3 Các kiểu liệu độ đo tương tự, độ đo phi tương tự 1.2.3.1 Phân loại kiểu liệu dựa kích thước miền 1.2.3.2 Phân loại kiểu liệu dựa hệ đo 1.2.3.3 Khái niệm phép đo độ tương tự 1.2.4 Các yêu cầu kỹ thuật phân cụm liệu 12 1.2.5 Ứng dụng phân cụm liệu 14 1.3 Cấu trúc giải phẫu 15 1.3.1 Cấu trúc giải phẫu 15 1.3.2 Phân loại ảnh X - quang nha khoa 17 1.4 Bài toán phân đoạn ảnh X - quang nha khoa 19 1.4.1 Phân đoạn ảnh 19 1.4.2 Phân loại phương pháp phân đoạn ảnh 20 1.4.3 Phân đoạn ảnh X – quang nha khoa 21 KẾT LUẬN CHƯƠNG 23 CHƯƠNG 2: MỘT SỐ THUẬT TOÁN PHÂN CỤM NỬA GIÁM SÁT 24 2.1 Phân cụm mờ 24 2.1.1 Các khái niệm tập mờ 24 iii 2.1.2 Thuật toán phân cụm mờ FCM (Fuzzy C-Means) 28 2.2 Thuật toán phân cụm nửa giám sát mờ phương pháp học tích cực31 2.3 Thuật tốn phân cụm nửa giám sát mờ chuẩn (SSSFC) 33 2.4 Thuật toán phân cụm nửa giám sát mờ theo quy tắc entropy (eSFCM) 35 2.5 Thuật toán nửa giám sát mờ lai ghép 36 2.5.1 Lược đồ tổng quan lai ghép 36 2.5.2 Thuật toán tách ngưỡng Otsu 38 2.5.3 Thuật toán phân cụm nửa giám sát mờ lai ghép 40 KẾT LUẬN CHƯƠNG 41 CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG PHÂN ĐOẠN ẢNH X – QUANG NHA KHOA 42 3.1 Đặc tả yêu cầu 42 3.1.1 Yêu cầu thực tế 42 3.1.2 Mục đích ứng dụng 43 3.2 Đặc tả liệu 43 3.3 Các bước phân đoạn ảnh 44 3.4 Thiết kế hệ thống 45 3.4.1 Chức phân đoạn ảnh X – quang nha khoa 45 3.4.2 Chức xem chi tiết kết 46 3.4.3 Chức đánh giá chất lượng phân đoạn 47 3.5 Minh họa chức ứng dụng 48 3.5.1 Giao diện ứng dụng 48 3.5.2 Chọn ảnh cần phân đoạn 49 3.5.3 Phân đoạn ảnh thuật toán FCM 49 3.5.4 Phân đoạn ảnh thuật toán nửa giám sát mờ 50 3.5.5 Chọn độ đo đánh giá kết phân cụm 50 3.6 Đánh giá kết phân đoạn 51 KẾT LUẬN CHƯƠNG 52 KẾT LUẬN 53 TÀI LIỆU THAM KHẢO 54 PHỤ LỤC 57 CODE MATLAB CỦA ỨNG DỤNG PHÂN ĐOẠN ẢNH BẰNG THUẬT TOÁN BÁN GIÁM SÁT MỜ LAI GHÉP 57 iv DANH MỤC TỪ VIẾT TẮT Từ viết đầy đủ Từ viết tắt DB Davies-Bouldin eSFCM Semi-supervised Entropy regularized Fuzzy Clustering FCM Fuzzy C-Mean PBM Pakhira, Bandyopadhyay and Maulik SSFCM Semi-Supervised Fuzzy C-Mean SSSFC Semi-Supervised Standard Fuzzy Clustering SSWC Simplified Silhouete Width Criterion CSDL Cơ sở liệu PCDL Phân cụm liệu v DANH MỤC HÌNH VẼ Hình 1.1 Q trình khám phá tri thức CSDL Hình 1.2 Cơ quan (răng nha chu) 15 Hình 1.3 Một số loại ảnh X-Quang nha khoa 19 Hình 1.4 Những khó khăn việc phân đoạn ảnh nha khoa 22 Hình 2.1 Hàm thuộc tuyến tính 25 Hình 2.2 Hàm thuộc dạng sin 25 Hình 2.3 Hàm thuộc Gauss 26 Hình 2.4 Bao tập mờ 26 Hình 2.5 Phép hợp tập mờ dạng 27 Hình 2.6 Phép giao tập mờ dạng 28 Hình 2.7 Phần bù tập mờ trung bình 28 Hình 2.8 Lược đồ tổng quan thuật toán lai ghép 37 Hình 3.1: Ảnh liệu đầu vào ứng dụng 44 Hình 3.2: Biểu đồ usecase mô tả chức ứng dụng 45 Hình 3.3: Biểu đồ trình tự chức phân đoạn ảnh 46 Hình 3.4: Biểu đồ trình tự chức xem kết 47 Hình 3.5: Biểu đồ trình tự chức đánh giá kết 48 Hình 3.6: Giao diện phần mềm 48 Hình 3.7: Chọn ảnh cần phân đoạn 49 Hình 3.8 Kết phân đoạn FCM 49 Hình 3.9 Kết phân đoạn SSSFC 50 Hình 3.10 Đánh giá kết phân đoạn 50 vi LỜI MỞ ĐẦU Khai phá liệu tập hợp kỹ thuật sử dụng để tự động khai thác tìm mối quan hệ lẫn liệu tập hợp liệu khổng lồ phức tạp đồng thời tìm mẫu tiềm ẩn liệu Hiện việc khai phá liệu nghiên cứu theo hướng mô tả khái niệm, luật kết hợp, phân lớp dự đốn, phân cụm (xem [1], [2], [7]) có nhiều ứng dụng thực tế, phân đoạn ảnh X-Quang lĩnh vực y tế ứng dụng điển hình [13] Ngày nay, việc xử lý hình ảnh y tế có vai trị quan trọng việc tự động hóa phân tích, hỗ trợ chẩn đốn điều trị bệnh khác Trong đó, trình phân đoạn thường yêu cầu giai đoạn sơ Tuy nhiên phân vùng hình ảnh y tế phức tạp nên việc phân đoạn xác quan trọng Trong phương pháp phân đoạn ảnh có, phân cụm phương pháp sử dụng rộng rãi tính đơn giản hiệu mà mang lại (xem [8]-[12]) Phân cụm liệu lĩnh vực học máy không giám sát, có chức tổ chức tập đối tượng liệu thành cụm cho đối tượng cụm tương tự cịn đối tượng cụm khác tương tự Nhược điểm chung thuật toán phân cụm chất lượng phân cụm phụ thuộc nhiều vào tham số thông tin khởi tạo Để giảm thiểu hạn chế này, gần có nhiều tác giả (xem [8]-[12]) giải theo cách tiếp cận nửa giám sát, việc phân cụm thực dựa vào thông tin bổ trợ đóng vai trị điều khiển q trình phân cụm, nhờ mà chất lượng phân cụm nâng lên đáng kể Mục tiêu luận văn nghiên cứu, tìm hiểu số thuật toán phân cụm nửa giám sát xây dựng ứng dụng thử nghiệm cho thuật toán phân đoạn ảnh X-quang hỗ trợ chuẩn đoán bệnh lĩnh vực nha khoa Các kết đạt luận văn kết trình học tập nghiên cứu tác giả Trường Đại học Công nghệ Thông tin Truyền thông Ngoài phần mở đầu, kết luận tài liệu tham khảo, nội dung luận văn trình bày thành ba chương: Chương trình bày khái niệm phân cụm liệu toán phân đoạn ảnh X-quang nha khoa Chương 2, tác giả tìm hiểu số thuật toán phân cụm liệu tập trung nghiên cứu thuật tốn phân cụm liệu nửa giám sát Chương kết thực nghiệm cho thuật toán phân cụm nửa giám sát toán phân đoạn ảnh X-quang nha khoa guidata(hObject, handles); Thuật toán phân cụm mờ FCM: function [center, U, obj_fcn] = FCM(data, cluster_n, options) global h; if nargin ~= & nargin ~= 3, error('Too many or too few input arguments!'); end data_n = size(data, 1); in_n = size(data, 2); default_options = [2; 100; 1e-5; 1]; if nargin == 2, options = default_options; else if length(options) < 4, tmp = default_options; tmp(1:length(options)) = options; options = tmp; end nan_index = find(isnan(options)==1); options(nan_index) = default_options(nan_index); if options(1) 1, if abs(obj_fcn(i) - obj_fcn(i-1)) < min_impro, waitbar(1, h); set(h, 'visible', 'off'); break; end, end end set(h, 'visible', 'off'); iter_n = i; obj_fcn(iter_n+1:max_iter) = []; function U = initfcm(cluster_n, data_n) U = rand(cluster_n, data_n); col_sum = sum(U); U = U./col_sum(ones(cluster_n, 1), :); function [U_new, center, obj_fcn] = stepfcm(data, U, cluster_n, expo) mf = U.^expo; center = mf*data./((ones(size(data, 2), 1)*sum(mf'))'); dist = distfcm(center, data); obj_fcn = sum(sum((dist.^2).*mf)); tmp = dist.^(-2/(expo-1)); U_new = tmp./(ones(cluster_n, 1)*sum(tmp)); 61 function out = distfcm(center, data) out = zeros(size(center, 1), size(data, 1)); for k = 1:size(center, 1), out(k, :) = sqrt(sum(((data-ones(size(data,1),1)*center(k,:)).^2)',1)); end Phân cụm nửa giám sát mờ SSSFC: function [V,U,J]=SSSFC(X,C,m,Eps,maxTest,U1) [N,r]=size(X); for i = 1:C for j = 1:r V(i,j) = min(X(:,j)) + rand() * (max(X(:,j)) - min(X(:,j))); end end minU1=min(U1); for i=1:C for k=1:N if U1(i,k)==minU1(k) U1(i,k)=0; end end end dem = 0; while (1>0) if m>1 for j = 1:C for i = 1:N tong1 = 0; for k = 1:C tong1=tong1+U1(k,i); end tong1=1-tong1; 62 d1 = 0; for k =1:r d1 = d1 + power(X(i,k)-V(j,k),2); end tong3=0; for k=1:C d2=0; for l=1:r d2 = d2 + power(X(i,l)-V(k,l),2); end tong3=tong3+power(1/d2,1/(m-1)); end U(j,i) = U1(j,i)+tong1*power(1/d1,1/(m-1))/tong3; end end else for j = 1:C for i = 1:N for k=1:C d2(k)=0; for l=1:r d2(k) = d2(k) + power(X(i,l)-V(k,l),2); end end mink=min(d2) if j==mink tong1=0; for k=1:C tong1=tong1+U1(k,i); end U(j,i)=U1(j,i)+1-tong1; else U(j,i)=U1(j,i); end end end end 63 for j = 1:C for i = 1:r tuso = 0; mauso = 0; for k = 1:N mauso = mauso + power(abs(U(j,k)-U1(j,k)),m); tuso = tuso + power(abs(U(j,k)-U1(j,k)),m) * X(k,i); end if (mauso ~= 0) W(j,i) = tuso / mauso; else W(j,i) = 0; end end end saiso = 0; for i = 1:C for j = 1:r saiso = saiso + power(W(i,j)-V(i,j),2); end end saiso = sqrt(saiso); if (saiso =maxTest) break; end dem = dem + 1; end 64 J=0; for k=1:N tong1=0; for j=1:C tong2=0; for i=1: r tong2=tong2+power(X(k,i)-V(j,i),2); end tong1=tong1+power(tong2,1-m); end J=J+power(tong1,1-m); end MaxU=max(U); for k=1:N for j=1:C if U(j,k)==MaxU(k) cum(k)=j; end end end end Phân cụm mờ SSFCDF function [V,U,J,X]=SSFCDF(X,C,m,Eps,maxTest,U1) [N,r]=size(X); for i = 1:C for j = 1:r V(i,j) = min(X(:,j)) + rand() * (max(X(:,j)) - min(X(:,j))); end end for i = 1:N for j = 1:C Tu = 0; for k = 1:r Tu = Tu + power(X(i,k)-V(j,k),2); 65 end Tu = sqrt(Tu); tong = 0; for l =1:C Mau = 0; for k = 1:r Mau = Mau + power(X(i,k)-V(l,k),2); end Mau = sqrt(Mau); tong = tong + power(Tu/Mau, 2/(m-1)); end U(j,i) = 1/tong; end end minU1=min(U1); for i=1:C for k=1:N if U1(i,k)==minU1(k) U1(i,k)=0; end end end dem=0; while (1>0) for j = 1:C for i = 1:r tuso = 0; mauso = 0; for k = 1:N mauso = mauso + power(abs(U(j,k)-U1(j,k)),m)+power(U(j,k),m); tuso = tuso + (power(abs(U(j,k)-U1(j,k)),m)+power(U(j,k),m)) * X(k,i); end if (mauso ~= 0) V(j,i) = tuso / mauso; else V(j,i) = 0; 66 end end end a=5; b=5; for i=1:N y=floor(i/a); z=mod(i,a); n1=1; ok=true; beta=1; if (y>1)&(y1) while ok for k=y-floor(n1/2):y+floor(n1/2) for j=z-floor(n1/2):z+floor(n1/2) c=k*a+j; if (c>0)&(cbeta ok=false; end else ok=false; end; end end if ok n1=n1+2; end end end N1(i)=n1; end beta=0.5; alpha1=0.1; for i=1:C 67 for k=1:N tu=0; mau=0; y=floor(k/a); z=mod(k,a); for l=y-floor(N1(k)/2):y+floor(N1(k)/2) for j=z-floor(N1(k)/2):z+floor(N1(k)/2) d=0; c=l*a+j; if (c>0)&(c