BÁO CÁO ĐỒ ÁN, NHẬP MÔN XỬ LÝ ẢNH, Đề tài, Phát hiện biên, theo phương pháp, Sobel & Canny
Trang 1BỘ QUỐC PHÒNG HỌC VIỆN KỸ THUẬT QUÂN SỰ
KHOA CNTT
-********* -BÁO CÁO ĐỒ ÁN NHẬP MÔN XỬ LÝ ẢNH
Đề tài: Phát hiện biên theo phương pháp Sobel & Canny
Giáo viên hướng dẫn : Nguyễn Văn Giang
Sinh viên thực hiện : Đặng Văn Lâm (23/08/1992)
Lớp : Tin Học 9B
Hà Nội, tháng 05 năm 2014
Trang 2Mục lục
LỜI NÓI ĐẦU 2
CÁC KHÁI NIỆM CƠ BẢN 4
PHẦN I: PHÁT HIỆN BIÊN THEO PHƯƠNG PHÁP SOBEL 5
PHẦN II: PHÁT HIỆN BIÊN THEO PHƯƠNG PHÁP CANNY 5
I Cơ sở lý thuyết của thuật toán 5
1 Nguyên lý của thuật toán 5
2 Nội dung của thuật toán 5
3 Mô tả thuật toán 7
3.1 Các bước của thuật toán 7
3.2 Giải thích thuật toán 7
4 Nhận xét kết quả 11
5 Đánh giá thuật toán 11
Trang 3LỜI NÓI ĐẦ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 Do đó xử lý ảnh là lĩnh vực được rất nhiều quan tâm và trở thành niềm đam mê của rất nhiều sinh viên
Trong bài báo cáo này, em xin đưa ra đề tài: Tách biên ảnh bằng phương pháp Canny và Sobel
Để đạt được thành công, em cần sự góp ý của thầy cô và các bạn
Em xin chân thành cảm ơn!
Trang 4CÁ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 & 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 Sobel và phát hiện biên theo phương pháp Canny
Trang 5PHẦN I: PHÁT HIỆN BIÊN THEO PHƯƠNG PHÁP SOBEL
I Cơ sở lý thuyết của thuật toán
Phương pháp Gradient là phương pháp dò biên cục bộ bằng cách tìm kiếm cực đại và cực tiểu khi lấy đạo hàm bậc nhất của ảnh trong không gian hai chiều
Toán tử Sobel là một toán tử trong phương pháp Gradient
Toán tử Sobel được Duda và Hart đặt ra năm 1973 với hai mặt nạ nhân chập 3*3 theo hướng x, y có cấu hình như dưới đây để xấp xỉ đạo hàm bậc nhất Gx, Gy:
Nói cách khác, gradient tại điểm tâm trong một lân cận được tính theo bộ tách Sobel:
Khi đó, ta nói rằng vị trí (x, y) là điểm biên nếu G ≥ T tại vị trí đó, trong đó T là ngưỡng được chỉ định
Hướng của biên θ được xác định:
θ=atan2¿Gy , Gx)
II Mô tả thuật toán
Thuật toán phát hiện biên theo phương pháp Sobel được thực hiện qua các bước sau:
B1: Tính I(x, y) × Gx = I1 và I(x, y) × Gy = I2
B2: Tính |I1| + |I2| = Is
B3: Hiệu chỉnh I(x,y) = Is ≥ θ ? 1:0
PHẦN II: PHÁT HIỆN BIÊN THEO PHƯƠNG PHÁP CANNY
I Cơ sở lý thuyết của thuật toán
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
Trang 6tiê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
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:
Trang 7Trong đó:
- 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:
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
Trang 8II Mô tả thuật toán
1 Các bước của thuật toán
Thuật toán được tiến hành qua 4 bước cơ bản sau:
- Đọc ảnh I cần xử lý: tiến hành làm trơn ảnh bằng cách nhân xoắn ảnh với bộ
lọc Gauss Độ lệch tiêu chuẩn của bộ lọc này chính là tham số để tách cạnh
- Đạo hàm bậc nhất kết quả trên theo hai hướng x và y:
Điều này tương ứng với việc nhân xoắn ảnh kết quả ở bước 1 theo hai hướng
x và y với một bộ lọc dựa trên đạo hàm bậc nhất (các bộ lọc của kỹ thuật Gradient)
Từ đó đưa ra kết quả đạo hàm ảnh sau khi tiến hành nhân xoắn với Gauss
- Cho ảnh kết quả ở bước trên tiến hành “Non- maximum Suppression” nghĩa
là loiaj bỏ bớt các điểm cạnh (loại bỏ bớt nhiễu), chỉ giữ lại điểm có mức xám cao
- Tiến hành thực hiện áp dụng ngưỡng (ngưỡng cao và ngưỡng thấp) để loại
bỏ một số cạnh xấu
2 Giải thích thuật toán
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 Cách thức tiến hành giống như ở Laplace of Gauss
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
Trang 9xoắn với ảnh thay vì nhân xoắn ảnh với hàm Gauss rồi mới đạo hàm.
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:
Trang 10
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’:
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
Trang 11hướng của đường biên θ≤22.50 hoặc θ≥157.50 thì đặt giá trị của θ=00 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ằng 1) + Nếu I(x,y) <Tl: Loại bỏ điểm biên này (đặt giá trị bằng 0)
+ Nếu Tl ≤ I(x,y) <Th: Ta tiến hành so sánh giá trị I(x,y) với giá trị của 8 điểm lân cận:
Nếu một trong 8 điểm lân cận có giá trị >Th: Tiến hành đánh dấu và giữ lại điểm biên này
Ngược lại, loại bỏ điểm biên này (đặt giá trị bằng 0)
Trang 12Dưới đây là kết quả sau khi thực hiện phát hiện biên Canny:
III Nhận xét & đánh giá
1 Nhận xét kết quả
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: Th=100 và
Tl=30, ta có kết quả (σ=0,8 1 1,4)
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
+ 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
- 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
(50;30), (200,100), (200,30), (250,200)
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 Đánh giá thuật toán
Từ các kết quả ở trên, ta có một số nhận xét sau:
Trang 13khô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 đủ không nên áp dụng
Đố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ỏ 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 nhiễu: Do quá trình làm trơn ảnh cho bớt nhiễu và
quá trình “Non- maximum Suppression” giảm bớt các biên phụ nên ảnh kết quả của phương pháp này rất rõ nét Vì vậy phương pháp này rất thích hợp cho loại ảnh này