Phân lớp bằng thuật toán k-người láng giềng gần nhất

Một phần của tài liệu Hỗ trợ chuẩn đoán tự động tổn thương xuất huyết /tụ máu dựa vào ảnh CT não (Trang 52)

Sau khi thu thập đầy đủ dữ liệu học, bây giờ ta có thể sử dụng nó cho hệ

thống của mình. Cụ thể hơn, ta sẽ sử dụng dữ liệu học này để phân lớp những vùng tổn thương đã được phát hiện ở bộ phân đoạn đơn giản. Mỗi vùng sẽ được phân vào một trong hai lớp: lớp xóa (tương ứng với việc xóa bỏ vùng đó, do nó không phải là bệnh) và lớp giữ (đây đúng là vùng bị tổn thương). Phương pháp được chọn ở đây là sử dụng thuật toán k-người láng giềng gần nhất.

Cách hoạt động của thuật toán k-người láng giềng gần nhất như sau: Với mỗi vùng được đưa vào, ta sẽ tính toán khoảng cách giữa vector đặc trưng của vùng đó với tất cả các vector trong bộ dữ liệu học đã cho, và chọn ra k vector có khoảng cách nhỏ nhất. Lần lượt đếm số lần xuất hiện của các mẫu giữ và mẫu xóa trong k vector này và hành động xuất hiện nhiều hơn sẽ được chọn là hành động sẽ tác động lên mẫu cần phân lớp.

3.2.3.1 Chọn lựa k

Chọn k bằng bao nhiêu là một vấn đề quan trọng của thuật toán k-người láng giềng gần nhất. Ở trường hợp tới hạn với k = 1, ta có thuật toán người láng giềng gần nhất. Nói chung, việc chọn k là một vấn đề phụ thuộc từng bài toán cụ thể, và giá trị k tốt nhất chỉ có thể xác định dựa vào phương pháp thử sai.

Qua quan sát, người ta đã đưa ra một số giá trị k tỏ ra khá tốt với nhiều bài toán khác nhau, một trong số đó là cách chọn k = n. Riêng trong bài này, với số lượng mẫu học khoảng 600, sau quá trình thử nghiệm em chọn k bằng 7.

3.2.3.2 Tính khoảng cách giữa hai vector

Cùng với cách chọn giá trị cho k thì việc xác định công thức tính

khoảng cách giữa 2 vector đặc trưng (nói cách khác, là độ tương tự giữa 2 mẫu) cũng đóng vai trò quan trọng. Cách tính quen thuộc nhất là dùng khoảng cách Euclide: nếu gọi u và v là 2 vector cần tính khoảng cách, mỗi vector có n thành phần thì khoảng cách Euclide được tính theo công thức sau:

Dist2 =(uv)T(uv) (4.3)

Nhận xét rằng trong công thức trên, tất cả các đặc trưng đều có một vai trò như nhau. Tuy vậy, trong thực tế (cũng như trong vấn đề mà ta đang xét), thường sẽ có những đặc trưng giữ vai trò quan trọng hơn các đặc trưng còn lại. Chẳng hạn, một vùng càng nằm gần sọ não thì càng có nhiều khả năng đã bị phát hiện lầm ở bước phân đoạn trước, như vậy hệ số cho đại lượng này trong công thức tính khoảng cần phải lớn hơn. Mặt khác, nếu vùng đó nằm gần não, nhưng có diện tích lớn khá lớn thì nhiều khả năng đó là tổn thương tụ máu dưới/ngoài màng cứng nên cần được giữ lại, như vậy hệ số về tương

ứng với diện tích cũng phải cao.

