Kỹ thuật tách biên

Một phần của tài liệu NGHIÊN CỨU GIẢI PHÁP NHẬN DẠNG BIỂN SỐ XE TRÊN CƠ SỞ CÔNG NGHỆ XỬ LÝ ẢNH (Trang 29 - 40)

Tách biên là một trong những bước quan trọng của quá trình xử lý ảnh. Theo định nghĩa, biên là phần chia tách nằm giữa 2 phần ảnh có sự khác biệt về mức xám (gray-scale). Biên cũng được định nghĩa là các điểm ảnh mà tại đó có sự thay đổi đột ngột về độ sáng (brightness).

Dò biên (edge detector) là tập hợp các phương pháp xử lý dùng để xác định các biến đổi về các góc cạnh (sharp) trong ảnh nhằm đưa ra biên dạng của vật thể.

Có nhiều phương pháp tách biên nhưng ở đây ta sẽ xem xét chủ yếu đến 3 phương pháp là:

a. Phương pháp gradient gồm có: Phương pháp gradient

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. Theo định nghĩa thì gradient là một vector có các thành phần biểu thị tốc độ thay đổi giá trị của điểm ảnh theo hai hướng x và y. Các thành phần của gradient được tính bởi:

( , )

= ≈ ( , ) ( , ) (1.8) ( , )

= ≈ ( , ) ( , ) (1.9)

Với dx là khoảng cách giữa các điểm theo hướng x (khoảng cách tính bằng số điểm) và tương tự với dy. Trên thực tế, người ta hay dùng với dx = dy = 1.

Với một ảnh liên tục f(x,y), các đạo hàm riêng của nó cho phép xác định vị trí cực đại cục bộ theo hướng của biên. Thực vậy, gradient của một ảnh liên tục được biểu diễn bởi một hàm f(x,y) dọc theo r với góc , được định nghĩa bởi:

= + = cos + sin (1.10)

Và đạt cực đại khi fx sin +fy cos = 0. Do vậy ta có thể xác định hướng cực đại của nó :

= ( / ) và ( ) max = + ta gọi là hướng của biên.

Trong phương pháp gradient, người ta chia nhỏ thành hai kỹ thuật (do dùng hai toán tử khác nhau): kỹ thuật gradient và kỹ thuật la bàn.

Kỹ thuật gradient :

Kỹ thuật gradient sử dụng một cặp mặt nạ H1 và H2 trực giao (theo hai hướng vuông góc). Nếu định nghĩa g1, g2 là gradient tương ứng theo hướng x, y, thì biên độ của gradient, ký hiệu là g, tại điểm (m,n) được tính theo công thức:

= g (m, n) = ( , ) + ( , ) (1.11)

(m, n) = (m, n) / (m, n) (1.12)

Các toán tử đạo hàm được áp dụng khá nhiều. Ở đây ta chỉ nêu lên một số toán tử tiêu biểu: Robert, Sobel, Prewitt…

Trước tiên chúng ta xét toán tử Robert, toán tử này do Robert đề xuất năm 1965.Nó áp dụng trực tiếp công thức đạo hàm tại điểm (x, y). Với mỗi điểm ảnh I[x, y] của ảnh I, đạo hàm theo x, theo y được ký hiệu tương ứng gx, gy được tính:

= I[x + 1, y] – I[x,y] = I[x, y + 1] – I[x,y]

Điều này tương ứng với việc nhân chập ảnh với hai mặt nạ Hx, Hy, các mặt nạ này gọi là mặt nạ Robert:

= 0 1

−1 0 =

−1 0

0 −1

Trong trường hợp tổng quát, giá trị gradient biên độ g và gradient hướng được tính theo công thức (1.11) và (1.12).

Trong kỹ thuật Sobel và Prewitt người ta sử dụng hai mặt nạ: Mặt nạ Sobel: = −1 0 1 −1 0 1 −1 0 1 ( Hướng x) = −1 −1 −1 0 0 0 1 1 1 ( Hướng y) Mặt nạ Prewitt:

