ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC —————o0o—————

NGUYỄN THỊ PHƯỢNG

KHÔI PHỤC ẢNH VÀ ỨNG DỤNG

Chuyên ngành: Toán ứng dụng Mã số: 60 46 01 12

LUẬN VĂN THẠC SĨ TOÁN HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS. NGUYỄN THỊ BÍCH THỦY

Thái Nguyên - 2017

2

Mục lục

Danh sách hình vẽ 5

Danh sách bảng 5

MỞ ĐẦU 6

1 Giới thiệu và phát biểu bài toán khôi phục ảnh

1.1 Các khái niệm cơ bản của xử lý ảnh số (Xem [1, [2], [7])

9 9 . . 9 . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Ảnh số là gì 1.1.2 Tổng quan về các giai đoạn xử lý ảnh số . . . . . . . 9 1.1.3 Các loại ảnh trong matlab . . . . . . . . . . . . . . . 10 1.2 Biểu diễn ảnh và các tác nhân làm biến dạng ảnh . . . . . . 15 1.2.1 Biểu diễn trong miền không gian . . . . . . . . . . . 15 1.2.2 Biểu diễn ảnh trong miền tần số . . . . . . . . . . . . 16 1.2.3 Các tác nhân làm biến đổi ảnh . . . . . . . . . . . . 16 1.3 Bài toán khôi phục ảnh số . . . . . . . . . . . . . . . . . . . 19

2 Các kĩ thuật khôi phục ảnh

21 2.1 Các bộ lọc trong miền không gian . . . . . . . . . . . . . . . 21 2.1.1 Bộ lọc trung bình số học . . . . . . . . . . . . . . . . 21 2.1.2 Bộ lọc trung bình hình học . . . . . . . . . . . . . . 21 2.1.3 Bộ lọc trị số trung bình . . . . . . . . . . . . . . . . 22 2.1.4 Bộ lọc Min và Max . . . . . . . . . . . . . . . . . . . 22 2.1.5 Bộ lọc trung bình điều hòa (Hamonic mean filter) . . 22 2.1.6 Bộ lọc điểm giữa . . . . . . . . . . . . . . . . . . . . 22 . . . . . . . . . . . . . . . . . 23 2.2 Các bộ lọc trong miền tần số

3

. . . . . . . . . . . . . . . . . . . . . 23 2.2.1 Bộ lọc chắn dải 2.2.2 Bộ lọc thông dải . . . . . . . . . . . . . . . . . . . . 23 2.2.3 Bộ lọc Notch . . . . . . . . . . . . . . . . . . . . . . 24 . . . . . . . . . . . . . . . . . . . . . . 24 2.2.4 Bộ lọc ngược 2.2.5 Bộ lọc Wiener . . . . . . . . . . . . . . . . . . . . . . 25 2.3 Sử dụng biểu diễn thưa trong khử mờ, nhiễu . . . . . . . . . 26

3 Thực nghiệm

29 . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.1 Kịch bản test 3.2 Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3 Nhận xét . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

KẾT LUẬN 39

TÀI LIỆU THAM KHẢO 40

4

Danh sách hình vẽ

1.1 Hình 1.1 Các giai đoạn chính trong xử lý ảnh . . . . . . . . 10 1.2 Hình 1.2 Ảnh Index đen trắng . . . . . . . . . . . . . . . . . 11 1.3 Hình 1.3 Ảnh Index màu . . . . . . . . . . . . . . . . . . . . 11 1.4 Hình 1.4 Ảnh grayscale . . . . . . . . . . . . . . . . . . . . . 12 1.5 Hình 1.5 Ảnh nhị phân . . . . . . . . . . . . . . . . . . . . . 12 1.6 Hình 1.6 Ảnh RGB biểu diễn dưới các điểm ảnh . . . . . . . 13 1.7 Hình 1.7 Ảnh RGB màu . . . . . . . . . . . . . . . . . . . . 14 1.8 Hình 1.8 Ảnh trên miền không gian . . . . . . . . . . . . . . 15 1.9 Hình 1.9 Lọc tuyến tính . . . . . . . . . . . . . . . . . . . . 17 1.10 Hình 1.10 Sơ đồ khôi phục ảnh . . . . . . . . . . . . . . . . 20

5

Danh sách bảng

. . . . . . . . . . . . . 37

3.1 Bảng kết quả khử nhiễu PSNR (dB) 3.2 Bảng đo kết quả thời gian chạy các thuật toán(đơn vị tính

giây) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

6

MỞ ĐẦU

Xử lý ảnh đóng vai trò quan trọng trong nhiều ứng dụng thực tế về khoa học kĩ thuật cũng như trong cuộc sống thường ngày như: sản xuất và kiểm tra chất lượng, sự di chuyển của Robot, các phương tiện đi lại tự trị, công cụ hướng dẫn cho người mù, an ninh và giám sát, nhận dạng đối tượng, nhận dạng mặt, các ứng dụng trong y học, sản xuất, hiệu chỉnh video,. . . . Có thể nói,thông tin hình ảnh là một phần không thể thiếu của xã hội. Chính vì vậy, việc nâng cao hình ảnh kỹ thuật số là cần thiết trong nhiều lĩnh vực ứng dụng của hình ảnh. Nó làm cho con người có thể dễ dàng quan sát và máy móc có thể thực thi tốt hơn các nhiệm vụ, biên dịch và thực hiện các bài toán xử lý thông tin khác trên hình ảnh.

Trên thực tế, rất nhiều tài liệu hình ảnh được chụp từ điện thoại, máy ảnh, camera để phục vụ cho các nhiệm vụ lưu trữ có chất lượng không tốt do nhiều nguyên nhân khác nhau như: kỹ năng của người chụp ảnh, giới hạn của thiết bị chụp ảnh, ánh sáng. . . .làm cho ảnh bị nhiễu,mờ. Xuất phát từ thực tế này, đã có rất nhiều công trình công bố tập trung vào phát triển các thuật toán xử lý ảnh số mà đặc biệt là nâng cao chất lượng ảnh. Và trong luận văn này cũng sẽ đi sâu và nghiên cứu tổng quan các phương pháp khôi phục ảnh và đánh giá một số phương pháp tiêu biểu trong nâng cao chất lượng ảnh số.

Sử dụng công cụ Matlab cài đặt thử nghiệm mô phỏng một số thuật toán nâng cao chất lượng ảnh số. Đánh giá khả năng ứng dụng của các thuật toán trên thực tế.

7

Chính vì vậy, đối tượng của luận văn là: Các phương pháp khôi phục ảnh, bao gồm khử nhiễu khử mờ ảnh. Luận văn sẽ khảo sát và đánh giá một số phương pháp thường dùng trong nâng cao chất lượng ảnh số, lựa chọn các phương pháp được cho là phù hợp nhất đối với việc nâng cao chất lượng ảnh. Tập trung vào cài đặt thử nghiệm một số phương pháp nhằm chứng minh tính đúng đắn và khả năng ứng dụng trong thực tế của thuật toán.

Luận văn gồm 3 chương:

Chương I: Trình bày tổng quan về các khái niệm cơ bản trong xử lý ảnh và quá trình xử lý ảnh. Chương II: Trình bày về các biện pháp khôi phục ảnh trong khử nhiễu, khử mờ. Chương III: Trình bày thực nghiệm của một số phương pháp trong khử nhiễu khử mờ. Và cuối cùng là kết luận, đưa ra đánh giá cho từng phương pháp.

Để hoàn thành được luận văn này em xin bày tỏ lòng biết ơn sâu sắc tới TS. Nguyễn Thị Bích Thủy đã tận tình hướng dẫn và giúp đỡ em trong suốt quá tình học tập và nghiên cứu để em có thể hoàn thiện luận văn này. Em cũng xin bày tỏ lòng biết ơn chân thành tới các Giáo sư, Phó giáo sư, Tiến sĩ, quý thầy cô giáo giảng dạy tại Đại học Khoa học, Đại học Thái Nguyên và tại Viện Toán học, Viện Hàn lâm Khoa học và Công nghệ Việt Nam đã mang đến cho em nhiều kiến thức bổ ích trong nghiên cứu khoa học.

Đồng thời, tôi xin gửi lời cảm ơn tới gia đình và các bạn đồng môn đã luôn giúp đỡ và động viên tôi trong thời gian học tập tại Đại học Khoa học, Đại học Thái Nguyên và trong quá trình hoàn thành luận văn này.

Luận văn được hoàn thành tại trường Đại học Khoa học, Đại học Thái Nguyên dưới sự hướng dẫn trực tiếp của TS. Nguyễn Thị Bích Thủy. Mặc dù, em đã hết sức cố gắng nhưng do vấn đề thời gian có hạn và kinh nghiệm nghiên cứu còn hạn chế nên khó tránh khỏi thiếu sót. Em mong nhận được sự góp ý của quý thầy cô và các bạn.

Thái Nguyên, tháng 05 năm 2017.

Tác giả

8

Nguyễn Thị Phượng

9

Chương 1

Giới thiệu và phát biểu bài toán

khôi phục ảnh

1.1 Các khái niệm cơ bản của xử lý ảnh số (Xem [1, [2], [7])

1.1.1 Ảnh số là gì

Ảnh trắng đen thực chất là một hàm hai chiều của cường độ sáng f (x, y), trong đó x và y là các toạ độ không gian và giá trị của hàm f tại một điểm (x, y) tỷ lệ với cường độ sáng của ảnh tại điểm đó. Một ảnh số là một ảnh mà hàm f (x, y) của nó đã được rời rạc hoá theo cả toạ độ không gian (hay gọi là các điểm ảnh) và cường độ sáng của nó. Giá trị cường độ sáng đã được số hoá được gọi là giá trị mức xám. Số điểm ảnh xác định độ phân giải của ảnh. Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các đăc điểm của tấm hình càng làm cho tấm ảnh trở lên thực và sắc nét hơn.

1.1.2 Tổng quan về các giai đoạn xử lý ảnh số

Xử lý ảnh là quá trình biến đổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý muốn của người sử dụng. Xử lý ảnh có thể gồm quá trình phân tích, phân lớp các đối tượng, làm tăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quá trình biên dịch các thông tin hình ảnh của ảnh.

Xử lý ảnh số là một lĩnh vực của tin học ứng dụng. Xử lý dữ liệu bằng đồ hoạ đề cập đến những ảnh nhân tạo, các ảnh này được xem xét như là một cấu trúc dữ liệu và được tạo ra bởi các chương trình. Xử lý ảnh số bao gồm các phương pháp và kĩ thuật để biến đổi, để truyền tải hoặc mã

10

Hình 1.1: Các giai đoạn chính trong xử lý ảnh

hoá các ảnh tự nhiên. Mục đích của xử lý ảnh gồm: - Biến đổi ảnh, làm tăng chất lượng ảnh. - Tự động nhận dạng, đoán nhận, đánh giá các nội dung của ảnh. Các bước cần thiết trong xử lý ảnh được mô tả chi tiết trong Hình 1.1 bao gồm các bước sau:

Trong luận văn trình bày các thuật toán khôi phục ảnh trong môi trường

Matlab nên chúng ta sẽ xét một số loại ảnh sau trong Matlab.

1.1.3 Các loại ảnh trong matlab

* Ảnh Index:

Ảnh được biểu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu) map. Ma trận dữ liệu có thể thuộc kiểu uint8, uint16 hoặc double. Ma trận màu là một ma trận kich thước m × 3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0, 1]. Mỗi hàng của ma trận xác định thành phần red, green, blue của một màu trong tổng số m màu được sử dụng trong ảnh. Giá trị của một phần tử trong ma trận dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận màu.

