Tải bản đầy đủ (.docx) (15 trang)

Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên. Đánh giá thực nghiệm và so sánh với các phương pháp khác

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (705.76 KB, 15 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT
KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚP
NHẬP MÔN XỬ LÍ ẢNH
Nhóm 3:
Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên.
Đánh giá thực nghiệm hiệu quả của phương pháp lọc Canny so với các
phương pháp lọc Prewitt
Giảng viên hướng dẫn : Đỗ Bảo Sơn
Sinh viên thực hiện :

Tạ Văn Quân
Lưu Đức Huy
Vũ Trung Hiếu

Lớp : 65DCHT23
Hệ : Đại học chính quy

Hà Nội, 09-2017

1


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

MỤC LỤC

Nhóm 3_Lớp 65DCHT23

2




Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

LỜI MỞ ĐẦU
Xử lý ảnh là một lĩnh vực đang được quan tâm và đã trở thành một môn học
chuyên ngành của sinh viên hệ kĩ sư, hệ cử nhân ngành công nghệ thông tin,
cũng như những ngành kĩ thuật khác trong các trường đại học kĩ thuật. Xử lý
ảnh có liên quan đến nhiều ngành khác như: Hệ thống tin học, lý thuyết thông
tin, lý thuyết thống kê, trí tuệ nhân tạo, nhận dạng, tách biên v.v…Xử lý ảnh
nghiên cứu tất cả những gì liên quan đến việc thao tác trên ảnh như: Biểu diễn
ảnh, thu nhận ảnh, tăng cường và khôi phục ảnh nhằm thu được ảnh như
mong muốn. Mỗi vấn đề đều cần có những xử lý về thuật toán tại mỗi điếm
ảnh hay phần tử ảnh. Việc tìm hiểu giúp chúng ta hiểu sâu hơn về cơ chế,
nguyên tắc xử lý ảnh, điều chỉnh màu, độ sáng tối, độ tương phản,…làm cho
hình ảnh đẹp và nghệ thuật hơn.
Một trong những vấn đề trọng tâm nghiên cứu của lĩnh vực thị giác máy là
biên và các thao tác trên nó vì các kĩ thuật phân đoạn ảnh chủ yếu dựa vào biên.
Trong các phương pháp phát hiện bên hiện nay thì phương pháp Canny là
phương pháp hiệu quả và đã được xây dựng thành công nghệ gồm quy trình 4
bước. Báo cáo này làm rõ và so sánh phương pháp Canny với phương pháp
Sobel.
Để đạt được thành công, em cần sự góp ý của thầy và các bạn.
Em xin chân thành cảm ơn!

Nhóm 3_Lớp 65DCHT23

3



Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

CÁC KHÁI NIỆM CƠ BẢN
 Biên ảnh: Biên ảnh là những điểm mà tại đó cường độ sáng của ảnh liên tục
có bước nhảy hoặc biến thiên nhanh. Một điểm ảnh có thể coi là điểm biên
nếu ở đó có sự thay đổi đột ngột về mức xám. Tập hợp các điểm biên tạo
thành đường biên (edge) hay đường bao (boundary) của ảnh.
 Vùng ảnh: là tập tất cả những điểm ảnh thuộc về một đối tượng trong ảnh.
Ranh giới giữa các vùng ảnh gọi là biên ảnh và các đường biên khép kín cho
phép xác định vùng ảnh.
 Các phương pháp phát hiện biên: trực tiếp và gián tiếp
• Trực tiếp: Phương pháp này nhằm làm nổi biên dựa vào sự biến
thiên về giá trị độ sáng của điểm ảnh. Kỹ thuật chủ yếu dùng phát
hiện biên ở đây là kỹ thuật đạo hàm. Nếu lấy đạo hàm bậc nhất của
ảnh ta có phương pháp Gradient. Nếu lấy đạo hàm bậc hai ta có
phương pháp Laplace. Hai kỹ thuật trên gọi là phương pháp dò biên
cục bộ. Phương pháp dò biên trực tiếp khá hiệu quả và ít chịu ảnh
hưởng của nhiễu.
• Gián tiếp: nếu bằng cách nào đấy ta phân được ảnh thành các vùng
thì đường phân cách giữa các vùng đó chính là biên. Nói cách khác,
việc xác định đường biên của ảnh được thực hiện từ ảnh đã được
phân vùng. Việc phân vùng ảnh thường dựa vào kết cấu (texture) bề
mặt của ảnh. Phương pháp dò biên gián tiếp khó cài đặt nhưng áp
dụng tốt khi sự biến thiên độ sáng khá nhỏ.
 Quy trình phát hiện biên trực tiếp:
• B1: Khử nhiễu ảnh: Vì ảnh thu nhận được thường có nhiễu nên bước
đầu tiên là phải khử nhiễu
• B2: Làm nổi biên bởi các toán tử đạo hàm
• B3: Định vị biên. Vì các kỹ thuật làm nổi biên có tác dụng phụ là
tăng nhiễu, do vậy sẽ có một số biên giả xuất hiện cần phải loại bỏ.

• B4: Liên kết và trích chọn biên.
Trong giới hạn tìm hiểu của đề tài, ta nghiên cứu hai phương pháp phát hiện
biên trực tiếp là phát hiện biên theo phương pháp Canny.

Nhóm 3_Lớp 65DCHT23

4


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

PHẦN 1 : CÁC BƯỚC TÁCH BIÊN BẰNG PHƯƠNG PHÁP
CANNY
1.1. Cơ sở lý thuyết của thuật toán
1.1.1. Nguyên lý của thuật toán
Kỹ thuật phát hiện biên theo phương pháp Canny là phương pháp phát hiện
biên trực tiếp rất hiệu quả áp dụng cho loại ảnh nhiễu. Phương pháp này do
Canny ở phòng thí nghiệm MIT khởi xướng năm 1986. Canny đã đưa ra tập hợp
các mục tiêu của một phương pháp phát hiện biên và đưa ra một phương pháp
tối ưu để thực hiện các mục tiêu đó. Phương pháp này gọi là phương pháp
Canny.
Canny đưa ra 3 điểm chính mà một phương pháp phát hiện biên phải xác
định được, đó là:
• Tỉ lệ sai thấp: Nghĩa là phải tìm ra tất cả các biên và không có đường
biên nào bị bỏ sót.
• Các điểm biên phải được xác định chính xác: Khoảng cách giữa các
điểm biên được tìm thấy trong giải thuật và biên trong thực tế phải
càng nhỏ càng tốt.
• Đáp ứng điểm đơn biên: Không được phép chỉ ra nhiều biên trong
khi chỉ có một biên tồn tại.

Bản chất của thuật toán Canny là biểu diễn theo toán học 3 tiêu chuẩn đó và
cố gắng tìm ra giải pháp tối ưu cho những mục đích này. Canny đã giả thiết rằng
nhiễu trong ảnh tuân theo phân bố Gauss, đồng thời ông cũng cho rằng một
phương pháp tìm biên thực chất là một bộ lọc nhân xoắn (chập) có khả năng
làm mịn nhiễu và định vị được cạnh. Vấn đề là làm sao để có một bộ lọc tối ưu
nhất.
1.1.2. Nội dung của thuật toán
Về mặt một chiều, đáp ứng của bộ lọc f với biên G được tính bởi tích phân
chập:

Dưới đây là việc xây dựng một bộ lọc tối ưu f được xấp xỉ bằng đạo hàm.
Bộ lọc f được giả thiết f=0 ngoài đoạn (-w, w). Ba ràng buộc trên tương ứng
với ba điều kiện như sau:
Nhóm 3_Lớp 65DCHT23

5


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

Trong đó:
• SNR (tỉ lệ sai): nhằm tìm một hàm f(x) phản đối xứng sao cho tỉ số giữa
tín hiệu và nhiễu là cực đại.
• Các giá trị Localization: đại diện cho nghịch đảo chênh lệch mức xám
giữa các điểm trong cùng một biên và càng lớn càng tốt.
• Xzc: ràng buộc này nhằm hạn chế điểm cực trị cục bộ với mục đích cung
cấp chỉ một đường biên.
Canny cố gắng tìm ra bộ lọc f làm cực đại tích SNR* Localization. Nhưng
cuối cùng thì một sự xấp xỉ có hiệu quả của f lại chính là đạo hàm bậc nhất của
hàm Gauss. Nhắc lại hàm Gauss có dạng như sau:


Đạo hàm bậc nhất của Gaussian theo x của G(x):

Hàm Gaussian trong không gian hai chiều có dạng như sau:

Nhóm 3_Lớp 65DCHT23

6


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

Khi đó G có đạo hàm theo cả hai hướng x và y. Sự xấp xỉ với bộ lọc tối ưu
của thuật toán phát hiện biên Canny chính là G’ và do vậy, bằng phép nhân xoắn
ảnh vào với G’ ta thu được ảnh E đã được tách biên ngay cả trong trường hợp
ảnh có nhiều nhiễu.
Phép nhân xoắn thực hiện một cách dễ dàng trong khi việc tính toán khá
phức tạp, nhất là nhân xoắn với mảng hai chiều. Tuy nhiên một phép nhân xoắn
với mảng hai chiều Gauss có thể được chia thành hai phép nhân xoắn với mặt nạ
Gauss một chiều. Việc vi phân cũng có thể được thực hiện bằng phép nhân xoắn
ở mảng một chiều tạo nên hai ảnh: ảnh một là việc nhân xoắn thành phần của x
với mảng một chiều, ảnh hai là việc nhân xoắn thành phần của y.
1.2. Các bước tiến hành phương pháp Canny
 Bước thứ nhất: Tiến hành làm trơn ảnh
Ở bước này chúng ta tiến hành nhân ảnh với bộ lọc Gauss. Sau khi tiến
hành nhân chập chúng ta có đầu ra là dữ liệu ảnh S đã được nhân ch ập.
 Bước thứ hai: Đạo hàm kết quả ở bước 1
Sau khi làm trơn ảnh ở bước 1 (nhân ảnh với bộ lọc Gauss) ta tiến hành đạo
hàm bậc nhất kết quả đó. Kết quả đạo hàm S là đạo hàm của tích ảnh I và hàm
Gauss(x,y). Điều này tương ứng với đạo hàm của hàm Gauss sau đó nhân với

ảnh I.
Với:

Như vậy, kết quả ảnh bước hai chính là sự tổng hợp của đạo hàm của Gauss
theo hướng x nhân với ảnh I và đạo hàm của Gauss theo hướng y nhân với ảnh I
Nghĩa là ta có thể đạo hàm hàm Gauss theo hai hướng rồi mới tiến hành
nhân xoắn với ảnh thay vì nhân xoắn ảnh với hàm Gauss rồi mới đạo hàm.

Nhóm 3_Lớp 65DCHT23

7


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

Hình 1. Đạo hàm Gauss theo hai hướng x và y
Như vậy, cách thức thực hiện bước thứ hai như sau:
Sau khi tiến hành nhân xoắn ảnh I với bộ lọc Gauss ở bước 1 ta có một ảnh
mới S được làm trơn. Tiến hành thực hiện bước hai bằng cách lấy đạo hàm ảnh
mới đó theo hai hướng x và y rồi tổng hợp lại kết quả.
Như đã biết, phương pháp Gradient là phương pháp dò biên cục bộ dựa vào
cực đại của đạo hàm, đó chính là phương pháp đạo hàm bậc nhất. Chính vì vậy
ta có thể thực hiện việc đạo hàm ở bước hai bằng cách nhân ảnh kết quả S ở
bước một với các mặt nạ trong phương pháp Gradient dựa theo các toán tử như
Sobel, Pixel Difference
Ở đây ta tiến hành nhân xoắn ảnh S với hai mặt nạ của phương pháp Sobel
theo hai hướng x và y như sau:

Sau khi tiến hành nhân xoắn ảnh theo hai hướng x và y ta được hai ảnh theo
hai hướng là Sx và Sy, ta tiến hành tổng hợp hai kết quả đó để cho ra kết quả

cuối cùng S’:
Nhóm 3_Lớp 65DCHT23

8


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

Hướng của biên như sau:

Ảnh S’ tìm được là kết quả của bước thứ hai.
 Bước thứ ba: Tiến hành “Non- maximum Suppression”
Tức là loại bỏ một số cạnh dư thừa: Đới với mỗi điểm ảnh trên ảnh S’ ta tiến
hành so sánh giá trị của điểm đó với giá trị của hai điểm lân cận. Hai điểm lân
cận này là hai điểm nằm trên đường thẳng chứa hướng của đường biên .
Giả sử ta có điểm biên đang xét là tại vị trí (x,y), ta có 8 điểm biên lân cận
điểm biên này như hình dưới:

Hình 2. Hình mô tả các điểm biên lân cận

Nhóm 3_Lớp 65DCHT23

9


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

Tại điểm biên đó, ta tiến hành tính giá trị góc của hướng đường biên . Nếu
hướng của đường biên ≤22.50 hoặc ≥157.50 thì đặt giá trị của =0 0 và khi đó hai
điểm biên lân cận điểm biên này tại vị trí (x+1, y) và (x-1, y).

Tương tự, ta có kết quả 2 điểm biên lân cận theo các hướng biên khác nhau
như bảng dưới đây:

Ta tiến hành thực hiện:
• Tại mỗi điểm ảnh, ta tiến hành tính toán hướng của đường biên, sau đó so
sánh kết quả đó tìm ra hai điểm biên lân cận.
• So sánh giá trị điểm ảnh đang xét với hai điểm biên lân cận trên:
Nếu điểm ảnh này là lớn nhất thì giữ lại điểm biên này (đánh dấu điểm
biên này), ngược lại nếu nó nhỏ hơn một trong hai điểm biên lân cận thì
điểm biên này bị loại đi (cho giá trị điểm biên này bằng 0).
Ta được kết quả ảnh sau khi đã loại đi một số điểm biên không phù hợp.
Lúc này số lượng biên trên ảnh nhìn thấy sẽ ít đi.
 Bước thứ tư: Tiến hành áp dụng ngưỡng
Sau khi tiến hành bước 3 ta tiến hành áp dụng ngưỡng: sử dụng hai ngưỡng
là ngưỡng cao Th và ngưỡng thấp Tl.
Những điểm biên được đánh dấu (không bị loại) ta tiếp tục tiến hành áp dụng
ngưỡng cao và ngưỡng thấp:
• Xét điểm ảnh I tại vị trí (x,y)
• So sánh I(x,y) với hai ngưỡng Th và Tl
 Nếu I(x,y) ≥ Th: Đánh dấu và giữ lại điểm biên này (đặt giá trị
bằng1)
 Nếu I(x,y)  Nếu Tl ≤ I(x,y) của 8 điểm lân cận:
Nếu một trong 8 điểm lân cận có giá trị >T h: Tiến hành đánh dấu
và giữ lại điểm biên này
Nhóm 3_Lớp 65DCHT23

10



Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

Ngược lại, loại bỏ điểm biên này (đặt giá trị bằng 0).

Nhóm 3_Lớp 65DCHT23

11


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

PHẦN 2: ĐÁNH GIÁ THỰC NGHIỆM, SO SÁNH
PHƯƠNG PHÁP LỌC CANNY SO VỚI CÁC PHƯƠNG
PHÁP PREWITT
2.1. Đánh giá thực nghiệm phương pháp lọc Canny
Phương pháp Canny được sử dụng rất nhiều trong các ứng dụng của xử lý
ảnh do đây là phương pháp có khả năng loại bỏ nhiễu rất tốt.
Ở đây ta đánh giá phương pháp Canny với độ lệch chuẩn σ khác nhau và các
ngưỡng khác nhau:
• Khi ta thay đổi σ, ngưỡng cao và ngưỡng thấp vẫn giữ nguyên: T h=100 và
Tl=30, ta có kết quả (σ=0,8. 1. 1,4)

Hình 2.1: Phát hiện biên với Canny ngưỡng cố định Th=100 và Tl=30

Qua kết quả ở trên ta có một số nhận xét sau:
 Khi ta thay đổi độ lệch tiêu chuẩn σ thì ảnh kết quả cũng thay
đổi. Ảnh kết quả (b), (c), (d) với độ lệch tiêu chuẩn tương ứng là
0,8; 1,0; 1,4 cho ra các điểm biên khác nhau. Ảnh (b) có số
lượng biên cao nhất, còn ảnh (d) có số lượng điểm biên thấp

nhất.
Nhóm 3_Lớp 65DCHT23

12


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

 Càng tăng độ lớn của độ lệch chuẩn thì số lượng các điểm biên
xác định được ngày càng giảm. Nghĩa là đối với ảnh có nhiều
nhiễu thì càng tăng độ lệch chuẩn thì số lượng điểm nhiễu cũng
giảm đi, khi đó chỉ những biên rõ nét mới phát hiện ra.

Hình 2.2: Phát hiện biên với Canny ngưỡng thay đổi, σ=1

Còn khi thay đổi ngưỡng thấp và ngưỡng cao (giữ nguyên σ) thì số lượng
biên được phát hiện cũng thay đổi. Do các điểm ảnh có giá trị nhỏ hơn ngưỡng
thấp thì loại điểm đó và lớn hơn ngưỡng cao thì xác định đó là điểm biên (giữa
2 ngưỡng còn tùy thuộc vào các điểm lân cận). Nên ta thấy:
 Khi ngưỡng thấp và ngưỡng cao đều thấp thì số lượng biên
phát hiện ra rất nhiều
 Khi cả hai ngưỡng đều cao thì số lượng điểm biên phát hiện
được là rất ít, chỉ những điểm có mức xám cao mới có thể
thành biên.
 Khi ngưỡng rất thấp và ngưỡng rất cao, tức là khoảng cách
giữa hai ngưỡng là lớn thì điểm biên phụ thuộc vào các điểm
lân cận.
Nhóm 3_Lớp 65DCHT23

13



Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

Tùy từng ảnh cụ thể và tùy từng cách lấy ngưỡng khác nhau mà ta có các kết
quả khác nhau.
2.2. So sánh phương pháp phát hiện biên ( phương pháp Gadient, phương
pháp Paplace, phương pháp Canny)
Sau đây là đánh giá tổng hợp về các phương pháp phát hiện biên: Để so
sánh sự khác nhau giữa các phương pháp phát hiện biên, chúng ta sử dụng kết
quả của phương pháp phát Sobel đại diện cho phương pháp đạo hàm bậc nhất,
sử dụng kết quả của Eight-neighbor Laplace đại diện cho phương pháp phát
hiện biên Laplace (phương pháp đạo hàm bậc hai) và sử dụng σ =1,4; Th=100,
Tl=50 đại diện cho phương pháp Canny. Từ các kết quả thu được ở hình trên, ta
có một số nhận định về các phương pháp phát hiện biên như sau:
 Đối với ảnh không nhiễu: Cả ba phương pháp đều cho kết quả tốt. Song
phương pháp phát hiện biên Sobel cho biên rõ nét nhưng lớn, còn phương
pháp Laplace cho kết quả rõ nét, biên mảnh.
Riêng phương pháp Canny do quá trình làm trơn ảnh nên từ một ảnh
không nhiễu, các biên mờ bớt đi và to ra. Do vậy biên ảnh trong phương
pháp Canny lớn nhưng lại không đầy đủ. Đối với loại ảnh này khi tìm biên
nên áp dụng phương pháp Laplace, tiếp đến là phương pháp đạo hàm bậc
nhất (Sobel, Kirsh, Prewitt...). Không nên sử dụng phương pháp Canny trong
trường hợp này.
 Đối với ảnh có nhiều cạnh: Khi phát hiện biên, các cạnh không quan
trọng nên được loại bỏ.
Ở đây, phương pháp Sobel vẫn phát hiện được biên nh ưng các biên
mờ, không được rõ nét, do trong ảnh có nh ững vùng có m ức xám th ấp,
sự thay đổi giữa các mức xám nhỏ.
Chính vì vậy mà ảnh qua phương pháp Laplace cho k ết qu ả rõ nét

hơn (do phương pháp này sử dụng phương pháp đạo hàm bậc hai, các
điểm biên là các điểm cắt không). Tuy vậy do ảnh có r ất nhiều đi ểm
biên nhỏ nên các biên ảnh ở trên qua phương pháp này rất nhiều và r ối,
chúng ta nên loại bỏ các điểm biên th ừa.
Còn đối với phương pháp Canny, do quá trình “Non-maximum
Suppression” và do quá trình áp dụng ngưỡng mà các điểm biên ph ụ bị
loại bớt đi, các biên chính được giữ lại nên biên rõ nét h ơn.
Đối với ảnh có nhiều có mức xám nhỏ, sự biến thiên các m ức xám là
thấp ta nên sử dụng phương pháp Laplace, song nếu ảnh đó có quá
Nhóm 3_Lớp 65DCHT23

14


Tìm hiểu ứng dụng phương pháp lọc Canny để phát hiện và tách biên

nhiều biên thì ta nên sử dụng phương pháp Canny để lo ại bỏ bớt các
cạnh không cần quan tâm đi.
 Đối với ảnh có nhiều nhiễu: Phương pháp đạo hàm bậc nhất cho
biên ảnh với nhiều điểm biên phụ. Còn phương pháp Laplace thì t ạo
biên kép nên hoàn toàn không xác đ ịnh được biên. Còn đối v ới ph ương
pháp Canny thì do quá trình làm trơn ảnh cho bớt nhiễu và quá trình
“Non-maxim um Suppression” để giảm b ớt các biên phụ nên ảnh kết
quả của p hương pháp này rất rõ nét.
Vì vậy đối với ảnh có nhiều nhiễu thì ta nên s ử d ụng ph ương pháp
Canny để loại bỏ nhiễu và các điểm biên phụ không cần quan tâm, chỉ gi ữ
lại các điểm biên chính theo mục đích sử dụng khác nhau.

Nhóm 3_Lớp 65DCHT23


15



×