You are on page 1of 69

Chương 3.

Phân đoạn ảnh


(Image Segmentation)

TS. PHẠM NGUYỄN MINH NHỰT


Email: pnmnhut@vku.udn.vn
Phone: 0903.501.421
1. Khái niệm phân đoạn ảnh
• Cho R biểu diễn vùng không gian ảnh  Phân đoạn ảnh là phân chia R thành n vùng
con: R1, R2, …, Rn
• Sao cho:
𝑛
• 𝑖=1 𝑅𝑖 =𝑅
• Ri: Vùng ảnh chứa tập các pixel được kết nối, i = 0,1,2, …, n
• Ri  Rj =  với i  j
• Q(Ri) = True: nghĩa là các pixel trong vùng Ri có tính chất giống nhau
• Q(Ri  Rj) = False : nghĩa là các pixel ở 2 vùng Ri và Rj có tính chất khác nhau
• Lưu ý:
• Hai vùng Ri và Rj được cho là liền kề nếu sự kết hợp của chúng tạo thành một vùng kết nối
• Nếu vùng được hình thành bởi sự kết hợp của 2 vùng không được kết nối  2 vùng được gọi là
rời nhau.
2. Phân loại phân đoạn ảnh

Phân đoạn ảnh

Loại thứ nhất:


Loại thứ hai
Dựa trên sự thay đổi đột ngột về cường độ
Dựa trên tập các tiêu chí xác định trước
mức xám (phát hiện biên/cạnh ảnh)

Dựa trên kỹ thuật Dựa trên thuộc Dựa trên kỹ thuật Dựa trên kỹ thuật
Sử dụng bộ lọc đạo hàm bậc 1, bậc 2
cắt ngưỡng tính vùng ảnh phân cụm học máy/học sâu

Toán tử Roberts Cắt ngưỡng toàn cục Nở vùng K-mean

Toán tử Sobel Cắt ngưỡng đa ngưỡng Tách và gộp vùng Mean Shift

Toán tử Laplacian Cắt ngưỡng thích nghi Graph Cuts

3
3. Mục đích phân đoạn ảnh

• Mục đích của phân đoạn ảnh:


• Hiểu ảnh
• Đối sánh và nhận dạng ảnh
• Dò tìm đối tượng trong ảnh
• Phân lớp (loại)
• Tăng tốc xử lý các bài toán liên quan tới xử l{ vùng ảnh
• …

4
Ví dụ phân đoạn ảnh
Ví dụ phân đoạn ảnh

6
Phân đoạn ảnh
- Dựa vào kỹ thuật cắt ngưỡng -
4. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng
• Khái niệm:
• Ảnh đa cấp xám (ảnh xám): là ảnh mà các pixel có giá trị xám từ 0 đến 255 (thông thường)
• Ảnh màu (mô hình RGB): mỗi pixel có 03 thành phần đại diện cho 3 màu (Red, Green, Blue)
• Trong đó: Giá trị Red: từ 0 đến 255; Giá trị Green: từ 0 đến 255; Giá trị Blue: từ 0 đến 255
• Cắt ngưỡng là kỹ thuật chuyển giá trị mức xám của ảnh (pixel) về một giá trị xám chung nào đó.
• Ví dụ cắt ngưỡng nhị phân là chuyển ảnh về 2 giá trị: hoặc 0 hoặc 1
• Các loại phân đoạn ảnh dựa trên kỹ thuật cắt ngưỡng:
• Cắt ngưỡng toàn cục: giá trị ngưỡng đơn lẽ và không đổi
• Cắt ngưỡng đa ngưỡng: nhiều giá trị ngưỡng
• Cắt ngưỡng thích nghi: giá trị ngưỡng thay đổi và phụ thuộc giá trị mức xám của pixel cắt
ngưỡng và các pixel lân cận
4.1. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng toàn cục

• Cắt ngưỡng toàn cục (đơn ngưỡng): cắt ngưỡng dựa vào 1 giá trị ngưỡng T cho
toàn bộ ảnh

(1)

T
 Phân chia ảnh vào 2 vùng: Vùng có mức xám = 1 và vùng có mức xám = 0

Ảnh gốc Ảnh sau khi Ngưỡng Ngưỡng


cắt ngưỡng quá cao quá thấp
4.1. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng toàn cục

• Thuật toán tìm ngưỡng: Là những thuật toán tìm ngưỡng để áp dụng phân đoạn
ảnh dựa trên kỹ thuật cắt ngưỡng toàn cục
• 4.1.1. Thuật toán tìm ngưỡng toàn cục cơ bản
• 4.1.2. Thuật toán tìm ngưỡng Otsu
4.1.1. Thuật toán tìm ngưỡng toàn cục cơ bản
• B1: Chọn giá trị ngưỡng ban đầu T (thường là trung bình mức xám trong ảnh)
• B2: Sử dụng ngưỡng T để phận đoạn ảnh, tạo ra 2 nhóm điểm ảnh (áp dụng công thức (1)):
• Nhóm G1 chứa các pixel với mức xám > T
• Nhóm G2 chứa các pixel vớ mức xám ≤ T
• B3: Tính mức xám trung bình trong nhóm G1 là m1 và mức xám trung bình trong nhóm G2
là m2
m1  m 2
• B4: Tính ngưỡng mới: T (2)
2

• B5: Lặp lại B2 đến B4 cho đến khi giá trị của T trong các lần lặp tiếp theo nhỏ hơn T
4.1.1. Thuật toán tìm ngưỡng toàn cục cơ bản
• Ví dụ tìm ngưỡng toàn cục cơ bản và phân đoạn ảnh bằng cắt ngưỡng toàn cục
• Kết quả của thuật toán tìm ngưỡng toàn cục cơ bản cho kết quả ngưỡng T = 125,4.
• Thực hiện sau 3 lần lặp, bắt đầu cho T là giá trị trung bình cường độ xám của ảnh và T = 0
 Ảnh phân đoạn dựa trên kỹ thuật cắt ngưỡng toàn cục với T = 125

Ảnh gốc Histogram Ảnh gốc Ảnh phân đoạn T=125


4.1.2. Thuật toán tìm ngưỡng Otsu
• Là phương pháp tìm ngưỡng dựa trên histogram ảnh
• B1: Gọi ni là số pixel có mức xám i  tính xác suất pixel có mức xám i (3)

• B2: Chọn giá trị ngưỡng ban đầu k (bất kz lớn hơn hoặc bằng 0)
• B3: Tạo ra 2 nhóm điểm ảnh:
• Nhóm A chứa các pixel với mức xám <= k (*0…k+)
• Nhóm B chứa các pixel vớ mức xám > k (*k+1 … L-1])
• B4: Tính xác suất tích lũy đến mức xám k của nhóm A là P1(k) và xác suất tích lũy đến mức xám L-1 của
nhóm B là P2(k)
(4)