= −1 0 1 −2 0 2 −1 0 1 ( Hướng x) = −1 −2 −1 0 0 0 1 2 1 ( Hướng y)

Gradient được xấp xỉ bởi công thức : =  I và =  I Thực tế cho thấy rằng, các toán tử Sobel và Prewitt tốt hơn toán tử Robert, bởi chúng ít nhạy cảm với nhiễu. Ta cũng thấy rằng việc lấy đạo hàm một tín hiệu có xu hướng làm tăng nhiễu trong tín hiệu đó. Độ nhạy cảm này có thể làm giảm xuống nhờ thao tác lấy trung bình cục bộ trong miền phủ mặt nạ, Lưu lý rằng toán tử Sobel và Prewitt dễ dàng chuyển đổi cho nhau bằng cách thay đổi hệ số.

Kỹ thuật la bàn ( Compass Operator) (adsbygoogle = window.adsbygoogle || []).push({});

Kỹ thuật la bàn chọn gradient theo một số hướng định trước. Nếu ký hiệu là gradient la bàn theo hướng = k (k = 0,1,...,7), thì ta có gradient theo tám hướng ngược chiều kim đồng hồ, mỗi hướng cách nhau 45

Có nhiều toán tử la bàn khác nhau, tuy nhiên ở đây chúng ta chỉ nêu toán tử Kirsh. Toán tử này sử dụng mặt nạ 3x3:

=

5 5 5

−3 0 −3

−3 −3 −3

Đây là mặt nạ có hướng gốc 0 . Trên cơ sở định nghĩa them 7 mặt nạ cho các hướng còn lại ( 45, 90, 135, 180, 225, 270, 315 ).

= −3 5 5 −3 0 5 −3 −3 −3 = −3 −3 5 −3 0 5 −3 −3 5 = −3 −3 −3 −3 0 5 −3 5 5 = −3 −3 −3 −3 0 −3 5 5 5 = −3 −3 −3 5 0 −3 5 5 −3 = 5 −3 −3 5 0 −3 5 −3 −3 = 5 5 −3 5 0 −3 −3 −3 −3

Ký hiệu ( i=1,2,...,8) là gradient thu được theo tám hướng bởi mặt nạ, biên độ gradient tại (x,y) sẽ được tính theo công thức :

(x,y) = Max ( | (x,y) |, i= 1,2,...,8)

Ngoài toán tử Kirsh, người ta còn sử dụng một số toán tử khác mà mặt nạ ở hướng 0 được định nghĩa tương ứng bởi:

= 1 1 1 1 −2 1 −1 −1 −1 = 1 1 1 1 −2 1 −1 −1 −1 = 1 2 1 0 0 0 −1 −2 −1

Trong trường hợp tổng quát, giả sử có n hướng cách đều nhau tương ứng với các mặt nạ , i= 1, 2,...,n đối với ảnh I, khi đó:

(x,y) = Max ( | I[x,y] | , i=1,2,...,n)

b. Phương pháp Laplace

Các phương pháp đánh giá gradientt ở trên làm việc khá tốt khi độ sáng thay đổi rõ nét. Nhưng khi mức xám thay đổi chậm, miền chuyển tiếp trải rộng, phương pháp cho hiệu quả hơn lại là phương pháp sử dụng đạo hàm bậc hai còn gọi là phương pháp laplace. Toán tử Laplace được định nghĩa như sau :

∇ f =

+

(1.13)

Để thấy rõ sự khác biệt giữa kỹ thuật la bàn (Dùng đạo hàm bậc nhất ) và kỹ thuật Laplace ta có thể xem hình sau :

Trong Không gian rời rạc, đạo hàm bậc hai được tính như sau : = 2 f (x,y) – f ( x – 1) – f ( x + 1, y ) (1.14) = 2 f (x,y) – f ( x, y – 1) – f ( x , y + 1) (1.15)

Vậy ∇ f = - f ( x – 1, y) – f ( x, y – 1) + 4 ( x, y) – f (x, y + 1 ) – f

