You are on page 1of 74

Lời cam đoan

LỜI CAM ĐOAN

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.

Đà Nẵng, ngày 18 tháng 12 năm 2016


Sinh viên thực hiện

Phạm Đức Thiện


Nguyễn Văn Duy Vũ

1
Bảng phân công nhiệm vụ

BẢNG PHÂN CÔNG NHIỆM VỤ

Tìm hiểu nội dung lý thuyết về xử lý


NGUYỄN VĂN DUY VŨ ảnh não, viết chương trình Matlab về
11DT3 các kĩ thuật sử dụng để giảm đặc trưng,
trích xuất đặc trưng và phân loại ảnh
não. Xây dựng cơ sở dữ liệu và chạy
thử nghiệm, làm slide.

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

1.3 Kết luận chương ………………………………………………….. 34

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

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

Hình 3.6 Kết quả thực nghiệm với u ác tính .............................................................. 50


Hình 3.7 Mô hình hold-old để tiến hành đánh giá ....................................................51
Hình 3.8 Kết quả đánh giá của 2 Kernel Linear và GRB ............................................. 51
Hình 3.9 Tính toán thời gian của 3 giai đoạn chính .................................................. 52

6
Các từ viết tắt

CÁC TỪ VIẾT TẮT

GUI Graphic User Interface


GLCM Gray-Level Co-Occurrence Matrix
O

DWT Discrete Wavelet Transform

PCA Principal Component Analysis

MRI Magnetic resonance imaging


S

SVM Support Vector Machine

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ế.

2. Phương pháp nghiên cứu đồ án

Tìm hiểu lý thuyết:

8
Lời mở đầu

 Tìm hiểu phần mềm và các Toolbox trong Matlab R2013a.


 Tìm hiểu về lý` thuyết ảnh MRI
 Tìm hiểu về các kỹ thuật xử lý ảnh.
 Tìm hiểu các phương pháp học máy.
 Tìm hiểu cơ sở dữ liệu.
3. Nội dung đồ án

Đồ á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

Chương 3: Thực nghiệm và đánh giá kết quả.


Để hỗ trợ cho việc mô phỏng quá trình nhận dạng, chúng em sử dụng matlab làm
chương trình hỗ trợ chính vì sự tiện ích và hữu dụng của nó trong quá trình xử lý và

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

Trong đồ án này, nhóm em đã đạt được những kết quả sau:

 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.

Nhóm sinh viên thực hiện:


 Nguyễn Văn Duy Vũ
 Phạm Đức Thiệ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ƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT VÀ CÁC


THUẬT TOÁN VỀ XỬ LÝ MRI NÃO

Giới thiệu về ảnh MRI và phân loại ảnh 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.

 Tại sao phải chụp cộng hưởng từ (MRI) não?

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.

 Lợi ích của máy cộng hưởng từ là gì?


o Giá thành còn cao
o Bệnh nhân không bị ảnh hưởng bởi tia xạ.
o Bệnh nhân không bị ảnh hưởng gì về mặt sinh học.
o Thu được hình chụp đa mặt phẳng: Mặt phẳng trán, mặt phẳng ngang,
mặt phẳng dọc hay bất kỳ mặt phẳng nghiêng nào
o Độ phân giải mô mềm cao.
o Hiển thị hình ảnh tốt hơn khi so với CT.
o Chụp được mạch máu não (MRA), kể cả khi không dùng chất tương
phản.
o Là kỹ thuật hình ảnh không xâm lấn.
 Bất lợi của máy cộng hưởng từ là gì?

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

o Giá thành còn cao


o Không dùng được nếu bệnh nhân bị chứng sợ nơi chật hẹp hay đóng kín,
hội chứng sợ lồng kính (Claustrophobia)
o Thời gian chụp lâu: Gặp khó khăn nếu bệnh nhân nặng hay không hợp
tác
o Vỏ xương và tổn thương có calci khảo sát không tốt bằng XQ, CT
o Không thể chụp bệnh nhân với máy tạo nhịp tim, các clip phẫu thuật, mô
cấy ở mắt hay tai.
o Không thể mang theo thiết bị hồi sức vào phòng chụp.

Giới thiệu về các thuật toán liên quan đến xử lý ảnh


Thuật toán nhị phân và phân ngưỡng Otsu
1.2.1.1 Nhị phân ảnh: Ảnh nhận được từ các thiết bị thu nhận hình ảnh như máy ảnh,
camera thường là ảnh màu hay ảnh đa mức xám. Lúc này, các thành phần trong ảnh
khá phức tạp ( màu sắc, kết cấu, vv…vv ). Do đó, muốn làm nổi bật các đặc trưng
trong ảnh thì phải chuyển ảnh về dạng nhị phân (ảnh chỉ có hai màu đen và trắng)
tương ứng với đối tượng và nền ảnh. Nhị phân (hay còn gọi là phân ngưỡng) là thao tác
chuyển từ ảnh đa mức xám (hoặc ảnh màu) về dạng ảnh nhị phân
INPUT: Ảnh đa mức xám hoặc ảnh màu
OUTPUT: Ngưỡng nhị phân cho toàn bộ ảnh
- Xác định ngưỡng T
- Chuyển ảnh về dạng nhị phân

1.2.1.2 Thuật toán phân ngưỡng Otsu


Thuật toán phân ngưỡng OTSU mang tên của một nhà nghiên cứu người Nhật.
Ông Nobuyuki Otsu đã nghĩ ra ý tưởng cho việc phân ngưỡng hình ảnh một cách tự
động (adaptive) dựa vào giá trị của điểm ảnh đầu vào nhằm thay thế cho việc sử dụng
ngưỡng cố định (fixed hay const). Phân ngưỡng được thực hiện dựa trên hình dáng của
lược đồ mức xám hoặc giảm mức xám của ảnh thành ảnh nhị phân. Thuật toán Otsu
xác định ngưỡng cho toàn bộ hình ảnh bằng cách tìm một ngưỡng để phân chia các

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

2B được xác định theo công thức:

 2      2      2 ,
B 0 0 T 1 1 T

Trong đó:
k 1 L1

0   p q rq  1   p q rq ;
q0 qk

0   qp q rq / 0
k1

q0

L1 L1

1   qp q rq / 1 ;  T   qp q rq 
qk q0

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

Biến đổi wavelet rời rạc

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).

Phân tích wavelet, các xấp xỉ và chi tiết


Với nhiều tín hiệu, nội dung tần số thấp là quan trọng nhất, nó xác định tín hiệu.
Nội dung tần số cao chỉ làm tăng thêm hương vị. Ví dụ như giọng nói người, nếu tách
bỏ phần cao tần, giọng có khác nhưng vẫn có thể hiểu được nội dung. Tuy nhiên nếu
loại bỏ tần số thấp đến một mức nào đó, sẽ không nghe rõ nữa. Còn đối với ảnh ta quan
tâm đến hai thuật ngữ là xấp xỉ là thành phần tỉ lệ cao tương ứng thành phần tần số
thấp của ảnh và chi tiết tương ứng thành phần tần số cao của ảnh, tỉ lệ thấp. Với phân
tích wavelet ta thu được hai thành phần tương ứng trên, cụ thể việc thực hiện như sau:

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

Hình 1.3: Minh hoạ DWT hai chiều cho ảnh


Phân tích đa phân giải

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

Hình 1.4: Phân tích tín hiệu đa mức


Về lý thuyết quá trình phân tích đa mức có thể lặp lại mãi mãi nhưng trong
thực tế, sự phân tích có thể chỉ thực hiện cho đến khi có được tín hiệu chi tiết phù
hợp với chất lượng của tín hiệu cần phân tích (tùy thuộc vào từng ứng dụng cụ thể).
Hình 1.5 mô tả phân tích 3 mức của tín hiệu hình ảnh.

Hình 1.5 : Minh hoạ DWT kiểu dyadic mức 3

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.

Hình 1.6: Ảnh DWT của MRI não mức 3

Một số ứng dụng nổi bật của Wavelet

 Nén tín hiệu

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.

 Mã hoá nguồn và mã hoá kênh

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.

Thuật Toán PCA


Mục tiêu của PCA là tìm một không gian mới (với số chiều nhỏ hơn không gian
cũ). Các trục tọa độ trong không gian mới được xây dựng sao cho trên mỗi trục, độ
biến thiên của dữ liệu trên đó là lớn nhất có thể.

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.

→𝑥 = 𝑎1𝑣1+ 𝑎2𝑣2+⋯+ 𝑎𝑛𝑣𝑛

(Với 𝑣1, 𝑣2, . . . , 𝑣𝑛 là cơ sở trong không gian n chiều)


→ 𝑦 = 𝑏1𝑢1 + 𝑏2𝑢2 + ⋯ + 𝑏𝑘 𝑢𝑘
(Với𝑢1, 𝑢2, . . . , 𝑢𝑘là cơ sở trong không gian k chiều)
Nghĩa là ta cần tìm một ánh xạ từ không gian n chiều xuống không gian nhỏ hơn
chỉ có k chiều (k<<n). Phương pháp PCA sẽ tìm một phép biến đổi tuyến tính T, thỏa:
y = T*x với T là ma trận k x n.

Nhận xét về phương pháp PCA

 Ư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.

Ma trận đồng hiện mức xám (GLCM)


Ma trận đồng hiện mức xám Co-Ocurrence (GLCM) của ảnh f(x,y) có kích
thước M×M và có G mức độ xám là một ma trận hai chiều C(i,j). Mỗi phần tử của ma
trận thể hiện xác suất xảy ra cùng giá trị cường độ sáng i và j tại một khoảng cách d
và một góc xác định. Do đó, có thể có nhiều ma trận GLCM khác nhau phụ thuộc
vào cặp giá trị d và . GLCM được tính toán như sau [4]:

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à

cột trong ma trận. i, j và i, j được tính như sau:

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.

 Entropy: Entropy F4 được tính toán như sau:

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:

Máy vecto hỗ trợ SVM


Bài toán phân lớp

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.

Hình 1.9: 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>.

SVM biên cứng


SVM biên cứng được áp dụng đối với dữ liệu khả tách tuyến tính và nó cho kết
quả phân lớp một cách chính xác với tất cả các dữ liệu dạng này (Hình 2). Để tính toán
w và b tương ứng với các biên cực đại, ta phải giải quyết bài toán tối ưu sau đây:

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

SVM biên mềm

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).

SVM cho phân lớp phi tuyến

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

Hình 1.11:SVM cho phân lớp phi tuyến

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ả.

Kernel cho các dữ liệu thực


Dữ liệu thực là dữ liệu mà các mẫu là các vector có số chiều xác định. Đây là
dạng dữ liệu phổ biến trong tin sinh học và nhiều lĩnh vực khác. Một vài ví dụ về áp
dụng SVM xử lý dữ liệu thực bao gồm dự đoán trạng thái của bệnh từ dữ liệu vi mảng
(Guyon I & cs, 2002) và dự đoán chức năng protein từ một tập các tính năng bao gồm
thành phần acid amin vàc ác thuộc tính khác nhau của các axit amin trong protein (C ai
& cs., 2003). Hai hàm kernel phổ biến nhất được sử dụng cho các dữ liệu thực là đa
thức kernel và Gaussian kernel. Bậc d của đa thức kernel được định nghĩa là:

κ 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

1.3. Kết luận chương


Qua chương này, em đã xây dựng được một hệ thống phân loại ảnh thích hợp với
dữ liệu đầu vào, các bước để tiến hành bào gồm : phân đoạn, giảm đặc trưng, trích xuất
đặc trưng và phân loại đã được tiến hành dựa vào 4 thuật toán đó là : K-means, DWT,
PCA, SVM và các thuật toán đã giải quyết tốt các vấn đề đặt ra cho mỗi tiến trình.

34
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO

CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI


MRI NÃO

Đề xuất tổng quan chương trình:

Hình 2.1: Sơ đồ chung của hệ thống xử lý và phân loại ảnh.

 Ả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]

Xây dựng các thuật toán

Các thuật toán giảm đặc trưng


Sau khi ta đọc ảnh MRI não thì tiếp theo ta tính toán hệ số LL3 và sắp xếp chúng
vào ma trận theo hàng và cột. Tại mỗi tầng lọc, biểu thức của phép lọc được cho bởi
công thức:

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.

Hình 2.3: Tập cơ sở dữ liệu hình ảnh MRI não

Bước 2: Biểu diễn mọi ảnh Ii thành vector i


Ví dụ: Để đơn giản ta giả sử
chỉ có 4 ảnh trong tập huấn
luyện (kích thước 3x3).
Ta tính toán được:    

38
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO






Bước 3:

Tính vector ảnh não trung bình  theo công thức:


Cụ thể ta có:






Bước 4:

Trừ vector khuôn mặt trung bình:


Cụ thể ta có:

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 eigenvector của


AT.A tương ứng với
các eigenvalues.
Kích thước Mx1
v v v

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

Các eigenvector của ma


trận hiệp phương sai C
(AT.A) cần phải tìm.
u1 u2 u3 Kích thước N2x1

 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

tương ứng với dữ liệu là bao gồm và nhãn lớp có thông


số [12] thì trong đồ án này gồm có hai nhãn lớp chính là
nhãn “Malignant” tương ứng là lớp ác tính và nhãn “Benign” tương ứng lành tính. Tiếp
theo ta áp dụng hai phương pháp tuyến tính và phi tuyến tính để tiến hành phân loại thì
ta sẽ thu được kết quả là trong 160 ảnh MRI thì LIN kernel cho độ chính xác lên tới
95% còn Gaussian có độ chính xác là 99,38% . Điều này kết luận rằng kernel Gaussian
cho độ chính xác cao hơn kernel LIN [1] [5] [6].

43
CHƯƠNG 2: XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI MRI NÃO

2.3 Kết luận chương:

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Ả

CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ


Giới thiệu chương
Sau khi tìm hiểu lý thuyết cũng như thuật toán của quá trình xử lý ảnh, chương này sẽ
giúp ta phân tích, đánh giá kết quả nhận được từ hệ thống đã xây dựng, qua đó tìm
hướng phát triển đề tài cũng như nâng cao chất lượng của hệ thống

Giao diện chương trình


Ở đồ án này, em sử dụng tính năng GUI (Graphical User Interface) là giao diện
đồ họa có nhiều thanh công cụ có sẳn giúp quá trình tương tác giữa người dùng và
phần mô phỏng của hệ thống được thuận tiện.

Hình 3.1: Giao diện chương trình.

45
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

 Các phím bấm:


 Load MRI Image: chọn ảnh MRI não muốn nhận dạng.
 Segmented Image: phân đoạn khối u của ảnh MRI não đã chọn
 RBF Accuracy in % : Đánh giá % độ chính xác của phân loại SVM của
kernel Gaussian
 Linear Accuracy in % : Đánh giá % độ chính xác của phân loại SVM của
kernel Linear[8]
 Các ô thông báo:
 Type of Tumor : Kết quả của việc phân loại.
 Entropy : Kết quả tính giá trị entropy của ma trận đồng mức xám .
 Contrast : Kết quả tính giá trị độ tương phản của ma trận đồng mức xám .
 Correlation : Kết quả tính giá trị độ tương quan của ma trận đồng mức xám
 Energy : Kết quả tính giá trị năng lượng của ma trận đồng mức xám .
 Homogeneity : Kết quả tính giá trị đồng nhất của ma trận đồng mức xám.

Kết quả thực nghiệm


3.3.1 Cơ sở dữ liệu kiểm tra
Cơ sở dữ liệu bao để tiến hành kiểm tra bao gồm 22 ảnh MRI có kích thước của
mỗi ảnh là 256 x 256 mà được lấy từ website của trường ĐH Harvard
(URL:http://med.harvard.edu/AANLIB/).
Trong số đó ta có các loại bệnh phổ biến của não như : glioma, meningioma,
Alzheimer’s disease, Alzheimer’s disease plus visual agnosia, Pick’s disease,sarcoma
và Huntington’s disease [2] [4] [10] [13]

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

Hình 3.3: Kết quả thực nghiệm với u là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.

Hình 3.4: Kết quả thực nghiệm với u lành.

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Ả

Hình 3.5:Kết quả thực nghiệm đo tỉ lệ % chính xác của 2 Kernel


Sau khi tiến hành đo tỉ lệ % chính xác ta nhận thấy tỉ lệ phần trăm của 2 Kernel
RBF và Linear là ngang nhau đều là 90% . Điều đó cho thấy rằng độ chính xác của 2
cách này là rất cao , độ tin cậy gần như tuyệt đối. Sự khác biệt ít rõ rệt vì dữ liệu huấn
luyện không đủ nhiều mặc dù theo giả thuyết độ chính xác của RBF là cao hơn so với
Linear.
Kết quả thực nghiệm với mẫu u ác tính:

49
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

Hình 3.6:Kết quả thực nghiệm với u ác.


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à “MALIGNANT” 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. 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 thì độ chính xác
vẫn tương tự như kết quả phân loại dành cho khối u lành.

Mô hình đánh giá :


Ta sử dụng phương pháp Hold-out để đánh giá độ chính xác của việc phân loại.
Trong phương pháp holdout, dữ liệu dưa ra được phân chia ngẫu nhiên thành 2 phần là:
tập dữ liệu đào tạo và tập dữ liệu kiểm tra. Thông thường 2/3 dữ liệu cấp cho tập dữ
liệu đào tạo, phần còn lại cho tập dữ liệu kiểm tra.
 Toàn bộ tập ví dụ D được chia thành 2 tập con không giao nhau [4][7]

- Tập huấn luyện D_train – để huấn luyện hệ thống


- Tập kiểm thử D_test – để đánh giá hiệu năng của hệ thống đã học
→ D = D_train ∪ D_test, và thường là |D_train| >> |D_test|

50
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

 Các yêu cầu:


 Bất kỳ ví dụ nào thuộc vào tập kiểm thử D_test đều không được sử dụng trong
quá trình huấn luyện hệ thống
 Bất kỳ ví dụ nào được sử dụng trong giai đoạn huấn luyện hệ thống (i.e., thuộc
vào D_train) đều không được sử dụng trong giai đoạn đánh giá hệ thống
 Các ví dụ kiểm thử trong D_test cho phép một đánh giá không thiên vị đối với
hiệu năng của hệ thống

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.7 : Mô hình hold-out để tiến hành đánh giá

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].

Phân tích thời gian thực hiện:


Việc tính toán thời gian là một yếu tố quan trọng để đánh giá cả quá trình phân
loại. Công việc huấn luyện SVM không được xem xét, vì các thông số của SVM giữ
không thay đổi sau khi huấn luyện. Chúng tôi đã xem xét 160 hình ảnh MRI vào phân
loại, ghi nhận thời gian tính toán, tính toán giá trị trung bình, mô tả việc tiêu thụ thời
gian của giai đoạn khác nhau trong hình1. Đối với mỗi hình ảnh có kích thước 256 ×
256, thì thời gian cho việc tính toán sẽ có thể mất bao nhiêu lâu [9] [11]

DWT 2D PCA + GLCM SVM Classification


Hình 3.9: Tính toán thời gian của 3 giai đoạn chính
Tính năng biến đổi wavelet rời rạc, PCA, và phân loại SVM tiêu tốn thời gian
lần lượt là 0,023 s, 0,0187, và 0,0031 s, tương ứng. Vậy giai đoạn DWT là tiêu tốn thời
gian nhất là 0,023 s. Còn công việc giảm số chiều dữ liệu dùng PCA tiêu tốn thời gian
là 0,0187 s. Việc phân loại SVM tốn thời gian ít nhất chỉ 0,0031 s. Tổng thời gian tính
toán cho mỗi hình ảnh kích thước 256 × 256 là khoảng 0,0448 s, điều đó cho thấy rằng
hệ thống đủ cho công việc chẩn đoán diễn ra nhanh chóng [13][14].

52
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

Kết luận chương.


Qua thực nghiệm, nhận thấy việc phân loại với các ảnh MRI đều cho ra kết quả
chính xác như mong đợi. Khi ta thêm một ảnh nào khác không có trong cơ sở dữ liệu
thì việc phân loại vẫn cho độ chính xác cao. Chúng em đã áp dụng hai loại kernel khác
nhau của SVM để so sánh sự khác nhau giữa chúng, thì trong thí nghiệm này kernel
GRB thể hiện độ chính xác cao hơn LIN qua sự khảo sát 160 ảnh MRI. Chương trình
test có thời gian đáp ứng khá nhanh và thời gian tiêu tốn tính được là 0.0448s, điều này
thuận lợi cho việc chẩn đoán nhanh của bác sĩ .
Hệ thống còn một số hạn chế như là chưa phân loại rõ loại bệnh gì mà chỉ phân ra
hai loại ác tính và lành tính, vì hệ thống có độ chính xác cao và thời gian tiêu tốn nhanh
đồng nghĩa với việc dùng nhiều thuật toán phức tạp

53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

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 Xây dựng cơ sở dữ liệu phù hợp với thuật toán SVM.

o Kết quả phân loại có độ chính xác cao.

o Phân loại đối với các dữ liệu đầu vào khác nhau.

 Hướng phát triển của đề tài :


o Xây dựng một hệ thống hoàn chỉnh kết hợp với phần cứng.
o Xây dựng một hệ thống phân loại ảnh MRI não có độ chính xác cao
hơn và thời gian nhanh hơn.
o Xây dựng một chương trình không chỉ phân loại ảnh MRI não mà có
thể chẩn đoán chính xác loại bệnh đang mắc phải

54
Tài liệu tham khảo

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

mice, mus musculus,” Progress In Electromagnetics Research B, Vol. 29,


23–42, 2011.
[9] Emin Tagluk, M., M. Akin, and N. Sezgin, “Classification of sleep apnea
by using wavelet transform and artificial neural networks,” Expert
Systems with Applications, Vol. 37, No. 2, 1600–1607, 2010.
[10] Zhang, Y., L. Wu, and G. Wei, “A new classifier for polarimetric SAR
images,” Progress in Electromagnetics Research, Vol. 94, 83– 104, 2009.
[11] Camacho, J., J. Pic´o, and A. Ferrer, “Corrigendum to ‘The best
approaches in the on line monitoring of batch processes based on PCA:
Does the modelling structure matter?’ [Anal. Chim. Acta Volume 642
(2009) 59-68],” Analytica Chimica Acta, Vol. 658,
[12] Chaplot, S., L. M. Patnaik, and N. R. Jagannathan, “Classification of
magnetic resonance brain images using wavelets as input to supp ort
vector machine and neural network,” Biomedical Signal Processing and
Control, Vol. 1, No. 1, 86–92, 2006.
[13] Cocosco, C. A., A. P. Zijdenbos, and A. C. Evans, “A fully automatic
and robust brain MRI tissue classification method,” Medical Image
Analysis, Vol. 7, No. 4, 513–527, 2003.
[14] Zhang, Y. and L. Wu, “Weights optimization of neural network
viaimproved BCO approach,” Progress In Electromagnetics Research,
Vol. 83, 185–198, 2008.

56
Phụ lục

PHỤ LỤC

Code chương trình:


 Chương trình PCA và DWT :

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);

% Otsu Binarization for segmentation


level = graythresh(I);
img = im2bw(I,level);
figure, imshow(img);title('Otsu Thresholded Image');

% K means Clustering to segment tumor

cform = makecform('srgb2lab');
% Apply the colorform
lab_he = applycform(I,cform);

% Classify the colors in a*b* colorspace using K means


clustering.
% Since the image has 3 colors create 3 clusters.
% Measure the distance using Euclidean Distance Metric.
ab = double(lab_he(:,:,2:3));
nrows = size(ab,1);
ncols = size(ab,2);
ab = reshape(ab,nrows*ncols,2);
nColors = 1;
[cluster_idx cluster_center] =
kmeans(ab,nColors,'distance','sqEuclidean', ...'Replicates',1);

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');

%figure, imshow(segmented_images{2});title('Objects in Cluster


2');

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);

feat = [Contrast,Correlation,Energy,Homogeneity, Mean,


Standard_Deviation, Entropy, RMS, Variance, Smoothness,
Kurtosis, Skewness, IDM];

load Trainset.mat
xdata = meas;
group = label;
svmStruct1 = svmtrain(xdata,group,'kernel_function', 'linear');
species = svmclassify(svmStruct1,feat,'showplot',false)

% To plot classification graphs, SVM can take only two


dimensional data
data1 = [meas(:,1), meas(:,2)];
newfeat = [feat(:,1),feat(:,2)];

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)

%% Accuracy with RBF


svmStruct_RBF =
svmtrain(data(train,:),groups(train),'boxconstraint',Inf,'showp
lot',false,'kernel_function','rbf');
classes2 =
svmclassify(svmStruct_RBF,data(test,:),'showplot',false);
classperf(cp,classes2,test);
Accuracy_Classification_RBF = cp.CorrectRate.*100;
sprintf('Accuracy of RBF kernel is:
%g%%',Accuracy_Classification_RBF)

%% Accuracy with Polynomial


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);

60
Phụ lục

Accuracy_Classification_Poly = cp.CorrectRate.*100;
sprintf('Accuracy of Polynomial kernel is:
%g%%',Accuracy_Classification_Poly)

%%

% 5 fold cross validation


% 5 fold cross validation
load Normalized_Features.mat
xdata = norm_feat;
group = norm_label;
indicies = crossvalind('Kfold',label,5);
cp = classperf(label);
for i = 1:length(label)
test = (indicies==i);train = ~ test;
svmStruct =
svmtrain(xdata(train,:),group(train),'boxconstraint',Inf,'showp
lot',false,'kernel_function','rbf');
classes =
svmclassify(svmStruct,xdata(test,:),'showplot',false);
%class =
svmclassify(meas(test,:),meas(train,:),label(train,:));
classperf(cp,classes,test);
end

 Chương trình giao diện:

function varargout = BrainMRI_GUI(varargin)

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

% --- Executes just before BrainMRI_GUI is made visible.


function BrainMRI_GUI_OpeningFcn(hObject, eventdata, handles,
varargin)
handles.output = hObject;
ss = ones(200,200);
axes(handles.axes1);
imshow(ss);
axes(handles.axes2);
imshow(ss);
% Update handles structure
guidata(hObject, handles);

% --- Outputs from this function are returned to the command


line.
function varargout = BrainMRI_GUI_OutputFcn(hObject, eventdata,
handles)
varargout{1} = handles.output;

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata, handles)

[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

% --- Executes on button press in pushbutton2.


function pushbutton2_Callback(hObject, eventdata, handles)
if isfield(handles,'ImgData')
%if isfield(handles,'imgData')
I = handles.ImgData;

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);

feat = [Contrast,Correlation,Energy,Homogeneity, Mean,


Standard_Deviation, Entropy, RMS, Variance, Smoothness,
Kurtosis, Skewness, IDM];

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

% --- Executes on button press in pushbutton3.


function pushbutton4_Callback(hObject, eventdata, handles)
load Trainset.mat
%data = [meas(:,1), meas(:,2)];
Accuracy_Percent= zeros(200,1);
itr = 80;
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);
%svmStruct =
svmtrain(data(train,:),groups(train),'boxconstraint',Inf,'showp
lot',false,'kernel_function','rbf');
svmStruct_RBF =
svmtrain(data(train,:),groups(train),'boxconstraint',Inf,'showp
lot',false,'kernel_function','rbf');
classes2 =
svmclassify(svmStruct_RBF,data(test,:),'showplot',false);
classperf(cp,classes2,test);
%Accuracy_Classification_RBF = cp.CorrectRate.*100;
Accuracy_Percent(i) = cp.CorrectRate.*100;
sprintf('Accuracy of RBF Kernel is: %g%%',Accuracy_Percent(i))
waitbar(i/itr);
end
delete(hWaitBar);
Max_Accuracy = max(Accuracy_Percent);
sprintf('Accuracy of RBF kernel is: %g%%',Max_Accuracy)
set(handles.edit1,'string',Max_Accuracy);
guidata(hObject,handles);

% --- Executes on button press in pushbutton4.


function pushbutton3_Callback(hObject, eventdata, handles)
load Trainset.mat

65
Phụ lục

%data = [meas(:,1), meas(:,2)];


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);
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;
Accuracy_Percent(i) = cp.CorrectRate.*100;
sprintf('Accuracy of Linear Kernel is:
%g%%',Accuracy_Percent(i))
waitbar(i/itr);
end
delete(hWaitBar);
Max_Accuracy = max(Accuracy_Percent);
sprintf('Accuracy of Linear kernel is: %g%%',Max_Accuracy)

set(handles.edit2,'string',Max_Accuracy);

% --- Executes on button press in pushbutton5.


function pushbutton5_Callback(hObject, eventdata, handles)
load Trainset.mat
%data = [meas(:,1), meas(:,2)];
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);

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);

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as
text
% str2double(get(hObject,'String')) returns contents of
edit1 as a double

% --- Executes during object creation, after setting all


properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles empty - handles not created until after all
CreateFcns called

% Hint: edit controls usually have a white background on


Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

67
Phụ lục

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit3_Callback(hObject, eventdata, handles)


% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit3 as


text
% str2double(get(hObject,'String')) returns contents of
edit3 as a double

% --- Executes during object creation, after setting all


properties.
function edit3_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles empty - handles not created until after all
CreateFcns called

% Hint: edit controls usually have a white background on


Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

% --- Executes during object creation, after setting all


properties.
function edit4_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

68
Phụ lục

if ispc && isequal(get(hObject,'BackgroundColor'),


get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit6_Callback(hObject, eventdata, handles)


function edit6_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit6 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles empty - handles not created until after all
CreateFcns called

% Hint: edit controls usually have a white background on


Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit7_Callback(hObject, eventdata, handles)


% --- Executes during object creation, after setting all
properties.
function edit7_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles empty - handles not created until after all
CreateFcns called

% Hint: edit controls usually have a white background on


Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit8_Callback(hObject, eventdata, handles)

69
Phụ lục

% --- Executes during object creation, after setting all


properties.
function edit8_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit9_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit9_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit10_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit10_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit10 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles empty - handles not created until after all
CreateFcns called

% Hint: edit controls usually have a white background on


Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit11_Callback(hObject, eventdata, handles)

70
Phụ lục

% --- Executes during object creation, after setting all


properties.
function edit11_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit12_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit12_CreateFcn(hObject, eventdata, handles)
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit13_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit13_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit14_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit14_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

71
Phụ lục

function edit15_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit15_CreateFcn(hObject, eventdata, handles)
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit16_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit16_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit17_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit17_CreateFcn(hObject, eventdata, handles)
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

% --- Executes on button press in pushbutton6.


function pushbutton6_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
load Trainset.mat
%data = [meas(:,1), meas(:,2)];

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);

function edit19_Callback(hObject, eventdata, handles)

% --- Executes during object creation, after setting all


properties.
function edit19_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

% --- Executes during object creation, after setting all


properties.
function axes6_CreateFcn(hObject, eventdata, handles)
imshow('D:\Brain_Tumor5\1.bmp')
% --- Executes during object creation, after setting all
properties.

73
Phụ lục

function axes7_CreateFcn(hObject, eventdata, handles)


imshow('D:\Brain_Tumor5\2.png')
% --- Executes during object creation, after setting all
properties.
function axes8_CreateFcn(hObject, eventdata, handles)
imshow('D:\Brain_Tumor5\3.bmp')

74

You might also like