• B5: Tính giá trị trung bình xác suất trong nhóm A là m1(k) và nhóm B là m2(k)

(5)
4.1.2. Thuật toán tìm ngưỡng Otsu (tiếp theo)

• B6: Tính giá trị trung bình toàn cục của mức xám ảnh: (6)

• B7: Tính giá trị phương sai giữa 2 nhóm A và B:

(7)

• B8: Giá trị ngưỡng được tính:

(8)
4.1.2. Thuật toán tìm ngưỡng Otsu (tiếp theo)
• Ví dụ tìm ngưỡng bằng thuật toán Otsu và phân đoạn ảnh bằng cắt ngưỡng toàn cục

Ngưỡng tìm được = 97


4.1.2. Thuật toán tìm ngưỡng Otsu (tiếp theo)
So sánh phân đoạn ảnh cắt ngưỡng toàn cục với thuật toán tìm ngưỡng
Otsu và tìm ngưỡng cơ bản

Phân đoạn với Phân đoạn với


ngưỡng tìm ngưỡng tìm
được bằng được bằng thuật
thuật toán tìm toán Otsu
ngưỡng cơ bản
Ảnh hưởng nhiễu và hiệu ứng chiếu sáng
Ảnh hưởng nhiễu và hiệu ứng chiếu sáng trong phân đoạn ảnh bằng kỹ thuật cắt
ngưỡng toàn cục
• Khó khăn trong trường hợp ảnh bị nhiễu:

Ảnh gốc Ảnh nhiễu Ảnh nhiễu


• Khó khăn trong trường hợp ảnh có hiệu ứng chiếu ánh sáng

Ảnh nhiễu Hiệu ứng chiếu sáng Ảnh nhiễu có hiệu ứng
chiếu sáng
•  Phải lọc nhiễu trước khi phân đoạn bằng kỹ thuật cắt ngưỡng
4.2. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng đa ngưỡng

• Cắt ngưỡng đa ngưỡng: dựa vào nhiều giá trị ngưỡng T (T có nhiều giá trị)

(10)

b
a
c

 Phân chia ảnh vào 3 vùng: Vùng có mức xám = a, vùng có mức xám = b và vùng có mức xám = c