(x + 1, y ) (1.16)

Toán tử Laplace dùng nhiều kiểu mặt nạ khác nhau để xấp xỉ rời rạc đạo hàm bậc 2. Đây là ba kiểu mặt nạ thường dùng:

= 0 −1 0 −1 4 −1 0 −1 0 = −1 −1 −1 −1 8 −1 −1 −1 −1 = 1 −2 1 −2 5 −2 1 −2 1

Trong kỹ thuật Laplace, điểm biên được xác định bởi điểm cắt không và vì đây là điểm không duy nhất nên kỹ thuật này sẽ cho biên mảnh, tức là đường biên có độ rộng 1 pixel.

Nếu lấy đạo hàm bậc nhất ( Phương pháp gradient ) thì không đủ nhạy nếu mức xám của ảnh thay đổi chậm.

Nếu lấy đạo hàm bậc hai (phương pháp Laplace) thì lại quá nhạy nhiễu (như ví dụ trên).

Sau đây ta sẽ xét phương pháp tách biên khác có tên là Canny. Phương pháp này cũng dựa trên nguyên tắc lấy đạo hàm, tuy nhiên quá trình dò biên có cân nhắc đến hướng của gradient và các điểm lân cận cho nên kết quả sẽ tốt hơn hai phương pháp trên.

c. Phương pháp Canny : (adsbygoogle = window.adsbygoogle || []).push({});

Phương pháp này do phòng thí nghiệm MIT khởi xướng và có thể chia làm 4 bước sau:

Bước 1: Làm trơn ảnh bằng phương pháp Gauss.

Bước 2: Ảnh ở bước 1 được đem đạo hàm lần lượt theo phương x và y. Bằng cách tính toán giá trị đạo hàm tại từng điểm theo phương x và y ta tính được độ lớn và góc của gradient tương ứng.

M (x, y) = ( , ) + ( , ) (1.17)

Bước 3: Sau khi tính toán được giá trị của gradient, đường biên sẽ là những điểm có giá trị gradient max cục bộ. Quá trình dò biên được tiến hành bằng cách giảm dần góc gradient

Bước 4: Phân ngưỡng đường biên, phương pháp Canny không dùng ngưỡng thông thường mà sử dụng một phương pháp gọi là “hysteresis thresholding”.

Phuơng pháp này sử dụng 2 ngưỡng là ngưỡng trên và ngưỡng dưới. Nếu giá trị tại một pixel lớn hơn ngưỡng trên hoặc bé hơn ngưỡng dưới thì pixel sẽ được chấp nhận là thuộc lớp vật cản hoặc lớp nền ngay lập tức. Những điểm nằm giữa hai giá trị này sẽ được xem xét tùy thuộc vào số điểm mà nó kết nối.

Kết quả cho thấy phương pháp Canny rất hiệu quả đối với ảnh trong điều kiện thông thường về độ sáng và độ tương phản (bóng của biên dạng nếu không quá đậm cũng được loại bỏ rất tốt). Tuy nhiên về bản chất phương pháp này cũng dựa trên nguyên tắc đạo hàm nên biên dạng nhận được không phải lúc nào cũng ổn định (ổn định ở đây mang ý nghĩa là không cho ta đường biên trơn và liên tục).

Phương pháp này tuy có một vài hạn chế (như đường biên không liền nét) nhưng là một phương pháp hiệu quả đối với những ảnh có nhiễu, vì vậy vẫn được chọn làm phương pháp dò biên của chương trình minh họa. Tuy vậy nếu ta dùng phương pháp này làm phương pháp duy nhất để xác định biên dạng thì có thể ta sẽ làm mất một số thông tin. Vì thế song song với phương pháp này, ta sử dụng thêm kỹ thuật phân ngưỡng ở nhiều ngưỡng khác nhau và lấy hợp các biên dạng thu được từ các phương pháp này.

d)Biến đổi Radon:

Biến đổi Radon dùng để biến đổi ảnh trong không gian 2 chiều với các đường thẳng thành miền Radon, trong đó mỗi đường thẳng trên ảnh sẽ cho một điểm trong miền Radon.

