Professional Documents
Culture Documents
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ử Sobel Cắt ngưỡng đa ngưỡng Tách và gộp vùng Mean Shift
3
3. Mục đích phân đoạn ả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
• 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
• 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)
(7)
(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
Ả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)
• 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ộ
• 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
• 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
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
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
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
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
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
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
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
Trung tâm
Trung tâm
Trung tâm
Trung tâm
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
Trung tâm
52
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
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
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:
• Đồ 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
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!
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
• 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
68
Thanks you !!!
69