Phát hiện biên tiếp Bằng 0 tại những điểm không đổi Khác 0 tại những điểm bắt đầu, kết thúc thay đổi bắt đầu, kết thúc dốc Khác 0 tại những điểm nằm trên dốc Bằng 0 tại những điểm
Trang 2Phương pháp phân vùng dựa trên biên
Phát hiện sự không liên tục (biến đổi bất thường)
Trang 3Phát hiện điểm ảnh
3
Trang 4Phát hiện điểm ảnh
T = 90% giá trị
max của mức xám
4
Trang 5Phát hiện đường thẳng
Chọn mặt nạ thích hợp để phát hiện
Lấy ngưỡng (thresholding)
5
Trang 6Phát hiện đường thẳng
6
Trang 7Phát hiện đường thẳng
Giả sử mu
hướng -45 đ
ốn tìm các đường thẳng theo ộ
7
Trang 8Phát hiện biên
Xấp xỉ đạo hàm cấp 1, và cấp 2
8
Trang 9Phát hiện biên (tiếp)
9
Trang 10Phát hiện biên (tiếp)
Bằng 0 tại những điểm không đổi
Khác 0 tại những điểm bắt đầu, kết thúc thay đổi (bắt đầu, kết thúc dốc)
Khác 0 tại những điểm nằm trên dốc
Bằng 0 tại những điểm không đổi
Khác 0 tại những điểm bắt đầu, kết thúc thay đổi (2 giá trị)
o Một giá trị phía bên thấp (tối)
o Một giá trị phía bên cao (sáng)
Bằng 0 tại những điểm trên dốc 10
Trang 11Phát hiện biên (tiếp)
11
Trang 12Phát hiện biên (tiếp)
12
Trang 13Phát hiện biên (tiếp)
Nhận xét
Độ lớn của đạo hàm cấp 1: có thể xác định một điểm có nằm trên biên hay không
Dấu trong đạo hàm cấp 2 cho biết điểm ảnhnằm ở vùng sáng hay vùng tối của biên
o Đạo hàm cấp 2 luôn có 2 giá trị khác dấu ứng với các điểm trên biên
o Điểm cắt 0 có ý nghĩa trong việc tìm biên mỏng
13
Trang 14Phát hiện biên (tiếp)
Ảnh hưởng của
nhiễu đến đạo hàm
Trang 15Phát hiện biên (tiếp)
Phát hiện biên
o Đạo hàm cấp 1: toán tử gradient
o Đạo hàm cấp 2: toán tử laplacian
15
Trang 16Toán tử gradient
Gradient của ảnh f(x, y) tại vị trí (x, y) được định nghĩa
16
Trang 17Toán tử gradient (tiếp)
17
Trang 18Toán tử gradient (tiếp)
Cài đặt thực tế
0
2
Trang 19Toán tử gradient (tiếp)
Toán tử gradient đường chéo
19
Trang 20Toán tử gradient (tiếp)
20
Trang 21Toán tử gradient (tiếp)
21
Trang 22Toán tử gradient (tiếp)
22
Trang 23Toán tử gradient (tiếp)
Để xác định một điểm ảnh có nằm trên biên hay không
Tính gradient
So sánh với ngưỡng
23
Trang 24Toán tử Laplacian
24
Trang 25Toán tử Laplacian (tiếp)
Toán tử laplacian thường không được
áp dụng trực tiếp để tìm biên
Đạo hàm cấp 2 nhận 2 giá trị tại các điểm trên biên
Rất nhạy với nhiễu
Laplacian không tìm được hướng của biên
Trang 26Laplacian of Gaussian
26
Trang 27Laplacian of Gaussian (tiếp)
27
Trang 28Laplacian of Gaussian (tiếp)
Áp dụng LoG để phát hiện biên
Tính LoG cuar ảnh
Tìm các điểm cắt 0 (zero crossing)
o Áp mặt nạ 3 x 3 cho mỗi pixel
o Điểm cắt 0 là những điểm có 2 lân cận đối diện nhau trái dấu
28
Trang 29Laplacian of Gaussian (tiếp)
29
Trang 30Laplacian of Gaussian
32
Lọc sobel Ảnh gốc
Trang 31Laplacian of Gaussian (tiếp)
Trang 32Laplacian of Gaussian
32
Trang 33Bộ dò biên Canny
Là bộ dò biên cho kết quả rất tốt (so với Prewitt, sobel, LoG…)
Tỷ lệ lỗi thấp
Phân vùng các điểm trên biên
Trả về biên mỏng (đơn điểm)
33
Trang 34Bộ dò biên Canny (tiếp)
Các bước thực hiện
Bước 1 Smoothing
Bước 2 Tính Gradients
Bước 3 Loại những điểm không cực đại
Bước 4 Dò các điểm trên biên bằng 2 ngưỡng
34
Trang 35Bộ dò biên Canny (tiếp)
Bước 1 Smoothing
Sử dụng bộ lọc Gaussian
Cài đặt
35
Trang 36Bộ dò biên Canny (tiếp)
Bước 2 Tính Gradient
Sử dụng bất kỳ mặt nạ Gradient nào
Cài đặt
36
Trang 37Bộ dò biên Canny (tiếp)
Bước 3 Loại những điểm không cực đại
Tính độ lớn và góc của vector gradient
Quantize góc của vector gradient về góc 45 độgần nhất
37
Trang 38Bộ dò biên Canny (tiếp)
Bước 3 (tiếp)
38
Trang 39Bộ dò biên Canny (tiếp)
39
Trang 40Bộ dò biên Canny (tiếp)
Lựa chọn 2 giá trị ngưỡng (TH và TL): TH=kTL
Tính 2 ảnh dựa trên 2 ngưỡng này
Loại bỏ những điểm nằm trên biên “mạnh” 40
Trang 41Bộ dò biên Canny (tiếp)
Những điểm nằm trên biên “mạnh”, gNH được đánh dấu
Những điểm trên biên “yếu”, gNL
o Step1 Duyệt qua từng điểm p trong gNH
o Step2 Đánh dấu những điểm biên “hợp lệ” trong gNLnếu điểm đó liên thông với p (8 liên thông)
o Step 3 Nếu tất cả các điểm khác 0, p trong gNH đều
đã được thăm step 4, ngược lại step 1
o Step 4 Gán 0 tất cả những điểm trong gNL không được đánh dấu biên “hợp lệ”
o Step 5 Thêm những điểm khác 0 trong gNL vào kết quả biên
41
Trang 42Bộ dò Canny (tiếp)
42
Trang 43Bộ dò Canny (tiếp)
43
Trang 44Bộ dò Canny (tiếp)
44
Trang 45Bộ dò Canny (tiếp)
45
Trang 46Phương pháp phân vùng dựa trên biên
Phát hiện sự không liên tục (biến đổi bất thường)
Trang 47Các phương pháp nối biên
Phương pháp xử lý nối biên cục bộ
Phương pháp xử lý toàn cục
47
Trang 48Phương pháp xử lý nối biên cục bộ
Trang 49Phương pháp xử lý nối biên cục
bộ (tiếp)
51
Thuật toán đơn giản hơn
Tính độ lớn và góc của vector gradient
Trang 50Phương pháp xử lý nối biên cục
bộ (tiếp)
50
Trang 51Phương pháp xử lý nối biên toàn cục
Tổng quát
Tìm tất cả các đường thẳng tạo bởi 2 điểm bất kỳ
Tìm tất cả các tập điểm nằm trên (gần nằmtrên) đường thẳng đó
Độ phức tạp
o n(n-1)/2 đường thẳng
o Số phép so sánh n(n(n-1)/2) ~ n 3
51
Trang 52Biến đổi hough
Giả sử chúng ta đã thực hiện các giải thuật
dò biên
Chúng ta sẽ có tập n pixel của những điểm nằm trên biên (n điểm này có thể không
liên tiếp nhau – không là liền kề của nhau)
Bài toán đặt ra là tìm tập các pixels nằm
trên cùng một đường thẳng để nối biên lại với nhau
52
Trang 53Biến đổi Hough (Hough transform)
Xét điểm (xi, yi), đường thẳng đi qua (xi,
yi) có dạng: y = ax + b yi = axi + b
Có thể viết dưới dạng:
53
Trang 54Biến đổi hough
54
Trang 55Biến đổi hough
(x,y) sang không gian tham số (a,b)
2 điểm khác nhau trong không gian (x,y) nằm
2 đường thẳng này cắt nhau tại 1 điểm có tọa độ (a’, b’) chính là hệ số góc và tham số của phương trình đường thẳng y = a’x + b’ trong không gian (x,y).
Tất cả các điểm khác nhau nằm trên đường
thẳng y = a’x + b’ khi chuyển sang không gian tham số là các đường thẳng cắt nhau tại a’, b’
55
Trang 56Biến đổi hough
Như vậy muốn biết các điểm (xi, yi) với i
= (1,N) có nằm trên 1 đường thẳng hay không
Chuyển sang không gian tham số
Khảo sát xem các đường thẳng sau có cắt nhau tại một điểm hay không
56
Trang 57Biến đổi Hough
59
Cách tính toán
Với mỗi giá trị (x, y) trên miền không gian, quét và điền giá trị trên miền tham số
Trang 58Biến đổi Hough (tiếp)
Giá trị amin, amax, bmin, bmax tùy thuộc vào giá trị
o y = ax + b
58
Trang 59Biến đổi Hough (tiếp)
Ví dụ: cho 5 điểm (0, 1); (1, 3); (2, 5); (3, 5); (4, 9), ngưỡng = 80% Kiểm tra xem
5 điểm trên có nằm trên 1 đường thẳng hay không? Pt đường thẳng nếu có
59
Trang 60Biến đổi Hough trong hệ tọa độ cực
60
Trang 61Biến đổi Hough trong hệ tọa độ cực
Trang 62Biến đổi hough hệ tọa độ cực
Ví dụ:
62
Trang 63Biến đổi Hough (tiếp)
Trang 64Biến đổi Hough (tiếp)
Giả sử biên được tìm bằng cách tính toán gradient và lấy ngưỡng
Xây dựng mảng chỉ số tích lũy trên miền tham
số [𝜌, 𝜃], thiết lập các phần tử bằng 0 ban đầu
Với mỗi điểm trên miền không gian, cập nhật mảng chỉ tích lũy số trên miền tham số
Xác định mối quan hệ giữa các pixel trong ảnh biên (có thể liên kết với nhau không?)
o Liên kết nếu: các pixel cùng có giá trị mảng chỉ số tích lũy lớn
o Giới hạn về khoảng cách giữa các pixel
64
Trang 65Biến đổi Hough (tiếp)
65