4.2. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng đa ngưỡng
• Ví dụ phân đoạn ảnh bằng cắt ngưỡng đa ngưỡng: T1 = 80; T2 = 177

Phân chia ảnh vào 3 vùng: Vùng có mức xám = 0, vùng có mức xám = 127 và vùng có mức xám = 255
4.3. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng thích nghi
• Ý tưởng:
• Đối với các trường hợp cắt ngưỡng toàn cục không hiệu quả thì chia ảnh thành các vùng con và cắt
ngưỡng riêng lẻ các vùng con này
• Do việc cắt ngưỡng cho mỗi pixel phụ thuộc vào vị trí của nó và các pixel cân cận trong ảnh con nên
kỹ thuật này được gọi là cắt ngưỡng thích nghi (adaptive)  Còn gọi cắt ngưỡng cục bộ

Ảnh gốc Ảnh được chia thành các vùng con Ảnh phân đoạn
• Phân loại:
• Phân đoạn ảnh bằng cắt ngưỡng thích nghi dựa trên Thuộc tính ảnh cục bộ
• Phân đoạn ảnh bằng cắt ngưỡng thích nghi dựa trên Di chuyển trung bình (Moving Average)
4.3. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng thích nghi

• 4.3.1. Phân đoạn ảnh bằng cắt ngưỡng thích nghi dựa trên Thuộc tính ảnh cục bộ
• Ý tưởng: Tính giá trị ngưỡng cho mỗi pixel trong ảnh dựa trên vùng lân cận của nó
• mG là giá trị trung bình mức xám của các pixel trong ảnh đầu vào
• Sxy là vùng ảnh con hình vuông với kích thước mỗi cạnh là k, với tọa độ của pixel tại tâm của vùng Sxy
• xy là độ lệch chuẩn của pixel trong vùng Sxy
• Thuật toán:
• B1: Tính mG và xy
• B2: Tính ngưỡng của pixel(x,y) trong vùng Sxy : (11)

Trong đó: a, b là số không âm

• B3: Ảnh phân đoạn được tính bằng: (12)

Trong đó: f(x,y) là ảnh đầu vào


4.3. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng thích nghi

• Ví dụ phân đoạn ảnh bằng cắt ngưỡng thích nghi dựa trên Thuộc tính ảnh cục bộ

Ảnh phân đoạn


theo cách thông
thường

Ảnh phân đoạn theo


Ảnh gốc ngưỡng thích nghi
dựa trên thuộc tính
ảnh cục bộ
4.3. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng thích nghi
• 4.3.2. Phân đoạn ảnh bằng cắt ngưỡng thích nghi dựa trên Di chuyển trung bình
• Ý tưởng:
• Sử dụng di chuyển dọc theo từng dòng, cột hoặc theo hình zíc zắc
• Hữu ích trong xử lý ảnh tài liệu (document)

• Thuật toán:
• B1: Tính giá trị Di chuyển trung bình (Moving Average) tại điểm bước k + 1 :

(13)

Trong đó: n là số điểm để tính trung bình; z là giá trị mức xám của điểm ảnh
• B2: Xác định ngưỡng của pixel tại (x,y): (14)
Trong đó: c là hằng số không âm và mxy giá trị Moving Average của pixel có tọa độ (x,y)
4.3. Phân đoạn ảnh - dựa vào kỹ thuật cắt ngưỡng thích nghi

• Ví dụ phân đoạn ảnh bằng cắt ngưỡng thích nghi dựa trên Di chuyển trung bình

Ảnh phân đoạn bằng Ảnh phân đoạn bằng Thuật


Ảnh gốc
Thuật toán Otsu toán Moving Average
Phân đoạn ảnh
- Dựa vào thuộc tính vùng ảnh-
5. Phân đoạn dựa vào Thuộc tính vùng ảnh

• 5.1. Phân đoạn ảnh sử dụng Thuật toán nở vùng (Region Growing)
• 5.2. Phân đoạn ảnh sử dụng Tách và gộp các vùng ảnh (Split and Merge)
5.1. Phân đoạn ảnh - sử dụng Thuật toán nở vùng
• Thuật toán nở vùng (region growing)
• Nở (gia tăng) vùng ảnh là một tiến trình nhóm các pixel hoặc các vùng con ảnh thành các
vùng lớn hơn dựa trên các tiêu chí xác định trước.
• Phương pháp:
• Bắt đầu với một tập các điểm "hạt giống"
• Từ tập các điểm “hạt giống” này mở rộng vùng ảnh bằng cách thêm vào những pixel lân
cận có thuộc tính được xác định trước tương tự (gần giống) tính chất của điểm “hạt
giống” (chẳng hạn như giá trị mức xám hoặc màu sắc).
• Cho đến khi không mở rộng được nữa thì thuật toán dừng
5.1. Phân đoạn ảnh - sử dụng Thuật toán nở vùng
• Một số định nghĩa • Thuật toán nở vùng sẽ là:
• Gọi f(x,y) là ảnh đầu vào • B1: Xác định pixel “hạt giống”