11

Hình 1.2: Ảnh Index đen trắng

Hình 1.3: Ảnh Index màu

* Ảnh grayscale:

Mỗi ảnh được biểu diễn bởi một ma trận hai chiều, trong đó giá trị của mỗi phần tử cho biết độ sáng (hay mức xám) của điểm ảnh đó. Ma trận này có thể một trong các kiểu uint8, uint16 hoặc double. Ảnh biểu diễn theo kiểu này còn gọi là ảnh xám.

12

Hình 1.4: Ảnh grayscale

* Ảnh nhị phân:

Hình 1.5: Ảnh nhị phân

Ảnh được biểu diễn bởi một ma trận hai chiều thuộc kiểu logical. Mỗi điểm ảnh chỉ có thể nhận một trong hai giá trị là 0 (đen) hoặc 1 (trắng).

13

* Ảnh RGB:

Hình 1.6: Ảnh RGB biểu diễn dưới các điểm ảnh

Còn gọi là ảnh “truecolor” do tính trung thực của nó. Ảnh này được biểu diễn bởi một ma trận ba chiều kích thước m × n × 3, với m × n là kích thước ảnh theo pixels. Ma trận này định nghĩa các thành phần màu red, green, blue cho mỗi điểm ảnh, các phần tử của nó có thể thuộc kiểu uint8, uint16 hoặc double.