Công thức toán học của biến đổi Radon:

R ( , ) = ∫ ∞∞ A ( cos - s sin , sin - s cos ) ds (1.18) Phương trình trên biểu diễn việc lấy tích phân dọc theo đường thẳng s trên ảnh, trong đó ρ khoảng cách của đường thẳng so với gốc tọa độ O, θ là góc lệch so với phương ngang.

Hình 1.10 Mô tả biến đổi Radon

Ứng dụng trong xử lý ảnh số

Biến đổi Radon tính toán hình chiếu của ma trận ảnh dọc theo một số hướng xác định. Hình chiếu của một hàm 2 biến f(x,y) là tập hợp các tích phân đường. Hàm Radon tính toán các tích phân đường dọc theo các tia (beam) song song theo các phương khác nhau (bằng cách xoay hệ trục tọa độ xung quanh gốc O theo các giá trị khác nhau), chiều rộng các tia là 1 pixel. Hình dưới đây biểu diễn một hình chiếu đơn giản theo một giá trị của góc.

Hình 1.11 Biểu diễn hình chiếu theo một góc trong biến đổi Radon Công thức tổng quát phía trên có thể viết lại như sau:

(x’) = ∫∞∞ ( x’ cos ’ – y’ sin , x’ sin + y’ cos ) dy’ (1.19) Với

=

cos sin

− sin cos

Hình sau biểu diễn phép biến đổi Radon dưới dạng hình học.

Hình 1.12 Biểu diễn phép biến đổi Radon dưới dạng hình học

Các bước cụ thể thực hiện phát hiện các đường thẳng trên ảnh bằng biến đổi Radon.

Bước 1: Biến đổi ảnh về ảnh biên nhị phân

Hình 1.13 Biến đổi ảnh sang ảnh nhị phân

Bước 2 : Thực hiện biến đổi Radon trên ảnh biên với theta = 0:179

Giá trị R của biến đổi Radon được biểu diễn như hình 1.12:

Hình 1.14 Hình thể hiện miền Radon

Bước 3 : Tìm các giá trị lớn nhất của R trong ma trận biến đổi Radon. (adsbygoogle = window.adsbygoogle || []).push({});

Vị trí các giá trị lớn nhất này tương ứng với vị trí của các đường thẳng trong ảnh ban đầu.

Trong hình sau, giá trị lớn nhất của R ở vị trí bằng 10, x’=-80. Đường thẳng vuông góc với đường thẳng có giá trị bằng 10, ở vị trí x’=- 80 chính là đường thẳng rõ nhất trong ảnh biên nhị phân (đường thẳng này được đánh dấu màu đỏ). Một đường thẳng khá rõ khác song song với đường thẳng màu đỏ cũng xuất hiện ở giá trị bằng 10 và đường thẳng vuông góc xuất hiện ở 910.

Hình 1.15 Hình thể hiện sự phát hiện các đường thẳng trong biến đổi Radon

Ở đây chúng ta cần chú ý là giá trị max ứng với R max không phải giá trị góc lệch của đường thẳng mà chỉ là góc lệch của trục Ox’ so với trục Ox ban đầu. Quan sát hình vẽ sau ta sẽ thấy rõ vấn đề.

Trường hợp đường thẳng lệch xuống phía dưới

Giá trị góc lệch α cần tìm là: α = 90 – θmax, ta thấy α > 0, nên ảnh xoay theo chiều ngược chiều kim đồng hồ.

Trường hợp đường thẳng lệch lên phía trên

Hình 1.17 Trường hợp đường thẳng lệch về phía trên

Góc lệch α = 90 – θmax, ta thấy α < 0, nên khi ảnh xoay theo chiều kim đồng hồ.

Một phần của tài liệu NGHIÊN CỨU GIẢI PHÁP NHẬN DẠNG BIỂN SỐ XE TRÊN CƠ SỞ CÔNG NGHỆ XỬ LÝ ẢNH (Trang 29 - 40)