• Pixel “hạt giống” thỏa mãn điều kiện cho • B2: Dựa vào Q, tìm tất cả các thành phần kết
nối (8 lân cận hoặc 4 lân cận) với pixel “hạt
trước (vd: giá trị mức xám cực đại, màu
giống” trong S(x,y).
sắc…)
• B3: Lặp lại B2 để hình hình thành các vùng
• S(x,y) là vùng ảnh “hạt giống”. Tức là, ảnh fQ(x,y) mà chứa các vùng ảnh “hạt giống”
chứa các pixel “hạt giống” • B4: Hình thành ảnh g(x,y) chứa nhiều vùng
• Thông thường, f(x,y) và S(x,y) là 2 ảnh có fQ(x,y)
kích thước bằng nhau • B5: Mỗi pixel trong fQ(x,y) cho giá trị pixel = 1,
các pixel còn lại bằng 0
• Gọi Q là một đặc tính cho trước để kết nối
•  g(x,y) ảnh phân đoạn.
các pixel lân cận (8 lân cận hoặc 4 lân cận)
với pixel “hạt giống”  việc kết nối như
vậy gọi là nở vùng
28
Ví dụ 1: phân đoạn ảnh - sử dụng Thuật toán nở vùng

Ảnh “hạt giống”


Chọn pixel “hạt gống” S(x,y)
(giá trị mức xám lớn nhất)

Ảnh gốc f(x,y) Kết nối 8


lân cận
dựa trên Q

Pixel  fq(x,y)  1 Hình thành


Pixel  fq(x,y)  0 các vùng
fq(x,y) với điều
kiện Q là: Mức
• Ảnh g(x,y) là ảnh phân đoạn xám sai khác
• Pixel màu đỏ có giá trị mức xám = 1 nhau < 3
• Pixel màu xanh có giá trị mức xám = 0

29
Ví dụ 2: phân đoạn ảnh - sử dụng Thuật toán nở vùng
5.2. Phân đoạn ảnh - sử dụng Tách và gộp các vùng ảnh
• Chia ảnh ban đầu thành các vùng ảnh rời rạc (dựa
vào điều kiện Q nào đó)  còn gọi là phương pháp
tách cây tứ phân
• Sau đó gộp vùng ảnh dựa vào điều kiện Q
• Thuật toán: Gọi vùng ảnh là R, chọn điều kiện Q để
chia vùng
• B1: (Tách) Chia Ri thành 4 phần nhỏ hơn, mỗi vùng nhỏ
hơn chia thành 4 vùng nhỏ hơn nữa, sao cho thỏa mãn
điều kiện Q(Ri) = False
• B2: (Gộp) Đến khi không chia được nữa, thì gộp các vùng
lân cận Rj và Rk sao cho:
Q(Rj  Rk ) = True
• B3: Dừng cho đến khi không gộp được nữa
Ví dụ 1: phân đoạn ảnh - sử dụng Tách và gộp các vùng ảnh

7 7 7 6 6 3 3 3 • Điều kiện Q: Max(vùng) – Min(vùng) < 3


7 7 7 6 5 3 3 3 •  Điều kiện Tách: Q(Ri) = False  Max(Ri) – Min(Ri) >= 3
5 7 4 6 5 5 4 4 •  Điều kiện Gộp: Q(Rj  Rk ) = True  Max(Rj) – Min(Rk)<3 và
5 5 4 4 4 4 2 2 Max(Rk) – Min(Rj) < 3; vùng j và vùng k là các vùng liền kề
2 2 2 4 4 3 2 2
2 2 2 2 2 3 1 3 7 7 7 6 6 3 3 3
2 2 2 2 2 1 0 3 7 7 7 6 5 3 3 3
R1 R2
3 3 3 3 4 4 4 4 Chia (Tách) vùng 5 7 4 6 5 5 4 4
5 5 4 3 4 4 2 2
2 2 2 4 4 3 2 2

• Max(R) – Min(R) = 7 – 0 > 3  Điều kiện Q(R) = False 2 2 2 2 2 3 1 3