14

Hình 1.7: Ảnh RGB màu

15

1.2 Biểu diễn ảnh và các tác nhân làm biến dạng ảnh

1.2.1 Biểu diễn trong miền không gian

Khái niệm: Miền không gian là tập hợp các pixels trong một bức ảnh. Chúng ta sẽ tiến hành xử lý trực tiếp trên các pixels này. Quá trình xử lý này có thể được mô tả thông qua biểu thức sau:

g(x, y) = T [f (x, y)].

Hình 1.8: Ảnh trên miền không gian

Với f (x, y) là ảnh gốc, g(x, y) là ảnh sau xử lý, và T là phép toán biến đổi, dựa trên các điểm ảnh xung quanh (x, y).

Các điểm ảnh xung quanh có thể có các kích cỡ khác nhau, có thể là dạng vuông hoặc chữ nhật, trong đó điểm ảnh cần xử lý ở vị trí trung tâm. Trên hình là một khung có kích thước 3 × 3. Tùy mục đích cụ thể mà ta dùng các phép biến đổi khác nhau.

Ưu điểm: Biện pháp xử lý ảnh trên miền không gian là biện pháp rất trực quan. Phù hợp với cảm giác tự nhiên của chúng ta. Nhược điểm: Biện pháp này không tinh tế, và lâu do nó quá đơn giản.

16

1.2.2 Biểu diễn ảnh trong miền tần số

Khái niệm: Chuyển đổi ảnh từ dạng ma trận sang dạng hàm thông

qua các phép biến đổi. Điển hình nhất là biến đổi Fourier, Cosin,. . . Biến đổi Fourrier cho một tín hiệu có thể hình dung như sau: Miền thời

gian Miền tần số Biến đổi Fourrier cho một tín hiệu một chiều gồm một cặp biến đổi:

- Biến đổi thuận: chuyển sự biểu di n từ không gian thực sang không

gian tần số (phổ và pha).

- Biến đổi ngược: chuyển đổi sự biểu diễn của đối tượng từ không

gian Fourrier sang không gian thực. Ưu điểm: Khai thác được các tính chất của tín hiệu và nhanh. Nhược điểm: không trực quan, khó hiểu.

1.2.3 Các tác nhân làm biến đổi ảnh

* Tác nhân gây mờ: Lọc tuyến tính là phương pháp lọc trong đó mức xám mỗi pixel của ảnh mới là tổ hợp tuyến tính của các mức xám của các pixels lân cận,tức là mỗi pixel lân cận sẽ được nhân với một hệ số tương ứng rồi được cộng lại để được đáp ứng tại điểm ảnh trung tâm. Nếu vùng lân cận có kích thước m×n thì ta có m×n hệ số tương ứng. Trong Matlab, các hệ số này được sắp xếp trong một ma trận kích thước m × n,gọi là bộ lọc. Cơ chế lọc được thực hiện bằng cách di chuyển tâm của mặt nạ qua lần lượt từng điểm ảnh và thực hiện tính tổng các tích của mức xám các điểm ảnh xung quanh với hệ số bộ lọc. Kích thước bộ lọc là lẻ. Kích thước nhỏ nhất có ý nghĩa là 3 × 3. Giả thiết rằng m = 2a + 1, n = 2b + 1, với a, b ≥ 1. Ta có biểu thức tính