Để tính khoảng cách giữa 2 vector mà trong đó các đặc trưng có vai trò khác nhau, ta dùng công thức sau:

) ( ) ( 2 u v W u v Dist = − T − (4.4)

trong đó W là ma trận đường chéo, và phần tửwii của nó sẽ tương ứng với hệ

số mà đặc trưng thứ i được nhận.

3.3 Dùng hệ luật đểđịnh vị vùng tổn thương 3.3.1 Hệ luật đơn giản

Muốn đưa ra được lời mô tả hình ảnh, ta xác định vị trí của vùng tổn thương trong não (ví dụ: nằm ở vùng thùy chẩm hay thùy thái dương…). Ở

Hiện các luật này được xây dựng chủ yếu dựa vào thông tin về vị trí tương

đối của một vùng so với sọ não.

ƒ Nằm lệch về bên trái hay bên phải, phía trên hay phía dưới của sọ.

ƒ Nhờ vào thông tin về vị trí các lát cắt: lát cắt đầu tiên, cuối cùng…

ƒ Trường hợp vị trí của vùng tổn thương không rõ ràng, ta sẽ chỉ

kết luận nó thuộc về bán cầu não trái hoặc bán cầu não phải. Với những lát cắt đầu tiên (hình 3-2), những vùng chúng ta cần định vị

gồm có bán cầu tiểu não, thùy thái dương phải và thùy thái dương trái. Do đã có được đường biên của xương sọ nên ta dễ dàng xác định được vị trí tương

đối của một vùng là nằm về phía trái, phía phải, hay bên dưới (lấy mốc là sọ

não). Ví dụ về các luật trong trường hợp này là:

Ví dụ:

NẾU vùng nằm về phía dưới THÌ nó thuộc tiểu não

NẾU vùng nằm về phần trên và lệch về phía phải THÌ nó thuộc về thùy thái dương (P).

Với các lát cắt tiếp theo, ta xác định các vùng theo hình 3-3, với các vị

trí có thể là thùy trán, thùy thái dương phải và trái, thùy chẩm và vùng não thất. Với cách phân vùng như trong hình 3-3, ta có một luật ví dụ như sau:

Ví dụ:

NẾU vùng thuộc về phân vùng trên cùng THÌ nó thuộc về thùy trán.

Lên cao nữa, ở những lát cắt cuối cùng như hình 3-4, ta định vị một vùng duy nhất là thùy đỉnh.

Nếu một vùng tổn thương nằm trên nhiều vùng khác nhau của não thì vị

trí được xác định sẽ là hợp của các vị trí đó lại với nhau, chẳng hạn “thái dương-trán” hay “thái dương-chẩm”.

Hình 3-2: Minh họa lát cắt đầu tiên vùng trên lều

Hình 3-4: Hình minh họa lát cắt trên cùng (thùy đỉnh) 3.3.2 Hệ luật phức tạp

Có thể thấy rằng những luật này đều có độ chính xác tương đối. Nếu như muốn mô tả vị trí của tổn thương cụ thể hơn, thì rõ ràng hệ luật sẽ phức tạp hơn và không thể xây dựng bằng phương pháp quan sát như trên được. Dĩ

nhiên, cách thức truyền thống trong trường hợp này là yêu cầu bác sĩ chuyên môn trợ giúp. Tuy nhiên, một vấn đề khác lại xuất hiện là bản thân các tri thức của bác sĩ đều mờ, và họ rất khó trình bày được cách họ suy luận để đi

đến kết luận như thế. Nếu nói đến vấn đề giải quyết thông tin mờ, ta sẽ nghĩ

ngay đến công cụ logic mờ. Tuy vậy, ở đây em muốn thử nghiệm một cách giải quyết khác: sử dụng lại một lần nữa phương pháp học dựa vào sự trình diễn. Quá trình thực hiện như sau:

1. Phân vùng ảnh ra thành nhiều vùng con.

2. Yêu cầu chuyên gia đánh dấu mỗi vùng, số lượng nhãn phụ

thuộc vào mức độ chi tiết các bộ phận mà ta muốn định vị. 3. Lưu thông tin các vùng để tạo thành dữ liệu học.

4. Tạo ra cơ sở luật bằng cách dùng phương pháp cây quyết

5. Khi định vị, ta chỉ cần phân vùng ảnh theo cách đã làm khi học, xác định phân vùng chứa tổn thương, tính toán các đặc trưng và sử dụng hệ luật đã xây dựng đểđịnh vị.

Ta nhận thấy cần phải tìm một phương pháp phân vùng ảnh sao cho thỏa 2 điều kiện sau:

- Không quá lớn để nhiều bộ phận khác nhau của não bị rơi vào chung một vùng.

- Không quá nhỏ vì như vậy sẽ tạo thành quá nhiều phân, mỗi vùng sẽ không mang đầy đủ đặc trưng của nó, làm tăng thời gian xử lý.

Cách thực hiện là sử dụng thông tin tương hỗ (đã trình bày ở phần 2.8). Ý tưởng chính như sau: xem ảnh ban đầu như một vùng duy nhất, ta tiến hành chia ảnh theo 2 chiều ngang hoặc dọc dựa theo độ tăng cực đại của thông tin tương hỗ.

Các tập biến ngẫu nhiên X và Y được xác định như sau: X:

N n

p i

i = là histogram i của ảnh (bin i). Y:

N qi = 1

Suy ra:

- pj|i là xác suất chuyển từ bin i của histogram sang pixel j. - I(X,Y) = H(X) vì cho trước 1 điểm ảnh, sẽ không có bất

cứ sự không chắc chắn nào về histogram bin tương ứng của nó.

Kết quả thu được [7] sẽ tùy vào điều kiện dừng của thuật toán. Sau đây là một số kết quả:

các tiêu chuẩn dừng khác nhau Hình 3-5: Ảnh phân vùng não với

Với kết quả như trên, ta nhận thấy rằng đây là một cách phân vùng rất có triển vọng.

Chương 4 : Chương trình cài đặt – kết qu th nghim 4.1 Chương trình cài đặt

4.1.1Công cụ sử dụng

- Chương trình được viết bằng ngôn ngữ Microsoft Visual C++ 6.0 trên

môi trường Windows XP.

- Dữ liệu thử nghiệm bao gồm 60 ca khảo sát CT não được cung cấp bởi bệnh viện Nguyễn Trãi, thành phố Hồ Chí Minh.

4.1.2Cấu trúc dữ liệu học

Dữ liệu học từ module học bằng sự trình diễn được lưu lại trong tập tin LearningData.Dat đặt trong thư mục LDATA (nằm cùng cấp với tập tin thực thi của chương trình). Cấu trúc tập tin dữ liệu học gồm có:

- 4 byte đầu tiên: chứa số lượng mẫu học có trong tập tin nNumSample.. - Phần còn lại chứa nNumSample mẫu học.

4.1.3Chương trình

Nếu hệ thống chưa có dữ liệu học (hoặc muốn bổ sung thêm dữ liệu học) ta làm như sau:

i. Từ giao diện chính, bấm vào nút “Học dò tìm” để mở hộp thoại học:

Hình 4-2: Màn hình học dựa vào sự trình diễn

ii. Lần lượt load dữ liệu về bệnh nhân, thực hiện các bước sau:

• Dò tìm đơn giản: dò tìm bằng phương pháp lọc ngưỡng đơn giản.

• Sau đó, sử dụng công cụ đánh dấu vùng kèm theo để chọn những vùng bệnh thật (vùng sẽđược giữ lại).

Sau khi đã có dữ liệu học, hệ thống chính đã có thể hoạt động. Muốn chẩn đoán, ta quay về màn hình giao diện chính, mở dữ liệu về bệnh nhân lên và thực hiện chức năng “Dò tìm”:

Hình 4-3: Chọn bệnh nhân

Hình 4-5: Sau khi dò tìm vùng tổn thương

Rất tiếc do thời gian có hạn nên em đã không kịp cài đặt và thử

nghiệm phần tạo hệ luật cho module định vị vùng tổn thương trong não.

4.2 Đánh giá kết quả

4.2.1 Độ hiệu quả của giai đoạn phân lớp

Phần này trình bày về độ chính xác của bộ phân lớp dùng thuật toán k-người láng giềng gần nhất. Nhắc lại rằng sau bước lọc ngưỡng, ta sẽ có một tập các vùng, bao gồm những vùng tổn thương thật sự và những vùng bị

nhận lầm. Bộ phân lớp dùng kNN được xây dựng nhằm mục đích phân loại các vùng này. Sử dụng các độ đo đã giới thiệu trong phần 1.4, ta sẽđánh giá

độ hiệu quả của bộ phân lớp, với dữ liệu vào là tập các vùng được xác định sau bước lọc ngưỡng. Quá trình thử nghiệm được thực hiện trên 2 tập dữ

huyết/tụ máu, tập thứ hai (tập (2)) gồm tập (1) bổ sung thêm 10 khảo sát CT bình thường. Kết quả như sau: Tập dữ liệu Độ nhạy Độđặc trưng Tỉ lệ phân lớp vùng bệnh đúng Tỉ lệ phân lớp vùng bình thường đúng (1) 94% 94.3% 70.5% 98% (2) 94% 93% 71.3% 97.5% Bảng 4-1: Độ chính xác của bộ phân lớp

Ta sẽ nói thêm về các giá trị trên. Tỉ lệ phân lớp vùng bệnh đúng là 70%, tức là chỉ 70% vùng được đánh dấu bệnh thực sự là vùng tổn thương.

Đây là một kết quả khá thấp. Ngược lại, “tỉ lệ phân lớp vùng bình thường

đúng” rất cao (98%) nói lên rằng 98% các vùng được đánh nhãn bình thường là đúng; nói cách khác, chỉ có 2% số vùng bệnh bị đánh dấu không bệnh là sai. Như vậy, bộ phân lớp này đã đạt được mục tiêu đề ra ban đầu: không bỏ

sót vùng bệnh, dù tỉ lệ vùng bệnh nhận lầm có thể cao. (Tham khảo phần 4.2.3 về các hướng cải tiến độ hiệu quả của bộ phân lớp).

4.2.2 Đánh giá công việc

Những công việc đã thực hiện được:

- Tìm hiểu được các kiến thức chuyên môn cơ bản về lĩnh vực chẩn đoán chấn thương sọ não cấp dựa vào ảnh CT não.

- Các vấn đề về lý thuyết cần thiết. - Đề xuất mô hình hệ thống.

- Cài đặt thử nghiệm một phần của mô hình

• Phát hiện vùng tổn thương, module học dựa vào sự trình diễn để phát hiện vùng tổn thương

• Xây dựng hệ luật đơn giản để định vị vùng tổn thương. Những công việc còn tồn tại:

- Do thời gian có hạn nên chưa hoàn thành hết mô hình, chưa xây dựng

được hệ luật tốt hơn đểđịnh vị vùng tổn thương.

- Chưa thử nghiệm nhiều phương pháp khác nhau tại mỗi bước xử lý để

chọn ra cách thích hợp nhất.

- Chỉ mới đề cập đến một góc nhỏ của việc chẩn đoán chấn thương sọ

não bằng ảnh CT, cộng thêm việc yêu cầu dữ liệu đầu vào khá chặt, nên tính thực tế vẫn còn thấp.

4.2.3 Hướng phát triển trong tương lai

- Hoàn chỉnh phần cài đặt các phần còn lại.

- Nghiên cứu thử nghiệm nhiều phương pháp và thuật toán khác, vì các thuật toán được chọn nói chung đều do chủ quan của người viết, không qua quá trình thử nghiệm so sánh độ hiệu quả cụ thể.

- Để nâng cao tính chính xác của hệ thống, ta có thể áp dụng thêm các kiến thức khác về chuyên môn, đặc biệt chú ý đến tính đối xứng của não. (Tham khảo tài liệu [16] về vấn đề phát hiện các đối xứng bình thường và bất thường trong ảnh CT).

- Phát triển hệ thống lên một bước cao hơn: hỗ trợ nhiều dạng tổn thương hơn, với dữ liệu đầu vào đa dạng hơn.

Tài liu tham kho

[1] Bạch Hưng Khang, Hoàng Kiếm, Trí tuệ nhân tạo các phương pháp và ứng dụg, NXB Khoa Học Kĩ Thuật, 1989.

[2] Campbell, N. W., Thomas, B. T., and Troscianko, T., “Automatic

segmentation and classification of outdoor images using neural networks,” International Journal of Neural Systems, vol. 8, no. 1, pp. 137–144, 1997

[3] Chang, Y. and Li, X., “Adaptive image region-growing,” IEEE Transactions

on Image Processing, vol. 3, pp. 868–872, November 1994.

[4] Erol Sarigul, Interactive Machine Learning for Refinement and Analysis of

Segmented CT/MRI Images, A doctoral dissertation submitted to the faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Electrical Engineering, 2004

[5] J.-F. Mangin et al., Coordinate-based versus structural approaches to brain

image analysis, Elsevier, Artificial Intelligence in Medicine 30, 2004, pp. 177-197.

[6] J. Rigau, M. Feixas, M. Sbert, A. Bardera, and I. Boada, Medical Image

Segmentation Based on Mutual Information Maximization, Institut d’Information I Aplicacions, Universitat de Girona, Spain.

[7] Johannes W. Rohen, Chihiro Yokochi, Elke Lutjen – Drecoll, “Atlas giải

phẫu người”, Nhà xuất bản Y học, Việt Nam, 2002.

[8] Jyh-Shing Roger Jang, Chuen-Tsai Sun, Elli Mizutani, Neuro-Fuzzy and Soft

Computing, A computational Approach to Learning and Machine Intelligence, Prentice Hall, Upper Saddle River, Ney York, 1997.

[9] Ioannis Pitas, Digital Image Processing Algorithms, Prentice Hall, New York,

1992.

[10] Lê Hoài Bắc, Nguyễn Thanh Nghị, “Bionet - Hệ chẩn đoán bệnh”, Luận văn thạc sĩ, Đại học Quốc gia TP. HCM, Đại học Khoa học Tự nhiên, Khoa Công nghệ thông tin, 2003.

[11] Nathalie Richard, Michel Dojat, Catherine Garbay, Automated Segmentation of human brain MR images using a multi-agent approach, Elsevier, Artificial Intelligence in Medicine 30, 2004, pp. 153-175.

[12] Phạm Ngọc Hoa, Lê Văn Phước, “Đọc phim CT chấn thương sọ não”, bộ

môn hình ảnh y khoa Đại học Y Dược thành phố Hồ Chí Minh, 2003.

[13] Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing 2nd Edition, Addison-Wesley, New York, 1993.

[14] Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing 3rd Edition, Addison-Wesley, New York, 2001.

[15] Richard O. Duda, Peter E.Hart, David G. Stort, Pattern Classification 2nd

Edition, Wiley, New York, 2000.

[16] S. Prima, J. P. Thirion, G. Subsol, N. Roberts Statistical analysis of normal and abnormal dissymmetry in volumetric medical images, Elsevier, Medical Image Analysis 4, 2000, pp. 111-121.

[17] Terry S. Yoo, Michael J. Ackerman, Open Source Software for Medical

Image Processing and Visualization, Communications, Volume 48, Number 2, February 2005, pp. 55-59.

[18] Tài liệu chính thức về định dạng DICOM: Digital Imaging and

Communications in Medicine (DICOM), National Electrical Manufacturers Association, Virginia, 2004.

Ph lc A. Bệnh học

Phần này trình bày về các dạng tổn thương não được đề cập đến trong

Một phần của tài liệu Hỗ trợ chuẩn đoán tự động tổn thương xuất huyết /tụ máu dựa vào ảnh CT não (Trang 52)

Tải bản đầy đủ (PDF)

(84 trang)