R3 R4
2 2 2 2 2 1 0 3
•  Tách R thành R1, R2, R3, R4
3 3 3 3 4 4 4 4

32
Ví dụ 1: phân đoạn ảnh - sử dụng Tách và gộp các vùng ảnh

7 7 7 6 6 3 3 3
7 7 7 6 5 3 3 3
R1 R2
5 7 4 6 5 5 4 4 • Điều kiện Tách: Q(Ri) = False  Max(Ri) – Min(Ri) > 3
5 5 4 4 4 4 2 2
7 7 7 6 6 3 3 3
2 2 2 4 4 3 2 2 R21 R22
7 7 7 6 5 3 3 3
2 2 2 2 2 1 0 3 R1
R3 R4 5 7 4 6 5 5 4 4
2 2 2 2 2 4 1 3 R23 R24
5 5 4 4 4 4 2 2
3 3 3 3 4 4 4 4 Chia (Tách) vùng
2 2 2 4 4 3 2 2
R41 R42
2 2 2 3 2 1 0 3
R3
2 2 2 2 2 4 1 3
R43 R44
• Max(R1) – Min(R1) = 7 – 4 = 3  Q(R1) = True  Không tách R1 3 3 3 3 4 4 4 4
• Max(R3) – Min(R3) = 4 – 2 < 3  Q(R3) = True  Không tách R3
• Max(R2) – Min(R2) = 6 – 2 > 3  Q(R2) = False  R2 chia thành R21, R22, R23, R24
• Max(R4) – Min(R4) = 4 – 0 > 3  Q(R4) = False  R4 chia thành R41, R42, R43, R44

33
Ví dụ 1: phân đoạn ảnh - sử dụng Tách và gộp các vùng ảnh

• Điều kiện Tách: Q(Ri) = False  Max(Ri) – Min(Ri) > 3

7 7 7 6 6 3 3 3 • Max(R21) – Min(R21) = 6 – 4 = 3  Q(R21) = True  Không tách R21


R21 R22
7 7 7 6 5 3 3 3 • Max(R22) – Min(R22) = 3 – 3 = 0  Q(R22) = True  Không tách R22
R1
5 7 4 6 5 5 4 4 • Max(R23) – Min(R23) = 5 – 4 = 1  Q(R23) = True  Không tách R23
R23 R24
5 5 4 4 4 4 2 2 • Max(R24) – Min(R24) = 4 – 2 = 2  Q(R24) = True  Không tách R24
2 2 2 4 4 3 2 2 • Max(R41) – Min(R41) = 4 – 1 = 3  Q(R41) = True  Không tách R41
R41 R42
2 2 2 3 2 1 0 3 • Max(R42) – Min(R42) = 3 – 0 = 3  Q(R42) = True  Không tách R42
R3
2 2 2 2 2 4 1 3 • Max(R43) – Min(R43) = 4 – 2 = 2  Q(R43) = True  Không tách R43
R43 R44
3 3 3 3 4 4 4 4 • Max(R44) – Min(R44) = 4 – 1 = 3  Q(R43) = True  Không tách R44

Đến bước Gộp

