Bài giảng giúp Người học hiểu về mục tiêu và ứng dụng của bài toán phân đoạn ảnh Người học hiểu về lý thuyết và các phương pháp phân đoạn ảnh hay động với thư viện OpenCV... Phân đoạ
Trang 1PHÂN ĐOẠN ẢNH
NGÔ QUỐC VIỆT
TPHCM-2014
Trang 2Bài giảng giúp
Người học hiểu về mục tiêu và ứng dụng của bài toán phân đoạn ảnh
Người học hiểu về lý thuyết và các phương pháp phân đoạn ảnh
hay động với thư viện OpenCV
Trang 31. Giới thiệu bài toán phân đoạn
2. Phân đoạn ảnh dựa trên các phương pháp phân
ngưỡng sắc xám
3. Phân đoạn ảnh dựa trên các phương pháp tương
tự
3 Bài giảng Xử lý ảnh - TS Ngô Quốc Việt
Trang 4 Phân đoạn nhằm chia ảnh thành các vùng hoặc đối tượng có thể xử lý được
Trang 55
Trang 6 Nếu phân đoạn tốt, các contours của objects sẽ xuất hiện và có thể trích để sử dụng
Có thể xác định hình dáng đối tượng
Dựa trên màu sắc, hình dáng, texture, có thể xác định rõ đối tượng
tương tự (similarity searches)
là một chủ đề trong các hội thảo/hội nghị liên quan đến thị giác máy tính, xử lý ảnh
Trang 7 Phân đoạn cho phép trích đối tượng trong ảnh
cơ bản như màu sắc, giá trị xám, hay texture: discontinuity và similarity
ngột, nhằm phát hiện biên trong ảnh Tuy
nhiên, không luôn xác định được biên để tạo vùng
tiêu chuẩn xác định (mức xám, texture, color, motion) Dựa trên sự tương tự giữa các pixel kề nhau nhằm xây dựng các đối tượng
7 Bài giảng Xử lý ảnh - TS Ngô Quốc Việt
Trang 8 Kiểu phân đoạn phụ thuộc vào ứng dụng
Có nhiều thuật giải phân đoạn
video, annotation figures, background subtraction, finding buildings/rivers in trong ảnh vệ tinh
Trang 9thẳng có trong ảnh)
Region Growing & Merging
Edge Detection (đạo hàm
bậc 1, 2)
Watershed
9 Bài giảng Xử lý ảnh - TS Ngô Quốc Việt
Edges dựa trên KHÁC NHAU (DIFFERENCES hay
DISCONTINUITY) giữa các pixel kề nhau
Regions dựa trên sự TƯƠNG TỰ (SIMILARITIES)
giữa các pixel kề nhau
Trang 10 Ảnh R được phân hoạch thành các vùng con R1, R2,
i R
R
, , 1
j i
R
R i j 0 ,
Trang 11Phân đoạn bằng mắt thường
Old man và các thứ khác
Hai người và con chó
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 11
Trang 12 Tạo thành ảnh nhị phân từ ảnh xám đầu vào
Thực hiện bằng cách chọn ngưỡng T, và tạo ảnh ouput theo công thức
Chỉ làm việc tốt với ảnh có bi-model histogram, ít nhiễu Có thể dùng nhiều ngưỡng T
x f
T y
x
f y
x
g
) , ( 0
) , (
1 )
, (
Trang 131. Chọn ngưỡng ban đầu T (vd: chọn mean của mọi
pixels)
2. Phân đoạn thành hai nhóm G1, G2, với mean tương
ứng m1, m2
3. Tính toán ngưỡng mới theo cách T = ½ (m1+m2)
4. Lặp lại bước 2 và 3 cho đến khi sự thay đổi của T
mới so với T ở lần trước đó nhỏ hơn giá trị cho trước
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 13
Trang 14 Tự động thực hiện phân ngưỡng ảnh dựa trên hình dáng histogram
http://en.wikipedia.org/wiki/Otsu's_method
Trang 16 Variance của mỗi nhóm
𝜎12 = 𝑖 − 𝜇1 𝑘
2
𝑝 𝑖
𝑘 𝑖=0
𝑃2(𝑘)
Variance của toàn bộ ảnh: 𝜎2 = 𝐿−1𝑖=0 𝑖 − 𝜇𝐺 𝑖 2 𝑝 𝑖
𝜎2 = 𝑃1 𝑘 𝜎12 + 𝑃2 𝑘 𝜎22 + 𝑃1 𝑘 𝜇1 𝑘 − 𝜇𝐺 𝑘 2
+ 𝑃2 𝑘 𝜇2 𝑘 − 𝜇𝐺 𝑘 2Trong đó:𝜎𝑤2 𝑘 = 𝑃1 𝑘 𝜎12 + 𝑃2 𝑘 𝜎22: within-class variance;
𝜎𝐵2 𝑘 = 𝑃1 𝑘 𝜇1 𝑘 − 𝜇𝐺 𝑘 2 + 𝑃2 𝑘 𝜇2 𝑘 − 𝜇𝐺 𝑘 2 : inter-class variance
Trang 18 Phân đoạn 𝑘 ≥ 3 ngưỡng
Trang 19Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 19
Trang 20 Chia ảnh thành các vùng
Trang 21Tham khảo mã nguồn openCV_AdaptiveThresHold
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 21
Trang 22 Mean shift là thuật giải lặp nonparametric hoặc còn gọi là nonparametric density gradient estimation dựa trên cách tiếp cận kernel tổng quát
Mục tiêu: tìm cực đại của hàm mật độ xác suất (density modes) theo mẫu
Thực hiện bằng cách với mỗi điểm dữ liệu, chọn một window có kích thước cho trước, sau đó xác định mean point Dời cửa sổ này đến điểm đó, lại tiếp tục tính mean point Lặp liên tục cho đến khi mean point “không thay đổi" (hội tụ) cho cửa sổ đó
Mean-shift được dùng trong segmentation, clustering, visual tracking, etc
Trang 23Mean Shift Algorithm
Trang 24 Đặt {x i } i=1 n ,là ảnh, {z i } i=1 n là các điểm hội tụ, và
{L i } i=1 n là các nhãn
Mean-shift segmentation
Lặp i = 1…n, tìm mean shift cho xi và lưu điểm hội tụ vào zi
Tìm m clusters {C p } p=1…m các điểm hội tụ bằng cách
gom các điểm khoảng cách gần nhau vào một nhóm
(khoảng cách nhỏ hơn ngưỡng cho trước – ví dụ 0.5)
Lặp i= 1…n , gán L i = {p | z i ϵC p }
Rõ ràng cần xác định cách di chuyển của search window
Trang 25Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 25
Nguồn: Dorin Comaniciu and Peter Meer, Distribution Free Decomposition of Multivariate Data,
Pattern Analysis & Applications (1999)2:22–30
Trang 26 Mục tiêu của mean shift algorithm là tìm cực trị cục
bộ của density theo phân phối xác định Nghĩa là, xác định cách di chuyển search window trong mỗi bước lặp
search window
định mean shift vector
Trang 27 Kernel density estimation là phương pháp non parametric để ước lượng density function của biến ngẫu nhiên Được dùng để ước lượng probability density
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 27
Tìm Mean shift mode
Trang 28 Cho n điểm {x i } i=1, ,n thuộc R d, cửa sổ bán kính h
Đặt kernel density với kernel K(x) là:
Kernel K(x) có thể xác định bởi
k Đơn giản nhất là flat kernel
h
x
x K nh
x
f
1
1 )
(
2 ,
1
1 )
(
x
x x
f
Trang 29 Estimate của density gradient được xác định bởi gradient của kernel density estimate
Modes của density function định vị tại các zeros của gradient function Nghĩa là f(x) = 0
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 29
h
x
x K nh
x
f
1
1 )
d
d k
h
x
x g x
x nh
C x
f
1
2
2 ,
2 )
h
x
x g x h
x
x g
nh
C x
f
n i
i
n i
i i
n
i
i d
d k
1
2 1
2
1
2
2 ,
2 )
(
)(')
Trang 30x g
x h
x
x g x
m
n i
2
) (
Trang 311 )
(
x
x x
f
2
exp )
1 )
1 ( 4 /
3 )
E
Trang 32Search window
Center of mass
Mean Shift vector
Trang 33Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 33
Search window
Center of mass
Mean Shift vector
Nguồn: Y Ukrainitz & B Sarel
Trang 34Search window
Center of mass
Mean Shift vector
Trang 35Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 35
Search window
Center of mass
Mean Shift vector
Nguồn: Y Ukrainitz & B Sarel
Trang 36Search window
Center of mass
Mean Shift vector
Trang 37Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 37
Search window
Center of mass
Mean Shift vector
Nguồn: Y Ukrainitz & B Sarel
Trang 38Search window Center of mass
Trang 39Tham khảo openCV_MeanShiftSegmentation
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 39
Trang 41 With this objective, it is a “chicken and egg” problem:
groups by assigning each to its closest center
centers by computing the mean per group
42
Trang 42 Phân hoạch tập các ‘pattern’ thành những clusters
Xác định subsets các điểm ‘gần nhau’
độ; Các độ đo Texture, etc
Input – tập các giá trị x 1 , x 2 , …, x n (các điểm ảnh)
Clustering phân hoạch n input thành K tập (K ≤ n)
S = {S1, S2, …, S k} sao cho cực tiểu within-cluster
S
i j
Trang 431. Khởi động ngẫu nhiên các tâm cluster c 1 , , c K
2. Với mỗi tâm cluster, xác định các điểm thuộc cluster
• Với mỗi điểm p, tìm gần nhất c i Gán p vào cluster i
3. Với các điểm thuộc cluster, tìm tâm c i
• Chọn c i là mean của points trong cluster i
4. Nếu c i thay đổi, lặp lại bước 2
Tính chất
• Luôn hội tụ some solution
• Có thể bị “local minimum”: ie, không luôn tìm được global minimum của hàm mục tiêu
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 44
Trang 44 Chọn K mean (hay là tâm) ngẫu nhiên từ dữ
liệu: m 1 (1) ,…,m k (1)
Bước gán: xác định điểm x p thuộc cluster nào theo công thức
) (
) 1
t i
x
j t
i
t
S m
Trang 45 Chọn không gian màu (trong phân đoạn ảnh màu) Cách chọn vector biểu diễn điểm ảnh
Ảnh màu: (l a , l b , l c , x, y) Với l a , l b , l c là giá trị màu trong
không gian màu Không gian CIE Lab thích hợp để phân đoạn với thuật giải K-Mean
Cách tính khoảng cách giữa 2 điểm dữ liệu trong biểu thức so sánh
Cách chọn K tâm khởi động ứng với K cluster
Cách xách định giá trị K tự động ?
Phân đoạn ảnh texture như thế nào?
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 46
Trang 46 Việc gán cluster label cho từng pixel có thể phát sinh
1 2
3
?
Original (nhiều điểm trắng xen kẽ)
Gán nhãn theo cluster center’s intensity
Cần bảo đảm phân đoạn
trơn Cách nào?
Trang 47 Xem xét sự phụ thuộc giữa các pixel, xác định bởi
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 48
i
j i N
i
y
f Z
data P
,
2
1
1 )
Trang 48j i N
i
y
p Z
data
P
,
2
1
1 )
i
j i i
y data
Trang 49 Markov Random Fields
Bài giảng Xử lý ảnh - TS Ngô Quốc Việt 50
i
j i i
y data
;
Node yi: pixel label
Edge: constrained pairs
Cost to assign a label to each pixel Cost to assign a pair of labels to connected pixels
Trang 50 Example: “label smoothing” grid
Unary potential
0 1
0 0 K
1 K 0 Pairwise Potential 0: -logP(yi = 0 ; data) 1: -logP(yi = 1 ; data)
Trang 51j i i
y data
52
Trang 52Source (Label 0)
Sink (Label 1)
Cost to assign to 0
Cost to assign to 1 Cost to split nodes
Trang 53 Watershed
Dựa trên phân hoạch đồ thị (Shi & Malik , 97)
1997
54 Bài giảng Xử lý ảnh - TS Ngô Quốc Việt