Khái niệm)
Hình 2.12 Nguyên lý biến đổi lưu vực sông (watershed transform) nơi các giá trị cường độ xác định đồi và lưu vực. Đối với mục đích phân vùng, các lưu vực có
thể bị ngập để kết hợp các vùng tương ứng.
Thuật toán Watershed [5], [6] cho phép người dùng đánh dấu những vùng hình ảnh chứa đối tượng, nền và cả những vùng không chắc chắn. Sau khi thuật toán kết thúc, những vùng không chắc chắn sẽ được gắn nhãn tiền cảnh hoặc nền, các đường ranh giới giữa các vùng cũng sẽ được phát hiện.
Đầu tiên, thuật toán Watershed xem bức ảnh chứa “Gradient of the Intensity” như là một tấm bản đồ địa hình, trong đó các vùng sáng là các ngọn núi, còn các vùng tối là các thung lũng, hình 2.12.
Hình 2.13 Địa hình khi chưa bị ngập nước
Giả sử có một trận mưa cực lớn xuất hiện, ban đầu nước sẽ nhấn chìm toàn bộ các thung lũng, sau đó mực nước tăng dần để nhấn chìm từng ngọn núi, lúc này nước ở trong các thung lũng sẽ gặp nhau, vị trí mà chúng gặp nhau chính là biến đổi
watershed (hình 2.15) và đó cũng chính là ranh giới giữa các vùng mà chúng ta cần phân tách. Nước lũ ở từng thung lũng được tô màu khác nhau để dễ hình dung.
Hình 2.14 Bắt đầu cho ngập các thung lũng
Hình 2.15 Vị trí của Watershed
Nếu những vùng bị nhấn chìm cùng nhau đã được đánh dấu cùng là tiền cảnh hoặc cùng là nền từ trước thì chúng sẽ được kết nối với nhau. Ngược lại thì tại vị trí watershed, chúng ta cần xây dựng một bức tường để ngăn cản nước từ hai vùng khác biệt (tiền cảnh và nền) hòa trộn với nhau, hình 2.17.
Hình 2.17 Toàn bộ địa hình bị nhấn chìm
Sau khi toàn bộ địa hình đã bị nhấn chìm, chúng ta sẽ nhận được các vùng ( tiền cảnh) foreground, nền và đường ranh giới giữa chúng hình 2.18.
Hình 2.18 Ví dụ phân vùng ảnh bằng Watershed
Định nghĩa Watershed transform [5]
Dẫn nhập: Phần này nhắc lại một số kiến thức về đồ thị và ảnh kỹ thuật số. Đồ thị
Một đồ thị G = (V, E) bao gồm một tập hợp V các đỉnh (hoặc nút) và một tập hợp E ⊆ V × V của các cặp đỉnh. Trong đồ thị có hướng, tập hợp E bao gồm các cặp theo thứ tự (v, w). Thay vì graph ‘đồ thị định hướng - directed graph’, chúng ta sẽ viết là digraph. Một cặp không có thứ tự (v, w) được gọi là một biên, một cặp có thứ tự (v, w) một cung. Nếu e = (v, w) là một cạnh (cung), e được gọi là sự cố (incident) với (hoặc liền kề) các đỉnh v và w của nó; ngược lại, v và w được gọi là sự cố với e. Chúng ta cũng gọi v và w là các hàng xóm . Tập hợp các đỉnh là hàng xóm của v được ký hiệu là NG(v). Một đường dẫn π có độ dài ℓ trong graph G = (V,
E) từ đỉnh p đến đỉnh q là một chuỗi các đỉnh (p0, p1, ..., pℓ −1, pℓ) sao cho p0 = p, pℓ= q và (pi, pi +1) ∈E i ∈ [0, ℓ ). Độ dài của một đường dẫn π được biểu thị bằng
length(π). Một đường dẫn được gọi là đơn giản (simple) nếu tất cả các đỉnh của nó
là khác biệt. Nếu tồn tại một đường dẫn từ một đỉnh p đến một đỉnh q, thì chúng ta nói rằng q có thể truy cập (reachable) từ p, ký hiệu là p q.
Một đồ thị vô hướng được kết nối nếu mọi đỉnh có thể tiếp cận được từ mọi đỉnh khác. Đồ thị G’ = (V’, E’) được gọi là sơ đồ con của G = (V, E) nếu V’⊆ V, E’ ⊆ E và các phần tử của E’ chỉ xảy ra sự cố với các đỉnh từ V’. Một thành phần được kết nối (connected component) của đồ thị là một sơ đồ con được kết nối tối đa của G. Các thành phần được kết nối phân vùng các đỉnh của G.
Trong một digraph, một đường dẫn (p0, p1, ..., pℓ -1, pℓ) tạo thành một chu kỳ nếu p0 = pℓ và đường dẫn chứa ít nhất một cạnh. Nếu tất cả các đỉnh của chu kỳ là khác biệt, chúng ta nói về một chu kỳ đơn giản (simple cycle). Một vòng tự lặp là
một chu kỳ có độ dài 1. Trong đồ thị vô hướng, một đường dẫn (p0, p1, ..., pℓ -1, pℓ) tạo thành một chu kỳ nếu p0 = pℓ và p1, ..., pℓ là khác biệt. Một đồ thị không có chu kỳ được gọi là acyclic. Một khu rừng (forest) là một acyclic vô hướng, một cây
(tree) là một biểu đồ chu kỳ vô hướng được kết nối (a tree is a connected
undirected acyclic graph). Một đồ thị chu kỳ có hướng (directed acyclic graph)
được viết tắt là DAG.
Đồ thị có trọng số (weighted graph) là một bộ ba G = (V, E, w) trong đó w: E → R là hàm trọng số được xác định trên các cạnh. Đồ thị có giá trị (valued graph) là một bộ ba G = (V, E, f) trong đó f: V → R là hàm trọng số được xác định trên các đỉnh. Thành phần cấp độ ở cấp h của đồ thị có giá trị là thành phần được kết nối của tập hợp các nút v có cùng giá trị f (v) = h. Ranh giới của thành phần cấp P ở cấp h bao gồm tất cả p ∈ P có các láng giềng có giá trị khác với h; ranh giới dưới của P là tập hợp tất cả p ∈ P có các láng giềng có giá trị nhỏ hơn h; phần bên trong của P bao gồm tất cả các điểm của P không nằm trên đường biên. Đường dẫn giảm dần là đường dẫn mà giá trị không tăng. Bởi chúng ta biểu thị tập hợp tất cả các đường dẫn giảm dần bắt đầu trong một nút p và kết thúc ở một số nút q với f (q) < f
(p). Cực tiểu khu vực (minimum, viết tắt) ở cấp h là thành phần cấp P trong đó không có điểm nào có hàng xóm có giá trị thấp hơn h, tức là với tất cả p
∈ P. Một đồ thị có giá trị được gọi là thấp hơn hoàn thành khi mỗi nút không ở mức tối thiểu có nút lân cận có giá trị thấp hơn.
Lưới kỹ thuật số:
Lưới kỹ thuật số (digital grid) là một loại đồ thị đặc biệt. Thông thường người ta làm việc với lưới vuông D ⊆ Z2, trong đó các đỉnh là pixel. Khi D là hữu hạn, kích thước của D là số điểm trong D. Tập hợp pixel D có thể được cung cấp cho cấu trúc đồ thị G = (V, E) bằng cách lấy cho V miền D và cho E một tập hợp con nhất định của Z2 × Z2 xác định kết nối. Các lựa chọn thông thường là 4 kết nối, tức là, mỗi điểm có các cạnh với các hàng xóm ngang và dọc hoặc 8 kết nối trong đó một điểm được kết nối với các hàng xóm ngang, dọc và chéo của nó. Các thành phần được kết nối của một tập hợp pixel được xác định bằng cách áp dụng định nghĩa cho biểu đồ (graphs).
Khoảng cách giữa các nút lân cận trong lưới kỹ thuật số được giới thiệu bằng cách liên kết trọng số không âm d (p, q) với mỗi cạnh (p, q). Theo cách này, một đồ thị có trọng số sẽ thu được. Khoảng cách d (p, q) giữa các pixel không lân cận p và q được xác định là độ dài đường dẫn tối thiểu trong số tất cả các đường dẫn từ p đến q (điều này phụ thuộc vào cấu trúc biểu đồ của lưới, tức là kết nối).
Ảnh số
Một ảnh xám kỹ thuật số là bộ ba G = (D, E, f), trong đó (D, E) là một biểu đồ (thường là lưới kỹ thuật số) và f: D - → N là hàm gán giá trị nguyên cho mỗi pD. Một ảnh nhị phân f chỉ có hai giá trị, các điểm ảnh là 1 ('tiền cảnh-foreground') và nền là 0 ('nền- background '). Đối với p ∈ D, f (p) được gọi là giá trị xám hoặc độ cao (coi f là một hình chạm nổi địa hình). Đối với phạm vi của ảnh xám, người ta thường lấy tập hợp các số nguyên từ 0 đến 255. Một cao nguyên hoặc vùng phẳng của giá trị xám h là thành phần cấp độ của hình ảnh, được coi là biểu đồ có giá trị, tức là, một thành phần được kết nối của các pixel có giá trị xám không đổi h. Ngưỡng của f ở cấp h là
Khoảng cách đo đạc
Đặt A ⊆ , với E = Rd hoặc = Zd và a, b hai điểm trong A. Khoảng cách trắc địa dA(a, b) giữa a và b trong A là độ dài đường đi tối thiểu trong số tất cả các đường trong A từ a đến b (trong trường hợp liên tục, đọc là 'infimum' thay cho 'tối thiểu'). Nếu B là tập con của A, xác định dA(a, B) = MIN b∈B (dA(a, b)). Đặt B⊆A được phân vùng trong k thành phần được kết nối Bi, i = 1, ..., k. Vùng ảnh hưởng trắc địa của tập Bi trong A được định nghĩa là
Đặt B⊆A. Tập hợp IZA(B) là sự kết hợp của các vùng ảnh hưởng trắc địa của các kết nối các thành phần của B, tức là:
(2.4)
Phần bù của tập hợp IZA(B) trong A được gọi là SKIZ (khung theo vùng ảnh hưởng):
(2.5)
Vì vậy, SKIZ bao gồm tất cả các điểm tương đương nhau (theo nghĩa của khoảng cách trắc địa) đến ít nhất hai thành phần được kết nối gần nhất (đối với lưới kỹ thuật số, có thể không có điểm nào như vậy). Đối với hình ảnh nhị phân f với miền A, SKIZ có thể được xác định bằng cách xác định B bằng tập hợp các pixel phía trước. Định nghĩa biến đổi watershed
Trong phần này giới thiệu các định nghĩa về biến đổi watershed, có thể được xem như là một khái quát hóa bộ xương theo vùng ảnh hưởng (SKIZ) thành hình ảnh giá trị xám. Chúng ta bắt đầu với trường hợp liên tục, theo sau là hai định nghĩa cho trường hợp kỹ thuật số, định nghĩa thuật toán của Vincent & Soille và định nghĩa theo khoảng cách địa hình của Meyer.
Định nghĩa Watershed trong trường hợp liên tục
Một định nghĩa watershed cho trường hợp liên tục có thể dựa trên các hàm khoảng cách. Tùy theo hàm khoảng cách được sử dụng (xem 2.3.1), người ta có thể đi đến các định nghĩa khác nhau.
Giả sử rằng hình ảnh f là một phần tử của không gian C (D) của các hàm thực hai lần liên tục khác nhau trên miền D được kết nối với chỉ các điểm quan trọng riêng biệt. Sau đó, khoảng cách địa hình giữa các điểm p và q trong D được
xác định bởi
(2.6)
trong đó điểm cực đại nằm trên tất cả các đường dẫn (đường cong trơn tru) bên trong D với γ(0) = p, γ(1) = q. Khoảng cách địa hình giữa một điểm p ∈ D và tập A
⊆ D được xác định là Tf(p, A) = MINa∈ATf (p, a). Đường đi có Tf – là khoảng cách ngắn nhất giữa p còn q là đường có độ dốc lớn nhất. Điều này thúc đẩy định nghĩa nghiêm ngặt sau đây về biến đổi đầu nguồn.
Definition 2.1. (Watershed transform)
Đặt f ∈ C (D) có cực tiểu {mk} k∈I, đối với một số bộ chỉ số I. Miền lưu vực CB (mi) của một cực tiểu mi được định nghĩa là tập hợp các điểm x ∈ D có địa hình gần với mi hơn đến bất kỳ cực tiểu mj khu vực khác.
watershed của f là tập hợp các điểm không thuộc bất kỳ vùng lưu vực nào:
(2.7)
Đặt W là một số nhãn, W I. watershed transform của f là ánh xạ : D → I{W}, sao cho λ (p) = i nếu pCB(m i) và λ (p) = W nếu p ∈ Wshed (f).
Vì vậy, watershed transform của f gán nhãn cho các điểm của D, sao cho (i) các
miền lưu vực khác nhau được gắn nhãn duy nhất và (ii) một nhãn đặc biệt W được gán cho tất cả các điểm của watershed (lưu vực) f.
Định nghĩa 2.2: Watershed trường hợp rời rạc
Một vấn đề phát sinh đối với hình ảnh kỹ thuật số là sự xuất hiện của các cao nguyên, tức là các vùng có giá trị xám không đổi, có thể mở rộng trên các vùng hình ảnh lớn. Các cao nguyên như vậy tạo thành một khó khăn khi cố gắng mở rộng định nghĩa lưu vực (watershed) liên tục dựa trên khoảng cách địa hình đến các hình ảnh rời rạc. Hiệu ứng không nhắm mục tiêu này cũng là một trở ngại lớn cho việc thực hiện song song các thuật toán đầu nguồn.
Một số thuật toán sẽ tự động tính toán mức watershed transform theo cấp độ, trong đó mỗi cấp tạo thành một hình ảnh nhị phân mà SKIZ được tính toán.
Hình 2.19 Watershed transform trên lưới ô vuông, cho các kết nối khác nhau.
(a): hình ảnh gốc (cực tiểu được in đậm); (b - c): kết quả theo độ ngâm vào nước (Định nghĩa 2.2); (d) - (e): kết quả theo khoảng cách địa hình (Định nghĩa 2.1). Các phương pháp biến đổi Watershed [6]
Chủ yếu có ba phương pháp để thực hiện watershed: + Phương pháp chuyển đổi khoảng cách,
+ Phương pháp Gradient,
+ Phương pháp kiểm soát đánh dấu. Cụ thể:
Phương pháp biến đổi khoảng cách (DT xem 2.3.1)
+ Phương pháp Gradient: Biên độ gradient được sử dụng để xử lý trước một ảnh xám trước khi sử dụng biến đổi watershed để phân vùng. Biên độ gradient
có các giá trị pixel cao dọc theo các biên của đối tượng và các giá trị pixel thấp ở những nơi khác. Biến đổi watershed sẽ cho kết quả các đường sườn watershed dọc theo các cạnh biên của đối tượng. Có một vấn đề của phân vùng quá mức khi phân vùng theo phương pháp watershed là có các đường viền không mong muốn do nhiễu gây ra trong phương pháp này (xem hình 2.20 Phân vùng quá mức). Khi sử dụng phương pháp Gradient quá trình phân vùng được thực hiện thành hai bước riêng biệt: đầu tiên phát hiện các cạnh chính của hình ảnh được xử lý và sau đó tính toán watershed của gradient đã được phát hiện.
Phương pháp kiểm soát đánh dấu:
Các watersheds được tách riêng với nhau. Biến đổi watershed phân tách hoàn toàn một hình ảnh và do đó gán từng pixel cho một vùng hoặc một watershed. Với dữ liệu hình ảnh y tế có nhiều nhiễu, một số lượng lớn các vùng nhỏ phát sinh. Điều này được gọi là vấn đề về phân vùng quá mức - “over-segmentation” Phương pháp kiểm soát đánh dấu sẽ khắc phục được hạn chế này
Hình 2.20 Phân vùng quá mức do nhiễu khi áp dụng cho một lát cắt trục của hình ảnh CT. Ảnh cuối: các lưu vực riêng lẻ (individual basins) được hợp nhất
để tạo thành các vùng lớn hơn liên tiếp. 2.3.3 Phối hợp biến đổi Watershed và biến đổi khoảng cách
Sử dụng biến đổi Watershed chúng ta có thể thực hiện phân vùng ảnh khi kết hợp biến đổi khoảng cách chúng ta sẽ thu được kết quả phân vùng và các đối tượng được tách rời sử dụng cho mục đích đếm.
Thuật toán biến đổi Watershed và biến đổi khoảng cách
Trên hình 2.21 là thuật toán biến đổi Watershed và biến đổi khoảng cáchcó thể ứng dụng cho nhiều trường hợp tách đối tượng dính nhau. Giải thích thuật toán:
BEGIN
1. Mở ảnh có sẵn hoặc thu ảnh từ cameta
Ảnh chứa các đối tượng cần đếm có thể là ảnh màu hoặc ảnh xám. Để chuyến ảnh màu sang ảnh nhị phân trước hết chúng ta chuyển nó sang ảnh xám.
2. Chuyển sang ảnh binary
Nếu ảnh trong file là ảnh binarry thì không cần phải thực hiện bước này. 3. Dùng toán tử mở loại các điểm trắng nhỏ
Trong ảnh nhị phân có thể có những điểm trắng nhỏ. Để không bị sai kết quả khi tính toán chúng ta loại những điểm ảnh trắng nhỏ này bằng toán tử
opening. Việc loại điểm trắng nhỏ cỡ bao nhiêu pixel do chúng ta tự quyết định, thường là nhỏ hơn diện tích cơ bản của đối tượng đơn cần đếm một số nào đó.
4. Dùng toán tử đóng loại các lỗ nhỏ màu đen trong ảnh đối tượng (vùng màu trắng)
Trong nhóm ảnh đối tượng (trắng trên nền đen) có thể có những lỗ đen nhỏ. Dùng toán tử đóng để lấp đầy các lỗ đen này.
5. Thực hiện phép trừ nền để tách vùng quan tâm khỏi ảnh chung 6. Gắn nhãn nền và các cùng không phải nền
7. Thực hiện biến đổi watershed END
Hình 2.21 Thuật toán phối hợp Biến đổi Watershed và Biến đổi khoảng cách [2]
Thực hiện biến đổi watershed
Bắt đầu
Mở file ảnh hoặc thu ảnh
Chuyển sang ảnh nhị phân
Dùng toán tử mở loại các điểm trắng nhỏ Dùng toán tử đóng loại các lỗ nhỏ màu đen Thực hiện phép trừ nền Gán nhãn nền và các vùng không phải nền Kết thúc
Ví dụ: tách các đồng xu dính nhau
Hình 2.22 mô tả việc thực hiện tách ảnh của các đồng xu bị dính nhau dùng phân vùng Watershed kết hợp biến đổi khoảng cách (Distance Transform).
Hình 2.22 Phân vùng các đồng xu dính nhau
Sau khi thực hiện bước f) nếu để thực hiện phân vùng Watershed chúng ta sẽ thực hiện một số bước tiếp theo g) h) i). Tuy nhiên trong nhiệm vụ ở đây chúng ta chỉ thực hiện đến f) là đủ và sau đó là bước đếm đối tượng.
a) Ảnh gốc b) Chuyển ảnh gốc sang ảnh nhị phân c) Dùng toán tử mở loại các điểm trắng nhỏ (nhiễu) d) Dùng toán tử đóng loại các lỗ nhỏ màu đen. e) thực hiện biến đổi khoảng cách f) Thực hiện phân ngưỡng để thu được các đối tượng tách rời g) Tạo bản đồ màu JET (Bản đồ màu là một ma trận 3 hàng, 3 cột mỗi một hàng là