34
Ví dụ 1: phân đoạn ảnh - sử dụng Tách và gộp các vùng ảnh
• Điều kiện gộp:
• Điều kiện Gộp: Q(Rj  Rk ) = True  Max(Rj) – Min(Rk)< 3 và Max(Rk) – Min(Rj) < 3;
• Vùng j và vùng k là các vùng liền kề
• Chọn các vùng liền kề theo thứ tự gộp từ trái  phải; từ trên dưới
• R1,R21: Max(R1) – Min(R21) > 3  Không gộp
• R1,R23: Max(R1) – Min(R23) = 3  Không gộp
7 7 7 6 6 3 3 3 • R1,R2: Max(R1) – Min(R3) = 5  Không gộp
R21 R22
7 7 7 6 5 3 3 3 • R21,R22: Max(R21) – Min(R22) = 3  Không gộp
R1 • R21,R23: Max(R23) – Min(R24) = 3  Không gộp
5 7 4 6 5 5 4 4
R23 R24 • R22,R24: Max(R22) – Min(R24) < 3 và Max(R24) – Min(R22) < 3  Gộp R22_24
5 5 4 4 4 4 2 2 • R23,R24: Max(R23) – Min(R24) = 3  Không gộp
2 2 2 4 4 3 2 2 • R24,R42: Max(R24) – Min(R42) = 3  Không gộp
R41 R42
2 2 2 3 2 3 1 3 • R3,R41: Max(R3) – Min(R41) < 3 và Max(R41) – Min(R3) < 3  Gộp R3_41
R3 • R3,R43: Max(R3) – Min(R43) < 3 và Max(R43) – Min(R3) < 3  Gộp R3_43
2 2 2 2 2 4 1 3 • R41,R42: Max(R41) – Min(R42) = 3  Không gộp
R43 R44
3 3 3 3 4 4 4 4 • R41,R43: Max(R41) – Min(R43) < 3 và Max(R43) – Min(R41) < 3  Gộp R41_43
• R42,R44: Max(R44) – Min(R42) = 3  Không gộp
• R43,R44: Max(R43) – Min(R44) = 3  Không gộp
35
Ví dụ 1: phân đoạn ảnh - sử dụng Tách và gộp các vùng ảnh
• Điều kiện gộp:
• Điều kiện Gộp: Q(Rj  Rk ) = True  Max(Rj) – Min(Rk) ≤ 3 và Max(Rk) – Min(Rj) ≤ 3;
• vùng j và vùng k là các vùng liền kề
• Chọn các vùng liền kề theo thứ tự gộp từ trái  phải; từ trên dưới
• R1,R21: Max(R1) – Min(R21) > 3  Không gộp
• R1,R23: Max(R1) – Min(R23) = 3  Không gộp
7 7 7 6 6 3 3 3 • R1,R3: Max(R1) – Min(R3) = 5  Không gộp
R21 R22
7 7 7 6 5 3 3 3 • R21,R22: Max(R21) – Min(R22) = 3  Không gộp
R1 • R21,R23: Max(R23) – Min(R24) = 3  Không gộp
5 7 4 6 5 5 4 4
R23 R24 • R22,R24: Max(R22) – Min(R24) < 3 và Max(R24) – Min(R22) < 3  Gộp R22_24
5 5 4 4 4 4 2 2 • R23,R24: Max(R23) – Min(R24) = 3  Không gộp
2 2 2 4 4 3 2 2 • R24,R42: Max(R24) – Min(R42) = 3  Không gộp
R41 R42 • R3,R41: Max(R3) – Min(R41) < 3 và Max(R41) – Min(R3) < 3  Gộp R3_41
2 2 2 3 2 3 1 3
R3 • R3,R43: Max(R3) – Min(R43) < 3 và Max(R43) – Min(R3) < 3  Gộp R3_43
2 2 2 2 2 4 1 3 • R41,R42: Max(R41) – Min(R42) = 3  Không gộp
R43 R44
3 3 3 3 4 4 4 4 • R41,R43: Max(R41) – Min(R43) < 3 và Max(R43) – Min(R41) < 3  Gộp R41_43
• R42,R44: Max(R44) – Min(R42) = 3  Không gộp
• R43,R44: Max(R43) – Min(R44) = 3  Không gộp
36
Ví dụ 1: phân đoạn ảnh - sử dụng Tách và gộp các vùng ảnh

• Kết quả phân đoạn:

7 7 7 6 6 3 3 3
R21 R22
7 7 7 6 5 3 3 3
R22_24
R1
R1
5 7 4 6 5 5 4 4
R23 R24
5 5 4 4 4 4 2 2
2 2 2 4 4 3 2 2
R41 R42
R42
2 2 2 3 2 3 1 3
R3_41_43
R3
2 2 2 2 2 4 1 3
R43 R44
R44
3 3 3 3 4 4 4 4

37
Phân đoạn ảnh
- Bằng kỹ thuật phân cụm
6. Phân đoạn ảnh dựa vào kỹ thuật phân cụm

• 6.1 Phân đoạn ảnh sử dụng thuật toán K - mean


• 6.2 Phân đoạn ảnh sử dụng thuật toán Mean Shift
• 6.3 Phân đoạn ảnh sử dụng thuật toán Graph Cuts

39
6.1. Phân đoạn ảnh - sử dụng Thuật toán K - Mean
• Thuật toán K - Mean trong phân đoạn ảnh
• Thuật toán phân các điểm ảnh vào mỗi cụm (cluster) khác nhau sao cho các điểm ảnh trong
cùng một cụm có tính chất giống nhau  Các cụm này gọi là vùng con của ảnh.
• Vì thế, thuật toán sẽ gán nhãn (label) cho điểm ảnh dựa vào thuộc tính cho trước. Các điểm
ảnh có cùng nhãn sẽ phân vào cùng một cụm
• Đầu vào: Ảnh (các điểm ảnh) và số lượng cụm k
• Đầu ra: Các điểm ảnh đã được gán nhãn và các tâm của mỗi cụm
• Bước 1: Gán ngẫu nhiên các điểm ảnh cho bất kỳ cụm nào trong số k cụm.
• Bước 2: Sau đó xác định tâm của mỗi cụm.
• Bước 3: Tính khoảng cách từ tâm của mỗi cụm với các điểm ảnh.
• Bước 4: Tùy thuộc vào khoảng cách, gán lại các điểm ảnh cho các cụm gần nhất.
• Bước 5: Xác định lại tâm của mỗi cụm mới.
• Bước 6: Lặp lại các bước 3,4 và 5 cho đến khi các điểm ảnh không thay đổi giữa các cụm hoặc cho
đến khi thuật toán đạt đến số lần lặp được chỉ định.