17

Hình 1.9: Lọc tuyến tính

a (cid:88)

b (cid:88)

mức xám tại (x, y):

s=−a

t=−b

g(x, y) = w(s, t)f (x + s, y + t).

Có hai khái niệm khi chúng ta thực hiện phương pháp lọc tuyến tính, đó là tương quan (correlation) và tích chập (convolution). Tương quan là quá trình dịch bộ lọc qua từng điểm ảnh như ta đã đề cập. Tích chập cũng sử dụng quá trình tương tự, ngoại trừ bộ lọc w quay 180◦ trước khi tiến hành dịch bộ lọc.

Một vấn đề khác ta cũng cần quan tâm là tiến hành lọc tại các điểm

18

nằm gần biên ảnh. Với một bộ lọc vuông n × n, tại vị trí cách biên một

khoảng cách bộ lọc sẽ có biên trùng khít với biên ảnh, nhưng đối n − 1 2

với các điểm ảnh nằm gần biên thì một hoặc một số hàng hoặc cột của ma trận lọc sẽ nằm bên ngoài ảnh. Có nhiều giải pháp để giải quyết vấn đề này. Một giải pháp đơn giản là ta chỉ tiến hành xử lý tại các điểm có

khoảng cách không nhỏ hơn so với biên ảnh. n − 1 2

Kết quả là ảnh sau lọc có kích thước nhỏ hơn so với ảnh gốc nhưng toàn bộ điểm ảnh đều được xử lý. Trong trường hợp cần ảnh sau xử lý có cùng kích thước với ảnh gốc, một giải pháp là tiến hành xử lý các điểm ảnh ở gần biên với các hệ số bộ lọc phủ trong ảnh và bỏ qua các hệ số nằm bên ngoài ảnh. Một giải pháp khác là thêm một số mức xám vào ảnh gốc, gọi là đệm (padding) để mặt nạ phủ toàn bộ ảnh. Miếng đệm có thể là một số hàng và cột có giá trị 0 (hoặc một hằng số nào đó), hoặc thêm các hàng và cột lặp lại các giá trị mức xám trên biên ảnh, hoặc đối xứng với các điểm ảnh bên trong qua biên ảnh. Điều dễ thấy là kích thước mặt nạ càng lớn, ảnh sau lọc sẽ có độ sai lệch càng lớn so với ảnh gốc, do đó để ảnh không bị biến dạng thì cách duy nhất là thực hiện lọc đối với các điểm ảnh có

kích thước không nhỏ hơn . n − 1 2

* Tác nhân gây nhiễu: Do các loại nhiễu: Nhiễu có nhiều loại nhưng ta có thể chia thành 3 loại nhiễu sau:

+ Nhiễu xung và nhiễu nhị phân:

Có hàm phân bố

  p(z) =

 pa nếu z = a pb nếu z = b 0 nếu z (cid:54)= a, z (cid:54)= b

Nếu b > a, mức xám b sẽ xuất hiện tương ứng là điểm sáng trên ảnh còn mức xám a sẽ tương ứng với điểm đen xuất hiện trên ảnh.

+ Nhiễu Gauss:

Nhiễu Gaussian là nhiễu trắng a có phân bố chuẩn

√ p(z) = e(z−u)2/2s2 1 2πs

19

Nếu ta có ảnh I, nhiễu Gaussian là N ta sẽ có ảnh nhiễu là = I+N giá trị mặc định của kỳ vọng và phương sai của nhiễu là 0 và 0,001.

+ Nhiễu Speckle:

Nó được xây dựng bằng cách nhận các giá trị ngẫu nhiên với giá trị của các điểm ảnh. Nó là vấn đề quan trọng trong ứng dụng radar.

Nhiễu N có phân phối chuẩn với giá trị trung bình bằng 0. Cung cấp thêm thông số để xác định giá trị kì vọng của N, giá trị mặc định là 0,04. Nếu ảnh là tín hiệu tuần hoàn thì ta có thể bị ảnh hưởng bởi nhiễu tuần hoàn. Dạng nhiễu tuần hoàn được tạo ra bằng cách cộng vào ảnh một ma trận tuần hoàn.

1.3 Bài toán khôi phục ảnh số

Khôi phục ảnh là việc bỏ hay giảm thiểu sự biến dạng xảy ra trong quá trình thu nhận ảnh. Sự biến dạng ảnh có thể bao gồm: Nhiễu - là những sai khác trong giá trị của điểm ảnh, ảnh hưởng quang học: sự mờ do việc chuyển động của cameran... Ta có dạng tổng quát của ảnh bị biến dạng:

g(x, y) = f (x, y) ∗ h(x, y) + n(x, y),

tương ứng trong miền tần số ta có:

G(i, j) = F (i, j).H(i, j) + N (i, j).

