Professional Documents
Culture Documents
Em xin cam đoan nội dung của đồ án tốt nghiệp này không phải là bản sao chép
của bất cứ đồ án hoặc công trình nào đã có từ trước. Nếu vi phạm em xin chịu mọi hình
thức kỷ luật của Khoa.
1
Bảng phân công nhiệm vụ
PHẠM ĐỨC THIỆN Tìm hiểu nội dung về chương trình giao
11DT3 diện GUI, xây dưng cơ sở dữ liệu mẫu
và chạy thử nghiệm, viết chương trình
Matlab tiền xử lý, lấy ngưỡng trong xử
lý ảnh, làm báo cáo.
Mục lục
MỤC LỤC
Lời cam đoan ............................................................................................................................ 1
Bảng phân công công việc ......................................................................................... 2
Mục lục ............................................................................................................................ 3
Danh mục hình ảnh........................................................................................................................... 5
Các từ viết tắt ....................................................................................................................... 7
Lời mở đầu........................................................................................................................................... 8
Chương 1 Tổng quan, cơ sở lý thuyết và các thuật toán xử lý ảnh MRI não…… 12
Giới thiệu về ảnh MRI và phân loại ảnh não............................................................................ 12
Giới thiệu về các thuật toán liên quan đến xử lý ảnh ..............................................................14
Thuật toán nhị phân và phân ngưỡng otsu .................................................................... 14
Nhị phân ảnh 14
Thuật toán phân ngưỡng Otsu........................................................................................... 14
Biến đổi wavelet rời rạc ....................................................................................................16
Phân tích wavelet, các xấp xỉ và chi tiết ....................................................................... 16
Phân tích đa phân giải ........................................................................................................... 18
Một số ứng dụng nổi bật của wavelet ......................................................................................... 20
Thuật toán PCA 21
Ma trận đồng hiện mức xám ......................................................................................................... 24
Máy vecto hỗ trợ SVM ........................................................................................................................26
Bài toán nhị phân ............................................................................................................................. 26
SVM cho bài toán phân lớp tuyến tính............................................................................ 26
SVM biên cứng 28
SVM biên mềm 30
SVM cho phân lớp tuyến tính ...........................................................................................30
3
Mục lục
Chương 2: Xây dựng chương trình phân loại MRI não ………………………… 35
2.1 Đề xuất tổng quan chương trình ………………………………….. 35
2.2 Xây dựng các thuật toán ………………………………………….. 36
2.2.1 Các thuật toán giảm đặc trưng ……………………………………. 36
2.2.2 Trích xuất đặc trưng sử dụng ma trận đồng mức xám ( GLCM) …. 43
2.2.3 Phâm lớp sử dụng SVM …………………………………………... 44
2.3 Kết luận chương …………………………………………………... 44
Chương 3: Thực nghiệm và đánh giá kết quả ……………………………………. 45
3.1 Giới thiệu chương …………………………………………………. 45
3.2 Giao diện chương trình ……………………………………………. 45
3.3 Kết quả thực nghiệm ………………………………………………. 46
3.3.1 Cơ sở dữ liệu kiểm tra …………………………………………….. 46
3.3.2 Kết quả thực nghiệm với mẫu u lành tính ………………………… 47
3.3.3 Kết quả thực nghiệm với mẫu u ác tính …………………………... 49
3.4 Mô hình đánh giá …………………………………………………. 50
3.5 Phân tích thời gian thực hiện ……………………………………... 52
3.6 Kết luận chương …………………………………………………... 53
Kết luận và hướng phát triển đề tài ..............................................................................54
Tài liệu tham khảo ......................................................................................................................... 55
Phụ lục...................................................................................................................... 57
4
Danh mục hình ảnh
Hình 1.1 Biến đổi wavelet rời rạc của tín hiệu ..........................................................16
Hình 1.2 Quá trình phân tích biến đổi tín hiệu dung DWT một chiều ................... 17
Hình 1.3 Minh họa DWT hai chiều cho ảnh ......................................................................18
Hình 1.4 Phân tích tín hiệu đa mức............................................................................ 19
Hình 1.5 Minh họa DWT kiểu dynamic mức 3 ........................................................19
Hình 1.6 Ảnh DWT của MRI não ........................................................................................ 20
Hình 1.7 Minh họa PCA: phép chiếu lên các trục tọa độ khác nhau có thể cho cùng
cách nhìn rất khác nhau về cùng một dữ liệu ........................................... 22
Hình 1.8 Minh họa PCA: tìm các trục tọa độ mới sao cho dữ liệu có độ biến thiên..
cao nhất...................................................................................................................... 22
Hình 1.9 Phân chia biên rộng ..................................................................................... 27
Hình 1.10 Ảnh hưởng của hằng số biên mềm C trên ranh giới quyết định ……… 29
Hình 1.11 SVM cho phân lớp phi tuyến ...................................................................... 31
Hình 1.12 Ảnh hưởng đa chiều Gaussian kernel cho một giá trị cố định đối với …33
các hằng số biên mềm ……………………………………………………
Hình 2.1 Sơ đồ chung của hệ thống xử lý và phân loại ảnh .......................................... 35
Hình 2.2 Ảnh MRI sau khi biến đổi DWT ba mức ................................................... 37
Hình 2.3 Tập cơ sở dữ liệu hình ảnh MRI não .................................................................. 38
Hình 3.1 Giao diện chương trình ................................................................................45
Hình 3.2 Các mẫu ảnh bệnh MRI não ................................................................................. 47
Hình 3.3 Kết quả thực nghiệm với u lành tính .......................................................... 47
Hình 3.4 Kết quả thực nghiệm với u lành tính khác ....................................................... 48
Hình 3.5 Kết quả thực nghiệm đo tỉ lệ % chính xác của 2 Kernel ........................... 49
5
Danh mục hình ảnh
6
Các từ viết tắt
7
Lời mở đầu
LỜI MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay, trong dòng chảy của cuộc sống hối hả dường như con người không thể
kiểm soát được những loại thực phẩm mà mình ăn phải, những thực phẩm có hại cho
sức khỏe, những thực phẩm bẩn, đồ ăn nhanh đang ngày càng gia tăng. Điều này đã
gây phát sinh nhiều căn bệnh cho con người, vì vậy mục đích của y tế là thiết kế một
hệ thống nhằm chẩn đoán bệnh một cách nhanh và chính xác. Vì vậy một trong những
kĩ thuật phổ biến nhất được sử dụng trong lĩnh vực y tế là kĩ thuật “Xử Lý Ảnh“ , kĩ
thuật này có thể sử dụng nhiều phương pháp khác nhau nhằm cải thiện hiệu suất và độ
chính xác của hệ thống. Một trong những bệnh nguy hiểm nhất trên thế giới hiện nay là
bệnh u não. Nó xảy ra do sự phát triển bất thường của các tế bào trong não. Những
khối u não có nhiều hình dạng và kích cỡ. Các khối u não có thể lành tính hoặc ác tính.
Các nguồn chính để có được hình ảnh y tế là ảnh X-quang và ảnh MRI. MRI là tốt nhất
được biết đến với đặc điểm của nó như sự khác biệt vượt trội các mô mềm, độ phân
giải không gian cao và độ tương phản. Nó không sử dụng bức xạ ion hóa có hại cho
bệnh nhân, các khối u lành tính có cấu trúc đồng nhất và không chứa các tế bào ung
thư. Khối u ác tính là có thể có một cấu trúc không đồng nhất và có chứa tế bào ung
thư. Những tế bào này có thể được điều trị bằng các kỹ thuật như xạ trị, hóa trị liệu
hoặc một sự kết hợp và họ là đe dọa tính mạng, lĩnh vực y tế có thể vượt trội hơn bằng
cách sử dụng công nghệ chẩn đoán tự động và hiệu quả trong một thời gian ngắn. Với
vai trò và ý nghĩa to lớn mà việc phân loại ảnh u não mang lại, chúng em chọn đề tài
“Phân loại ảnh MRI u não” để phần nào hiểu được nguyên lý, ý nghĩa và có thể áp
dụng được đề tài vào thực tế.
8
Lời mở đầu
Đồ án gồm 3 chương:
Chương 1: Tổng quan, cơ sở lý thuyết và các thuật toán về xử lý ảnh
1) Giới thiệu về ảnh MRI và phân loại ảnh não .
2) Giới thiệu về các thuật toán liên quan đến xử lý ảnh
a. Nhị phân ảnh và thuật toán phân ngưỡng Otsu
b. Thuật toán biến đổi wavelet rời rạc (DWT)
c. Thuận toán phân tích thành phần chính (PCA)
d. Ma trận đồng hiện mức xám (GLCM )
e. Vector máy hỗ trợ (SVM)
f. Kết luận chương
Chương 2 : Xây dựng chương trình phân loại ảnh MRI não
1) Đề xuất sơ đồ tổng quan chương trình
2) Xây dựng các thuật toán
a. Các thuật toán giảm đặc trưng
b. Trích xuất đặc trưng sử dụng ma trận đồng mức xám ( GLCM)
c. Phân lớp ảnh sử dụng thuật toán SVM
3) Kết luận chương
9
Lời mở đầu
phân loại ảnh. Từ kết quả mô phỏng, ta có thể nhận ra ưu, nhược của các thuật toán xử
lý nhiễu, phân đoạn và phân loại ảnh.
4. Kết quả đồ án
Xây dựng hệ thống phân loại u não để nhận biết ụ nào là ác tính hoặc lành tính
Xử lý các ảnh MRI đầu vào khác nhau gồm 2 loại : ảnh não có u ác tính và ảnh
não có u lành tính.
10
Lời mở đầu
Em xin gửi lời cảm ơn đến cô Nguyễn Thị Anh Thư đã cung cấp tài liệu, hướng
dẫn em giải quyết những khó khăn gặp phải trong nội dung của đồ án.Trong thời gian
thực hiện đồ án, với những kiến thức hạn hẹp nên không tránh khỏi thiếu sót. Kính
mong các Thầy, Cô chỉ bảo và góp ý thêm để đồ án được hoàn thiện hơn.
11
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Chụp cộng hưởng từ (MRI) là một kỹ thuật cho ra những hình ảnh với chất lượng
ảnh cao của cấu trúc giải phẫu cơ thể người [1], đặc biệt là trong não,và cung cấp thông
tin hữu ích cho chẩn đoán lâm sàng và nghiên cứu y sinh học. Các giá trị chẩn đoán của
MRI được đánh giá rất cao về phân loại tự động và chính xác
Biến đổi wavelet là một công cụ hữu ích cho việc trích xuất các đặc trưng của
ảnh MRI não, bởi vì nó cho phép phân tích các hình ảnh ở nhiều cấp độ phân giải khác
nhau bằng phương pháp đa phân giải. Tuy nhiên, kỹ thuật này đòi hỏi lượng lưu trữ lớn
và tốn nhiều chi phí . Để giảm chiều vector và tăng khả năng phân biệt, phân tích thành
phần chính (PCA) đã được sử dụng. PCA[5] được dùng vì nó là một công cụ hữu ích
để giảm chiều không cần thiết của dữ liệu làm cho việc tính toán trở nên dễ dàng hơn
rất nhiều. Trong những năm gần đây, các nhà nghiên cứu đã đề xuất rất nhiều cách tiếp
cận để phân loại ảnh chính là phương pháp học máy, mà rơi vào hai loại. Một loại được
gọi là học máy có giảm sát, bao gồm cả máy vector hỗ trợ (SVM)[17] và K- hàng xóm
gần nhất (k-NN) . Còn loại khác chính là học máy không giám sát thì ta có các kĩ thuật
như SOFM và fuzzy c-mean. Trong khi tất cả các phương pháp này đều đạt được kết
quả tốt, những phân loại có giám sát thực hiện tốt hơn so với phân loại không có giảm
sát về độ chính xác phân loại. Tuy nhiên, độ chính xác phân loại của hầu hết các
phương pháp hiện có thấp hơn 95%, vì vậy mục tiêu của bài viết này là để tìm một
phương pháp có độ tin cậy và chính xác cao hơn.Trong số các phương pháp học máy,
phương pháp SVM là phương pháp học máy có giảm sát. So với các phương pháp
khác như mạng neural, cây quyết định, và mạng Bayes, SVM có lợi thế đáng kể độ
chính xác cao, dễ kiểm soát việc tính toán, và trực tiếp giải hình học. Bên cạnh đó, nó
không cần một số lượng lớn các mẫu huấn luyện để tránh vừa quá dữ liệu
Chụp cộng hưởng từ (MRI) não là kỹ thuật chẩn đoán hình ảnh an toàn và không
gây đau nhờ sử dụng từ trường và sóng radio để tạo ra hình ảnh chi tiết của não và thân
não. Chụp cộng hưởng từ khác với chụp CT (CAT scan,chụp cắt lớp điện toán) ở chỗ
nó không sử dụng bức xạ.Máy bao gồm một nam châm hình bánh rán lớn với một
đường hầm ở trung tâm.. Bệnh nhân được đặt trên bàn có thể trượt vào trong đường
hầm. Một số trung tâm có các máy cộng hưởng từ mở (open MRI) có khoảng hở lớn
hơn để giảm bớt lo lắng cho những bệnh nhân sợ khoang kín (claustrophobia). Trong
12
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
lúc chụp, sóng radio đập vào các vị trí từ của các nguyên tử trong cơ thể, các tín hiệu
được thu nhận bởi một ăng-ten mạnh và gửi đến một máy tính. Máy tính thực hiện
hàng triệu phép tính, cho kết quả rõ ràng hình ảnh đen và trắng các mặt cắt ngang của
cơ thể. Những hình ảnh này có thể được chuyển đổi thành hình ảnh ba chiều (3-D) của
vùng được khảo sát. Điều này giúp xác định các trục trặc và bất thường trong não và
thân não khi khảo sát tập trung vào những vùng này.
MRI có thể phát hiện một loạt các tình trạng bệnh lý của não như nang, khối u, xuất
huyết, phù nề, các bất thường về cấu trúc hoặc trong quá trình phát triển, các bệnh
nhiễm trùng, tình trạng viêm, hoặc các vấn đề về mạch máu. Nó có thể xác định thông
động tĩnh mạch (shunt) và phát hiện tổn thương não do chấn thương hay đột quỵ.
MRI não có thể hữu ích trong việc đánh giá các vấn đề khác như đau đầu dai dẳng,
chóng mặt, yếu hoặc liệt cơ, suy giảm thị lực (nhìn mờ) hoặc động kinh, và nó có thể
giúp phát hiện các bệnh mãn tính của hệ thần kinh, chẳng hạn như bệnh xơ cứng rải rác
hay đa xơ cứng (Multiple Sclerosis). Trong một số trường hợp, chụp cộng hưởng từ có
thể cung cấp hình ảnh rõ ràng của các thành phần nhu mô não mà không thể thấy rõ
trên phim X-quang, CT scan hoặc siêu âm, điều này làm cho chụp cộng hưởng từ có
giá trị đặc biệt trong việc chẩn đoán các bệnh lý ở tuyến yên và thân não.
13
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
14
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
điểm ảnh vào hai lớp là lớp đối tượng và lớp nền. Giá trị ngưỡng được xác định bằng
cách cho “khoãng cách” giữa các điểm trong mỗi lớp là nhỏ nhất, điều này tương
đương với khoãng cách giữa hai lớp là lớn nhất.Khi thống kê các mức xám có trong
ảnh ban đầu dựa trên hàm mật độ được cho bởi công thức:
p r q
n
q 0,1,2,...,L -1
r q
n
Trong đó: n - tổng số pixel trên ảnh;
nq - tổng số pixel có mức độ xám rq;
L - tổng số ngưỡng độ xám trên ảnh;
Chúng ta nhận được một đồ thị biểu diễn mức xám có hai đỉnh, một đỉnh biểu
diễn cho những vùng được xem là đối tượng và một đỉnh biểu diễn cho những vùng
được xem là nền ảnh. Theo Otsu, ngưỡng T tốt nhất được chọn là giá trị mà tại đó nó
làm sự chênh lệch giữa hai đoạn trên đồ thị đạt cực đại. Giá trị cực đại được định nghĩa
như sau:
Giả sử có ngưỡng T được chọn sao cho C0 là tập hợp các pixel có ngưỡng từ
[0,1,…,k-1] và C1 là tập hợp các pixel có ngưỡng từ [k,k+1,…,L-1]. Phương pháp Otsu
lựa chọn ngưỡng T sao cho độ lệch chuẩn 2B giữa các lớp là lớn nhất. Độ lệch chuẩn
2 2 2 ,
B 0 0 T 1 1 T
Trong đó:
k 1 L1
0 p q rq 1 p q rq ;
q0 qk
0 qp q rq / 0
k1
q0
L1 L1
1 qp q rq / 1 ; T qp q rq
qk q0
15
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Việc tính toán các hệ số wavelet tại tất cả các tỉ lệ là một công việc hết sức phức
tạp, sẽ tạo ra một lượng dữ liệu khổng lồ. Để đơn giản người ta chỉ chọn ra một tập nhỏ
các giá trị tỉ lệ và các vị trí để tiến hành tính toán, cụ thể lựa chọn tiến hành tại các tỷ lệ
và các vị trí trên cơ sở luỹ thừa cơ số 2 thì kết quả thu được sẽ hiệu quả và chính xác
hơn rất nhiều. Quá trình chọn các tỷ lệ và các vị trí để tính toán như trên tạo thành lưới
nhị tố (dyamic). Một quá trình phân tích như thế hoàn toàn có thể thực hiện được nhờ
biến đổi wavelet rời rạc (discrere wavelet transform/ DWT).
Hình 1.1: Biến đổi wavelet rời rạc của tín hiệu
16
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Do đó, việc tính toán biến đổi DWT thực chất là sự rời rạc hoá biến đổi
Wavelet liên tục (CWT); việc rời rạc hoá được thực hiện với sự lựa chọn các hệ số a
và b như sau:
a=2m, b=2mn m, n
Có thể hiểu phép biến đổi Wavelet rời rạc – DWT như là áp dụng một tập
các bộ lọc thông cao và thôngthấp. Hình 1.1 minh hoạ dạng tổng quát của biến đổi
DWT một chiều. Theo đó tín hiệu nguyên gốc được cho đi qua các bộ lọc thông cao
H (highpass) và thông thấp L (lowpass) rồi được lấy mẫu xuống hệ số 2 tạo thành
biến đổi DWT mức1.
Hình 1.2: Quá trình phân tích tín hiệu dùng biến đổi DWT một chiều
Từ biến đổi DWT một chiều có thể mở rộng định nghĩa biến đổi hai chiều
theo cách: sử dụng các bộ lọc riêng biệt, thực hiện biến đổi DWT một chiều đối với
dữ liệu vào (ảnh) theo hàng rồi kế tiếp thực hiện theo cột.
Sau khi thực hiện biến đổi DWT lần lượt như vậy ta sẽ tạo ra 4 nhóm hệ số
biến đổi. Quá trình biến đổi DWT hai chiều có thể minh hoạ như hình 1.4, trong đó 4
nhóm hệ số là: LL, HL, LH, HH (chữ cái đầu tiên tương ứng là thực hiện lọc theo
hàng, chữ cái thứ hai tương ứng thực hiện lọc theo cột).
17
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
LL HL
DWT DWT
ẢNH L H
LH HH
Vào năm 1986, Stephane Mallat và Yves Meyer lần đầu tiên đặt ra ý tưởng
phân tích đa phân giải (MRA : multire solution analysis) [13,25,38], vào phạm vi
phân tích wavelets. Đây là một ý tưởng mới và đáng chú ý nhằm giải quyết hình
thức tổng quát trong việc xây dựng cơ sở trực giao của wavelets. Hơn nữa phân tích
đa phân giải là trung tâm của tất cả các phép xây dựng nên hàm cơ sở wavelets.
Khi nhìn bức ảnh, một cách tổng quát chúng ta thấy sự liên kết của những vùng
tương quan cấu trúc và mức độ xám mà kết hợp thành hình dạng đối tượng. Nếu đối
tượng nhỏ hoặc sự tương phản thấp thì thông thường chúng ta khảo sát chúng ở độ
phân giải cao. Nếu đối tượng có kích thước lớn hoặc có độ tương phản cao thì
chúng ta khảo sát chúng dưới tầm quan sát thô. Nếu cả đối tượng có kích thước vừa
và nhỏ - hoặc có độ tương phản cao và thấp, được biểu diễn cùng lúc thì ta phải khảo
sát chúng ở vài độ phân giải khác nhau. Quá trình phân tích DWT được lặp lại, các
xấp xỉ hoàn toàn được tách ra, do đó một tín hiệu được phân tích thành nhiều thành
phần phân giải khác nhau, tiến trình được thực hiện theo hình 1.4 như sau:
18
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
19
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Thì đối với Đồ án này em tiến hành biến đổi 3 mức. Sau khi ta dùng biến đổi wavelet
rời rạc phân hủy 3 thì làm giảm đáng kể kích thước hình ảnh não đầu vào. Kích thước
của ảnh từ 256x 256 chỉ còn 32 x 32 = 1024.
Do đặc điểm của mình, wavelet đặc biệt tốt khi sử dụng để nén hay phân tích
các tín hiệu không dừng, đặc biệt là tín hiệu ảnh số và các ứng dụng nén tiếng
nói, nén dữ liệu. Việc sử dụng các phép mã hoá băng con, băng lọc số nhiều
nhịp và biến đổi Wavelet rời rạc tương ứng với loại tín hiệu cần phân tích có thể
mang lại những hiệu quả rất rõ rệt trong nén tín hiệu. Do tính chất chỉ tồn tại
trong các khoảng thời gian rất ngắn (khi phân tích tín hiệu trong miền thời gian
tần số) mà các hệ số của biến đổi Wavelet có khả năng tập trung năng lượng rất
tốt vào các hệ số biến đổi. Các hệ số mang thông tin chi tiết của biến đổi
Wavelet thường rất nhỏ và có thể bỏ qua mà không ảnh hưởng tới việc mã hoá
dữ liệu (trong phương pháp mã hoá ảnh hay tiếng nói là những tín hiệu cho
phép mã hoá có tổn thất thông tin).
20
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Khử nhiễu
Tính chất của biến đổi Wavelet mà chúng ta đã xét tới trong phần ứng dụng
cho nén tín hiệu được mở rộng bởi Iain Johnstone và David Donohos trong các
ứng dụng khử nhiễu cho tín hiệu. Phương pháp khử nhiễu này được gọi là
Wavelet Shrinkage Denoising (WSD). Ý tưởng cơ bản của WSD dựa trên việc
tín hiệu nhiễu sẽ lộ rõ khi phân tích bằng biến đổi Wavelet ở các hệ số biến đổi
bậc cao. Việc áp dụng các ngưỡng loại bỏ tương ứng với các bậc cao hơn của
hệ số Wavelet sẽ có thể dễ dàng loại bỏ nhiễu trong tín hiệu.
Sở dĩ Wavelet được ứng dụng trong mã hoá nguồn và mã hoá kênh vì trong mã
hoá nguồn thì chúng ta cần khả năng nén với tỷ lệ nén cao còn trong mã hoá
kênh thì cần khả năng chống nhiễu tốt. Biến đổi Wavelet kết hợp với một số
phương pháp mã hoá như mã hoá Huffman hay mã hoá số học có thể thực hiện
được cả hai điều trên. Vì thế sự sử dụng biến đổi Wav elet trong mã hoá nguồn
và mã hoá kênh là rất thích hợp.
21
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Hình 1.7: Minh họa PCA:phép chiếu lên các trục tọa độ khác nhau có thể
cho cùng cách nhìn rất khác nhau về cùng một dữ liệu.
Một ví dụ kinh điển là hình ảnh về con lạc đà. Cùng là một con lạc đà nhưng nếu
nhìn từ bên hông thì ta có được đầy đủ thông tin nhất, trong khi nhìn từ phía trước thì
thật khó để nói nó là lạc đà.Một ví dụ thuyết phục hơn được minh họa trong hình sau:
Hình 1.8 Minh họa PCA Tìm các trục tọa độ mới sao cho dữ liệu có độ biến thiên cao
nhất.
Giả sử tập dữ liệu ban đầu (tập điểm màu xanh) được quan sát trong không gian
3 chiều (trục màu đen) như hình bên trái. Rõ ràng 3 trục này không biểu diễn được tốt
nhất mức độ biến thiên của dữ liệu. Do đó, PCA sẽ tìm hệ trục tọa độ mới (là hệ trục
màu đỏ trong hình bên trái). Sau khi tìm được không gian mới, dữ liệu sẽ được chuyển
22
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
sang không gian này để được biểu diễn như trong hình bên phải. Rõ ràng hình bên phải
chỉ cần 2 trục tọa độ nhưng biểu diễn tốt hơn độ biến thiên của dữ liệu so với hệ trục 3
chiều ban đầu. Một điểm rất tốt nữa của PCA là các trục tọa độ trong không gian mới
luôn đảm bảo trực giao đôi một với nhau, mặc dù trong không gian ban đầu, các trục có
thể không trực giao.
𝑎1 𝑏1
𝑥= (𝑎2)→𝑔𝑖ả𝑚𝑐ℎ𝑖ề𝑢→𝑦= (𝑏2)𝑣ớ𝑖𝑘≪𝑛
…. ….
𝑎𝑛 𝑏𝑛
Giả sử ta cần giảm số chiều của tập mẫu huấn luyện n chiều x xuống còn k chiều
y với k<<n.
Ưu điểm:
- Tìm được các đặc tính tiêu biểu cho một động tác mà không cần phải xác định
các thành phần và mối liên hệ giữa chúng trên động tác đó.
- Đối với các ảnh đầu vào có độ phân giải cao, thuật toán vẫn thực hiện tốt do
ảnh đầu vào được PCA thu gọn thành một ảnh mới có kích thước rất nhỏ.
- Khối lượng tính toán không nhiều.
- PCA có thể kết hợp với các phương pháp khác (như mạng nơ-ron…) để mang
lại hiệu quả nhận dạng cao hơn.
23
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
- PCA làm giảm đáng kể lượng thông tin thừa của dữ liệu.
Nhược điểm:
- PCA phân loại theo chiều phân bố lớn nhất của tập vector. Tuy nhiên, không
phải bao giờ chiều phân bố lớn nhất đều mang lại hiệu quả cao nhất cho nhận
dạng.
- PCA rất nhạy với nhiễu.
Haralick đã đề nghị một tập hợp gồm 14 đặc trưng có thể tính toán được từ ma
trận đồng hiện mức xám GLCM có thể được sử dụng để phân lớp kết cấu hình ảnh.
Một số tính năng quan trọng có thể kể đến như năng lượng (energy), độ tương phản
(contrast), entropy, độ tương đồng (correlation), tính đồng nhất (homogeneity).
Đặc trưng năng lượng: Đặc trưng năng lượng F1 được tính toán như sau:
Công thức này đo lường tính đồng nhất cục bộ trong ảnh. Giá trị của công thức F 1
là cao khi ảnh có tính đồng đều về giá trị mức độ xám và nó sẽ có giá trị thấp nếu ảnh
24
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
không đồng đều về mức độ xám. Giá trị của F1 nằm trong khoảng từ 0 đến 1. Nếu F1 =
1 thì ảnh có giá trị mức xám đều.
Độ tương phản: Độ tương phản F2 được tính như sau:
Công thức này cho chúng ta biết được số lượng điểm ảnh có mức độ xám biến đổi
cục bộ trong ảnh.Vì vậy, giá trị của F2 cao thường tập trung dọc theo đường chéo của
ma trận GLCM. Đối với ảnh có giá trị mức xám đều thì giá trị độ tương phản là bằng 0,
đây là giá trị tối thiểu của độ tương phản. Nếu ảnh không có sự đồng đều về giá trị mức
xám càng nhiều thì giá trị độ tương phản càng tăng. Giá trị F2 nằm trong khoảng [0
(size(GLCM,1)-1)2] có giá trị cao tương đối khi những giá trị cao của ma trận gần với
đường chéo chính
Độ tương đồng: độ tương quan đo tương quan giữa các phần tử của ma trận, khi
giá trị này cao thì ảnh phức tạp hơn
Trong đó, i, j và i, jlần lượt là giá trị trung bình và độ lệch chuẩn của tổng hàng và
Tham số này phân tích sự phụ thuộc tuyến tính mức độ xám của các điểm ảnh lân cận
nhau. Công thức F3 là một thước đo tuyến tính sự phụ thuộc tông màu xám trong ảnh.
Giá trị của F3 nằm trong khoảng từ -1 đến 1.
25
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Entropy đo lường tính ngẫu nhiên của các phần tử của ma trận GLCM. Giá trị
của entropy là tối đa bằng 1 khi các phần tử trong ma trận bằng nhau, entropy bằng 0
nếu tất cả các giá trị trong ma trận là khác nhau.
Tính đồng nhất: Tính đống nhất F5 được tính toán như sau:
Phân lớp (classification) là một tiến trình xử lý nhằm xếp các mẫu dữ liệu hay
các đối tượng vào một trong các lớp đã được định nghĩa trước. Các mẫu dữ liệu hay
các đối tượng được xếp vào các lớp dựa vào giá trị của các thuộc tính (attributes) cho
một mẫu dữ liệu hay đối tượng. Sau khi đã xếp tất cả các đối tượng đã biết trước vào
các lớp tương ứng thì mỗi lớp được đặc trưng bởi tập các thuộc tính của các đối tượng
chứa trong lớp đó. Quá trình phân lớp còn được gọi là quy trình gán nhãn cho các tập
dữ liệu. Nhiệm vụ của bài toán phân lớp dữ liệu là cần xây dựng mô hình (bộ) phân lớp
để khi có một dữ liệu mới vào thì mô hình phân lớp sẽ cho biết dữ liệu đó thuộc lớp
nào. Có nhiều cách để biểu diễn một mô hình phân lớp và có rất nhiều thuật toán giải
quyết nó. Các thuật toán phân lớp tiêu biểu bao gồm như mạng neural, cây quyết định,
suy luận quy nạp, mạng Beyesian, Support Vector Machine (SVM). Trong các kỹ thuật
đó, SVM được coi là công cụ mạnh, phổ biến và đặc biệt thích hợp cho phân lớp dữ
liệu lớn và nhiều chiều.
SVM cho bài toán phân lớp tuyến tính
Hình thức đơn giản của việc phân lớp là phân lớp nhị phân: phân biệt giữa các
đối tượng thuộc về một trong hai lớp: dương (+1)hoặc âm (-1). SVMs sử dụng hai khái
niệm để giải quyết vấn đề này: phân lớp biên rộng và hàm kernel. Ý tưởng của phân
lớp biên rộng có thể được minh họa bởi sự phân lớp của các điểm trong không gian hai
26
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
chiều (Hình 1). Một cách đơn giản để phân lớp các điểm này là sử dụng một đường
thẳng để phân tách các điểm nằm ở một bên là dương và các điểm bên kia là âm. Nếu
có hai đường thẳng phân chia tốt thì ta có thể phân tách khá xa hai tập dữ liệu (Hình 1
và 2). Đây là ý tưởng về sự phân chia biên rộng.
Trong phần này, ý tưởng về phân lớp tuyến tính sử dụng SVM được giới thiệu.
Các dữ liệu bao gồm các đối tượng có nhãn là một trong hai nhãn. Để thuận tiện, giả
định rằng các nhãn +1 (dương) và -1 (âm). Lấy x biểu thị một vector với M phần tử xj,
(j = 1,. .. , M ) tức là một điểm trong một không gian vectorM- chiều. Các x ký hiệu
biểu thị vector thứ I trong một tập dữ , trong đó Yi là nhãn liên quan Xi.
Các đối tượng. Xi được gọi là đặc tính đầu vào. Một khái niệm quan trọng cần thiết để
xác định một phân lớp tuyến tính là tích vô hướng giữa hai vectơ, còn đượcgọi là tích
trong.
27
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Phân lớp tuyến tính được dựa trên một hàm tuyến tính dạng:
Hàm f(x) là hàm của đầu vào x, f(x) được sử dụng để quyết định làm thế nào để
phân lớp x. Vector w được gọi là vector trọng số, và b được gọi là độ dịch. Trong
không gian 2 chiều các điểm ứng với phương trình <w, x>= 0 tương ứng với một
đường qua gốc tọa độ, trong không gian 3 chiều thì nó là một mặt phẳng qua gốc tọa
độ. Biến b sẽ dịch chuyển mặt phẳng đi một lượng so với mặt phẳng qua gốc tọa độ.
Mặt phẳng phân chia không gian thành hai không gian theo dấu của f(x), nếu f(x)> 0 thì
quyết định cho một lớp dương lớp kia là âm. Ranh giới giữa các vùng được phân lớp là
dương và âm được gọi là ranh giới quyết định của các phân lớp. Ranh giới quyết định
được xác định bởi một mặt phẳng (phương trình (1)) được cho là được tuyến tính bởi
vì nó là tuyến tính đầu vào. Phân lớp với một ranh giới quyết định tuyến tính được gọi
là phân lớp tuyến tính.Với bất kỳ một tập dữ liệu khả tách tuyến tính có tồn tại một mặt
phẳng phân lớp tất cả các điểm dữ liệu. Có nhiều mặt phẳng như vậy nhưng phải lựa
chọn mặt phẳng nào để đảm bảo thời gian huấn luyện ngắn và phân lớp một cách chính
xác.Thực tế quan sát cũng như lý thuyết học thống kê (Vapnik, 1999) cho thấy rằng
phân lớp siêu phẳng sẽ làm việc tốt hơn nếu siêu phẳng tách biệt chính xác với một
biên độ lớn. Ở đây, biên của một phân lớp tuyến tính được định nghĩa là khoảng cách
gần nhất để quyết định ranh giới, như thể hiện trong hình 2. Có thể điều chỉnh b để siêu
phẳng phân tách các điểm tương ứng.Hơn nữa nếu cho phương trình (1) các giá trị ± 1,
thì biên độ sẽ là 1 / ||w|| (trong đó ||w|| là độ dài của vec tơ w) còn được gọi là chuẩn
và được tính là <w,w>.
28
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Các ràng buộc là để đảm bảo sự phân lớp chính xác, và cực tiểu | | w| | 2, tương
đương với biên cực đại. Đây là bài toán tối ưu bậc hai, trong đó nghiệm tối ưu (w, b)
thỏa mãn các ràng buộc yi(<w,xi>+b) ≥ 1, với w càng nhỏ càng tốt. Bài toán tối ưu hóa
này có thể được giải bằng cách sử dụng các công cụ tiêu chuẩn từ tối ưu hóa lồi (Boyd
và Vandenberghe, 2004).
Hình 1.10: Ảnh hưởng của hằng số biên mềm C trên ranh giới quyết định
Dữ liệu có thể được thay đổi bằng cách di chuyển điểm bóng mờ màu xám đến
một vị trí mới theo mũi tên, điều đó làm giảm biên đáng kể mà một SVM biên cứng
khó có thể phân tách dữ liệu. Hình bên trái, biên quyết định cho một SVM với một giá
trị rất cao của C mà bắt chước hành vi của SVM biên cứng và do đó dẫn tới lỗi huấn
luyện. Một giá trị C nhỏ hơn (bên phải) cho phép bỏ qua điểm gần ranh giới, và làm
tăng biên. Ranh giới quyếtđịnh giữa các điểm dương và các điểm âm được thể hiện
bằng dòng đậm. Các dòng nhạt hơn là biên độ (giá trị bằng -1 hoặc +1).
29
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Trong thực tế, dữ liệu thường không phân chia tuyến tính (Hình 3). Kết quả lý
thuyết và thực nghiệm cho thấy với biên lớn hơn thì SVM biên mềm sẽ cho hiệu quả
tốt hơn so với SVM biên cứng. Để chấp nhận một số lỗi, người ta thay thế các ràng
buộc dạng bất đẳng thức (2) vớiyi (<w, xi> + b) ≥ 1 - ξi, i = 1,…, n, trong đó ξi ≥0 là
các biến phụ không âm. Thêm vào hàm tối ưu hóa :
Hằng số C> 0 thiết lập mức độ quan trọng của việc cực đại biên và giảm số
lượng biến phụ ξi. Công thức này được gọi là SVM biên mềm (Cortes và Vapnik,
1995). Ảnh hưởng của sự lựa chọn C được minh họa trong hình 3. Với một giá trị C
lớn (minh họa hình 3A), hai điểm gần siêu phẳng nhất bị ảnh hưởng lớn hơn các điểm
dữ liệu khác. Khi C giảm (Hình 3B), những điểm chuyển động bên trong lề, và hướng
của siêu phẳng được thay đổi, dẫn đến một biên lớn hơn cho dữ liệu. Lưu ý rằng giá trị
của C không có ý nghĩa trực tiếp, và có một công thức của SVMs trong đó sử dụng một
tham số trực quan hơn 0<ν ≤ 1. Tham số ν kiểm soát các véctơ hỗ trợ, và lỗi biên
(Schölkopf và Smola, 2002), và (Shawe vàC ristianini, 2004).
Trong nhiều ứng dụng, một bộ phân lớp phi tuyến có độ chính xác cao hơn. Tuy
nhiên, phân lớp tuyến tính có một lợi thế đó là các thuật toán đơn giản (Bishop,
2007;Hastie & cs 2001). Điều này đặt ra câu hỏi có cách phân lớp tuyến tính nào có thể
mở rộng cho phi tuyến không? Hơn nữa, chúng ta có thể xử lý dữ liệu có thể không
được biểu diễn trong không gian vectơ, như trong lĩnh vực sinh học.Có một cách đơn
giản chuyển phân lớp tuyến tính sang phi tuyến hoặc sử dụng cho phân lớp dữ liệu
không biểu diễn dưới dạng vectơ. Đó là ánh xạ dữ liệu cho một không gian vector nào
đó, mà chúng ta sẽ đề cập đến như là không gian đặc trưng, bằng cách sử dụng hàm f.
Hàm đó là:
30
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Lưu ý rằng f(x) là tuyến tính trong không gian đặc trưng được định nghĩa bởi
ánh xạ f, nhưng khi nhìn trong không gian đầu vào ban đầu nó là một hàm số phi
tuyếnx nếu f(x) là một hàm phi tuyến. Ví dụ đơn giản nhất của ánh xạ là xem xét tất cả
cáctích của các cặp (liên quan đến kernel đa thức). Kết quả là một một bộ phân loại có
dạng hàm phân tách bậc hai. Cách tiếp cận tính toán trực tiếp các đặc trưng phi tuyến
này khó mở rộng cho số lượng đầu vào lớn.Chiều của không gian đặc trưng liên quan
kích thước của không gian đầu vào.Nếu chúng ta sử dụng đơn thức bậc d cao hơn 2, số
chiều sẽ lũy thừa theo d, kết quả là tăng sử dụng bộ nhớ và thời gian cần thiết để tính
toán các hàm phân tách. Nếu dữ liệu nhiều chiều, chẳng hạn như trong trường hợp dữ
liệu biểu hiện gen, thì rất phức tạp. Phương pháp kernel tránh điều phức tạp này bằng
cách ánh xạ dữ liệu tới không gian đặc trưng nhiều chiều. Chúng ta đã thấy ở trên là
các vector trọng số của một mặt phẳng phân tách với biên độ lớn có thể được biểu diễn
như một tổ hợp tuyến tính của các điểm huấn luyện, tức là:
31
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
Điều này cũng đúng cho một lớp lớn của các thuật giải tuyến tính. Hàm phân tích trở
thành:
Việc biểu diễn dưới dạng biến αi được gọi là dạng đối ngẫu (dual), đại diện hai hàm
đặc biệt phụ thuộc vào các dữ liệu chỉ thông qua các tích vô hướng trong không gian.
Các quan sát tương tự cũng đúng cho bài toán tối ưu hóa đối ngẫu (phương trình (4))
khi thay thế xi với f(xi).Nếu hàm kernel k(x, x’) được định nghĩa là:
Hàm này có thể được tính toán một cách hiệu quả. Dạng đối ngẫu cho phép giải
quyết vấn đề mà không cần thực hiện ánh xạ f vào một không gian có nhiều chiều. Các
vấn đề tiếp theo là xác định các độ đo tương tự (hàmkernel) có thể được tính một cách
hiệu quả.
κ là thường được chọn là 0 (đồng nhất) hoặc 1 (không đồng nhất). Không gian đặc
trưng cho các hàm kernel không đồng nhất bao gồm tất cả các đơn thức bậc nhỏ hơn d
(Schölkopf và Smola, 2002). Nhưng, thời gian tính toán của nó là tuyến tính với số
chiều của không gian đầu vào. Kernel với d =1 và κ = 0, biểu hiện bằng klinear, là
kernel tuyến tính dẫn đến một hàm phân tách tuyến tính. Bậc của kernel đa thức kiểm
soát sự linh hoạt của bộ phân lớp (hình 4). Đa thức bậc thấp nhất là kernel tuyến tính.
Hàm kernel này không đủ tốt nếu không gian đặc trưng là phi tuyến. Đối với các dữ
liệu trong hình 4 ở đa thức bậc 2 đã đủ linh hoạt để phân biệt giữa hai lớp với một biên
32
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
tốt. Đa thức bậc 5 định lượng một ranh giới quyết định tương tự, với độ cong lớn hơn.
Quá trình chuẩn hóa có thể giúp cải thiện hiệu suất và ổn định d. Kernel thứ hai được
sử dụng rộng rãi là Gaussian kernel được xác định bởi:
Hình 1.12: Ảnh hưởng đa chiều Gaussian kernel cho một giá trị cố định đối với các
hằng số biên mềm
Trong đó σ > 0 là một tham số điều khiển độ rộng của Gaussian. Nó đóng một
vai trò tương tự như bậc của kernel đa thức trong việc kiểm soát sự linh hoạt của bộ
phân lớp .Gaussian kernel cơ bản là bằng không nếu khoảng cách bình phương x - x' 2
là lớn hơn nhiều so với σ, tức là cho x’ cố định là một vùng xung quanh x’ với các giá
trị kernel cao. Như một ví dụ minh họa, các kết quả trên một mẫu lớn hơn nhiều các tập
dữ liệu hai chiều xác định vị trí cắt-nối được hiển thị trong bảng 1. Việc sử dụng của
mộtkernel phi tuyến, hoặc Gaussian hoặc đa thức, dẫn đến một cải tiến nhỏ trong việc
thực hiện phân lớp kernel tuyến tính. Đối với đa thức bậc cao và Gaussian kernel nhỏ,
độ chính xác thu được giảm [4] [14]
33
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC THUẬT TOÁN VỀ XỬ LÝ MRI NÃO
34
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Ảnh MRI não : Chúng tôi sử dụng các hình ảnh MRI của bệnh nhân bị ảnh
hưởng bệnh ung thư não, chúng ta có những hình ảnh MRI của năm căn bệnh
ung thư khác nhau của não bộ. Năm loại MRI hình ảnh đó là Astrocytoma,
Glioma, Meningioma, Metastasis bronchogenic carcinoma và Sarcoma.
Tiền xử lý : Mục đích chính của giai đoạn tiền xử lý trong thuật toán của chúng
em là để biến đổi ảnh xám , và sử dụng thuật toán Otsu để phân cụm để phân
nhóm các pixel ảnh, dựa theo các đặc trưng giống nhau của từng nhóm để lấy
35
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
vùng mà mình cần quan sát ví dụ đối với ảnh đồng thời tiền xử lý loại bỏ nhiễu
do các biến đổi trong biên độ tần số vô tuyến và cải thiện hơn nữa quá trình
phân loại [1] [6] [10] [13].
Biến đổi wavelet rời rạc 2 chiều : Sử dụng biến đổi wavelet rời rạc 2 chiều để
giảm kích thước của ảnh MRI bằng cách cho qua bộ lọc để loại bỏ thành phần
tần số cao và giữ lại thành phần tần số thấp [8] [12].
Thuật toán PCA : Sử dụng kĩ thuật PCA để giảm chiều dữ liệu cho công việc
tính toán dễ dàng hơn và sử dung kĩ thuật GLCM để trích xuất các đặc riêng
của ảnh MRI để ta có thể phân loại được hai loại bệnh u não khác nhau.
SVM : Trong đồ án này chúng em sử dụng phương pháp học máy có giám sát
là support vector machine ( SVM ) . Support vector machine (SVM) xây dựng
(learn) một siêu phẳng (hyperplane) để phân lớp (classify) tập dữ liệu thành 2
lớp riêng biệt, nhiệm vụ của nó là xây dựng mô hình phân lớp để khi có một
dữ liệu mới vào thì mô hình phân lớp sẽ cho biết dữ liệu đó thuộc lớp nào hiện
nay [3] [4] [5]
36
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Trong đó, S(n) là tín hiệu, h(n) là đáp ứng xung của các bộ lọc thông thấp
tương ứng với hàm tỉ lệ Φ(n) và g(n) là đáp ứng xung của các bộ lọc thông cao
tương ứng với hàm wavelet ψ(n). Hai bộ lọc này liên hệ nhau theo hệ thức:
Với N là số mẫu trong tín hiệu,việc sử dụng biến đổi wavelet rời rạc 2 chiều để
giảm kích thước của ảnh MRI bằng cách cho qua bộ lọc để loại bỏ thành phần tần số
cao và giữ lại thành phần tần số thấp. Kích thước ban đầu của ảnh là 256x 256 bây giờ
chỉ còn lại là 32 x 32 = 1024 vì ta đã lược bỏ đáng kể thành phần tần số cao. Vì vậy kết
luận rằng việc áp dụng thuật toán DWT đã giúp giảm đáng kể kích thước ảnh [9] [14]
Hình 2.2: Ảnh MRI sau khi biến đổi DWT 3 mức
Sau khi biến đổi wavelet rời rạc thì kích thước của ảnh vẫn còn lớn vì vậy bước
tiếp theo ta sẽ sử dụng kĩ thuật PCA để giảm số chiều dữ liệu. Mục tiêu của phương
pháp PCA là “giảm số chiều” của 1 tập vector sao cho vẫn đảm bảo được “tối đa
thông tin quan trọng nhất” . Tức Feature extraction (giữ k thuộc tính “mới”) chứ
không phải Feature selection (giữ lại k thuộc tính nguyên gốc ban đầu). [7] [12]
37
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Bước 1:
Sử dụng các ảnh MRI nãoI1, I2, … In.
38
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Bước 3:
Bước 4:
39
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Bước 5:
1/M
Tính ma trận hiệp phương sai (covariance) C:
C sẽ có kích thước N2xN2
Cụ thể ta có:
A
Ma trận A
kích thước
N2xM (9x4)
Từ đó ta dễ dàng tính được ma trận hiệp phương sai C, kết quả như sau:
40
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Bước 6: Tính các Eigenvector ui(“vector riêng”) của ma trận vuông A.AT (C có kích
thước N2xN2). Ma trận này có kích thước quá lớn không khả thi phải khôn khéo
đi đường vòng !!
Bước 6.1:
Xét ma trận AT.A (chú ý ma trận này chỉ có kích thước là MxM)
Cụ thể ta có:
AT.A
Kích thước MxM
(4x4). Giảm
Bước 6.2:
Tính các vector riêng vi (eigenvectors) của ma trận vuông AT.A này. [2] [8] Tips: Về
cách tìm trị riêng (eigenvalues) & vector riêng (eigenvectors) có thể xem lại “Toán cao
cấp – Tập 1 – Đại số và Hình học Giải tích”. Tuy nhiên, cách này không khả thi khi lập
trình !! Phải dùng “Phương pháp lặp” (thuật toán QR) để tìm.Ở đây ta sẽ tìm được 4 trị
riêng của ma trận AT.A, tuy nhiên ta sẽ sắp xếp lại theo thứ tự giảm dần, và chỉ lấy các
trị riêng “non-zero”. Kết quả ta được 3 trị riêng (từ đó tính ra 3 vector riêng tương
ứng):
Các eigenvalues
củaAT.A.
41
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Sau khi đã tính được các vector vi (có kích thước là Mx1), ta sẽ dễ dàng suy ra được
các vector riêng ui (kích thước N2x1) mong muốn cần tìm, theo công thức
ui
Chú ý nên chuẩn hóa các vector ui ( ui 1 ), nghĩa là:
ui
ui
Sau khi chuẩn hóa ta thu được các vector uicuối cùng như sau:
Trích xuất đặc trưng sử dụng ma trận đồng mức xám (GLCM)
42
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Bước tiếp theo là sử dụng ma trận đồng mức xám ( GLCM ) để tính toán các đặc
trưng của ảnh MRI sau khi áp dụng các công thức ở phần lý thuyết ta tính được các
thông số 10 ảnh MRI có ở bảng dưới
Ta có các thông số độ tương phản , entropy và độ tương quan của não ác tính
lớn hơn lành tính vì bên ác tính giá trị mức xám nó không đồng đều , cấu trúc hình ảnh
của nó cũng phức tạp hơn, còn các thông số năng lượng, đồng nhất của u lành cao hơn
ác tính là vì hình ảnh u lành nó đồng nhất hơn , cấu trúc hình ảnh nó sẽ phân bố đồng
đều hơn so với u ác tính . Bây giờ ta lấy các thông số đặc trưng này ta đem qua cái
bước tiếp theo đó là bước phân loại.Sau khi sử dụng thuật toán PCA ta phân tích nó
chứa 19 thành phần chính và chỉ chiếm 1,86% so với các đặc trưng tổng thể nhưng lại
chiếm đến 95,4% đặc trưng quan trọng nhất.
Phân lớp sử dụng SVM
Chúng em xây dựng một tập dữ liệu huấn luyện bao gồm các thông số đầu vào và nhãn
43
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO
Trong chương này, chúng em đã xây dựng các thuật toán cho chương trình , cách
thức các thuật toán áp dụng vào đồ án và bên cạnh đó đánh giá kết quả thu được từ đó
có cái nhìn tổng quan hơn các thuật toán xử lý ảnh.
44
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
45
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
46
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
Hình 3.2: Các mẫu ảnh MRI não (a) ảnh não trạng thái bình thường; (b) glioma;
(c) meningioma; (d) Alzheimer’s disease; (e) bệnh Alzheimer’s; (f) bệnh Pick; (g)
sarcoma; (h) bệnh Huntington’s
Kết quả thực nghiệm với mẫu u lành tính
47
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
Khi tiến hành phân loại, ta chọn Load MRI và vào foder chứa hình ảnh MRI não
u lành tính , sau khi ta đã chọn xong ta bắt đầu phân đoạn hình ảnh khối U thì ta thu
được kết quả trong khung “ Type of Tumor “ là “BENIGN” cho thấy kết quả hoàn toàn
chính xác như những gì ta đã chọn. Khung “ Features “ hiển thị cho ta những đặc trưng
riêng đã tính được từ hình ảnh ta đã chọn. Ta sẽ chọn mẫu khác để tiếp tục khảo sát.
Sau khi thử với ảnh MRI khác kết quả phân loại vẫn đúng như những gì mong
đợi. Tiếp theo ta tiến hành kiểm tra tỉ lệ phần trăm độ chính xác phân loại của 2 Kernel
SVM đó là kernel RBF và kernel Linear.
48
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
49
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
50
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
Trong phạm vi đồ án này , chúng em dùng 160 ảnh MRI não để khảo sát và chúng ta sẽ
phân chia : 128 ảnh dùng để huấn luyện, 32 ảnh để kiểm tra.
Hình 3.8 : Kết quả đánh giá của 2 kernel Linear và GRB
51
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
Dựa vào bảng đánh giá ta có thể thấy được kết quả phân loại của GRB (20 +
139)/160 = 99.38% và kết quả của LIN (17 +135)/160 = 95% , điều đó cho thấy rằng
kernel RGB có độ chính xác cao hơn kernel LIN. Vậy nếu ta muốn việc phân loại
nhanh hơn và tránh hiện tượng overfitting ta có thể sử dụng kernel LIN , còn nếu ta
muốn việc phân loại chính xác hơn ta sử dụng kernel RBF [5].
52
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Qua quá trình thực hiện đồ án về phương pháp phân loại ảnh MRI não, đồ án
đã có được những kết quả như sau:
o Trình bày rõ các ứng dụng của phân loại ảnh MRI não.
o Phân loại đối với các dữ liệu đầu vào khác nhau.
54
Tài liệu tham khảo
[1] Zhang, Y., L. Wu, and S. Wang, “Magnetic resonance brain image
classification by an improved artificial b ee colony algorithm,”
[2] Mohsin, S. A., N. M. Sheikh, and U. Saeed, “MRI induced heating of
deep brain stimulation leads: Effect of the air-tissue interface,”
[3] Golestanirad, L., A. P. Izquierdo, S. J. Graham, J. R. Mosig, and C.
Pollo, “Effect of realistic modeling of deep brain stimulation on the
prediction of volume of activated tissue,” Progress In Electromagnetics
Research, Vol. 126, 1–16, 2012.
[4] Mohsin, S. A., “Concentration of the specific absorption rate around deep
brain stimulation electrodes during MRI,” Progress In Electromagnetics
Research, Vol. 121, 469–484, 2011.
[5] Oikonomou, A., I. S. Karanasiou, and N. K. Uzunoglu, “Phasedarray
near field radiometry for brain intracranial applications,” Progress In
Electromagnetics Research, Vol. 109, 345–360, 2010.
[6] Scapaticci, R., L. Di Donato, I. Catapano, and L. Crocco, “A feasibility
study on microwave imaging for brain stroke monitoring,” Progress In
Electromagnetics Research B, Vol. 40, 305–324, 2012.
[7] Asimakis, N. P., I. S. Karanasiou, P. K. Gkonis, and N. K. Uzunoglu,
“Theoretical analysis of a passive acoustic brain monitoring system,”
Progress In Electromagnetics Research B, Vol. 23, 165–180, 2010.
[8] Chaturvedi, C. M., V. P. Singh, P. Singh, P. Basu, M. Singaravel, R. K.
Shukla, A. Dhawan, A. K. Pati, R. K. Gangwar, and S. P. Singh. “2.45
GHz (CW) microwave irradiation alters circadian organization, spatial
memory, DNA structure in the brain cells and blood cell counts of male
55
Tài liệu tham khảo
56
Phụ lục
PHỤ LỤC
close all
clc
clear all
[filename,pathname] =
uigetfile({'*.*';'*.bmp';'*.tif';'*.gif';'*.png'},'Pick an
Image File');
I = imread([pathname,filename]);
figure, imshow(I); title('Brain MRI Image');
I = imresize(I,[200,200]);
% Convert to grayscale
gray = rgb2gray(I);
cform = makecform('srgb2lab');
% Apply the colorform
lab_he = applycform(I,cform);
57
Phụ lục
%[cluster_idx cluster_center] =
kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3);
% Label every pixel in tha image using results from K means
pixel_labels = reshape(cluster_idx,nrows,ncols);
% Create a blank cell array to store the results of clustering
segmented_images = cell(1,3);
% Create RGB label using pixel_labels
rgb_label = repmat(pixel_labels,[1,1,3]);
for k = 1:nColors
colors = I;
colors(rgb_label ~= k) = 0;
segmented_images{k} = colors;
end
%
figure, imshow(segmented_images{1});title('Objects in Cluster
1');
seg_img = im2bw(segmented_images{1});
figure, imshow(seg_img);title('Segmented Tumor');
%seg_img = img;
% Extract features using DWT
x = double(seg_img);
m = size(seg_img,1);
n = size(seg_img,2);
signal1 = seg_img(:,:);
%Feat = getmswpfeat(signal,winsize,wininc,J,'matlab');
%Features = getmswpfeat(signal,winsize,wininc,J,'matlab');
[cA1,cH1,cV1,cD1] = dwt2(signal1,'db4');
[cA2,cH2,cV2,cD2] = dwt2(cA1,'db4');
[cA3,cH3,cV3,cD3] = dwt2(cA2,'db4');
DWT_feat = [cA3,cH3,cV3,cD3];
G = pca(DWT_feat);
whos DWT_feat
whos G
g = graycomatrix(G);
stats = graycoprops(g,'Contrast Correlation Energy
Homogeneity');
58
Phụ lục
Contrast = stats.Contrast;
Correlation = stats.Correlation;
Energy = stats.Energy;
Homogeneity = stats.Homogeneity;
Mean = mean2(G);
Standard_Deviation = std2(G);
Entropy = entropy(G);
RMS = mean2(rms(G));
%Skewness = skewness(img)
Variance = mean2(var(double(G)));
a = sum(double(G(:)));
Smoothness = 1-(1/(1+a));
Kurtosis = kurtosis(double(G(:)));
Skewness = skewness(double(G(:)));
% Inverse Difference Movement
m = size(G,1);
n = size(G,2);
in_diff = 0;
for i = 1:m
for j = 1:n
temp = G(i,j)./(1+(i-j).^2);
in_diff = in_diff+temp;
end
end
IDM = double(in_diff);
load Trainset.mat
xdata = meas;
group = label;
svmStruct1 = svmtrain(xdata,group,'kernel_function', 'linear');
species = svmclassify(svmStruct1,feat,'showplot',false)
pause
%close all
59
Phụ lục
svmStruct1_new = svmtrain(data1,group,'kernel_function',
'linear','showplot',false);
species_Linear_new =
svmclassify(svmStruct1_new,newfeat,'showplot',false);
%%
% Multiple runs for accuracy highest is 90%
load Trainset.mat
%data = [meas(:,1), meas(:,2)];
data = meas;
groups = ismember(label,'BENIGN ');
groups = ismember(label,'MALIGNANT');
[train,test] = crossvalind('HoldOut',groups);
cp = classperf(groups);
%svmStruct =
svmtrain(data(train,:),groups(train),'boxconstraint',Inf,'showp
lot',false,'kernel_function','rbf');
svmStruct =
svmtrain(data(train,:),groups(train),'showplot',false,'kernel_f
unction','linear');
classes = svmclassify(svmStruct,data(test,:),'showplot',false);
classperf(cp,classes,test);
Accuracy_Classification = cp.CorrectRate.*100;
sprintf('Accuracy of Linear kernel is:
%g%%',Accuracy_Classification)
60
Phụ lục
Accuracy_Classification_Poly = cp.CorrectRate.*100;
sprintf('Accuracy of Polynomial kernel is:
%g%%',Accuracy_Classification_Poly)
%%
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @BrainMRI_GUI_OpeningFcn, ...
'gui_OutputFcn', @BrainMRI_GUI_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State,
varargin{:});
61
Phụ lục
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
[FileName,PathName] = uigetfile('*.jpg;*.png;*.bmp','Pick an
MRI Image');
if isequal(FileName,0)||isequal(PathName,0)
warndlg('User Press Cancel');
else
P = imread([PathName,FileName]);
P = imresize(P,[200,200]);
% input =imresize(a,[512 512]);
axes(handles.axes1)
imshow(P);title('Brain MRI Image');
handles.ImgData = P;
% handles.FileName = FileName;
62
Phụ lục
guidata(hObject,handles);
end
gray = rgb2gray(I);
% Otsu Binarization for segmentation
level = graythresh(I);
%gray = gray>80;
img = im2bw(I,.6);
img = bwareaopen(img,80);
img2 = im2bw(I);
axes(handles.axes2)
imshow(img);title('Segmented Image');
%imshow(tumor);title('Segmented Image');
handles.ImgData2 = img2;
guidata(hObject,handles);
signal1 = img2(:,:);
%Feat = getmswpfeat(signal,winsize,wininc,J,'matlab');
%Features = getmswpfeat(signal,winsize,wininc,J,'matlab');
[cA1,cH1,cV1,cD1] = dwt2(signal1,'db4');
[cA2,cH2,cV2,cD2] = dwt2(cA1,'db4');
[cA3,cH3,cV3,cD3] = dwt2(cA2,'db4');
DWT_feat = [cA3,cH3,cV3,cD3];
G = pca(DWT_feat);
whos DWT_feat
whos G
g = graycomatrix(G);
stats = graycoprops(g,'Contrast Correlation Energy
Homogeneity');
Contrast = stats.Contrast;
Correlation = stats.Correlation;
Energy = stats.Energy;
Homogeneity = stats.Homogeneity;
63
Phụ lục
Mean = mean2(G);
Standard_Deviation = std2(G);
Entropy = entropy(G);
RMS = mean2(rms(G));
%Skewness = skewness(img)
Variance = mean2(var(double(G)));
a = sum(double(G(:)));
Smoothness = 1-(1/(1+a));
Kurtosis = kurtosis(double(G(:)));
Skewness = skewness(double(G(:)));
% Inverse Difference Movement
m = size(G,1);
n = size(G,2);
in_diff = 0;
for i = 1:m
for j = 1:n
temp = G(i,j)./(1+(i-j).^2);
in_diff = in_diff+temp;
end
end
IDM = double(in_diff);
load Trainset.mat
xdata = meas;
group = label;
svmStruct1 = svmtrain(xdata,group,'kernel_function',
'linear');
species = svmclassify(svmStruct1,feat,'showplot',false);
if strcmpi(species,'MALIGNANT')
helpdlg(' Malignant Tumor ');
disp(' Malignant Tumor ');
else
helpdlg(' Benign Tumor ');
disp(' Benign Tumor ');
end
set(handles.edit4,'string',species);
% Put the features in GUI
set(handles.edit7,'string',Entropy);
64
Phụ lục
set(handles.edit14,'string',Contrast);
set(handles.edit15,'string',Correlation);
set(handles.edit16,'string',Energy);
set(handles.edit17,'string',Homogeneity);
end
65
Phụ lục
set(handles.edit2,'string',Max_Accuracy);
66
Phụ lục
svmStruct_Poly =
svmtrain(data(train,:),groups(train),'Polyorder',2,'Kernel_Func
tion','polynomial');
classes3 =
svmclassify(svmStruct_Poly,data(test,:),'showplot',false);
classperf(cp,classes3,test);
Accuracy_Percent(i) = cp.CorrectRate.*100;
sprintf('Accuracy of Polynomial Kernel is:
%g%%',Accuracy_Percent(i))
waitbar(i/itr);
end
delete(hWaitBar);
Max_Accuracy = max(Accuracy_Percent);
%Accuracy_Classification_Poly = cp.CorrectRate.*100;
sprintf('Accuracy of Polynomial kernel is: %g%%',Max_Accuracy)
set(handles.edit3,'string',Max_Accuracy);
67
Phụ lục
68
Phụ lục
69
Phụ lục
70
Phụ lục
71
Phụ lục
72
Phụ lục
Accuracy_Percent= zeros(200,1);
itr = 100;
hWaitBar = waitbar(0,'Evaluating Maximum Accuracy with 100
iterations');
for i = 1:itr
data = meas;
groups = ismember(label,'BENIGN ');
groups = ismember(label,'MALIGNANT');
[train,test] = crossvalind('HoldOut',groups);
cp = classperf(groups);
svmStruct4 =
svmtrain(data(train,:),groups(train),'showplot',false,'kernel_f
unction','quadratic');
classes4 =
svmclassify(svmStruct4,data(test,:),'showplot',false);
classperf(cp,classes4,test);
%Accuracy_Classification_Quad = cp.CorrectRate.*100;
Accuracy_Percent(i) = cp.CorrectRate.*100;
sprintf('Accuracy of Quadratic Kernel is:
%g%%',Accuracy_Percent(i))
waitbar(i/itr);
end
delete(hWaitBar);
Max_Accuracy = max(Accuracy_Percent);
sprintf('Accuracy of Quadratic kernel is: %g%%',Max_Accuracy)
set(handles.edit19,'string',Max_Accuracy);
73
Phụ lục
74