Phương pháp phân đoạn dựa trên vùng sử dụng các thuật toán region- growing để thực hiện phân đoạn ảnh. Thuật toán region-growing bắt đầu từ
một hoặc nhiều điểm hạt giống (seed point) và sau đó lan rộng ra bằng cách kết hợp với các điểm lân cận nó theo một tiêu chuẩn tương tự nào đó. Nếu các điểm liền kề nhau là tương tự so với điểm hạt giống, nó sẽ được đánh dấu thuộc về vùng có điểm hạt giống đó. Quá trình tiếp diễn cho đến khi mọi
điểm ảnh đều được gán vào một vùng nào đó. Nhiều thuật toán đã được đề
xuất cho cách tiếp cận này, trong đó có thể kể đến phương pháp của Chang và Li [3]. Phương pháp của hai ông có tên gọi là phân đoạn thích nghi nhanh. Thuật toán chia ảnh thành nhiều vùng nhỏ vốn có một điểm tương đồng nào
đó.. Các vùng nhỏ này sẽ được kiểm tra theo tiêu chuẩn tương tự. Nếu tiêu chuẩn này thỏa, các vùng này sẽ được nối lại để hình thành vùng lớn hơn. Quá trình cứ tiếp tục cho đến khi không thể thực hiện được nữa.
Rõ ràng trong hướng tiếp cận này, có thể thấy việc chọn lựa điểm hạt giống là rất quan trọng, và có thểđược thực hiện thủ công hoặc tựđộng. Một ví dụ cho trường hợp chọn điểm hạt giống một cách tự động là dựa vào các
đỉnh của histogram.
Xét ví dụ minh họa sau (hình 2-4a: một ảnh kích thước 6*6, trong đó con số trong mỗi ô chỉ độ xám của ô đó. Với điểm hạt giống bắt đầu là điểm có tọa độ (3,3) cùng tiêu chí “trị tuyệt đối của độ xám 2 điểm kề nhau không vượt quá 3”. Đầu tiên, điểm hạt giống được đưa vào vùng. Tiếp theo đó, nó kiểm tra tất cả các điểm lân cận với điều kiện đã nêu, và đưa những điểm thỏa vào vùng (hình 2-4b). Những điểm vừa được bổ sung sẽ trở thành điểm hạt giống mới, và quá trình tiếp tục cho đến khi không còn có thêm điểm nào
(a)
Hình 2-4: Ví dụ về thuật toán Region Growing
(a) ảnh ban đầu, (b) sau khi qua bước lan vùng thứ 1, (c) kết quả cuối cùng 2.2.4 Phương pháp thống kê và Bayes
Phương pháp thống kê và Bayes sử dụng “không gian đặc trưng” để
phân đoạn ảnh. Phương pháp này chuyển thông tin điểm ảnh thành không gian đặc trưng và tiến hành phân đoạn bằng cách sử dụng các tính chất xác suất của chúng. Phương pháp xác suất thu hút nhiều quan tâm của các nhà nghiên cứu vì chúng cho phép thực hiện các phân tích toán học cho bài toán phân đoạn thay cho những phương pháp sử dụng heuristic đã trình bày phía trên.
Khuyết điểm lớn nhất của cách tiếp cận dựa trên thống kê và Bayes là
độ phức tạp tính toán của chúng khá lớn. Một khó khăn khác nữa là chúng
đòi hỏi một mô hình ảnh ngẫu nhiên (stochastic image model) tốt, vốn rất khó đạt được.
2.2.5 Phương pháp mạng nơ ron và logic mờ
Mọi hệ thống thị giác đều cần có tốc độ nhanh, mạnh mẽ, ít nhạy cảm với nhiễu cũng như những sai sót khác ở một mức độ hợp lí. Đó chính là
mục tiêu chính của phương pháp phân đoạn dùng mạng nơ ron và lý thuyết tập mờ. Nhiều nghiên cứu đã dùng mạng nơ ron vào công việc phân đoạn
ảnh, chẳng hạn trong [4]. Ông đã sử dụng mạng nơ ron 3 lớp, trong đó số nút
ở lớp nhập được xác định theo sốđặc trưng được rút ra cho mỗi pixel, số nút xuất ứng với số phân vùng của ảnh. Mạng nơ ron nhiều lớp cũng đã được dùng để phân đoạn ảnh nhiễu. Các trọng số được cập nhật sao cho chúng có thể làm giảm được độ mờ của hệ thống. Như vậy, cách tiếp cận này nhằm mục đích kết hợp các ưu điểm của tập mờ (suy luận dựa trên tính không chính xác/không hoàn chỉnh của tri thức) và ưu điểm của mạng nơ ron.
2.3 Làm mảnh biên
Làm mảnh biên là một bước quan trọng và cần thiết trong nhiều bài toán. Chẳng hạn, trong vấn đề mà ta đang xem xét, có một yêu cầu đặt ra là tìm ra đường biên (và chỉ cần đường biên mà thôi) của sọ để làm mốc và tạo thuận lợi cho việc định vị những vùng khác trong não. Nói chung, các thuật toán làm mảnh sẽ liên tục xóa những điểm ở biên trong vùng đang quan tâm theo 3 ràng buộc sau đây:
i. Không xóa những điểm cuối.
ii. Không làm mất tính liên tục của vùng. iii. Không làm vùng đang xét bị rỗng quá mức.
Sau đây là một thuật toán quen thuộc dùng để làm mảnh. Không mất tính tổng quát, có thể giả sử rằng các điểm thuộc đối tượng đang xét có giá trị bằng 1 và các điểm nền có độ xám bằng 0. Ta gọi một điểm là điểm biên
(contour point) nếu điểm đó có giá trị 1 và một trong 8 điểm lân cận của nó có giá trị bằng 0 (hình 2-4). Quá trình thực hiện gồm 2 bước, bước 1 như sau:
(a) 2≤N(p1)≤6
(b) S(p1) = 1 (c) p2 * p4 * p6 = 0 (d) p4 * p6 * p8 = 0
trong đó N(p1) là tổng sốđiểm lân cận khác 0 của p1: N(p1) = p2 + p3 + … + p8 + p9
Hình 2-5 :Lân cận 8 của điểm p1
Và S(p1) là số lần chuyển từ 0 sang 1 trong chuỗi (theo đúng thứ tự) p2, p3, …, p7, p8, p2.
Ở bước 2, ta giữ nguyên 2 điều kiện (a) và (b), nhưng thay (c) và (d) bằng (c’) và (d’) sau:
(c’) p2 * p4 * p8 = 0 (d’) p2 * p6 * p8 = 0
Bước 1 được áp dụng cho tất cả mọi điểm biên trong vùng đang xét. Nếu có ít nhất 1 trong 4 điều kiện (a) – (d) bị vi phạm, ta giữ nguyên giá trị điểm ảnh đó. Ngược lại, ta đánh dấu điểm ảnh đó và sau này nó sẽ bị xóa. Lưu ý rằng ta chỉ xóa điểm ảnh khi tất cả các điểm biên đã được duyệt qua, nhờ vậy dữ liệu không bị thay đổi trong quá trình xử lý. Sau khi thực hiện xong bước 1, ta xóa tất cả các điểm đã đánh dấu và thực hiện tiếp bước 2 giống nhưđã thực hiện cho bước 1. Như vậy, quá trình thực hiện là một vòng lặp liên tục gồm các giai đoạn sau:
i. Áp dụng bước 1 để đánh dấu điểm cần xóa. ii. Xóa các điểm đã đánh dấu.
iii. Áp dụng bước 2 để đánh dấu điểm. iv. Xóa các điểm đã được đánh dấu.
Thuật toán dừng khi không còn điểm nào được xóa nữa.
Điều kiện (a) bị vi phạm khi điểm biên p1 có 1 hoặc 7 điểm lân cận có giá trị 1. Trường hợp 1 điểm lân cận đồng nghĩa với việc p là điểm cuối, và
do đó không thể xóa được. Tương tự, trong trường hợp p1 có 7 điểm lân cận, nếu ta xóa nó sẽ gây ra lỗ hổng trong vùng đang xét. Điều kiện (b) không thỏa khi điểm đang xét nằm trên vùng biên có độ dày bằng 1, và do đó nếu xóa nó sẽ làm mất tính liên tục của đối tượng.
2.4 Biểu diễn đường biên
Cách lưu trữ ảnh thô thường thấy nhất là lưu trữ theo dạng ma trận.
Đây là lưu trữ chứa đựng được nhiều thông tin nhất (dù thông tin đó ở dạng tiềm ẩn hoặc tường minh). Tuy vậy, trong trường hợp cần biểu diễn đường biên của một đối tượng, phương pháp trên sẽ có những bất tiện như tốn nhiều bộ nhớ và không thuận lợi cho xử lý. Trong phần dưới đây, ta sẽ tìm hiểu 2 phương pháp lưu trữ đường biên khá hiệu quả và có sử dụng trong chương trình.
2.4.1 Biểu diễn bằng chain -code
Cách biểu diễn này dựa trên lân cận 4 và lân cận 8 của một điểm. Tùy theo vị trí tương đối của một điểm so với điểm hiện tại mà hướng của nó sẽ được mã hóa bằng 1 con số tương ứng như trong hình 2-5. Để xây dựng chain code của một đường biên, trước hết ta cần chọn 1 điểm khởi đầu, ví dụ như điểm ở góc trái trên của ảnh. Sau đó, ta duyệt lần lượt qua tất cả các điểm theo chiều ngược chiều kim đồng hồ, gán mã cho nó theo một trong 2 kiểu trong hình 2-5. Lấy ví dụ như trong hình 2-6, chain code tương ứng của nó là 5-6-5- 5-6-7-0-0-0-1-7-1-2-1-3-3-4-4-3.
Hình 2-6: Mã tương ứng với hướng của (a) chain code 4 hướng và (b) chain code 8 hướng
Hình 2-7: Ví dụ về chain code của đường biên, ởđây ta dùng chain code lân cận 8
Chain code tỏ ra rất hữu dụng khi dùng để xác định hướng của đường biên tại một điểm, hoặc dùng để tính chu vi của vùng (xem 2.5.1). Tuy vậy, nếu xét trong vấn đề mà chúng ta đang bàn, cách biểu diễn này không phù hợp. Lí do là vì với cách biểu diễn này, thật khó có thể rút ra được các thông tin cần thiết cho quá trình xử lý, chẳng hạn như khoảng cách từ một điểm
2.4.2 Biểu diễn bằng dòng quét (scanline)
Nguyên tắc tắc rất đơn giản: xem mỗi đối tượng là một tập hợp các dòng, và thay vì lưu tất cả các điểm trong mỗi dòng, ta chỉ cần lưu chỉ số của dòng
đó, cùng với điểm bắt đầu và kết thúc tương ứng trong dòng.
Ví dụ: Xét ảnh trong hình 2-7, biểu diễn đường biên của nó theo dòng quét của nó là: 1 5,6 2 4,7 3 3,8 4 3,9 5 4,7 7,9 6 4,6 8,8 7 5,5 Hình 2-8: Vùng và biểu diễn dòng quét của nó
Nhận thấy rằng cách biểu diễn này đã khắc phục những bất lợi của phương pháp chain code, và đem đến cho ta những thuận lợi trong các phép xử lý sau (vốn được sử dụng thường xuyên trong bài):
i. Tính diện tích vùng.
ii. Xác định một điểm là nằm trong hay ngoài vùng. iii. Dễ dàng duyệt qua toàn bộ các điểm trong vùng.
2.5 Các đặc trưng mô tả vùng (đường kính, chu vi, diện tích…)
Trong phần này ta tìm hiểu về một sốđặc trưng thường được dùng để mô tả vùng. Các đặc trưng này rất hữu dụng cho việc phân lớp vùng và cung cấp nhiều thông tin quan trọng để so sánh và phân lớp vùng trong ảnh nhị
phân. Hình 2-8 mô tả một vùng ảnh nhị phân điển hình.
Hình 2-9: Một sốđặc trưng dùng để mô tả vùng 2.5.1 Diện tích và chu vi
Diện tích và chu vi là 2 trong số những đặc trưng được sử dụng nhiều nhất cho những bài toán phân lớp trong ảnh nhị phân. Diện tích của một vùng tương ứng với tổng số điểm ảnh thuộc vùng đó. Tương tự, chu vi của vùng nhị phân bằng tổng số điểm ảnh nằm trên đường biên của vùng. Đối với biên ảnh xác định bằng lân cận 4, ta có thể xuất phát từ một điểm tùy ý
trên biên, đếm tất cả các điểm dọc theo đường biên cho đến khi trở vềđiểm ban đầu. Tuy vậy, vấn đề sẽ phát sinh nếu đường biên được tạo xác định bằng lân cận 8. Khi đó, khoảng cách giữa 2 điểm kề nhau không phải lúc nào cũng bằng 1 nữa, mà sẽ là 2. Khi đó, ta có thể sử dụng cách mô tả đường biên bằng chain code. Gọi Ne và No lần lượt là tổng số số chẵn và lẻ có trong chuỗi (theo phần 2.4.1, số chẵn ứng với trường hợp 2 điểm liên tiếp cùng cột hoặc cùng dòng, còn số lẻứng với trường hợp 2 điểm nằm theo đường chéo), ta ước lượng chu vi theo công thức sau:
Chu vi = Ne + No 2
2.5.2 Khoảng cách xuyên tâm (radial distance)
Khoảng cách xuyên tâm là khoảng cách Euclide giữa tâm khối lượng của vùng và tâm của hợp tất cả các vùng trong ảnh. Cách đơn giản nhất để ước lượng tâm vùng là dùng giá trị trung bình của tọa độ các điểm của vùng
đó. Đối với ảnh nhị phân, ta có thể tính tâm khối lượng bằng cách dùng moment. Moment (i,j) của vùng R được định nghĩa như sau:
∑∑ = x y j i ij x y R(x,y) μ
trong đó x và y là tọa độ của các điểm ảnh trong vùng. Khi đó, tâm khối lượng có thểđược tính như sau:
00 10 μ μ = x 00 01 μ μ = y
Khoảng cách xuyên tâm có thể được tính bằng cách sử dụng khoảng cách Euclide de giữa tâm khối lượng của hợp tất cả các vùng và của vùng
đang xét theo công thức sau:
2 2 ( ) ) ( ) , ( r l r l e r u x x y y d = − + −
Bên cạnh đó, ta có thể sử dụng khoảng cách xuyên tâm chuẩn hóa u e R u r d ( , ) , trong đó Ru là bán kính của vùng tổng hợp. Vì μ00 là diện tích của
vùng, suy ra Ru có thể được xấp xỉ theo công thức
π μ 4 00 = u R , với giả định rằng vùng tổng hợp có dạng hình tròn. 2.5.3 Chiều dài trục chính và phụ
Chiều dài trục chính và phụ là những đặc trưng rất quan trọng và có thểđược ước lượng bằng cách sử dụng các giá trị riêng. Trước hết, một vùng sẽđược biểu diễn như là một tập các điểm {(x1, y1), (x2, y2), (x3, y3), . . . , (xn, yn)} và giả sử rằng các điểm này được biểu diễn bởi một vector ngẫu nhiên S = [x, y]. Gọi C là ma trận hiệp phương sai của vector đó:
⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = 02 11 11 20 μ μ μ μ C trong đó: ∑∑ − − = x y y y x x )( ) ( 11 μ ∑∑ − = x y x x 2 20 ( ) μ ∑∑ − = x y y y 2 02 ( ) μ
với x và y là tâm của vùng đang tính. Vector riêng của ma trận hiệp phương sai cho ta hướng của 2 trục chính và phụ. Chiều dài của các trục bằng với căn bậc hai của các giá trị riêng của ma trận hiệp phương sai.
Hình 2-10: Trục chính và trục phụ hình ellipse. 2 vector e1 và e2 là 2 vector riêng của ma trận hiệp phương sai. 2.6 Cây quyết định
2.6.1Giới thiệu về cây quyết định
Cây quyết định là một cây đồ thị trong đó mỗi nút bên trong đại diện cho một điểm quyết định và mỗi nút lá tương ứng với một nhãn (lớp) sẽ được gán cho mỗi bộ dữ liệu nhập. Mỗi nút của cây là một phép thử (so sánh) của một thuộc tính nào đó, và nhánh trổ xuống từ nút đó đại diện cho những giá trị
có thể có của thuộc tính này. Để xây dựng được cây quyết định, ta cần có một tập dữ liệu được phân lớp trước (dữ liệu học). Việc xây dựng các cây quyết
định chính là quá trình phát hiện ra các luật phân chia tập dữ liệu đã cho thành các lớp đã được định nghĩa trước.
Việc sinh cây quyết định bao gồm hai giai đoạn: i. Xây dựng cây:
• Tại thời điểm khởi đầu, tất cả các ca ( case ) dữ liệu học
đều nằm tại gốc.
• Các ca dữ liệu được phân chia đệ qui trên cơ sở các thuộc tính được chọn.
ii. Rút gọn cây:
• Phát hiện và bỏ đi các nhánh chứa các điểm dị thường và nhiễu trong dữ liệu.
Hầu hết các thuật toán dựa vào qui nạp hiện có đều sử dụng phương pháp của Hunt dùng để xây dựng một cây quyết định từ một tập T các ca học với các lớp được kí hiệu là {C1,C2,……Cn}.
- Trường hợp 1: T chứa một hoặc nhiều ca, tất cảđều thuộc về một lớp
đơn C1: Cây quyết định T là một lá định dạng lớp C1.
- Trường hợp 2: T không chứa ca nào: Cây quyết định cho T là một lá, nhưng lớp được gắn với lá này phải được xác định từ các thuộc tính không thuộc T.
- Trường hợp 3: T chứa các ca thuộc về một hỗn hợp các lớp: Một phép thửđược lựa chọn dựa vào một thuộc tính đơn có một hoặc nhiều kết quả ( giá trị ) loại trừ lẫn nhau {O1,O2,….On}. T được phân chia thành các tập con T1, T2, ….Tn trong đó T1 chứa tất cả các ca trong T có kết quả O1 của phép thử đã chọn. Cây quyết định cho T gồm một đỉnh quyết định định danh cho phép thử, và một nhánh cho mỗi kết quả có thể có. Cơ chế xây dựng cây này được áp dụng đệ qui cho từng tập con của các ca học.
Bảng 2-1 là một tập dữ liệu học của một ví dụ về thi đấu tennis với năm thuộc tính và hai lớp ( thuộc tính Ngày được sử dụng làm định danh cho các