Trong đó: G/g là ảnh cần được khôi phục. N/n là nhiễu của ảnh. H/n là tác nhân gây mờ ảnh. F/f là ảnh đã được khôi phục.

Khôi phục ảnh F/f từ ảnh cần được khôi phục là G/g bằng cách khử mờ H/h và nhiễu N/n

20

Hình 1.10: Sơ đồ khôi phục ảnh

21

Chương 2

Các kĩ thuật khôi phục ảnh

Trong chương này chúng tôi sẽ giới thiệu một số các thuật toán khử nhiễu, khử mờ điển hình cũng như một phương pháp mới được áp dụng trong thời gian gần đây là sử dụng biểu diễn thưa của ảnh. Các thuật toán này được chia thành 3 nhóm: nhóm các thuật toán trên miền không gian của ảnh, nhóm các thuật toán trên miền tần số của ảnh và nhóm các thuật toán trên dạng biểu diễn thưa của ảnh.

2.1 Các bộ lọc trong miền không gian

2.1.1 Bộ lọc trung bình số học

(s,t)∈Sxy

Được cho bởi hàm (cid:88) g(s, t) (cid:98)f = 1 mn

Giá trị của ảnh được khôi phục tại tọa độ (x, y) là trung bình số học của những điểm ảnh trong miền Sxy.

2.1.2 Bộ lọc trung bình hình học

Được cho bởi hàm

(s,t)∈Sxy

(cid:104) (cid:89) g(s, t) (cid:105) 1 mn . (cid:98)f =

Mỗi giá trị điểm ảnh của ảnh phục hồi: là tích của những điểm ảnh trong miền Sxy, sau đó lấy lũy thừa 1/mn.

22

2.1.3 Bộ lọc trị số trung bình

f (x, y) = median(s,t)∈Sxyg(s, t)

Bộ lọc thay thế giá trị của một điểm ảnh bởi trị số trung bình của những giá trị mức xám trong miền lân cận của điểm ảnh này được xác định bởi Sxy.

2.1.4 Bộ lọc Min và Max

• Bộ lọc Max:

Bộ lọc này áp dụng trng việc xác định điểm sáng nhất trong ảnh. Vì nhiễu pepper có giá trị rất thấp nên nhiễu này sẽ bị loại trừ như nhau là kết quả của quá trình lựa chọn trị max trong miền xác định bởi Sxy.

• Bộ lọc Min:

Bộ lọc này áp dụng trong việc xác định điểm tối nhất trong ảnh. Do đó nó sẽ loại trừ nhiễu Salt như là kết quả của quá trình lựa chọn mức tối trong miền xác định bởi Sxy.

2.1.5 Bộ lọc trung bình điều hòa (Hamonic mean filter)

(s,t)∈Sxy

mn . (cid:98)f (x, y) = (cid:80) 1 g(s, t)

Bộ lọc này làm việc tốt với nhiễu Salt/Gause, nhưng lại không hiệu quả với nhiễu Pepper.

2.1.6 Bộ lọc điểm giữa

(s,t)∈Sxy

(cid:104) (cid:105) {g(s, t)} + min {g(s, t)} . (cid:98)f (x, y) = 1 2 max (s,t)∈Sxy

Bộ lọc tính điểm trung bình giữa giá trị Max và giá trị Min trong vùng bao quanh bởi Sxy. Bộ lọc làm việc tốt với những nhiễu có phân phối ngẫu nhiên như nhiễu Gaussian.

23

2.2 Các bộ lọc trong miền tần số

2.2.1 Bộ lọc chắn dải

Bộ lọc chắn dải loại bỏ hay làm suy hao một dải băng tần trong biến

đổi Fourier ban đầu. • Bộ lọc chắn dải lý tưởng được biểu diễn:

 1 nếu D(u, v) < D0 −

H(u, v) = 0 nếu D0 − W 2 W 2

1 nếu D(u, v) > D0 +   W 2 ≤ D(u, v) ≤ D0 + W 2

• Bộ lọc chắn dải Butterworth. Bộ lọc chắn dải Butterworth bậc n được biểu diễn như sau:

H(u, v) = (cid:105)2n 1 (cid:104) D(u, v)W 1 + D2(u, v) − D2 0

• Bộ lọc chắn dải Gaussian

(cid:105)2

1 2 (cid:104)D2(u, v) − D2 0 D(u, v)W H(u, v) = 1 − e .

Bộ lọc chắn dải loại bỏ nhiễu trong những ứng dụng mà ta đã biết trước khoảng tần số của những thành phần nhiễu. Ví dụ như một ảnh bị ảnh hưởng của nhiễu tuần hoàn - xem tương đương như hàm sine của hàm 2 biến.

2.2.2 Bộ lọc thông dải

Bộ lọc thông dải có hoạt động ngược lại với bộ lọc chắn dải. Hàm truyền

của bộ lọc thông dài có thể suy ra từ bộ lọc chắn dải:

Hbp(u, v) = 1 − Hbr(u, v).

Bộ lọc thông dải loại bỏ nhiều chi tiết của ảnh. Tuy nhiên bộ lọc thông dải khá hữu dụng trong việc tách ảnh hưởng của một số dải tần số lên ảnh.

24

2.2.3 Bộ lọc Notch

Bộ lọc Notch loại bỏ hay cho qua những tần số lân cận xác định trước

