ĐẠ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 này do chính tôi thực hiện, dưới sự hướng dẫn
khoa học của TS. Nguyễn Đình Dũng, các kết quả lý thuyết được trình bày trong
luận văn là sự tổng hợp từ các kết quả đã được công bố và có trích dẫn đầy đủ,
kết quả của chương trình thực nghiệm trong luận văn này được tác giả thực hiện
là hoàn toàn trung thực, nếu sai tôi hoàn toàn chịu trách nhiệm.
Thái Nguyên, tháng 6 năm 2016
Học viên
Lê Thị Mai Hương
i
LỜI CẢM ƠN
Luận văn này được hoàn thành tại Trường Đại học Công nghệ Thông tin
và Truyền thông dưới sự hướng dẫn của TS. Nguyễn Đình Dũng. Tác giả xin
bày tỏ lòng biết ơn tới các thầy cô giáo thuộc Trường Đại học Công nghệ Thông
tin và Truyền thông, các thầy cô giáo thuộc Viện Công nghệ Thông tin – Viện
Hàn lâm Khoa học và Công nghệ Việt Nam đã tạo điều kiện, giúp đỡ tác giả
trong quá trình học tập và làm luận văn tại 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 và cung cấp
nhiều tài liệu cần thiết để tác giả có thể hoàn thành luận văn đúng thời hạn.
Xin chân thành cảm ơn anh chị em học viên cao học và bạn bè đồng
nghiệp đã trao đổi, khích lệ tác giả trong quá trình học tập và làm luận văn tại
Trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên.
Cuối cùng tác giả xin gửi lời cảm ơn đến gia đình, những người đã luôn
bên cạnh, động viên và khuyến khích tôi trong quá trình thực hiện đề 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 ....................................................................................................... 1
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 ................................................. 3 1.1. Khai phá dữ liệu ........................................................................................ 3 1.1.1. Khái niệm khai phá dữ liệu ................................................................ 3 1.1.2. Quá trình khai phá tri thức trong cơ sở dữ liệu .................................. 3 1.1.3. Các kỹ thuật tiếp cận trong khai phá dữ liệu: ........................................ 5 1.2. Phân cụm dữ liệu ...................................................................................... 6 1.2.1. Khái niệm phân cụm dữ liệu .............................................................. 6 1.2.2. Các bước cơ bản để phân cụm dữ liệu ............................................... 6 1.2.3. Các kiểu dữ liệu và độ đo tương tự, độ đo phi tương tự .................... 7 1.2.3.1. Phân loại kiểu dữ liệu dựa trên kích thước miền ......................... 7 1.2.3.2. Phân loại kiểu dữ liệu dựa trên hệ đo .......................................... 7 1.2.3.3. Khái niệm và phép đo độ tương tự .............................................. 9 1.2.4. Các yêu cầu đối với kỹ thuật phân cụm dữ liệu ............................... 12 1.2.5. Ứng dụng của phân cụm dữ liệu ...................................................... 14 1.3. Cấu trúc giải phẫu răng ........................................................................... 15 1.3.1. Cấu trúc giải phẫu răng .................................................................... 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 các 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 1 .................................................................................... 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 cơ bản về 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ờ bằng phương pháp học tích cực 31 2.3. Thuật toá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 2 .................................................................................... 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 của ứng dụng .................................................................... 43 3.2. Đặc tả dữ 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 năng phân đoạn ảnh X – quang nha khoa ............................... 45 3.4.2. Chức năng xem chi tiết kết quả ........................................................ 46 3.4.3. Chức năng đánh giá chất lượng phân đoạn ...................................... 47 3.5. Minh họa các chức năng của ứng dụng .................................................. 48 3.5.1. Giao diện chính của ứ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 bằng thuật toán FCM ............................................... 49 3.5.4. Phân đoạn ảnh bằng thuật toán nửa giám sát mờ ............................. 50 3.5.5. Chọn độ đo đánh giá kết quả phân cụm ........................................... 50 3.6. Đánh giá kết quả phân đoạn ................................................................... 51 KẾT LUẬN CHƯƠNG 3 .................................................................................... 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 tắt Từ viết đầy đủ
Davies-Bouldin DB
Semi-supervised Entropy regularized Fuzzy Clustering eSFCM
Fuzzy C-Mean FCM
Pakhira, Bandyopadhyay and Maulik PBM
SSFCM Semi-Supervised Fuzzy C-Mean
Semi-Supervised Standard Fuzzy Clustering SSSFC
Simplified Silhouete Width Criterion SSWC
Cơ sở dữ liệu CSDL
Phân cụm dữ liệu PCDL
v
DANH MỤC HÌNH VẼ
Hình 1.1. Quá trình khám phá tri thức trong CSDL ............................................. 4
Hình 1.2. Cơ quan răng (răng và 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 trong 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 trong của tập mờ .......................................................................... 26
Hình 2.5. Phép hợp tập mờ dạng 1 ...................................................................... 27
Hình 2.6. Phép giao tập mờ dạng 1 ..................................................................... 28
Hình 2.7. Phần bù của tập mờ trung bình ........................................................... 28
Hình 2.8. Lược đồ tổng quan của thuật toán lai ghép ......................................... 37
Hình 3.1: Ảnh dữ liệu đầu vào của ứng dụng ..................................................... 44
Hình 3.2: Biểu đồ usecase mô tả chức năng của ứng dụng ................................ 45
Hình 3.3: Biểu đồ trình tự chức năng phân đoạn ảnh ......................................... 46
Hình 3.4: Biểu đồ trình tự chức năng xem kết quả ............................................. 47
Hình 3.5: Biểu đồ trình tự chức năng đánh giá kết quả ..................................... 48
Hình 3.6: Giao diện chính của 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 quả phân đoạn bằng FCM ............................................................ 49
Hình 3.9. Kết quả phân đoạn bằng SSSFC ......................................................... 50
Hình 3.10. Đánh giá kết quả phân đoạn .............................................................. 50
vi
LỜI MỞ ĐẦU
Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự động
khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ
liệu khổng lồ và phức tạp đồng thời cũng tìm ra các mẫu tiềm ẩn trong dữ liệu
đó. Hiện nay việc khai phá dữ liệu được nghiên cứu theo các hướng mô tả khái
niệm, luật kết hợp, phân lớp và dự đoán, phân cụm (xem [1], [2], [7]) và có
nhiều ứng dụng trong thực tế, trong đó phân đoạn ảnh X-Quang trong lĩnh vực y
tế là một ứng dụng điển hình [13]. Ngày nay, việc xử lý các hình ảnh y tế có vai
trò quan trọng trong việc tự động hóa phân tích, hỗ trợ chẩn đoán và điều trị các
bệnh khác nhau. Trong đó, quá trình phân đoạn thường được yêu cầu như là giai
đoạn sơ bộ. Tuy nhiên các phân vùng trong hình ảnh y tế rất phức tạp nên việc
phân đoạn chính xác là rất quan trọng.
Trong các phương pháp phân đoạn ảnh hiện có, phân cụm là một phương
pháp được sử dụng rộng rãi bởi tính đơn giản và hiệu quả mà nó mang lại (xem
[8]-[12]). Phân cụm dữ liệu là lĩnh vực học máy không giám sát, nó có chức
năng tổ chức một tập đối tượng dữ liệu thành các cụm sao cho những đối tượng
trong cùng một cụm thì tương tự như nhau còn các đối tượng ở các cụm khác
nhau thì kém tương tự nhau hơn. Nhược điểm chung của thuật toán phân cụm là
chất lượng phân cụm phụ thuộc nhiều vào các tham số và thông tin khởi tạo. Để
giảm thiểu các hạn chế này, gần đây đã có nhiều tác giả (xem [8]-[12]) giải
quyết theo cách tiếp cận nửa giám sát, trong đó việc phân cụm được thực hiện
dựa vào các thông tin bổ trợ đóng vai trò điều khiển quá trình phân cụm, nhờ đó
mà chất lượng phân cụm được nâng lên đáng kể.
Mục tiêu của luận văn là nghiên cứu, tìm hiểu một số thuật toán phân cụm
nửa giám sát và xây dựng được một ứ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 trong lĩnh vực nha khoa. Các kết quả
đạt được trong luận văn này là kết quả trong quá trình học tập và nghiên cứu của
tác giả tại Trường Đại học Công nghệ Thông tin và Truyền thông. Ngoài phần
1
mở đầu, kết luận và tài liệu tham khảo, nội dung luận văn được trình bày thành
ba chương:
Chương 1 trình bày các khái niệm cơ bản về phân cụm dữ liệu và bài toán
phân đoạn ảnh X-quang nha khoa.
Chương 2, tác giả tìm hiểu một số thuật toán phân cụm dữ liệu trong đó
tập trung nghiên cứu thuật toán phân cụm dữ liệu nửa giám sát.
Chương 3 là kết quả thực nghiệm cho thuật toán phân cụm nửa giám sát
đối với bài toán phân đoạn ảnh X-quang nha khoa.
2
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
Chương này gồm 3 mục, mục 1.1 là các khái niệm cơ bản về Khai phá dữ
liệu. Mục 1.2 trình bày về các khái niệm về phân cụm dữ liệu, yêu cầu đối với
kỹ thuật phân cụm dữ liệu (xem [1], [2], [4]). Mục 1.3 là cấu tạo về răng, phân
loại ảnh X-quang và bài toán phân đoạn ảnh X-quang nha khoa [3].
1.1. Khai phá dữ liệu
1.1.1. Khái niệm khai phá dữ liệu
Khai phá dữ liệu là một công đoạn quan trọng nhất trong quá trình khám
phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases - KDD). Do
sự phát triển mạnh mẽ của khai phá dữ liệu về phạm vi các lĩnh vực ứng dụng
trong thực tế và các phương pháp tìm kiếm nên có rất nhiều khái niệm khác
nhau. Tuy nhiên, ở đây có thể hiểu khai phá dữ liệu là một quá trình tìm kiếm,
chắt lọc các tri thức mới, tiềm ẩn, hữu dụng trong tập dữ liệu lớn.
1.1.2. Quá trình khai phá tri thức trong cơ sở dữ liệu
Các yêu cầu về thông tin trong các loại hoạt động như công tác quản lý,
hoạt động kinh doanh, phát triển sản xuất và dịch vụ, đặc biệt là trong việc ra
quyết định giải quyết một vấn đề ngày càng đòi hỏi chất lượng cao hơn. Người
làm quyết định không những cần dữ liệu mà còn cần có thêm hiểu biết, nhiều tri
thức để hỗ trợ cho việc ra quyết định của mình. Để giải quyết vấn đề đó thì kỹ
thuật khám phá tri thức trong cơ sở dữ liệu (KDD) đã ra đời. Khám phá tri thức
trong cơ sở dữ liệu là lĩnh vực liên quan đến các ngành như: xác suất thống kê,
học máy, trực quan hóa dữ liệu, tính toán song song ... Quá trình KDD có thể
chia thành 5 bước thực hiện như sau:
Trích chọn dữ liệu: Xác định mục đích của quy trình khai phá dữ liệu dựa
trên quan điểm của người dùng, thu thập và chuẩn bị dữ liệu để khai phá.
3
Tiền xử lý dữ liệu: Nhằm mục đích loại bỏ sự trùng lặp dữ liệu, cắt lìa
những thông tin có thể gây nhiễu, tập hợp những thông tin cần thiết cho mô hình
hóa, chọn các phương pháp xử lý những thông tin bị khiếm khuyết.
Chuyển đổi dữ liệu: Thực hiện thu gọn dữ liệu, phép ánh xạ dữ liệu, tìm
những đặc trưng phù hợp để mô tả và khai phá dữ liệu.
Khai phá dữ liệu: Chọn nhiệm vụ khai phá dữ liệu như phân lớp, gom
cụm, hồi quy, kết hợp, ... Từ nhiệm vụ đã chọn, sử dụng các thuật toán và các
phương pháp đã biết để tìm kiếm các mẫu trong dữ liệu, chọn ra các mẫu hữu
ích.
Trình bày và đánh giá: Từ các mẫu khai phá được tiến hành đánh giá hoặc
Trình bày, đánh giá
phiên dịch thành những tri thức hiểu được.
Khai phá
Chuyển đổi
Tiền xử lý DL
Trích chọn DL
Tri thức
Hình 1.1. Quá trình khám phá tri thức trong CSDL
4
1.1.3. Các kỹ thuật tiếp cận trong khai phá dữ liệu:
Các kỹ thuật áp dụng trong khai phá dữ liệu phần lớn được kế thừa từ các
lĩnh vực như: Cơ sở dữ liệu, Học máy, Trí tuệ nhân tạo, Xác suất thống kế, ... vì
vậy ta có hai hướng tiếp cận sau đây:
Theo quan điểm của học máy, các kỹ thuật trong Khai phá dữ liệu gồm:
- Học có giám sát (Supervised learning): Là quá trình gán nhãn lớp cho
các đối tượng trong tập dữ liệu dựa trên một bộ các đối tượng huấn luyện và
các thông tin về nhãn lớp đã biết.
- Học không giám sát (Unsupervised learning): Là quá trình phân chia một
tập dữ liệu thành các lớp hay cụm (cluster) dữ liệu tương tự nhau mà chưa biết
trước các thông tin về nhãn lớp.
- Học nửa giám sát (Semi- Supervised learning): Là quá trình chia một tập
dữ liệu thành các lớp con dựa trên một số thông tin bổ trợ cho trước.
Theo các lớp bài toán cần giải quyết, các kỹ thuật trong khai phá dữ liệu
gồm:
- Phân lớp và dự toán (Classification and Prediction): Đưa một đối tượng
vào một trong các lớp đã biết trước. Phân lớp và dự đoán còn được gọi là học
có giám sát.
- Luật kết hợp (Association rules): Là dạng luật biểu diễn tri thức ở dạng
khá đơn giản. Một luật kết hợp được mô tả như sau:Nếu a thì b với xác suất p
- Phân tích chuỗi theo thời gian: Giống như khai phá luật kết hợp nhưng có
thêm tính thứ tự và thời gian.
- Phân cụm (Clustering): Nhóm các đối tượng thành từng cụm dữ liệu. Đây
là phương pháp học không giám sát.
- Mô tả khái niệm: Mô tả, tổng hợp và tóm tắt khái niệm, ví dụ như tóm tắt
văn bản.
5
1.2. Phân cụm dữ liệu
1.2.1. Khái niệm phân cụm dữ liệu
Phân cụm dữ liệu (PCDL) là một kỹ thuật phát triển mạnh mẽ trong nhiều
năm trở lại đây do các ứng dụng và lợi ích to lớn của nó trong các lĩnh vực thực
tế. Ở mức độ cơ bản nhất có thể hiểu Phân cụm dữ liệu là một kỹ thuật trong
khai phá dữ liệu nhằm tìm kiếm, phát hiện các cụm, các mẫu dữ liệu tự nhiên
tiềm ẩn và quan trọng trong tập dữ liệu lớn để từ đó cung cấp thông tin, tri thức
cho việc ra quyết định.
1.2.2. Các bước cơ bản để phân cụm dữ liệu
PCDL là quá trình phân chia một tập dữ liệu ban đầu thành các cụm dữ liệu
sao cho các đối tượng trong một cụm thì “tương tự” nhau và các đối tượng trong
các cụm khác nhau thì “phi tương tự” với nhau. Số cụm dữ liệu được xác định
bằng kinh nghiệm hoặc bằng một số phương pháp phân cụm.
Sau khi xác định các đặc tính của dữ liệu, người ta đi tìm cách thích hợp để
xác định “khoảng cách” giữa các đối tượng, hay là phép đo tương tự dữ liệu.
Đây chính là các hàm để đo sự giống nhau giữa các cặp đối tượng dữ liệu, thông
thường các hàm này hoặc là để tính độ tương tự (Similar) hoặc là tính độ phi
tương tự(Dissimilar) giữa các đối tượng dữ liệu. Giá trị của hàm tính độ đo
tương tự càng lớn thì sự giống nhau giữa đối tượng càng lớn và ngược lại, còn
hàm tính độ phi tương tự tỉ lệ nghịch với hàm tính độ tương tự.
Trong quá trình PCDL thì vấn đề trở ngại lớn nhất đó là nhiễu (noise).
Nhiễu xuất hiện do trong quá trình thu thập thông tin, dữ liệu thiếu chính xác
hoặc không đầy đủ. Vì vậy chúng ta cần phải khử nhiễu trong quá trình tiến
hành phân cụm dữ liệu.
Các bước của một bài toán phân cụm dữ liệu gồm:
- Xây dựng hàm tính độ tương tự
- Xây dựng các tiêu chuẩn phân cụm
- Xây dựng mô hình cho cấu trúc dữ liệu
6
- Xây dựng thuật toán phân cụm và xác lập các điều kiện khởi tạo
- Xây dựng các thủ tục biểu diễn và đánh giá kết quả phân cụm
1.2.3. Các kiểu dữ liệu và độ đo tương tự, độ đo phi tương tự
Trong phần này ta phân tích các kiểu dữ liệu thường được sử dụng trong
PCDL. Trong PCDL, các đối tượng dữ liệu cần phân tích có thể là con người,
nhà cửa, tiền lương, các thực thể phần mềm, ... Các đối tượng này thường được
diễn tả dưới dạng các thuộc tính của nó. Các thuộc tính này là các tham số cần
cho giải quyết vấn đề PCDL và sự lựa chọn chúng có tác động đáng kể đến các
kết quả của phân cụm. Phân loại các kiểu thuộc tính khác nhau là một vấn đề
cần giải quyết đối với hầu hết các tập dữ liệu nhằm cung cấp các phương tiện
thuận lợi để nhận dạng sự khác nhau của các phần tử dữ liệu. Dưới đây là cách
phân lớp dựa trên hai đặc trưng là: kích thước miền và hệ đo.
1.2.3.1. Phân loại kiểu dữ liệu dựa trên kích thước miền
- Thuộc tính liên tục: Nếu miền giá trị của nó là vô hạn không đếm được,
nghĩa là giữa hai giá trị tồn tại vô số giá trị khác. Thí dụ như các thuộc tính về
màu, nhiệt độ hoặc cường độ âm thanh.
- Thuộc tính rời rạc: Nếu miền giá trị của nó là tập hữu hạn hoặc đếm
được. Thí dụ như các thuộc tính về số serial của một cuốn sách, số thành viên
trong một gia đình, ...
1.2.3.2. Phân loại kiểu dữ liệu dựa trên hệ đo
Giả sử có hai đối tượng x, y và các thuộc tính xi, yi tương ứng với thuộc tính
thứ i của chúng. Ta có các lớp kiểu dữ liệu như sau:
- Thuộc tính định danh: Dạng thuộc tính khái quát hóa của thuộc tính nhị
phân, trong đó miền giá trị là rời rạc không phân biệt thứ tự và có nhiều hơn hai
phần tử - nghĩa là nếu x và y là hai đối tượng thuộc tính thì chỉ có thể xác định là
𝑥 ≠ 𝑦 hoặc 𝑥 = 𝑦.
- Thuộc tính có thứ tự: Là thuộc tính định danh có thêm tính thứ tự, nhưng
chúng không được định lượng. Nếu x và y là hai thuộc tính thứ tự thì ta có thể
7
xác định là 𝑥 ≠ 𝑦 hoặc 𝑥 = 𝑦 hoặc 𝑥 > 𝑦 hoặc 𝑥 < 𝑦. Thí dụ như thuộc tính
Huy chương của vận động viên thể thao.
- Thuộc tính khoảng: Nhằm để đo các giá trị theo xấp xỉ tuyến tính. Với
thuộc tính khoảng, ta có thể xác định một thuộc tính là đứng trước hoặc đứng
sau thuộc tính khác với một khoảng là bao nhiêu. Nếu xi yi thì ta nói x cách y
một khoảng | xi– yi| tương ứng với thuộc tính thứ i. Ví dụ, thuộc tính số Serial
của một đầu sách trong thư viện hoặc thuộc tính số kênh trên truyền hình.
- Thuộc tính tỉ lệ: Là thuộc tính khoảng nhưng được xác định một cách
tương đối so với điểm mốc, thí dụ như thuộc tính chiều cao hoặc cân nặng lấy
giá trị 0 làm gốc.
Trong các thuộc tính dữ liệu trình bày ở trên, thuộc tính định danh và thuộc
tính có thứ tự gọi chung là thuộc tính hạng mục, thuộc tính khoảng và thuộc tính
tỉ lệ được gọi là thuộc tính số.
Người ta còn đặc biệt quan tâm đến dữ liệu không gian. Đây là loại dữ liệu
có các thuộc tính số khái quát trong không gian nhiều chiều, dữ liệu không gian
mô tả các thông tin liên quan đến không gian chứa đựng các đối tượng, thí dụ
như thông tin về hình học, ... Dữ liệu không gian có thể là dữ liệu liên tục hoặc
rời rạc:
Dữ liệu không gian rời rạc: Có thể là một điểm trong không gian nhiều
chiều và cho phép ta xác định được khoảng cách giữa các đối tượng dữ liệu
trong không gian.
Dữ liệu không gian liên tục: Bao gồm một vùng trong không gian.
Thông thường, các thuộc tính số được đo bằng các đơn vị xác định như là
Kilogams hoặc Centimeter. Tuy nhiên, các đơn vị đo có ảnh hưởng đến các kết
quả phân cụm. Thí dụ như thay đổi độ đo cho thuộc tính cân nặng từ Kilogams
sang Pound có thể mang lại kết quả khác nhau trong phân cụm. Để khắc phục
điều này người ta phải chuẩn hóa dữ liệu, tức là sử dụng các thuộc tính dữ liệu
không phụ thuộc vào đơn vị đo. Thực hiện chuẩn hóa phụ thuộc vào ứng dụng
và người dùng, thông thường chuẩn hóa dữ liệu được thực hiện bằng cách thay
8
thế mỗi một thuộc tính bằng thuộc tính số hoặc thêm các trọng số cho các thuộc
tính.
1.2.3.3. Khái niệm và phép đo độ tương tự
Khi các đặc tính của dữ liệu được xác định, người ta tìm cách thích hợp để
xác định “khoảng cách” giữa các đối tượng (phép đo độ tương tự dữ liệu). Đây
là các hàm để đo sự giống nhau giữa các cặp đối tượng dữ liệu, thông thường
các hàm này hoặc là để tính độ tương tự hoặc là tính độ phi tương tự giữa các
đối tượng dữ liệu. Giá trị của hàm tính độ đo tương tự càng lớn thì sự giống
nhau giữa đối tượng càng lớn và ngược lại, còn hàm tính độ phi tương tự tỉ lệ
nghịch với hàm tính độ tương tự. Độ tương tự hoặc độ phi tương tự có nhiều
cách để xác định, chúng thường được đo bằng khoảng cách giữa các đối tượng.
Tất cả các cách đo độ tương tự đều phụ thuộc vào kiểu thuộc tính mà ta phân
tích. Thí dụ, đối với thuộc tính hạng mục người ta không sử dụng độ đo khoảng
cách mà sử dụng một hướng hình học của dữ liệu.
Tất cả các độ đo dưới đây được xác định trong không gian độ đo metric.
Bất kỳ một metric nào cũng là một độ đo, nhưng điều ngược lại không đúng. Để
tránh sự nhầm lẫn, thuật ngữ độ đo ở đây đề cập đến hàm tính độ tương tự. Một
không gian metric là một tập trong đó có xác định các “khoảng cách” giữa từng
cặp phần tử, với những tính chất thông thường của khoảng cách hình học. Nghĩa
là, một tập X (các phần tử của nó có thể là những đối tượng bất kỳ) gồm các đối
tượng dữ liệu trong CSDL gọi là một không gian metric, nếu với mỗi cặp phần
tử x, y thuộc X đều xác định một số thực δ(x, y), được gọi là khoảng cách giữa x
và y thỏa mãn hệ tính chất sau:
nếu x ≠ y;
nếu x = y;
với mọi x, y;
+ .
9
Hàm δ(x, y) được gọi là một metric của không gian. Các phần tử của X
được gọi là các điểm của không gian này.
Một số phép đo độ tương tự áp dụng đối với các kiểu dữ liệu khác nhau:
+ Thuộc tính khoảng: Sau khi chuẩn hóa, độ đo phi tương tự của hai đối
tượng dữ liệu x, y được xác định bằng các metric như sau: |xi – yi|q
Khoảng cách Minskowski: , với q là số nguyên
dương.
Khoảng cách Euclide: , (trường hợp đặc biệt của
khoảng cách Minskowski trong trường hợp q = 2.
Khoảng cách Manhattan: , trường hợp đặc biệt của
khoảng cách Minskowski trong trường hợp q = 1.
Khoảng cách cực đại: , đây là trường hợp của khoảng
cách Minskowski trong trường hợp .
+Thuộc tính nhị phân: Trước hết ta có xây dựng bảng tham số sau:
y: 1 y: 0
x: 1
x: 0
Bảng 1. Bảng tham số thuộc tính nhị phân
Trong đó: , các đối tượng x, y mà tất cả các thuộc tính của nó
đều là nhị phân biểu thị bằng 0 và 1. Bảng trên cho ta thông tin sau:
- là tổng số các giá trị thuộc tính có giá trị là 1 trong cả hai đối tượng x, y.
- là tổng số các giá trị thuộc tính có giá trị là 1 trong x và 0 trong y.
- là tổng số các giá trị thuộc tính có giá trị là 0 trong x và 1 trong y.
- là tổng số các giá trị thuộc tính có giá trị là 0 trong cả hai đối tượng x, y.
Các phép đo độ tương tự đối với dữ liệu thuộc tính nhị phân được định
nghĩa như sau:
10
- Hệ số đối sánh đơn giản: , ở đây cả hai đối tượng x và y có
vai trò như nhau, nghĩa là chúng đối xứng và có cùng trọng số.
- Hệ số Jacard: , tham số này bỏ qua số các đối sánh
giữa 0-0. Công thức tính này được sử dụng trong trường hợp mà trọng số của
các thuộc tính có giá trị 1 của đối tượng dữ liệu có giá trị cao hơn nhiều so với
các thuộc tính có giá trị 0, như vậy các thuộc tính nhị phân ở đây là không đối
xứng.
+ Thuộc tính định danh: Độ đo phi tương tự giữa hai đối tượng x và y
được định nghĩa như sau: , trong đó m là số thuộc tính đối sánh
tương ứng trùng nhau và p là tổng số các thuộc tính.
+ Thuộc tính có thứ tự: Phép đo độ phi tương tự giữa các đối tượng dữ liệu
với thuộc tính thứ tự được thực hiện như sau, ở đây ta giả sử i là thuộc tính thứ
tự có giá trị ( kích thước miền giá trị):
Các trạng thái được sắp thứ tự như sau: , ta có thể thay thế mỗi
giá trị của thuộc tính bằng giá trị cùng loại , với .
Mỗi một thuộc tính thứ tự có các miền giá trị khác nhau, vì vậy ta chuyển
đổi chúng về cùng miền giá trị [0, 1] bằng cách thực hiện phép biến đổi sau cho
mỗi thuộc tính: , với
Sử dụng công thức tính độ phi tương tự của thuộc tính khoảng đối với các
giá trị , đây cũng chính là độ phi tương tự của thuộc tính có thứ tự.
+ Thuộc tính tỷ lệ: Có nhiều cách khác nhau để tính độ tương tự giữa các
thuộc tính tỉ lệ. Một trong những số đó là sử dụng công thức tính logarit cho mỗi
thuộc tính , thí dụ , lúc này đóng vai trò như thuộc tính khoảng.
Phép biến đổi logarit này thích hợp trong trường hợp các giá trị của thuộc tính là
số mũ.
11
Trong thực tế, khi tính độ đo tương tự dữ liệu, người ta chỉ xem xét một
phần các thuộc tính đặc trưng đối với các kiểu dữ liệu hoặc đánh trọng số cho tất
cả các thuộc tính dữ liệu. Trong một số trường hợp, người ta loại bỏ đơn vị đo
của các thuộc tính dữ liệu bằng cách chuẩn hóa chúng hoặc gán trọng số cho
mỗi thuộc tính giá trị trung bình, độ lệch chuẩn. Các trọng số này có thể sử dụng
trong các độ đo khoảng cách trên, thí dụ với mỗi thuộc tính dữ liệu đã được gán
trọng số tương ứng , độ tương tự dữ liệu được xác định như sau:
.
Người ta có thể chuyển đổi giữa các mô hình cho các kiểu dữ liệu trên, thí
dụ dữ liệu kiểu hạng mục có thể chuyển đổi thành dữ liệu nhị phân và ngược lại.
Nhưng giải pháp này rất tốn kém về chi phí tính toán, cần phải cân nhắc khi áp
dụng cách thức này.
Tùy từng trường hợp dữ liệu cụ thể mà người ta sử dụng các mô hình tính
độ tương tự khác nhau. Việc xác định độ tương tự dữ liệu thích hợp, chính xác,
đảm bảo khách quan là rất quan trọng và góp phần xây dựng thuật toán PCDL
có hiệu quả cao trong việc đảm bảo chất lượng cũng như chi phí tính toán của
thuật toán.
1.2.4. Các yêu cầu đối với kỹ thuật phân cụm dữ liệu
Việc xây dựng, lựa chọn một thuật toán phân cụm là bươc then chốt cho
việc giải quyết vấn đề phân cụm, sự lựa chọn này phụ thuộc vào đặc tính dữ liệu
cần phân cụm, mục đích của ứng dụng thực tế hoặc xác định độ ưu tiên giữa
chất lượng của các cụm hay tốc độ thực hiện thuật toán, ...
Hầu hết các nghiên cứu và phát triển thuật toán PCDL đều nhằm thỏa mãn
các yêu cầu cơ bản sau:
Có khả năng mở rộng: Một số thuật toán có thể ứng dụng tốt cho tập dữ
liệu nhỏ (khoảng 200 bản ghi dữ liệu) nhưng không hiệu quả khi áp dụng cho
tập dữ liệu lớn (khoảng 1 triệu bản ghi).
12
Thích nghi với các kiểu dữ liệu khác nhau: Thuật toán có thể áp dụng hiệu
quả cho việc phân cụm các tập dữ liệu với nhiều kiểu dữ liệu khác nhau như dữ
liệu kiểu số, kiểu nhị phân, dữ liệu định danh, hạng mục, ... và thích nghi với
kiểu dữ liệu hỗn hợp.
Khám phá ra các cụm với hình thù bất kỳ: Do hầu hết các CSDL có chứa
nhiều cụm dữ liệu với các hình thù khác nhau như: hình lõm, hình cầu, hình que,
... Vì vậy, để khám phá được các cụm có tính tự nhiên thì các thuật toán phân
cụm cần phải có khả năng khám phá ra các cụm dữ liệu có hình thù bất kỳ.
Tối thiểu lượng tri thức cần cho xác định các tham số vào: Do các giá trị
đầu vào thường ảnh hưởng rất lớn đến thuật toán phân cụm và rất phức tạp để
xác định các giá trị vào thích hợp đối với các CSDL lớn.
Ít nhạy cảm với thứ tự của dữ liệu vào: Cùng một tập dữ liệu, khi đưa vào
xử lý cho thuật toán PCDL với các thứ tự vào của các đối tượng dữ liệu ở các
lần thực hiện khác nhau thì không ảnh hưởng lớn đến kết quả phân cụm.
Khả năng thích nghi với dữ liệu nhiễu cao: Hầu hết các dữ liệu phân cụm
trong KPDL đều chứa đựng các dữ liệu lỗi, dữ liệu không đầy đủ, dữ liệu rác.
Thuật toán phân cụm không những hiệu quả đối với các dữ liệu nhiễu mà còn
tránh dẫn đến chất lượng phân cụm thấp do nhạy cảm với nhiễu.
Ít nhạy cảm với các tham số đầu vào: Nghĩa là giá trị của các tham số đầu
vào khác nhau ít gây ra các thay đổi lớn đối với kết quả phân cụm.
Thích nghi với dữ liệu đa chiều: Thuật toán có khả năng áp dụng hiệu quả
cho dữ liệu có số chiều khác nhau.
Dễ hiểu, dễ cài đặt và khả thi.
Các yêu cầu này đồng thời là các tiêu chí để đánh giá hiệu quả của các
phương pháp PCDL, đây là những thách thức cho các nhà nghiên cứu trong lĩnh
vực PCDL.
13
1.2.5. Ứng dụng của phân cụm dữ liệu
Phân cụm dữ liệu là một trong những công cụ chính của KPDL được ứng
dụng trong nhiều lĩnh vực như thương mại, khoa học. Các kỹ thuật PCDL đã
được áp dụng cho một số ứng dụng điển hình trong các lĩnh vực sau:
Thương mại: PCDL có thể giúp các thương nhân khám phá ra các nhóm
khách hàng quan trọng có các đặc trưng tương đồng nhau và đặc tả họ từ các
mẫu mua bán trong CSDL khách hàng.
Sinh học: PCDL được sử dụng để xác định các loại sinh vật, phân loại các
Gen với chức năng tương đồng và thu được các cấu trúc trong các mẫu.
Bảo hiểm: Nhận dạng nhóm tham gia bảo hiểm có chi phí yêu cầu bồi
thường trung bình cao, xác định gian lận trong bảo hiểm thông qua các mẫu cá
biệt.
Phân tích dữ liệu không gian: Do sự đồ sộ của dữ liệu không gian như dữ
liệu thu được từ các hình ảnh chụp từ vệ tinh, các thiết bị y học hoặc hệ thống
thông tin địa lý (GIS), ... làm cho người dùng rất khó để kiểm tra các dữ liệu
không gian một cách chi tiết. PCDL có thể trợ giúp người dùng tự động phân
tích và xử lý các dữ liệu không gian như nhận dạng và chiết xuất các đặc tính
hoặc các mẫu dữ liệu quan tâm có thể tồn tại trong CSDL không gian.
Lập quy hoạch đô thị: Nhận dạng các nhóm nhà theo kiểu và vị trí địa lý, ...
nhằm cung cấp thông tin cho quy hoạch đô thị.
Nghiên cứu trái đất: Phân cụm để theo dõi các tâm động đất nhằm cung
cấp thông tin cho nhận dạng các vùng nguy hiểm.
Địa lý: Phân lớp các động vật, thực vật và đưa ra đặc trưng của chúng.
Khai phá Web: PCDL có thể khám phá các nhóm tài liệu quan trọng, có
nhiều ý nghĩa trong môi trường Web. Các lớp tài liệu này trợ giúp cho việc
khám phá tri thức từ dữ liệu Web, khám phá ra các mẫu truy cập của khách hàng
đặc biệt hay khám phá ra cộng đồng Web, ...
Phân đoạn ảnh: Phân cụm ảnh thành từng vùng rồi trích chọn đặc trưng
của từng vùng, dựa vào đó ta có thể tra cứu các bức ảnh một cách nhanh chóng
14
và chính xác từ một cơ sở dữ liệu ảnh cho trước, hay phục vụ công tác chuẩn
đoán bệnh trong y tế đối với ảnh X-quang.
1.3. Cấu trúc giải phẫu răng
1.3.1. Cấu trúc giải phẫu răng
Cơ quan răng bao gồm răng và nha chu (quanh răng), là đơn vị hình thái và
chức năng của bộ răng. Răng là bộ phận trực tiếp nhai nghiền thức ăn, nha chu
là bộ phận giữ và nâng đỡ răng, đồng thời là bộ phận nhận cảm, tiếp nhận và dẫn
truyền lực nhai. Răng chính danh gồm men, ngà (mô cứng) và tủy (mô mềm).
Nha chu gồm xê măng (còn gọi là xương chân răng, men chân răng), dây chằng,
xương ổ răng, nướu (lợi). Bộ răng là một thể thống nhất thuộc hệ thống nhai, tạo
thành bởi sự sắp xếp có tổ chức của các cơ quan răng.
Hình 1.2. Cơ quan răng (răng và nha chu)
Mỗi răng có phần thân răng và chân răng. Giữa thân răng và chân răng là
đường cổ răng (cổ răng giải phẫu), là một đường cong, còn gọi là đường nối
men – xê măng. Thân răng được bao bọc bởi men răng, chân răng được xê măng
bao phủ.
Nướu răng viền xung quanh cổ răng tạo thành một bờ, gọi là cổ răng sinh
lý. Phần răng thấy được trong miệng là thân răng lâm sàng. Cổ răng sinhh lý
thay đổi tùy theo nơi bám và bờ của viền nướu, khi tuổi càng cao thì nơi bám
này càng có khuynh hướng di chuyển dần về phía chóp răng. Nhiều trường hợp
15
bệnh lý, nướu răng có thể bị sưng hoặc trụt, làm thân răng (lâm sàng) bị ngắn lại
hoặc dài ra.
Cấu tạo của răng: Bao gồm men răng, ngà răng (mô cứng) và tủy răng
(mô mềm):
Men răng: Men răng phủ mặt ngoài ngà thân răng, là mô cứng nhất trong
cơ thể, có tỉ lệ chất vô cơ cao (96%).Hình dáng và bề dày của men được xác
định từ trước khi răng mọc ra, trong đời sống, men răng không có sự bồi đắp
thêm mà chi mòn dần theo tuổi, nhưng có sự trao đổi về vật lý và hóa học trong
môi trường với miệng.
Ngà răng: Kém cứng hơn men, chứa tỉ lệ chất vô cơ thấp hơn men (75%).
Trong ngà có nhiều ống ngà, chứa đuôi bào tương của nguyên bào ngà.Bề dày
ngà răng thay đổi trong đời sống do hoạt động của nguyên bào ngà. Ngà răng
ngày càng dày theo hướng về phía hốc tủy răng, làm hẹp dần hốc tủy.
Tủy răng: Là mô liên kết mềm, nằm trong hốc tủy gồm tủy chân và tủy
thân. Tủy răng trong buồng tủy gọi là tủy thân, tủy buồng, tủy răng trong ống
tủy gọi là tủy chân. Các nguyên bào ngà nằm sát vách hốc tủy.Tủy răng có
nhiệm vụ duy trì sự sống của răng, cụ thể là sự sống của nguyên bào ngà và tạo
ngà thứ cấp, nhận cảm giác của răng. Trong tủy răng có chứa nhiều mạch máu,
mạch bạch huyết và đầu tận cùng thần kinh.
Bộ phận nâng đỡ răng: Bao gồm xương ổ răng, xê măng, dây chằng nha
chu và nướu (lợi) răng.
Xương ổ răng: Là mô xương xốp, bên ngoài được bao bọc bằng màng
xương, nơi nướu răng bám vào. Xương ổ răng tạo thành một huyệt, có hình dáng
và kích thước phù hợp với chân răng.Bề mặt ổ răng, nơi đối diện với chân răng,
là mô xương đặc biệt và có nhiều lỗ thủng để cho các mạch máu và dây thần
kinh từ xương xuyên qua để nuôi dây chằng nha chu, gọi là xương ổ chính danh,
hay lá sàng. Trên hình ảnh tia X, phần xương ổ chính danh trông cản tia hơn, gọi
là lá cứng.Nền xương ổ không phân biệt được với xương hàm. Chiều cao xương
ổ răng thay đổi theo tuổi và tùy theo sự lành mạnh hay bệnh lý của mô nha chu.
16
Khi răng không còn trên xương hàm thì xương ổ răng và các thành phần của nha
chu cũng bị tiêu dần đi.
Xê măng: Là mô đặc biệt, hình thành cùng với sự hình thành chân răng,
phủ ngoài ngà chân răng.Xê măng được bồi đắp thêm ở phía chóp chủ yếu để bù
trừ sự mòn mặt nhai, được coi là hiện tượng “mọc răng suốt đời” hay “trồi mặt
nhai”. Xê măng cũng có thể tiêu hoặc quá sản trong một số trường hợp bất
thường hay bệnh lý.
Dây chằng nha chu: Là những bó sợi liên kết dày khoảng 0.25mm, một
đầu bám vào xê măng, còn đầu kia bám vào xương ổ chính danh. Cả xê măng,
dây chằng nha chu và xương ổ chính danh đều có nguồn gốc từ túi răng chính
danh.Dây chằng nha chu có nhiệm vụ giữ cho răng gắn vào xương ổ răng và
đồng thời có chức năng làm vật đệm, làm cho mỗi răng có sự xê dịch nhẹ độc
lập với nhau trong khi nhai, giúp lưu thông máu, truyền cảm giác áp lực và
truyền lực để tránh tác dụng có hại của lực nhai đối với răng và nha chi.
Nướu răng: Là phần niêm mạc phủ lên xương ổ răng (nướu dính) và cổ
răng (nướu rời)
1.3.2. Phân loại ảnh X - quang nha khoa
Ảnh X-quang nha khoa là một trong những cách phổ biến với chi phí thấp
nhất để thu được ảnh (thông tin) về răng. Bởi vì nhiều bệnh của răng và các mô
xung quanh không thể được nhìn thấy trực tiếp bằng mắt thường khi nha sĩ kiểm
tra miệng. Chụp X – quang có thể giúp phát hiện những vấn đề sau đây:
- Lỗ sâu giữa các răng hoặc phát hiện sâu răng bên dưới lớp trám răng
- Nhiễm trùng trong xương
- Bệnh nha chu
- Áp – xe hoặc u nang
- Phát hiện những biến chuyển bất thường trong răng miệng
- Phát hiện khối u
17
Phát hiện và điều trị các vấn đề về răng ở giai đoạn sớm có thể tiết kiệm
thời gian, tiền bạc và giảm những khó chịu không cần thiết. Ảnh X – quang có
thể giúp nha sĩ phát hiện các vấn đề đó.
Có rất nhiều loại ảnh X – quang nha khoa khác nhau, trong đó được chia
thành hai kiểu ảnh X – quang nha khoa chính: intraoral (ảnh X – quang phạm vi
trong miệng) và extraoral (ảnh X – quang phạm vi cả ngoài miệng).
- Intraoral: là loại ảnh X – quang nha khoa phổ biến nhất. Nó mô tả các
răng một cách chi tiết và cho phép nha sĩ tìm sâu răng, kiểm tra sức khỏe của các
răng và xương xung quanh răng, kiểm tra tình trạng phát triển của răng và theo
dõi sức khỏe chung của răng và xương hàm.
- Extraoral: cũng cho chúng ta thấy các răng nhưng mục đích chính là cho
thấy toàn bộ hàm răng và xương sọ. Nó không cung cấp đặc điểm chi tiết về
từng răng như ảnh intraoral và do đó, nó không được sử dụng để phát hiện sâu
răng hoặc một số vấn đề khác với từng chiếc răng. Thay vào đó, nó được sử
dụng để tìm các răng nêm vào nhau, theo dõi sự tăng trưởng và phát triển hàm
trong quan hệ với răng, để xác định các vấn đề tiềm ẩn giữa răng và hàm, hội
chứng rối loạn thái dương hàm hoặc các xương mặt khác.
Các ảnh X – quang thuộc kiểu extraoral như: panoramic, tomograms,
cephalometric projections, sialography, computed tomography. Trong đó phổ
biến nhất là ảnh X – quang panoramic. Ảnh này cho thấy toàn bộ khoang miệng:
tất cả các răng trong xương hàm trên và dưới. Nó hữu ích trong việc phát hiện
các vùng răng mới nổi, xác định sự liên quan của hàm răng và các cấu trúc
xương xung quanh, hỗ trợ trong việc chẩn đoán các khối u, v.v.
Ảnh X – quang thuộc kiểu intraoral: bitewing, periapical,occlusal. Mỗi loại
cho thấy những khía cạnh khác nhau của răng:
- Ảnh X – quang Bitewing (ảnh cắn cánh): cho thấy mô tả về hàm trên và
dưới trong một vùng của miệng. Mỗi ảnh bitewing cho thấy một chiếc răng từ
đỉnh đến phần xương hỗ trợ nó. Ảnh bitewing thường được sử dụng để phát hiện
18
sâu răng giữa các răng và sự thay đổi mật độ răng gây ra bởi các bệnh về nướu
răng. Nó cũng rất hữu ích trong việc xác định các điều trị chỉnh nha phù hợp
- Ảnh X – quang Periapical (ảnh quanh chóp) cho thấy toàn bộ răng từ đỉnh
đến dưới cả chân răng – nơi răng được neo ở xương hàm. Mỗi ảnh quanh chóp
cho thấy kích thước đầy đủ của một số chiếc răng trong một phần của hàm trên
hoặc dưới. Loại ảnh này được sử dụng để phát hiện các bất thường trong cấu
trúc của chân răng và xung quanh cấu trúc xương.
- Ảnh X – quang Occlusal: lớn hơn hai loại trên, nó cho thấy vị trí và sự
phát triển răng một cách đầy đủ. Nó cho thấy toàn bộ vòm răng ở hàm trên hoặc
dưới.
Ảnh X – quang này có thể được sử dụng trong các ứng dụng máy tính như
hệ thống nhận dạng người hoặc hỗ trợ về khía cạnh lâm sàng như hệ thống chẩn
đoán nha khoa hoặc hệ thống điều trị nha khoa.
a) Ảnh cắn cánh. b) ảnhquanh chóp. c)ảnh pano toàn hàm
Hình 1.3. Một số loại ảnh X-Quang nha khoa
1.4. Bài toán phân đoạn ảnh X - quang nha khoa
1.4.1. Phân đoạn ảnh
Trong thị giác máy tính, phân đoạn ảnh là quá trình phân vùng một ảnh kĩ
thuật số thành các vùng rời rạc và đồng nhất với nhau hay nói cách khác là xác
định các biên của các vùng ảnh đó. Các vùng ảnh đồng nhất này thông thường sẽ
tương ứng với toàn bộ hay từng phần của các đối tượng thật sự bên trong ảnh.
19
“Phân đoạn ảnh chia nhỏ một ảnh thành các vùng cấu thành nên nó hoặc
các đối tượng” .Trong một định nghĩa khác, phân đoạn ảnh được định nghĩa như
là quá trình trích chọn những vùng hữu ích/cần quan tâm từ ảnh nền ban đầu.
Mục đích của phân đoạn là để đơn giản hóa và/hoặc thay đổi đại diện của
một ảnh thành thứ có ý nghĩa hơn và dễ dàng để phân tích/xử lý. Phân đoạn ảnh
thường được sử dụng để xác định vị trí đối tượng (chẳng hạn như các loại cây
trồng, khu vực đô thị, rừng của một hình ảnh vệ tinh, v.v.) và các đường
biên/ranh giới (đường thẳng, đường cong, v.v.) trong ảnh. Chính xác hơn, phân
đoạn ảnh là quá trình gán nhãn cho mọi pixel trong ảnh mà những pixel có cùng
nhãn thì có chung một số đặc điểm nhất định nào đó.
Kết quả của phân đoạn ảnh là một tập các phân đoạn mà nó bao trùm toàn
bộ ảnh hoặc một tập các đường mức trích chọn được từ ảnh (như phát hiện cạnh
trong ảnh). Mỗi một pixel trong một vùng là tương đồng nhau về một số thuộc
tính hoặc tính chất tính toán, ví dụ như màu sắc, cường độ hoặc cách cấu tạo,
v.v. Những khu vực liền kề là có sự khác nhau đáng kể về (những) thuộc tính
giống nhau. Khi áp dụng với một tập các ảnh, điển hình là trong hình ảnh nha
khoa, các đường mức thu được sau khi phân đoạn ảnh có thể được sử dụng để
tạo dựng thành 3D với sự giúp đỡ của các thuật toán nội suy.
Có nhiều thuật toán và kĩ thuật với mục đích chung đã được phát triển cho
phân đoạn ảnh.Thường thì những thuật toán này phải kết hợp với kiến thức của
một lĩnh vực cụ thể thì mới giải quyết hiệu quả bài toán phân đoạn của các miền.
1.4.2. Phân loại các phương pháp phân đoạn ảnh
Có hai tính chất cơ bản mà nói chung các phương pháp phân đoạn ảnh đều
dựa vào, đó là một trong hai giá trị của mật độ: sự tương đồng và sự gián đoạn.
Hướng tiếp cận chủ yếu trong phương pháp đầu tiên dựa trên việc phân đoạn
một ảnh thành các vùng tương đồng nhau theo một tập các tiêu chí xác định
trước. Hướng tiếp cận của phương pháp thứ hai là phân đoạn ảnh dựa trên sự
thay đổi đột ngột về cường độ (như cạnh trong ảnh)
20
Chúng ta có thể phân loại các phương pháp phân đoạn ảnh dựa trên giá trị
của các pixel và mối quan hệ giữa chúng với 3 vùng: dựa trên pixel, dựa trên
đường biên và dựa trên vùng. Trong hướng tiếp cận dựa trên pixel, sự phân lớp
dựa trên giá trị độ xám (cường độ) của pixel trong ảnh. Phương pháp dựa trên
biên dựa trên sự thay đổi đột ngột của giá trị cường độ trong một vùng ảnh.
Phương pháp dựa trên vùng dựa trên sự khác nhau trong các giá trị định trước
của các pixel láng giềng trong ảnh đó.
1.4.3. Phân đoạn ảnh X – quang nha khoa
Phân đoạn ảnh nha khoa là bước xửu lý then chốt trong nha khoa nhằm hỗ
trợ bác sĩ chuẩn đoán một cách hiệu quả các bệnh về răng. Để phân tích một ảnh
X – quang nha khoa, chúng ta cần sử dụng một số tiến trình xử lý trên ảnh để
thu được những thông tin quan trọng.
Theo góc nhìn đối với ảnh nha khoa, phân đoạn là để xác định và phân loại
các răng riêng lẻ trong ảnh X- quang nha khoa hoặc các phần của răng như thân
răng và chân răng. Mỗi một răng hoặc mỗi phần của mỗi răng trích chọn được từ
ảnh ban đầu cho những dữ liệu quan trọng sẽ được sử dụng trong các bước tiếp
theo ở bất kì một ứng dụng nào.
Ảnh X – quang nha khoa thường có 3 vùng chính:
- Vùng thứ nhất tương ứng với vùng chứa các răng. Vùng này thường có
giá trị mức xám lớn nhất (vùng sáng nhất trên ảnh). Đây chính là vùng mà ta cần
xác định được trong quá trình phân đoạn.
- Vùng thứ hai tương ứng với vùng chứa lợi, xương và các cấu trúc quanh
răng. Vùng này thường có mức xám trung bình, tuy nhiên một số vùng xương có
giá trị mức xám khá gần với vùng răng. Điều này gây khó khăn không nhỏ cho
quá trình phân đoạn răng.
- Vùng thứ ba tương ứng với vùng nền trong ảnh, có giá trị độ xám thấp
nhất (vùng tối nhất).
Phân đoạn những ảnh nha khoa có nhiều khó khăn hơn trong quá trình xử
lý bởi vì sự đa dạng, phức tạp trong cấu trúc liên kết giữa các bộ phận, và chất
21
lượng hình ảnh thấp (do nhiễu, độ tương phản thấp, sự giống nhau của các mô
cơ thể, sự giới hạn trong các phương pháp quét ảnh, v.v). Chính bởi những điều
đó khiến quá trình phân đoạn cho những kết quả sai/kém hiệu quả. Ví dụ như:
những mẫu vật được sử dụng trong quá trình điều trị, các răng nêm/chèn vào
nhau, sự biến thể của các răng, khoảng trống giữa những răng bị thiếu, cũng như
các vấn đề trong quá trình xử lý ảnh. Hình sau cho thấy những khó khăn có thể
xuất hiện trong các ảnh nha khoa:
a) Những b) Các răng chèn vào nhau.
thành phần khác được sử dụng để lấp đầy các răng.
c) Những biến thể khác d) Khoảng trống ở những vị trí răng bị
thiếu nhau của răng.
Hình 1.4. Những khó khăn trong việc phân đoạn ảnh nha khoa
Mỗi phương pháp phân đoạn được đề xuất cho một vấn đề này có thể thực
hiện tốt nhưng trên một vấn đề khác có thể thực hiện yếu kém và không đáng kể.
Vì vậy, rất khó để có được một phương pháp phân đoạn nhất định mà phù hợp
hoàn toàn cho một vấn đề mở rộng.
22
KẾT LUẬN CHƯƠNG 1
Chương 1 của luận văn đã nêu ra kiến thức tổng quan về phân cụm dữ liệu,
ứng dụng của phân cụm dữ liệu và về cấu trúc giải phẫu răng, phân loại ảnh X –
quang nha khoa, bài toán phân đoạn ảnh từ đó nêu ra bài toán, những yêu cầu,
thách thức và ý nghĩa, ứng dụng thực tế của bài toán phân đoạn ảnh X – quang
nha khoa trong các hệ thống nhận dạng người hay hệ thống chẩn đoán, điều trị
nha khoa.
Trong chương tiếp theo, luận văn sẽ đưa ra một cái nhìn tổng quan về các
phương pháp phân đoạn ảnh nha khoa hiện có. Ở mỗi phương pháp đều đưa ra
các thuật toán cụ thể và đánh giá ưu, nhược điểm của các thuật toán đó.
23
CHƯƠNG 2
MỘT SỐ THUẬT TOÁN PHÂN CỤM NỬA GIÁM SÁT
Các thuật toán phân cụm đã được nghiên cứu và phát triển từ những năm
50 của thế kỷ 20 như thuật toán K-Means (1956), thuật toán phân cụm dựa trên
đồ thị (1973), thuật toán phân cụm dựa trên lý thuyết mờ (1980), thuật toán phân
cụm dựa trên mật độ (1996) [14]. Từ những năm 2000 trở lại đây, phương pháp
phân cụm nửa giám sát bắt đầu được phát triển mạnh mẽ (xem [8], [9], [10],
[15]), đặc biệt là các phương pháp phân cụm nửa giám sát mờ bởi tính hiệu quả
mà nó mang lại (xem [11], [12], [13]). Nội dung chương này tập trung nghiên
cứu các thuật toán phân cụm nửa giám sát mờ và được trình bày thành 5 mục:
Mục 2.1 là các khái niệm cơ bản về lý thuyết tập mờ [4] và thuật toán phân cụm
mờ [16]. Mục 2.2 trình bày thuật toán phân cụm nửa giám sát mờ bằng phương
pháp học tích cực [21]. Mục 2.3 trình bày thuật toán phân cụm nửa giám sát mờ
chuẩn [17]. Mục 2.4 trình bày thuật toán phân cụm nửa giám sát mờ theo quy tắc
entropy [18]. Mục 2.5 là thuật toán phân cụm lai ghép nửa giám sát [13].
2.1. Phân cụm mờ
2.1.1. Các khái niệm cơ bản về tập mờ
Tập rõ và tập mờ: Một tập hợp theo nghĩa kinh điển, nghĩa là một phần tử
hoặc thuộc vào tập hoặc không thuộc vào tập, được gọi là một tập rõ (crisp set).
Một tập mờ (fuzzy set) A trên một tập nền X được xác định bằng hàm thuộc
(membership function) , với giá trị là độ thuộc của phần tử x
vào tập mờ A. Tập nền X luôn là tập rõ. Nếu tập nền X là rời rạc và hữu
hạn thì tập mờ A trên X được biểu diễn bằng
hoặc , trong đó là
độ thuộc của vào A. Nếu tập nền X là liên tục, thì tập mờ A trên X được biểu
diễn bằng . Chú ý rằng “/” là ký tự phân cách; là phép kết
24
hợp; và “+” là phép nối giữa các thành phần chứ không phải là phép chia, tổng,
tích phân và cộng như thông thường.
Các dạng hàm thuộc: Có hai dạng hàm thuộc thông dụng là: (1) hàm
thuộc tuyến tính và (2) hàm thuộc dạng sin. Hình 2.1 minh họa hàm thuộc tuyến
tính. Hàm này có bốn tham số a, b, c và d xác định hình dạng của hàm. Bằng
cách chọn các giá trị phù hợp cho chúng, ta có thể có các hàm thuộc dạng chữ S
(S-shaped), hình thang, tam giác và dạng chữ L (L-shaped).
Hình 2.1. Hàm thuộc tuyến tính
Nếu dạng đường cong là thích hợp hơn, ta nên chọn hàm thuộc dạng
sin (Hình 2.2). Cũng như với hàm thuộc tuyến tính, ta có thể có hàm thuộc
dạng chữ S, dạng chuông (bell-shaped) và dạng chữ L bằng cách chọn các
tham số thích hợp.
Hình 2.2. Hàm thuộc dạng sin
25
Trường hợp đặc biệt của hàm thuộc hình chuông là hàm Gauss (Hình 2.3)
sinh ra từ hàm mật độ xác suất của phân phối thường với hai tham số c (giá trị
trung bình) và (độ lệch chuẩn). Mặc dù xuất phát từ lý thuyết xác xuất, hàm
này cũng được sử dụng làm hàm thuộc tập mờ.
Hình 2.3. Hàm thuộc Gauss
Phép toán trên tập mờ: Các phép toán trên tập mờ được định nghĩa tương
tự như các phép toán trên tập rõ, bao gồm hợp, giao và bù.
Độ cao của tập mờ A là giá trị độ thuộc lớn nhất của A, ký hiệu hgt(A).
Nếu hgt(A) = 1, tập mờ được gọi là chuẩn. Ta có thể chuẩn hóa một tập mờ
bằng cách chia tất cả độ thuộc cho độ cao của nó.
Tập mờ A là bao trong (tập con của) tập mờ B (viết ) nếu
. Tập mờ A bao trong tập mờ B nếu đồ thị của A hoàn toàn
được phủ bởi đồ thị của B (Hình 2.4).
Hình 2.4. Bao trong của tập mờ
26
Có nhiều cách xác định phép hợp của hai tập mờ. Sau đây là các phép hợp
thông dụng nhất, với mọi :
Phép max được gọi là không tương tác (non-interactive) theo nghĩa độ
thuộc của hai tập mờ không tương tác với nhau. Cụ thể, một tập mờ có thể hoàn
toàn bị bỏ qua trong phép hợp nếu nó bao trong tập còn lại. Hai phép toán còn
lại là tương tác do độ thuộc của phép hợp được xác định bởi cả hai độ thuộc
thành phần. Hình 2.5 minh họa phép hợp dạng 1 của các tập mờ thấp và trung
bình trong. Ví dụ:
Hình 2.5. Phép hợp tập mờ dạng 1
Phép giao của hai tập mờ A, B được tính theo một trong các phép toán
sau:
Phép min là không tương tác, hai phép toán còn lại là tương tác. Hình 2.6
minh họa phép giao dạng 1 của các tập mờ thấp và trung bình.
27
Hình 2.6. Phép giao tập mờ dạng 1
Phép bù của tập mờ A được xác định: . Hình 2.7
minh họa phần bù của tập mờ trung bình.
Hình 2.7. Phần bù của tập mờ trung bình
2.1.2. Thuật toán phân cụm mờ FCM (Fuzzy C-Means)
Ta có thể định nghĩa bài toán phân cụm rõ như sau: Cho tập dữ liệu mẫu X,
ta kiểm tra các điểm dữ liệu xem nó giống với đặc điểm của nhóm nào nhất thì
ta gán điểm dữ liệu đó vào trong nhóm đó. Nhưng trong thực tế không phải lúc
nào bài toán phân cụm rõ cũng đáp dụng được.
Mỗi phương pháp phân cụm phân hoạch một tập dữ liệu ban đầu thành các
cụm dữ liệu có tính tự nhiên và mỗi đối tượng dữ liệu chỉ thuộc về một cụm dữ
liệu, phương pháp này chỉ phù hợp với việc khám phá ra các cụm có mật độ cao
và rời nhau, với đường biên giữa các cụm được xác định tốt. Tuy nhiên, trong
thực tế, đường biên giữa các cụm có thể mờ, các cụm có thể chồng lên nhau,
nghĩa là một số các đối tượng dữ liệu thuộc về nhiều cụm khác nhau, do đó mô
hình này không mô tả được dữ liệu thực. Vì vậy người ta đã áp dụng lý thuyết 28
về tập mờ trong PCDL để giải quyết cho trường hợp này. Cách thức kết hợp này
được gọi là phân cụm mờ.
Phân cụm mờ là phương pháp phân cụm dữ liệu mà cho phép mỗi điểm dữ
liệu thuộc về hai hoặc nhiều cụm thông qua bậc thành viên. Ruspini (1969) giới
thiệu khái niệm phân hoạch mờ để mô tả cấu trúc cụm của tập dữ liệu và đề xuất
một thuật toán để tính toán tối ưu phân hoạch mờ. Dunn (1973) mở rộng phương
pháp phân cụm và đã phát triển thuật toán phân cụm mờ. Ý tưởng của thuật toán
là xây dựng một phương pháp phân cụm mờ dựa trên tối thiểu hóa hàm mục
tiêu. Năm 1981, Bezdek [16] đã cải tiến và tổng quát hóa hàm mục tiêu mờ bằng
cách đưa ra trọng số mũ để xây dựng thuật toán phân cụm mờ và được chứng
minh độ hội tụ của các thuật toán là cực tiểu cục bộ. Hàm mục tiêu được Bezdek
đề xuất dựa trên độ thuộc của phần tử dữ liệu xk vào cụm thứ j và được xác
định như sau:
(2.1)
Trong đó: m là số mờ hóa; C là số cụm; N là số phần tử dữ liệu; r là số
chiều của dữ liệu; ukj là độ thuộc của phần tử dữ liệu xk vào cụm j; là phẩn tử thứ
k của x={x1 , x2 ,..., xN }; vj là tâm của cụm j.
Ràng buộc của (2.1) là:
(2.2)
Bài toán đặt ra là cần xác định tâm cụm V={vj } và ma trân độ thuộc
U={ukj} từ (2.1) - (2.2).
Để tìm tâm cụm vj từ bài toán cực trị (2.1) với ràng buộc (2.2) ta làm như
sau:
Lấy đạo hàm của phiếm hàm J theo vj, ta được:
(2.3)
Giải hệ phương trình : ta có tâm cụm
29
(2.4)
Tiếp theo, ta sử dụng phương pháp nhân tửu Lagrange [5] với điều kiện
ràng buộc (2.2) ta thu được ma trận độ thuộc
(2.5)
Khi đó thuật toán phân cụm mờ được thực hiện như sau:
Tập dữ liệu X gồm N phần tử trong không gian r chiều; số cụm C; Input
mờ hóa m; ngưỡng 𝜀; số lần lặp lớn nhất MaxStep.
Output Ma trận độ thuộc U và tâm cụm V
Các bước của thuật toán
t=0 1
Khởi tạo ngẫu nhiên U(t) thỏa mãn điều kiện (2.2) 2
3 Repeat
4 Tính V(t) ={vj } theo (2.4)
t=t+1 5
6 Tính U(t) ={ukj} theo (2.5)
7 Until hoặc t > MaxStep
Việc chọn các tham số cụm rất ảnh hưởng đến kết quả phân cụm, tham số
này thường được chọn theo phép ngẫu nhiên hoặc theo kinh nghiệm.
Chưa có quy tắc nào nhằm lựa chọn tham số m đảm bảo việc phân cụm
hiệu quả, thông thường người ta chọn m = 2.
30
Nhược điểm lớn nhất của thuật toán FCM là nhạy cảm với các nhiễu và
phần tử ngoại lai trong dữ liệu. Nghĩa là các tâm cụm có thể nằm xa so với tâm
cụm thực tế. Do đó các cụm dữ liệu được khám phá có thể rất lệch so với các
cụm trong thực tế. Việc khử nhiễu và phần tử ngoại lai là một vấn đề cần phải
được giải quyết.
Phân cụm mờ là một sự mở rộng của phân cụm dữ liệu bằng cách thêm
vào yếu tố thể hiện mối quan hệ giữa các phần tử và các cụm dữ liệu thông qua
các trọng số trong ma trận U. Bằng cách này, ta có thể khám phá các cụm dữ
liệu phức tạp theo cách mềm dẻo từ một tập dữ liệu dã cho.
2.2. Thuật toán phân cụm nửa giám sát mờ bằng phương pháp học tích
cực
Các thuật toán phân cụm nửa giám sát mờ xây dựng dựa trên các thuật toán
phân cụm mờ kết hợp với các thông tin bổ trợ được người dùng cung cấp. Các
thông tin bổ trợ nhằm mục đích hướng dẫn, giám sát, điều khiển quá trình phân
cụm và được xây dựng dựa trên 3 loại cơ bản sau:
- Các rảng buộc Must-link và Cannot-link: Ràng buộc Must-link yêu cầu 2
phần tử phải thuộc vào cùng 1 cụm, ngược lại ràng buộc Cannot-link chỉ ra 2
phần tử không thuộc cùng 1 cụm (mà phải thuộc 2 cụm khác nhau)
- Các nhãn lớp của một phần dữ liệu: Một phần của dữ liệu được gán nhãn
và phần còn lại không được gán nhãn
- Độ thuộc được xác định trước.
Với mục tiêu nâng cao chất lượng phân cụm, năm 2008, Grira [21] sử
dụng thông tin bổ trợ là là các ràng buộc Must-link và Cannot-link. Theo
phương pháp này, ta ký hiệu M là tập các ràng buộc Must-link, điều này có
nghĩa là M={(xi, xj): xi và xj thuộc cùng một cụm}, ∆ là tập các ràng buộc
Cannot-link, có nghĩa là M={(xi, xj): xi và xj không thuộc cùng một cụm}, khi đó
hàm mục tiêu được xác định như sau:
(2.6)
31
Giải hệ phương trình : ta có tâm cụm
(2.7)
Tìm cực trị của (2.6) với điều kiện ràng buộc (2.2) xác định được
(2.8)
Trong đó
(2.9)
(2.10)
(2.11)
M là tổng số các ràng buộc Must-link và Cannot-link.
Thuật toán thực hiện như sau:
Tập dữ liệu X gồm N phần tử trong không gian r chiều; số cụm C; Input
ngưỡng ε; số lần lặp lớn nhất MaxStep.
Output Ma trận độ thuộc U và tâm cụm V
Các bước của thuật toán
1 t=0
2 Khởi tạo ngẫu nhiên V(t)
3 Repeat
32
t=t+1 4
Tính theo (2.11) 5
6 Tính U(t) ={ukj} theo (2.8)
Cập nhật V(t) theo (2.7) 7
8 Until hoặc t > MaxStep
2.3. Thuật toán phân cụm nửa giám sát mờ chuẩn (SSSFC)
Gần đây, một số nghiên cứu về phân đoạn ảnh sử dụng phân cụm nửa giám
sát thường dùng loại thông tin bổ trợ là giá trị hàm độ thuộc được xác định
trước. Với loại thông tin bổ trợ này, Yasunuri [17] đã đề xuất một thuật toán
phân cụm nửa giám sát mờ với thông tin bổ trợ là hàm độ thuộc bổ sung trong
hàm mục tiêu của FCM để cải thiện hiệu quả trong quá trình phân cụm của thuật
toán. Khi đó hàm mục tiêu được xác định như sau:
(2.12)
Với điều kiện ràng buộc (2.2), là hàm độ thuộc bổ trợ của phần tử với
cụm đồng thời thỏa mãn
.
Giải hệ phương trình : ta có tâm cụm
(2.13)
Sử dụng phương pháp nhân tử Lagrange [5] tìm cực trị của (2.6) với điều kiện
ràng buộc (2.2) ta xác định được như sau:
Trường hợp :
33
, , . (2.14)
Trường hợp m=1:
, , . (2.15)
Thuật toán SSSFC:
Tập dữ liệu X gồm N phần tử trong không gian r chiều; số cụm C; Input
ma trận độ thuộc bổ trợ ; mờ hóa m; ngưỡng ԑ; số lần lặp lớn nhất
MaxStep.
Output Ma trận U và tâm cụm V
Các bước của thuật toán
t=0 1
2 Khởi tạo ngẫu nhiên V(t) ={vj }
3 Repeat
4 Tính U(t) ={ukj} theo (2.14) nếu m>1 hoặc theo (2.15) nếu m=1
t=t+1 5
6 Tính V(t) ={vj } theo (2.13)
7 Until hoặc t > MaxStep
34
2.4. Thuật toán phân cụm nửa giám sát mờ theo quy tắc entropy
(eSFCM)
Năm 2009, Zhang [20] đã áp dụng quy tắc entropy để giảm số chiều và đề
xuất một tiếp cận mới với ý tưởng là kết hợp một thành phần theo quy tắc
entropy vào hàm mục tiêu. Đến năm 2012, Yin [18] có đề xuất hiệu chỉnh hệ số
Entropy và khi đó phân cụm nửa giám sát mờ dựa trên thuật toán eSFCM, sử
dụng độ thuộc bổ trợ để tăng hiệu suất phân cụm với điều kiện:
(2.16)
Với tâm cụm ban đầu được xác định theo công thức:
(2.17)
Sử dụng khoảng cách Mahalanobis, ma trận hiệp phương sai của các mẫu
được xác định:
(2.18)
Khoảng cách Mahalanobis:
(2.19)
Khi đó hàm mục tiêu của eSFCM được xác định như sau:
(2.20)
Với điều kiện ràng buộc (2.2) và hàm mục tiêu (2.19) ta có các công thức
xác định ma trận độ thuộc:
(2.21)
35
và tâm cụm:
(2.22)
Thuật toán eSFCM
Input
Tập dữ liệu X gồm N phần tử trong không gian r chiều; số cụm C; ma trận độ thuộc 𝑈̅ ; ngưỡng ε; số lần lặp lớn nhất MaxStep.
Output Ma trận độ thuộc U và tâm cụm V
Các bước của thuật toán
t=0 1
Tính ma trận P theo (2.18) với ma trận độ thuộc 2
và tâm cụm ban đầu V(0).
3 Repeat
4 t=t+1
5 Tính U(t) ={ukj} theo (2.21)
6 Tính V(t+1) theo (2.22)
7 Until hoặc t > MaxStep
2.5. Thuật toán nửa giám sát mờ lai ghép
Trong mục này, tác giả trình bày thuật toán nửa giám sát mờ lai ghép [13]
được thực hiện dựa trên sự lai ghép của thuật toán Otsu, thuật toán phân cụm mờ
(FCM) với thuật toán phân cụm nửa giám sát mờ (eSFCM).
2.5.1. Lược đồ tổng quan lai ghép
Trong hình 2.8 [6], luận văn minh họa mô hình kết hợp giữa Otsu – FCM –
eSFCM bằng một sơ đồ tổng quan. Đầu vào là một ảnh X-Quang nha khoa với
36
một vài tham số do người dùng xác định như là số lượng cụm (C), số mờ hóa
(m), ngưỡng Otsu (T) và ngưỡng dừng (𝜀).
Bắt đầu
Ảnh đầu vào và các tham số
Kiểm tra xem ảnh đầu vào có vùng nền
Sai
Đúng
Dùng phương pháp tách ngưỡng Otsu để loại bỏ vùng nền trong ảnh
Dùng phương pháp phân cụm FCM để xác định ma trận độ thuộc
Dùng phương pháp phân cụm eSFCM để phân đoạn ảnh với thông tin bổ trợ xác định từ ma trận độ thuộc
Đánh giá hiệu năng thuật toán bằng các tiêu chuẩn
Kết quả ảnh phân đoạn
Kết thúc
Hình 2.8. Lược đồ tổng quan của thuật toán lai ghép
37
Từ một ảnh X-Quang có thể có hoặc không có chứa các vùng nền, khi đó
sử dụng một thủ thuật để kiểm tra điều này trước khi phân đoạn ảnh. Thuật toán
Otsu được áp dụng để loại bỏ các khu vục nền từ ảnh. Vùng nền là phần có giá
trị độ xám nhỏ nhất và là nền tảng của cấu trúc răng. Thuật toán này có ưu điểm
là xử lý nhanh và hiệu quả, đồng thời có thể phân biệt nền với các phần chính
của ảnh. Sau đó, tiến hành phân cụm mờ bằng thuật toán FCM. Các kết quả của
quá trình phân cụm là các tâm cụm và ma trận độ thuộc. Khi đó kết quả nhận
được là gần đúng với kết quả của bài toán, đồng thời sử dụng các kết quả đó là
các thông tin bổ trợ cho các thuật toán phân cụm bán giám sát mờ trong bước
tiếp theo. Thuật toán phân cụm bán giám sát mờ (eSFCM) được áp dụng để cải
thiện các kết quả của quá trình phân cụm trong giai đoạn xử lý phân đoạn ảnh
sau đó.
Ý nghĩa của thuật toán lai ghép (Otsu – FCM - eSFCM):
Khi sử dụng thuật toán Otsu [22] có thể xác định được các vùng độc lập
dựa trên việc tách ngưỡng từ một ảnh X-quang nha khoa. Thuật toán này
có ưu điểm là xử lý nhanh, hiệu quả và có thể xác định các vùng theo
ngưỡng vì vậy được sử dụng trong các bước tiền xử lý của đề xuất.
Cho phép sử dụng các thuật toán phân cụm mờ để xác định thông tin bổ
trợ cho phân cụm bán giám sát mờ thông qua ma trận độ thuộc nhận được.
Cho phép sử dụng các thuật toán eSFCM để nâng cao chất lượng cụm của
quá trình phân cụm từ đó nâng cao chất lượng ảnh phân đoạn.
2.5.2. Thuật toán tách ngưỡng Otsu
Thuật toán tách ngưỡng Otsu biến đổi một hình ảnh đầu vào thành một
ảnh nhị phân. Nó được giới thiệu trong [22] và cũng được sử dụng trong [23]
bởi Rad, Rahim &Norouzi. Một ảnh đầu vào có thể chia thành 3 khu vực theo
cường độ ảnh trong đó vùng có cường độ thấp nhất tương ứng với nền hoặc
vùng mô mềm; các khu vực có cường độ trung bình tương ứng với xương; và
các khu vực có cường dộ cao nhất tương ứng với răng. Tuy nhiên, trong trường
38
hợp các ảnh có cường độ của các răng nhiều thì hoàn toàn chia thành 2 vùng là
vùng nền và vùng ảnh (hay vùng chính), nên được sử dụng trong thuật toán
Otsu.
Otsu là một thuật toán tách ngưỡng nổi tiếng trong các kỹ thuật xử lý ảnh
dựa trên điểm ảnh. Kỹ thuật đơn giản nhất trong các thuật toán tách ngưỡng là
phân chia ảnh thành hai vùng dựa trên một ngưỡng toán cục T. Trong trường
hợp này, thuật toán Otsu chọn một ngưỡng với mục tiêu nhằm giảm thiểu những
thay đổi của các lớp bên trong của các điểm ảnh màu đen và trắng (nhãn mỗi
điểm trong ảnh thuộc vào vùng chính r0 hoặc vùng nền r1). Mỗi điểm ảnh được
gán nhãn dựa trên giá trị cấp xám của nó (f(x)). Nói cách khác:
Kết quả của bước tách ngưỡng là một ảnh nhị phân để đơn giản hóa quá
trình phân tích ảnh trong các bước tiếp theo.
Trong trường hợp tổng quát mà số lượng các cụm (C) là lớn hơn 2, nhiều
ngưỡng có thể được sử dụng để xác định các cụm khác nhau. Giả sử T1, T2, ...,Tn
(Ti là điểm cách đều trong đoạn [min, max] với mọi i = 1, 2, ... , n là các
ngưỡng. Giá trị của mỗi điểm ảnh f(x) được tính là trung bình của các giá trị R,
G, B tại điểm ảnh đó.
Thuật toán tách ngưỡng Otsu:
Input: Một ảnh X-Quang nha khoa và số lần lặp lớn nhất MaxStep
Output: Ảnh nhị phân của ảnh đầu vào
Otsu:
Bước 1: Chọn ngưỡng khởi tạo , số bước lặp t = 1
Bước 2: Repeat
2.1. t = t + 1
39
2.2. Phân hoạch ảnh thành 2 nhóm (dựa vào ngưỡng )
2.3. Tính toán giá trị mức xám trung bình trên các nhóm
2.4.Tính ngưỡng mới theo công thức
hoặc t = MaxStep Bước 3: Until
Rõ ràng là:
Một điểm ảnh thuộc vào
Sau đó, uị trong ma trận thuộc U gán bằng 1 nếu điểm ảnh j thuộc về cụm
thứ i và bằng 0 nếu ngược lại.
2.5.3. Thuật toán phân cụm nửa giám sát mờ lai ghép
Input: Ảnh đầu vào, số cụm C, ma trận độ thuộc 𝑈̅; ngưỡng dừng 𝜀; số
lần lặp lớn nhất MaxStep > 0
Output: Ảnh phân đoạn
Lai ghép:
Bước 1: Sử dụng thuật toán xử lý ảnh lấy ngưỡng Otsu
Bước 2: Phân cụm mờ (FCM) xác định ma trận độ thuộc UFCM Bước 3: Xây dựng thông tin bổ trợ 𝑈̅ từ ma trận độ thuộc UFCM bỏ đi các
giá trị hàm thuộc nhỏ nhất tại các điểm.
Bước 4: Phân cụm nửa giám sát mờ (eSFCM) với ảnh đầu vào và thông tin bổ trợ U̅
Bước 5: Ảnh phân đoạn
Như vậy, thuật toán phân cụm nửa giám sát mờ lai ghép là một sự kết hợp
giữa thuật toán tách ngưỡng Otsu, thuật toán phân cụm mờ FCM và phân cụm
nửa giám sát mờ (eSFCM). Thuật toán Otsu dùng để tách phần nền với phần
chính của ảnh nha khoa. Những thông tin bổ trợ dùng trong eSFCM được xác
40
định là kết quả của ma trận độ thuộc trong phân cụm FCM. Thuật toán eSFCM
được sử dụng để phân cụm trong đoạn ảnh cuối cùng.
KẾT LUẬN CHƯƠNG 2
Trong chương này, luận văn đã nêu ra bài toán nghiên cứu và có được cái
nhìn tổng quan về bài toán phân cụm mờ, các phương pháp phân phân cụm mờ
và phân cụm bán giám sát mờ. Ở mỗi phương pháp luận văn đều có đánh giá ưu
nhược điểm và trình bày các thuật toán cụ thể, trong đó có trình bày thuật toán
phân cụm bán giám sát mờ lai ghép là cơ sở để tác giả xây dựng một ứng dụng
thử nghiệm ở chương 3.
41
CHƯƠNG 3
XÂY DỰNG ỨNG DỤNG PHÂN ĐOẠN ẢNH
X – QUANG NHA KHOA
3.1. Đặc tả yêu cầu
3.1.1. Yêu cầu thực tế
Như đã giới thiệu ở phần trước, việc xử lý các hình ảnh y tế ngày càng có
vai trò quan trọng, hỗ trợ bác sĩ trong chẩn đoán, điều trị nhiều loại bệnh khác
nhau. Một loại ảnh y tế vô cùng phổ biến và được chỉ định chụp cho nhiều loại
bệnh khác nhau đó là ảnh X – quang.
Thêm vào đó, như chúng ta đã biết, các loại bệnh về răng miệng rất phổ
biến ở mọi lứa tuổi. Các chuyên gia y tế đã cho biết hiện tại 90% người Việt
đang mắc các bệnh về răng miệng, chủ yếu là sâu răng và các bệnh nha chu, tới
75% người bị mắc sâu răng vĩnh viễn và 60% người Việt mắc các bệnh về tổ
chức cứng của răng như sâu, mòn, ảnh hưởng ăn nhai, gây vỡ, đục khoét hết
chân răng. Để chẩn đoán và điều trị những bệnh răng miệng, đặc biệt là những
bệnh liên quan đến cấu trúc về phần cứng của răng (sâu răng, rạn/vỡ/đục khoét
chân răng, xương ổ răng hoặc cấu trúc hàm, v.v.), bác sĩ thường chỉ định chụp
ảnh X – quang (với loại ảnh phù hợp với từng loại bệnh) để có thể quan sát được
vùng bệnh một cách tốt nhất.
Với số lượng bệnh nhân rất lớn như thế, việc phát triển các hệ thống hỗ trợ
chẩn đoán cũng như điều trị các bệnh răng miệng dựa trên các hình ảnh nha
khoa thu được là điều vô cùng cần thiết. Nó giúp giảm tải khối lượng công việc
của bác sĩ, hỗ trợ bác sĩ đưa ra quyết định một cách chính xác hơn, từ đó nâng
cao hiệu quả khám chữa bệnh.
Trong các hệ thống xử lý hình ảnh nha khoa đó, một giai đoạn cơ bản
không thể thiếu đó là phân đoạn ảnh X – quang đầu vào. Phân đoạn sẽ xác định
các vùng chứa răng trong ảnh X – quang nha khoa.Từ đó, dựa vào các vùng răng
42
thu được mới thực hiện các bước tiếp theo trong hệ thống như xác định hình
dáng, vị trí, các vùng bị tổn thương, v.v.
3.1.2. Mục đích của ứng dụng
Từ yêu cầu thực tế đặt ra, ứng dụng này nhằm mục đích phân đoạn ảnh X –
quang nha khoa dựa vào thuật toán phân cụm bán giám sát mờ mà cụ thể là thuật
toán bán giám sát mờ lai ghép (Otsu – FCM - eSFCM). Ứng dụng cho phép
phân đoạn ảnh X – quang thành các vùng khác nhau trong đó có vùng chứa răng,
nhằm loại bỏ những vùng nền không hữu ích trong các quá trình xử lý tiếp theo
của hệ thống nhận dạng, chẩn đoán hay điều trị nha khoa.
3.2. Đặc tả dữ liệu
Dữ liệu được sử dụng trong chương trình là ảnh X – quang nha khoa quanh
chóp và cắn cánh. Như đã giới thiệu ở phần 1.3.2, ảnh cắn cánh mô tả một
vùng của hàm trên và dưới. Với mỗi một chiếc răng nó cho thấy từ đỉnh đến
phần xương hỗ trợ. Ảnh cắn cánh thường được sử dụng để phát hiện sâu răng
giữa các răng và sự thay đổi mật độ răng gây ra bởi các bệnh về nướu răng. Nó
cũng rất hữu ích trong việc xác định các điều trị chỉnh nha phù hợp. Ảnh quanh
chóp cho thấy kích thước đầy đủ của một số chiếc răng (thường thì tối đa là 4
chiếc) trong một phần của hàm trên hoặc dưới. Chính vì khả năng mô tả chi tiết
từng chiếc răng nên loại ảnh này được sử dụng để phát hiện các bất thường của
một vài chiếc răng hay trong cấu trúc của chân răng và xung quanh răng ở phạm
vi hẹp.
Các ảnh được sử dụng làm dữ liệu về bản chất đều là ảnh xám, tuy nhiên nó
được lưu trữ dưới dạng truecolor với định dạng ảnh jpg. Bảng dưới đây mô tả
chi tiết đặc điểm của từng ảnh.
trị trị
Ảnh trị Giá pixel min Độ phân giải (dpi) Giá pixel max Dung lượng (KB)
Kích thước (width x hight) 229 x 160 96 img_1 255 0 Giá pixel trung bình 97.5949 3,41
img_2 257 x 196 96 255 0 116.5837 4,60
43
img_3 259 x 194 96 255 0 104.3974 8,10
img_4 474 x 620 96 255 0 96.4496 42,4
img_5 200 x 174 96 241 0 100.5537 3,30
img_6 300 x 214 96 225 0 93.1376 14,0
img_7 300 x 237 96 244 0 108.5878 14,4
img_8 500 x 355 96 255 0 107.4877 41,3
Bảng 2. Thuộc tính của các ảnh dữ liệu đầu vào
a) img_1 b) img_2 c) img_3 d) img_4
e) img_5 f) img_6 g) img_7 h) img_8
Hình 3.1: Ảnh dữ liệu đầu vào của ứng dụng
3.3. Các bước phân đoạn ảnh
Bài toán phân đoạn ảnh X – Quang nha khoa bằng thuật toán phân cụm nửa
giám sát mờ lai ghép gồm các bước sau:
- Bước 1: Đọc ảnh X – quang đầu vào và các tham số.
Bước này cho phép chọn ảnh X – quang cần phân đoạn vào ứng dụng.
Ảnh có thể có hoặc không có chứa các vùng nền, khi đó sử dụng một thủ
tục để kiểm tra trước khi phân đoạn ảnh.
- Bước 2: Sử dụng phương pháp tách ngưỡng Otsu để loại bỏ vùng nền
trong ảnh.
- Bước 3: Phân cụm mờ xác định ma trận độ thuộc.
44
Bước này thực hiện quá trình phân đoạn ảnh theo thuật toán phân cụm mờ
FCM để xác định ma trận độ thuộc UFCM
- Bước 4: Xây dựng thông tin bổ trợ 𝑈̅ từ ma trận độ thuộc UFCM
Tại bước này ta thu được ma trận độ thuộc bổ trợ 𝑈̅ từ mà trận độ thuộc
UFCM bằng cách bỏ đi các giá trị hàm thuộc nhỏ nhất tại các điểm.
- Bước 5: Phân cụm nửa giám sát mờ
Bước này thực hiện việc phân đoạn ảnh dựa vào thuật toán phân cụm nửa giám sát với đầu vào là ảnh và thông tin bổ trợ 𝑈̅
- Bước 6: Hiển thị kết quả: Hiển thị kết quả phân đoạn thu được và kết
thúc.
3.4. Thiết kế hệ thống
Hệ thống cho phép người dùng phân đoạn ảnh X – quang nha khoa, xem
chi tiết kết quả cũng như thời gian chạy và các độ đo đánh giá chất lượng phân
cụm.
Hình 3.2: Biểu đồ usecase mô tả chức năng của ứng dụng
3.4.1. Chức năng phân đoạn ảnh X – quang nha khoa
- Tác nhân: Người dùng
- Input: ảnh X – quang nha khoa cần phân đoạn
- Output: ảnh đã được phân đoạn
- Mô tả chi tiết:
45
+ Người dùng chọn ảnh cần phân đoạn
+ Người dùng nhập các tham số
+ Hệ thống kiểm tra tham số và yêu cầu nhập lại cho đến khi
thỏa mãn
+ Người dùng chọn phân đoạn ảnh
+ Hệ thống thực hiện phân đoạn bằng thuật toán eSFCM và trả
lại kết quả.
Do begin
While (Tham số thỏa mãn)
- Biểu đồ trình tự:
Hình 3.3: Biểu đồ trình tự chức năng phân đoạn ảnh
3.4.2. Chức năng xem chi tiết kết quả
- Tác nhân: Người dùng
- Input: Ảnh đã được phân đoạn và người dùng chọn xem chi tiết kết
quả phân cụm (phân đoạn).
- Output: Kết quả chi tiết được hiển thị
46
- Mô tả chi tiết:
+ Người dùng chọn chức năng xem chi tiết kết quả
+ Hệ thống hiển thị kết quả chi tiết
- Biểu đồ trình tự:
Hình 3.4: Biểu đồ trình tự chức năng xem kết quả
3.4.3. Chức năng đánh giá chất lượng phân đoạn
- Tác nhân: Người dùng
- Input: Ảnh đã được phân đoạn và người dùng chọn các độ đo đánh
giá kết quả phân cụm (phân đoạn).
- Output: Kết quả đánh giá được hiển thị
- Mô tả chi tiết:
+ Người dùng chọn chức năng đánh giá kết quả
+ Hệ thống hiển thị kết quả đánh giá
47
- Biểu đồ trình tự:
Hình 3.5: Biểu đồ trình tự chức năng đánh giá kết quả
3.5. Minh họa các chức năng của ứng dụng
3.5.1. Giao diện chính của ứng dụng
Hình 3.6: Giao diện chính của phần mềm
48
3.5.2. Chọn ảnh cần phân đoạn
Hình 3.7: Chọn ảnh cần phân đoạn
3.5.3. Phân đoạn ảnh bằng thuật toán FCM
Hình 3.8. Kết quả phân đoạn bằng FCM
49
3.5.4. Phân đoạn ảnh bằng thuật toán nửa giám sát mờ
Hình 3.9. Kết quả phân đoạn bằng SSSFC
3.5.5. Chọn độ đo đánh giá kết quả phân cụm
Hình 3.10. Đánh giá kết quả phân đoạn
50
3.6. Đánh giá kết quả phân đoạn
Các độ đo được sử dụng để đánh giá độ chính xác của các thuật toán phân
đoạn ảnh. Trong phần cài đặt thực nghiệm, luận văn sử dụng các độ đo phân cụm sau:
Độ đo Davies-Bouldin (DB): có liên quan đến tiêu chuẩn tỷ số phương sai, dựa trên tỷ số giữa khoảng cách bên trong nhóm và khoảng cách bên ngoài nhóm. Đặc biệt, chất lượng của phân cụm được xác định bởi công thức sau:
𝑘 ∑ 𝐷𝑙 𝑙=1
𝐷𝐵 = (3.1) 1 𝑘
{𝐷𝑙,𝑚} (3.2)
𝑚)
𝑙 + 𝑑̅ 𝑑𝑚,𝑙
𝐷𝑙 = max 𝑙≠𝑚 (𝑑̅ (3.3) 𝐷𝑙,𝑚 =
𝑙, 𝑑̅
𝑚 là khoảng cách trung bình của các cụm l và m tương ứng,
Trong đó 𝑑̅
𝑑𝑚,𝑙 là khoảng cách giữa các cụm này. Cụ thể:
𝑙 =
𝑑̅ (3.4) 1 𝑁𝑙 ∑ ‖𝑥𝑖 − 𝑥̅𝑙‖; 𝑑𝑙,𝑚 = ‖𝑥̅𝑙 − 𝑥̅𝑚‖ 𝑥𝑖𝜖𝐶𝑙
Giá trị của DB càng nhỏ càng tốt
Độ đo Simplified Silhouete Width Criterion (SSWC): Là độ đo được tính
theo công thức:
𝑁 ∑ 𝑆𝑥𝑗 𝑗=1
𝑆𝑆𝑊𝐶 = (3.5) 1 𝑁
(3.6) 𝑆𝑥𝑗 = 𝑏𝑝,𝑗 − 𝑎𝑝,𝑗 𝑚𝑎𝑥{𝑎𝑝,𝑗, 𝑏𝑝,𝑗}
Trong đó 𝑎𝑝,𝑗 được định nghĩa là sự khác biệt của đối tượng p với cụm j của nó. Một cách tương tự, 𝑑𝑞,𝑗 là sự khác biệt của đối tượng q tới cụm j, 𝑞 ≠ 𝑝.
Độ đo PBM: Dựa trên khoảng cách của các cụm và khoảng cách giữa các
cụm với nhau. Độ đo PBM được tính toán theo công thức:
51
2
𝑘
𝑁
(3.7) 𝑃𝐵𝑀 = ( 𝐷𝐾) 1 𝑘 𝐸1 𝐸𝐾
𝑖=1
𝑙=1
(3.8) 𝐸1 = ∑‖𝑥𝑖 − 𝑥̅‖
, 𝐸𝐾 = ∑ ∑ ‖𝑥𝑖 − 𝑥̅𝑙‖ 𝑥𝑖𝜖𝐶𝑙
𝑙,𝑚=1,…,𝑘
𝐷𝐾 = max ‖𝑥̅𝑙 − 𝑥̅𝑚‖ (3.9)
Rõ ràng là trong độ đo PBM, giá trị càng cao thì hiệu năng của thuật toán càng cao. Do đó, phân hoạch tốt nhất nhận được khi PBM đạt giá trị cao nhất. Điều này xảy ra khi 𝐷𝐾 đạt cực đại còn 𝐸𝐾 đạt cực tiểu.
Độ đo IFV: Là độ đo được tính theo công thức
2
(3.10)
(3.11) ‖𝑉𝑘 − 𝑉𝑗‖ 𝑆𝐷𝑚𝑎𝑥 = max 𝑘≠𝑗
(3.12)
Giá trị của IFV càng lớn thì thuật toán càng hiệu quả.
KẾT LUẬN CHƯƠNG 3
Chương 3 đã mô tả quá trình xây dựng ứng dụng phân đoạn ảnh X – quang
nha khoa bằng phương pháp phân cụm mờ ban giám sát, cụ thể là thuật toán bán
giám sát mờ lai ghép: từ đặc tả yêu cầu, thiết kế đến triển khai cài đặt. Từ đó
minh họa một cách rõ ràng cách hoạt động, ứng dụng cũng như hiệu quả của
thuật toán phân cụm mờ trong phân đoạn ảnh X – quang nha khoa.Một số kết
quả của các ảnh phân đoạn cũng được đưa ra.
52
KẾT LUẬN
Với rất nhiều ý nghĩa trong thực tế, xử lý ảnh ngày càng thu hút sự quan
tâm đặc biệt từ các nhà khoa học trên thế giới, đặc biệt là trong xử lý các hình
ảnh y tế như X – quang, CT, v.v. Trong đó, phân đoạn ảnh được coi như bước
cơ bản và thiết yếu đầu tiên trước khi áp dụng các thao tác xử lý ảnh mức cao
hơn.
Xuất phát từ ý nghĩa thực tế đó, cùng với sự quan tâm và hứng thú với phân
đoạn ảnh nói chung và áp dụng vào phân đoạn ảnh nha khoa nói riêng, khóa
luận đã nghiên cứu và trình bày một số nội dung chính như sau:
- Tìm hiểu được những kiến thức tổng quan về giải phẫu răng, các loại ảnh
X – quang nha khoa, phân đoạn ảnh. Từ đó đặt bài toán phân đoạn ảnh X –
quang nha khoa và các ứng dụng thực tiễn của bài toán.
- Tổng hợp các phương pháp phân đoạn ảnh nha khoa điển hình, với mỗi
phương pháp đều đưa ra thuật toán, đánh giá và các ví dụ trực quan về từng
thuật toán. Từ đó cho chúng ta có cái nhìn từ tổng thể đến chi tiết các thuật toán
phân đoạn ảnh nha khoa hiện có.
- Cài đặt thuật toán phân cụm bán giám sát mờ lai ghép (Otsu - FCM –
eSFCM) để phân đoạn ảnh X – quang nha khoa. Trong đó có đưa ra các độ đo
(DB, PBM, SSWC) và thời gian chạy để đánh giá chất lượng của kết quả thu
được. Từ đó cho thấy tính hiệu quả của thuật toán phân cụm mờ ứng dụng trong
việc phân đoạn ảnh X – quang nha khoa.
Dựa trên những kết quả bước đầu đã đạt được, trong tương lai, đề tài có thể
được phát triển theo các hướng như sau:
- Tiếp tục cải tiến, xây dựng một phương pháp phân cụm mờ mới để đạt
được hiệu quả phân đoạn ảnh cao hơn.
- Phát triển hệ thống hỗ trợ chẩn đoán bệnh nha khoa, trong đó phân đoạn
ảnh là một bước thiết yếu để phân tích các đặc trưng và phát hiện các bệnh trên
răng.
53
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Đỗ Phúc (2006), Giáo trình khai phá dữ liệu , Nxb Đại học Quốc gia TP Hồ Chí
Minh.
[2] Nguyễn Thanh Thủy (2001), Khai phá dữ liệu, Nhà xuất bản Kỹ thuật và ứng
dụng.
[3] Hoàng Tử Hùng, Huỳnh Kim Khang, Ngô Thị Quỳnh Lan, Ngô Lê Thu
Thảo, Hoàng Đạo Bảo Trâm (2008), Giải phẫu Răng, Nhà xuất bản Y học, Hà
Nội.
[4] Bùi Công Cường (2001), Hệ mờ, mạng nơron và ứng dụng, Nhà xuất bản
khoa học và kỹ thuật, Hà nội.
[5] Doãn Tam Hòe (2005), Lý thuyết tối ưu và đồ thị, nhà xuất bản giáo dục.
[6] Trần Mạnh Tuấn, Phạm Huy Thông, Lê Hoàng Sơn, Nguyễn Đình Hóa
(2015), Đánh giá hiệu năng của thuật toán phân cụm mờ bán giám sát cho bài
toán phân đoạn ảnh nha khoa, Kỷ yếu Hội nghị Quốc gia lần thứ VIII về
Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR); Hà Nội.
Tiếng Anh
[6] Guojun Gan, Chaoqun Ma, Jianhong Wu (2007), Data Clustering, Theory,
Algorithms, and Applications, Society for Industrial and Applied Mathematics, United
States of America.
[7] Kiri Wagsta, Claire Cardie (2001), Constrained K-means Clustering with
Background Knowledge, Proceedings of the Eighteenth International Conference on
Machine Learning, page 577-584.
[8] Basu, S., Banerjee, A., Mooney, R. (2002), Semi–supervised clustering by
seeding, Proceedings of 19th International Conference on Machine Learning,
ICML.
[9] Sugato Basu, Mikhail Bilenko, Raymond J. Mooney (2004), A Probabilistic
Framework for Semi-Supervised Clustering, Proceedings of the Tenth ACM
54
SIGKDD International Conference on Knowledge Discovery and Khai phá dữ
liệu, page 59-68.
[10] Cui-Fang Gao, Xiao-Jun Wu, Song-Shun Zhang (2009), An improved semi-
supervised fuzzy clustering algorithm, Control and Decision, 25 (1), 115-120.
[11] Liang Chen, Xiaojun Wu, Cuifang Gao (2012), Semi-supervised Fuzzy
Clustering Algorithm Based on QPSO, Journal of Information & Computational
Science, page 93-101.
[12] Le Hoang Son, Tran Manh Tuan (2016) , A cooperative semi-supervised
fuzzy clustering framework for dental X-ray image segmentation, Expert Systems
With Applications, 46, pp. 380 – 393.
[13] Anil K. Jain (2010): Data clustering: 50 years beyond Kmeans. Pattern
Recognition Letters (PRL) 31(8):651-666.
[14] S. Basu, I. Davidson (2008), and K. L. Wagstaff, Constrained Clustering:
Advances in Algorithms, Theory, and Applications, Chapman and Hall/CRC
Data Mining and Knowledge Discovery Series, 1st edn.
[15] Bezdek, J. C. (1981), Pattern recognition with fuzzy objective function
algorithms, Kluwer Academic Publishers.
[16] Yasunori, E., Yukihiro, H., Makito, Y., & Sadaaki, M. (2009), On semi-
supervised fuzzy c-means clustering. In Fuzzy Systems, FUZZ-IEEE 2009. IEEE
International Conference on (pp. 1119-1124). IEEE.
[17] Yin, X., Shu, T., & Huang, Q. (2012), Semi-supervised fuzzy clustering
with metric learning and entropy regularization, Knowledge-Based
Systems, 35, 304-311.
[18] Y.C Hu, M.C Grossberg, and G. Mageras (2009), Survey of recent
volumetric medical image segmentation techniques, Biomedical Engineering,
InTech, Carlos Alexandre Barros de Mello (Ed.), ISBN: 978‑953‑307‑013‑1.
[19] Zhang, H., & Lu, J. (2009), Semi-supervised fuzzy clustering: A kernel-
based approach. Knowledge-Based Systems, 22(6), 477-481.
55
[20] Grira, N., Crucianu, M., and Boujemaa, N. (2008), Active semi-
supervised fuzzy clustering, Pattern Recognition, vol. 41, no. 5, pp. 1834-1844.
[21] Otsu, N. (1979), A threshold selection method from gray-level
histograms Automatica, 1(9), 62-66.
[22] Rad A. E., Mohd Rahim M. S., Rehman A., Altameem A. and Saba
T. (2013), Evaluation of current dental radiographs segmentation
approaches in computer-aided applications, IETE Technical Review, 30(3),
210-222.
56
PHỤ LỤC
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
1. Đọc ảnh:
function btn_open_Callback(hObject, eventdata, handles) [filename, pathname] = uigetfile({'*.jpg'}, 'Pick a deltal X - ray image'); set(handles.result_panel, 'visible', 'off'); set(handles.algorithms_panel, 'visible', 'off'); if filename ~= 0 IM = imread([pathname, filename]); axes(handles.original_img); imshow(IM); handles.num_of_data_point = size(IM(:, : , 1), 1) * size(IM(:, : , 1), 2); handles.filename = filename; set(handles.original_img,'UserData',IM); set(handles.final_img_panel, 'visible', 'off'); set(handles.result_panel, 'visible', 'on'); set(handles.num_of_clust, 'enable', 'on'); set(handles.num_of_clust,'UserData', 5); set(handles.num_of_clust,'string', '5'); set(handles.exponent, 'enable', 'on'); set(handles.exponent,'UserData', 2); set(handles.exponent,'string', '2'); set(handles.epsilon, 'enable', 'on'); set(handles.epsilon,'UserData', 0.005); set(handles.epsilon,'string', '0.005');
57
set(handles.max_num_iter, 'enable', 'on'); set(handles.max_num_iter,'UserData', 150); set(handles.max_num_iter,'string', '150'); set(handles.fcm_img_panel, 'visible', 'on'); else set(handles.num_of_clust, 'enable', 'off'); set(handles.exponent, 'enable', 'off'); set(handles.epsilon, 'enable', 'off'); set(handles.max_num_iter, 'enable', 'off'); end set(handles.final_img_panel, 'visible', 'off'); guidata(hObject, handles); * Nhập số lượng cụm: function num_of_clust_Callback(hObject, eventdata, handles) str = get(hObject,'string'); data = str2double(str); if isempty(data) || data < 1 || data > 15 || data ~= round(data) errordlg(strcat('The number of clusters must be a positive integer and should be less than 15'), 'Bad input'); set(hObject,'BackgroundColor','y'); else set(hObject,'BackgroundColor','w'); set(hObject,'UserData',data); end guidata(hObject, handles);
* Nhập tham số mờ:
function exponent_Callback(hObject, eventdata, handles) str = get(hObject,'string'); data = str2double(str); if isempty(data) || data < 1 errordlg('The weighting exponent must be a positive number', 'Bad input'); set(hObject,'BackgroundColor','y');
58
else set(hObject,'BackgroundColor','w'); set(hObject,'UserData',data); end guidata(hObject, handles);
* Nhập điều kiện dừng epsilon:
function epsilon_Callback(hObject, eventdata, handles) str = get(hObject,'string'); data = str2double(str); if isempty(data) || data < 0 errordlg('The minimum amount of improvement (eps) must be greater than 0. Example: 0.01, 0.006...', 'Bad input'); set(hObject,'BackgroundColor','y'); else set(hObject,'BackgroundColor','w'); set(hObject,'UserData',data); end guidata(hObject, handles);
* Nhập số vòng lặp tối đa:
function max_num_iter_Callback(hObject, eventdata, handles) str = get(hObject,'string'); data = str2double(str); if isempty(data) || data < 0 || data ~= round(data) errordlg('The maximum number of iterations must be a positive integer and greater than 0. Example: 50, 100, 200...', 'Bad input'); set(hObject,'BackgroundColor','y'); else set(hObject,'BackgroundColor','w'); set(hObject,'UserData',data); end
59
guidata(hObject, handles);
2. Thuật toán phân cụm mờ FCM:
function [center, U, obj_fcn] = FCM(data, cluster_n, options) global h; if nargin ~= 2 & 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, error('The exponent should be greater than 1!'); end end expo = options(1); max_iter = options(2); min_impro = options(3); display = options(4); obj_fcn = zeros(max_iter, 1); U = initfcm(cluster_n, data_n);
60
for i = 1:max_iter, [U, center, obj_fcn(i)] = stepfcm(data, U, cluster_n, expo); if display, fprintf('FCM:Iteration count = %d, obj. fcn = %f\n', i, obj_fcn(i)); end waitbar(i/max_iter, h); if i > 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
3. 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 <= 0.00000001) break; else for i = 1:C for j = 1:r V(i,j)= W(i,j); end end end if(dem>=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
4. 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)&(y
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<=N)&(l~=y)&(j~=z) for s=1:r d=d+power(X(k,s)-X(c,s),2); end if d~=0 tu=tu+U(i,c)*power(sqrt(d),-1); mau=mau+power(sqrt(d),-1); end end end end if mau~=0 SI(i,k)=tu/mau; else SI(i,k)=U(i,k); end d1=0; for s=1:r d1=d1+power(X(k,s)-V(i,s),2); end R1(i,k)=d1*(1-alpha1*exp(-SI(i,k))); end end for i=1:N tong1=0; tong2=0; for j=1:C d=0; for k=1:r d=d+power(X(i,k)-V(j,k),2); end tong1=tong1+(U1(j,i)*d)/(2*d+power(R1(j,i),2));
68
tong2=tong2+1/(2*(2*d+power(R1(j,i),2))); end lamda(i)=(tong1-1)/tong2; end for j=1:C for i=1:N d=0; for k=1:r d=d+power(X(i,k)-V(j,k),2); end UT(j,i)=(-lamda(i)+2*U1(j,i)*d)/(2*(2*d+power(R1(j,i),2))); end end saiso = 0; for i = 1:C for j = 1:N saiso = saiso + power(UT(i,j)-U(i,j),2); end end saiso = sqrt(saiso); if (saiso <= 0.01) break; else for i = 1:C for j = 1:N U(i,j)= UT(i,j); end end end if(dem>=2) break; end dem = dem + 1;
69
US=sum(U); end dem sum(US) ; J=0; tong1=0; tong2=0; tong3=0; tong4=0; end
* Xem kết quả phân cụm
function btn_ok_result_Callback(hObject, eventdata, handles) selected_index = get(handles.result_popupmenu, 'Value'); list = get(handles.result_popupmenu, 'String'); selected_string = list {selected_index}; switch selected_string case 'Gia tri ham muc tieu' msgbox(sprintf('Gia tri cua ham muc tieu: %.6f', handles.obj_fcn), 'Objective function'); case 'Tam' str = ''; for i = 1:1:get(handles.num_of_clust,'UserData') str = strcat(str, sprintf('\n\nTam cum %2d: %20f %20f %20f', i, handles.center(i, 1), handles.center(i, 2), handles.center(i, 3))); end msgbox(str, 'Tam cua cum'); case 'Ma tran do thuoc' f = figure('Name', 'Ma tran do thuoc', 'NumberTitle','off', 'Position',[300 300 500 250]); t = uitable(f); set(t, 'Data', handles.U, 'Position',[10 10 480 230]); case 'Thoi gian' msgbox(sprintf('Thoi gian: %f', handles.elapsed_time), 'Time'); case 'DB' DB_value = ValidityIndex('DB', handles.data,
70
get(handles.num_of_clust,'UserData'), handles.center, handles.U); msgbox(sprintf('Gia tri do do DB: %f', DB_value), 'Gia tri do do DB'); case 'IFV' IFV_value = ValidityIndex('IFV', handles.data, get(handles.num_of_clust,'UserData'), handles.center, handles.U); msgbox(sprintf('Gia tri do do IFV: %f', IFV_value), 'Gia tri do do IFV'); case 'PBM' PBM_value = ValidityIndex('PBM', handles.data, get(handles.num_of_clust,'UserData'), handles.center, handles.U); msgbox(sprintf('Gia tri do do PBM: %f', PBM_value), 'Gia tri do do PBM'); case 'SSWC' SWC_value = ValidityIndex('SWC', handles.data, get(handles.num_of_clust,'UserData'), handles.center, handles.U); msgbox(sprintf('Gia tri do do SSWC: %f', SWC_value), 'Gia tri do do SSWC'); end
5. Các độ đo đánh giá kết quả phân cụm:
function value = ValidityIndex(indexName, data, numClust, center, U) switch indexName case 'DB' value = DB(data, numClust, center, U); case 'IFV' value = IFV(data, numClust, center, U); case 'PBM' value = PBM(data, numClust, center, U); case 'SWC' value = SWC(data, numClust, U); otherwise value = nan; end
* Độ đo DB:
function DB_value = DB(data, numClust, center, U) maxU = max(U); S = zeros(1, numClust); for i = 1 : numClust
71
index = find(U(i,:) == maxU); for j = index S(i) = S(i) + norm(data(j, :) - center(i, :)) ^ 2; end S(i) = sqrt(S(i)/size(index, 2)); end DB_value = 0; for i = 1:numClust maxSM = 0; for j = 1:numClust if j ~= i temp = (S(i) + S(j))/norm(center(i, :) - center(j, :)); maxSM = max(maxSM, temp); end end DB_value = DB_value + maxSM; end DB_value = DB_value/numClust;
* Độ đo IFV:
function IFV_value = IFV(data, numClust, center, U) sigmaD = 0; sum = 0; sizeData = size(data,1); for i = 1:numClust tg1 = 0; tg2 = 0; for j = 1:sizeData tg1 = tg1 + log(U(i, j))/log(2); tg2 = tg2 + U(i, j)^2; sigmaD = sigmaD + norm(data(j, :) - center(i, :))^2; end tg = (log(numClust)/log(2) - tg1/sizeData)^2; tg2 = tg2/sizeData;
72
sum = sum + tg * tg2; end sigmaD = sigmaD/(numClust * sizeData); calcSDmax = 0; for i = 1:numClust-1 for j = i+1:numClust calcSDmax = max(calcSDmax, norm(center(i, :) - center(j, :))^2); end end IFV_value = (sum * calcSDmax) / (sigmaD * numClust);
* Độ đo PBM:
function t = calcSumDistDataPoint2X(data, X) temp = data - X(ones(size(data, 1), 1), :); temp = temp.^2; temp = sum(temp, 2); temp = sqrt(temp); t = sum(temp); function PBM_value = PBM(data, numClust, center, U) E_1 = calcSumDistDataPoint2X(data, mean(data)); maxU = max(U); E_k = 0; for i = 1 : numClust index = find(U(i,:) == maxU); clustData = data(index, :); E_k = E_k + calcSumDistDataPoint2X(clustData, center(i, :)); end D_k = 0; for i = 1:numClust-1 for j = i+1:numClust D_k = max(D_k, norm(center(i, :) - center(j, :))); end
73
end PBM_value = (E_1 * D_k / (numClust * E_k)) ^ 2;
* Độ đo SWC:
function SWC_value = SWC(data, numClust, U) maxU = max(U); SWC_value = 0; for i = 1 : numClust index = find(U(i,:) == maxU); if size(index, 2) == 1 continue; end clustData = data(index, :); for j = index a_i_j = calcSumDistDataPoint2X(clustData, data(j, :)) / size(index, 2); b_i_j = 10^6; for k = 1 : numClust if k ~= i index_k = find(U(k,:) == maxU); clustData_k = data(index_k, :); d_k_j = calcSumDistDataPoint2X(clustData_k, data(j, :)) / size(index_k, 2); b_i_j = min(b_i_j, d_k_j); end end SWC_value = SWC_value + (b_i_j - a_i_j) / max(a_i_j, b_i_j); end end SWC_value = SWC_value / size(data, 1);
74