40
6.1. Phân đoạn ảnh - sử dụng Thuật toán K - Mean

41
Ví dụ 1: Phân đoạn ảnh - sử dụng Thuật toán K- Mean

42
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift

• Mean Shift là thuật toán đa năng dựa trên kỹ thuật phân cụm (clustering)
được sử dụng để phân đoạn ảnh, phân cụm, theo dõi trực quan, lọc
ảnh...
• Phương pháp Mean Shift trong phân đoạn ảnh:
• Sử dụng một cửa sổ có kích thước k với một điểm ảnh làm tâm
• Di chuyển cửa sổ trong vùng ảnh
• Tại mỗi bước di chuyển, thay đổi giá trị của điểm ảnh bằng giá trị trung bình các điểm ảnh
trong vùng cửa sổ
• Thực toán dừng khi nó hội tụ

43
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
Mean shift là gì?
Vùng quan tâm

Trung tâm

Véc tơ Mean Shift

44
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
Mean shift là gì?
Vùng quan tâm

Trung tâm

Véc tơ Mean Shift

45
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
Mean shift là gì?
Vùng quan tâm

Trung tâm

Véc tơ Mean Shift

Slide by Y. Ukrainitz & B. Sarel 46


6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
Mean shift là gì?
Vùng quan tâm

Trung tâm

Véc tơ Mean Shift

Slide by Y. Ukrainitz & B. Sarel 47


6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
Mean shift là gì?
Vùng quan tâm

Trung tâm

Véc tơ Mean Shift

Slide by Y. Ukrainitz & B. Sarel 48


6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
Mean shift là gì?
Vùng quan tâm

Trung tâm

Véc tơ Mean Shift

Slide by Y. Ukrainitz & B. Sarel 49


6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
Mean shift là gì?
Vùng quan tâm

Trung tâm

Véc tơ Mean Shift

Slide by Y. Ukrainitz & B. Sarel 50


6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift

• Tính vector Mean Shift


• Dịch cửa sổ Kernel theo m(x)

 n  x - xi 2  
  xi g   
 i 1  h  
m ( x)      x
 n  x - xi 
2

  g  h

 
 i 1
  

g( x)  k ( x)
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift

• Kết quả sử dụng Mean Shift trong ảnh

Vùng quan tâm

Trung tâm

Véc tơ Mean Shift

Minh hoạ 3D với 2 điểm

52
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift

• Kết quả sử dụng Mean Shift trong ảnh

Minh hoạ 2D với nhiều điểm


53
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift

• Kết quả sử dụng Mean Shift trong ảnh

Minh hoạ 2D với nhiều điểm


54
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
• Lưu vực thu hút: vùng mà tất cả các quỹ đạo dẫn đến cùng một Mode
• Cluster: tất cả các điểm dữ liệu trong lưu vực thu hút của một Mode
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift

• Thuật toán Mean shift tìm kiếm các Modes của tập hợp điểm đã cho
• Bước 1: Chọn kernel và bandwidth
• Bước 2: Với mỗi điểm ảnh:
• Bước 2.1: Thiết lập thành điểm ảnh trung tâm của cửa sổ
• Bước 2.2: Tính giá trị trung bình mức xám điểm ảnh của vùng cửa sổ
• Bước 2.3: Thiết lập điểm ảnh trung tâm của cửa sổ tại vị trí mới
• Bước 2.4: Lặp lại Bước 2.2 và Bước 2.3 cho đến khi thuật toán hội tụ
• Bước 3: Nhóm các điểm dẫn đến các Mode lân cận vào cùng một cụm
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
• Ví dụ 1: Phân đoạn ảnh sử dụng Thuật toán Mean Shift

57
6.2. Phân đoạn ảnh - sử dụng Thuật toán Mean Shift
• Ví dụ 2: Phân đoạn ảnh sử dụng Thuật toán Mean Shift

58
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts

• Biểu diễn đồ thị cho ảnh


• Tập hợp các điểm ảnh được biểu diễn dưới dạng đồ thị có trọng số, vô hướng: G = (V, E)
• V: Đỉnh (nút) của đồ thị, biểu diễn các điểm ảnh
• E: Cạnh của đồ thị là đường nối giữa mọi cặp đỉnh (nút)
• w(i,j): Trọng số giữa các cạnh là hàm biểu diễn mỗi tương quan giữa nút i và nút j

A B
G=(5,6)
w(A,C) V=5
w(A,D) w(B,C) E=6

w(D,B)
D C E
w(D,C) w(C,E)
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts

• Phân đoạn ảnh dựa trên biểu diễn bằng đồ thị


• Phân chia các đỉnh thành các tập rời rạc:
• Tập các đỉnh có độ tương quan cao
• Tập các đỉnh có độ tương quang thấp
•  Phân đoạn ảnh tương đương với phân vùng Đồ thị
• Ví dụ: Cụm 2

Cụm 1
Cụm 3
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts

• Cut:
• Cut trong đồ thị là việc một tập các cạnh được ngắt kết nối đồ thị.
• Cắt tối thiểu (Minimum Cut) là cắt với số cạnh tối thiểu, ký hiệu là S. Trong đồ thị có trọng
số, được tính bằng:

cut A,B = w u,v


u∈A,v∈B
• Trong đó A và B là hai tập rời rạc được phân chia

• Phân đoạn ảnh bằng phương pháp Min Cut


• Phân chia đồ thị thành các cụm (cluster)
• Mỗi cụm được xem là một vùng con ảnh
• Min Cut sử dụng thuật toán HCS (Highly Connected Subgraphs) để tìm các cụm
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts

• Đồ thị con có tính kết nối cao (Highly Connected Subgraphs - HCS)
• Các cạnh kết nối là số tối thiểu các cạnh mà việc loại bỏ nó tạo ra một đồ thị bị ngắt kết nối.
Nó được ký hiệu là k(G).
• Một đồ thị có các đỉnh n > 1 được gọi là đồ thị có tính liên kết cao nếu cạnh kết nối của nó
k(G) > n / 2.
• Đồ thị con có tính kết nối cao (HCS) là đồ thị con H trong G sao cho H có tính kết nối cao.
• Ví dụ 1:
A B

• Số nút = 5 Không HCS!


• Cạnh kết nối = 1

D C E
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts
• Ví dụ 2:

A B

HCS!

Số nút = 4 Cạnh kết nối = 3


D C
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts

• Thuật toán HCS đối với phương pháp Min Cut

def HCS(G(V,E)): • MINCUT(G) trả về H, H’ và C trong đó C là Minimun Cut


mà tách G thành các đồ thị con H và H’.
(H, H’,C)  MINCUT(G)
• HCS trả về một đồ thị trong trường hợp nó xác định nó
if G là kết nối cao: là một cụm.
return (G) • Các đỉnh đơn không được coi là các cụm và được nhóm
lại thành tập đơn lẻ S.
else:
HCS(H)
HCS(H’)
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts
• Thuật toán HCS đối với phương pháp Min Cut

Cụm 3

Cụm 1
Cụm 3
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts

• Nhận xét Thuật toán HCS đối với phương pháp Min Cut
• Thuật toán HCS trả về các cụm  phân đoạn ảnh.
• Vấn đề với thuật toán HCS - phương pháp Min Cut là có khả năng nhiều singletons có thể bị
tách ra.

• Để khắc phục điều này  sử dụng phương pháp cắt chuẩn hóa (normalized-cut) dựa trên
luồng cực đại (Max flow) trong đồ thị để phân đoạn ảnh.
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts

• Cắt chuẩn hóa (Normalized Cut – Ncut)


cut(A, B) cut(A, B)
Ncut A, B = +
assoc(A, V) assoc(B, V)
• Trong đó:

assoc A,V = w u,t


u∈A,t∈V

• Việc cắt được thực hiện sao cho giá trị cắt chuẩn hóa giữa hai tập A và B là nhỏ nhất.
6.3. Phân đoạn ảnh - sử dụng Thuật toán Graph Cuts

• Ví dụ áp dụng Graph Cut để tách Backgoud và Foreground


• Triển khai GrabCut thông qua cả hai:
• Khởi tạo GrabCut với hộp giới hạn (bounding boxes)
• Khởi tạo GrabCut với mặt nạ xấp xỉ (mask approximations)

68
Thanks you !!!

69

You might also like