quanh tần số trung tâm. • Bộ lọc Notch chắn dải lý tưởng

(cid:40)

H(u, v) = 0 nếu D1(u, v) ≤ D0 hoặc D2(u, v) ≤ D0 1 cách khác

1 2

Trong đó:

1 2

D1(u, v) = [(u − M/2 − u0)2 + ((v − N/2 − v0)2]

D2(u, v) = [(u − M/2 + u0)2 + ((v − N/2 + v0)2]

• Bộ lọc Notch chắn dải Butterworth

H(u, v) = (cid:104) (cid:105)n 1 + 1 D2 0 D1(u, v)D2(u, v)

• Bộ lọc Notch chắn dải Gaussian

(cid:105)2

1 2 (cid:104)D1(u, v)D2(u, v) D2 0 . H(u, v) = 1 − e

• Bộ lọc Notch thông dải Có hoạt động ngược lại với hoạt động của bộ lộc North chắn dải. Ta dễ dàng suy ra hàm truyền của bộ lọc Notch thông dải:

Hnp(u, v) = 1 − Hnr(u, v)

2.2.4 Bộ lọc ngược

Ta có: Y (i, j) = X(i, j) ∗ F (i, j)

Từ đó ta có thể khôi phục DFT của ảnh ban đầu: X(i, j) = Y (i, j)/F (i, j) Tuy nhiên một số thành phần của bộ lọc rất nhỏ, nên phép chia sẽ tạo ra giá trị rất lớn - lấn át, quyết định giá trị ngõ ra. Nên ta sẽ khó thu được kết quả ảnh gốc chấp nhận được.

25

Có thể giải quyết vấn đề trên như sau: • Áp một bộ lọc thông thấp vào phép chia:

L(i, j). X(i, j) = Y (i, j) F (i, j)

sẽ loại bỏ những giá trị rất nhỏ của bộ lọc F (i, j). • Chọn một ngưỡng giá trị d, nếu |F (i, j)| < d chúng ta sẽ không thực hiện phép chia mà giữ giá trị ban đầu.

  nếu |F (i, j)| ≥ d, X(i, j) =  Y (i, j) F (i, j) Y (i, j) nếu |F (i, j)| < d.

2.2.5 Bộ lọc Wiener

Ta thấy bộ lọc ngược cho kết quả không được tốt. Kết quả sẽ tệ hơn

khi ảnh ban đầu bị tác động bởi nhiễu.

Y (i, j) = X(i, j)F (i, j) + N (i, j).

nên

X(i, j) = Y (i, j) − N (i, j) F (i, j)

Do đó không những có vấn đề trong phép chia mà còn vấn đề với nhiễu: nhiễu có thể lấn át, quyết định giá trị đầu ra, làm cho việc sử dụng bộ lọc ngược trực tiếp là không thể.

Gọi M: ảnh ban đầu, R: ảnh khôi phục.

Điều mong muốn là R càng gần với M càng tốt. Để xét sự chênh lệch gần nhất giữa R, M ta xét hàm:

(cid:88) (mi,j − ri,j)2.

Nếu ta có thể tối thiểu hóa giá trị của tổng trên, ta có thể chắc chắn rằng ta sẽ thu được kết quả tốt nhất có thể. bộ lọc có đặc điểm của hàm tính "bình phương tối thiểu" gọi là bộ lọc

26

Weiner. (cid:104) (cid:105) X(i, j) ≈ Y (i, j). 1 F (i, j) |F (i, j)|2 |F (i, j)|2 + K

Trong đó K là hằng số. K được dùng để xấp xỉ nhiễu. Nếu phương sai của nhiễu được biết trước thì K = 2σ2.

2.3 Sử dụng biểu diễn thưa trong khử mờ, nhiễu

√ √ n ×

Biểu diễn thưa (sparse representation) của ảnh là một hướng nghiên cứu mới trong những năm gần đây. Phương pháp này đã được đề xuất lần đầu tiên năm 1997 trong bài báo số [3] và đã được áp dụng rất thành công trong nhiều ứng dụng của xử lý ảnh như trong thu nhận ảnh, khử nhiễu, trích chọn thông tin trên ảnh, nhận dạng,. . . Ý tưởng chính của phương pháp là sử dụng một hệ vec-tơ cơ sở dư thừa (overcomplete basis) để biểu diễn lại tín hiệu/ảnh sao cho số thành phần khác không là rất ít (dạng biểu diễn thưa). Thông qua cách biểu diễn này, chỉ những thông tin quan trọng của ảnh/tín hiệu được giữ lại, những thông tin ít quan trọng hơn sẽ được lược bỏ và khôi phục lại khi cần thiết. Với tính chất trên của biểu diễn thưa, ta thấy nhiễu là những thông tin không quan trọng trong ảnh và do đó nó sẽ được loại bỏ dễ dàng trong quá trình xử lý. Hệ vector cơ sở dùng để biểu diễn ảnh được gọi là “từ điển” (dictionary). Các từ điển này có thể được tính toán trước thông qua các hàm toán học như sử dụng wavelete, các phép biến đổi Cosin rời rạc (DCT), Fourier (FFT),. . . Tuy nhiên, các từ điển được định nghĩa trước sẽ không phù hợp với các loại ảnh khác nhau và những mục đích sử dụng khác nhau. Ý tưởng về phương pháp học từ điển (dictionary learning) thông qua chính những phần của bức ảnh cần xử lý được đề xuất vào khoảng năm 2000 trong một số bài báo [4], [6] và được áp dụng vào bài toán khử nhiễu ảnh năm 2006 trong bài báo [5]. Trong phần này chúng tôi sẽ trình bày lại ý tưởng của phương pháp học từ điển và tìm biểu diễn thưa của ảnh để đưa vào khử nhiễu thông qua thuật toán KSVD được đề xuất trong bài báo [5]. Bài toán tìm n có biểu diễn thưa của một tập các mẫu ảnh x có kích thước dạng:

α

(2.1) (cid:107)α(cid:107)0 sao cho Dα ≈ x (cid:98)α = arg min

27

trong đó ||α||0 là số các thành phần khác không của α, D là từ điển dùng để biểu diễn x dưới dạng thưa α.

Bài toán khử nhiễu dùng biểu diễn thưa được phát biểu dưới dạng:

2 ≤ T

α

(cid:107)α(cid:107)0 sao cho (cid:107)Dα − y(cid:107)2 (cid:98)α = arg min

hoặc

2 + µ(cid:107)α(cid:107)0

α

(cid:107)Dα − y(cid:107)2 (cid:98)α = arg min

Bài toán tìm biểu diễn thưa là một bài toán khó với độ phức tạp thời gian đa thức (NP hard). Một số nghiên cứu đã được đề xuất để cho ra lời giải gần đúng của bài toán này, nhưng hiện được sử dụng phổ biến nhất là thuật toán OMP. Trong bài báo [5], các tác giả đã đề xuất thuật giải K-SVD cho bài toán khử nhiễu ảnh sử dung biểu diễn thưa như sau:

ij

ij

Thuật toán khử nhiễu ảnh từ ảnh thu nhận Y với nhiễu Gauss trắng có độ lệch chuẩn σ. Input: n: kích thước mẫu ảnh, k: kích thước từ điển, J: số vòng lặp cho việc học từ điển, λ: nhân tử Lagrange, C: mức nhiễu thu được (cid:88) (cid:88) λ(cid:107)Y − X(cid:107) + (2.2) µij(cid:107)αij(cid:107)0 + (cid:107)Dαij − RijX(cid:107)2. min X,D,A

1. Khởi tạo: Gán X = Y , D = từ điển dư thừa DCT 2. Lặp J lần:

(cid:136) Tìm biểu diễn thưa: Sử dụng thuật toán OMP hoặc các thuật toán tương đương để tìm biểu diễn thưa αij cho mỗi mẫu ảnh RijX bằng việc tìm nghiệm bài toán tối ưu:

2 ≤ (Cσ)2.

(2.3) (cid:107)αij(cid:107)0 sao cho (cid:107)RijX − Dαij(cid:107)2 ∀ij min αij

(cid:136) Cập nhật từ điển: Các cột l = 1, 2, ...., k của ma trận D, sẽ được cập

nhật như sau:

- Tìm kiếm tập wl = {(i, j)|αij(l) (cid:54)= 0}.

28

- Với mỗi (i, j) ∈ wl, tính sai số biểu diễn:

m(cid:54)=l

(cid:88) dmαij(m) el ij = RijXij −

ij}(i,j)∈wl

- Xác định ma trận El với các cột {el

- Áp dụng phân rã SVD El = U ∆V T . Thay thế cột đầu tiên của U bởi cột từ điển cập nhật ¯dl. Cập nhật các hệ số {αij(l)}(i,j)∈wl bởi tích của V và ∆(1, 1).

ijRij)−1(λY +

ijDαij)

ij

ij

3. Tính: (cid:88) (cid:88) X = (λI + RT RT

29

Chương 3

Thực nghiệm

Phần thực nghiệm sẽ tiến hành chạy thử nghiệm trên ba đại diện của ba nhóm thuật toán đã trình bày ở chương trước. Trên miền không gian, chúng tôi chọn đại diện là phương pháp lọc trung vị (Median), trên miền tần số chúng tôi sử dụng phương pháp Wiene, trên nhóm sử dụng biểu diễn thưa, chúng tôi chọn phương pháp học từ điển K-SVD. Các thuật toán được chạy thử nghiệm trên một số bộ ảnh thuộc các loại khác nhau như ảnh chụp thông thường, ảnh y tế, ảnh vệ tinh.

3.1 Kịch bản test

Để tiến hành chạy thử nghiệm, chúng tôi cài đặt các thuật toán trên ngôn ngữ lập trình Matlab R2009a, chạy trên máy laptop cấu hình chip Core i3, Ram 2GB trên hệ điều hành Windows XP. Từ các ảnh gốc ban đầu, chúng tôi đưa thêm tác nhân gây biến đổi ảnh là tác nhân làm nhiễu vào ảnh và thực hiện khôi phục ảnh qua 3 thuật toán thử nghiệm là thuật toán Median trong miền không gian và thuật toán Wiener trong miền tần số và thuật toán K-SVD trong biểu diễn thưa của ảnh. Giá trị nhiễu đưa vào là loại nhiễu Gauss, có phân bố chuẩn (0, σ2), trong đó σ nhận các giá trị 10, 20, 30. Khi σ càng lớn thì ảnh càng nhiều nhiễu. Hệ số mờ được thử nghiệm là ma trận

 

H = . . 1 16         1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

30

Để đánh giá độ tốt của các ảnh khôi phục, chúng tôi sử dụng chỉ số tỉ số tín hiệu cực đại trên nhiễu PSNR (peak signal-to-noise ratio). Chỉ số này được tính theo công thức:

(cid:19)

P SN R = 10. log10

(cid:19) . = 20. log10 (cid:18)M AX 2 i M SE (cid:18) M AXi √ M SE

m−1 (cid:88)

n−1 (cid:88)

Trong đó

i=0

j=0

M SE = [I(i, j) − K(i, j)]2. 1 mn

Với I là ma trận ảnh gốc, K là ảnh được khôi phục, m, n là kích thước ma trận ảnh, M AXI là giá trị tối đa của pixel trên ảnh.

Ảnh khôi phục được đánh giá là tốt khi chỉ số PSNR cao. Khi PSNR xấp

xỉ 30 dB thì ảnh khôi phục coi như tương đương ảnh gốc.

3.2 Kết quả

Dưới đây là kết quả hình ảnh chạy thử nghiệm của các phương pháp.

31

32

33

34

35

36

37

Bảng 3.1: Bảng kết quả khử nhiễu PSNR (dB)

(sigma,H)

sigma=10

sigma=20

sigma=30

Thuật toán Ảnh 1 Ảnh 2 Ảnh 3 31,46 Median 31,5 Wiener 36,09 K-SVD 27,94 Median 26,62 Wiener 33,26 K-SVD 25,25 Median 23,74 Wiener 31,34 K-SVD

29,41 30,59 33,65 26,93 26,00 30,40 24,69 23,21 28,39

24,92 30,21 34,55 23,85 25,47 30,87 22,61 22,78 28,61

Bảng 3.2: Bảng đo kết quả thời gian chạy các thuật toán(đơn vị tính giây)

sigma=10 Median Wiener K-SVD sigma=20 Median Wiener K-SVD sigma=30 Median Wiener K-SVD

0,209 0,093 53,16 0,054 0,085 25,01 0,054 0,086 18,88

0,058 0,087 46,46 0,056 0,097 22,34 0,055 0,092 17,38

0,018 0,021 26,24 0,019 0,021 16,25 0,016 0,021 13,14

38

3.3 Nhận xét

Từ kết quả thử nghiệm ta thấy:

Phương pháp K-SVD cho kết quả khử nhiễu là tốt hơn hết sau đó đến phương pháp Wiener và cuối cùng là Median, và ta nhìn thấy rõ nhất trên bộ ảnh thứ 3. Nhưng ngược lại thì thời gian tính toán của thuật toán K-SVD là chậm hơn cả so với 2 thuật toán còn lại, nhưng với thời gian chậm như thế thì ta có thể chấp nhận đuợc. Và do đó tuỳ theo mục đính của người sử dụng ta có thể chọn phương pháp nào cho phù hợp.

39

Kết luận

Trong luận văn này, chúng tôi đã trình bày các phương pháp khôi phục ảnh là khử nhiễu, khử mờ. Các thuật toán được giới thiệu đã được thử nghiệm và ứng dụng trên một số loại ảnh khác nhau là ảnh chụp thông thường, ảnh y tế, ảnh vệ tinh.

Kết quả thực nghiệm cho thấy độ tốt của các phương pháp tăng dần từ phương pháp trên miền không gian, miền tần số đến biểu diễn thưa. Điều này hoàn toàn phù hợp với những phân tích về mặt lý thuyết khi phân tích ưu nhược điểm của các thuật toán ở trên.

Trên các bộ ảnh khác nhau ta cũng có thể thấy các tác nhân làm biến đổi ảnh có ảnh hưởng tới kết quả khôi phục của các thuật toán Median, Wiener, K-SVD. Từ đó chúng tôi đưa ra một số đề xuất về việc sử dụng các phương pháp trong những tình huống cụ thể. Chẳng hạn khi cần kết quả tính toán chính xác thì ta nên sử dụng phương pháp K-SVD, nhưng khi cần làm việc trong thời gian thực thì ta có thể sử dụng các phương pháp Wiener hoặc Median.

40

Tài liệu tham khảo

Tiếng Việt

[1] Lương Mạnh Bá, Nguyễn Thanh Thuỷ (2008), Nhập môn xử lý ảnh

số, Đại học Bách Khoa Hà Nội.

[2] Đỗ Năng Toàn, Phạm Việt Bình (2008), Giáo trình xử lý ảnh, NXB

Khoa học và Kỹ thuật.

Tiếng Anh

[3] A. Olshausen and D. J. Field (1997), “Sparse coding with an overcom- plete basis set: A strategy employed by v1?”, Vision Research, 37.

[4] K. Kreutz-Delgado and B. D. Rao (2000), “Focuss-based dictionary learning algorithm”, presented at the Wavelet Applications in Signal and Image Processing VIII.

[5] M. Elad and M. Aharon (2006), “Image denoising via sparse and re- dundant representations over learned dictionaries”, IEEE Trans. IP, 54(12).

[6] M. S. Lewicki and T. J. Sejnowski (2000), “Learning overcomplete

representations”, Neur. Comput, vol. 12, pp. 337–365.

[7] Oge Marques (2011), Practical image and video processing using mat-

lab, wiley-IEEE press.