Báo cáo bài tập lớn cuối kì môn Xử lí ảnh bài toán KHÔI PHỤC ẢNH, MÔ HÌNH QUAN SÁT,THỬ NGHIỆM KĨ THUẬT LỌC WIENER BẰNG PHƯƠNG PHÁP LỌC MIỀN TẦN SỐ.Trong lĩnh vực xử lý ảnh và thị giác máy tính, việc khôi phục hình ảnh từ ảnh bị nhiễu hoặc mờ là một bài toán quan trọng. Một trong những phương pháp phổ biến được sử dụng là lọc Wiener, mà có thể được triển khai trong miền thời gian hoặc miền tần số.
TÌM HIỂU BÀI TOÁN KHÔI PHỤC ẢNH, MÔ HÌNH QUAN SÁT ẢNH VÀ ỨNG DỤNG
BÀI TOÁN KHÔI PHỤC ẢNH 6 1 Khái niệm 6 2 Ước lượng sự xuống cấp: 6 I MÔ HÌNH QUAN SÁT 7 1 Mô hình ảnh bị xuống cấp bởi nhiễu cộng ngẫu nhiên 7 2 Mô hình ảnh bị xuống cấp vì nhòe 7 3 Mô hình ảnh bị xuống cấp bởi cả nhòe và nhiễu 9 4 Mô hình ảnh nhiễu phụ thuộc tín hiệu 9 PHẦN 2: ỨNG DỤNG KỸ THUẬT LỌC WIENER TRONG XỬ LÝ ẢNH
Khôi phục ảnh đề cập tới các kỹ thuật loại bỏ hay tối thiểu hoá các ảnh hưởng của môi trường bên ngoài hoặc từ các hệ thống thu nhận và lưu trữ ảnh đến ảnh thu nhận được.
Kỹ thuật khôi phục ảnh nhằm có thể ước lượng lại ảnh gốc hay ảnh lý tưởng từ ảnh quan sát được bằng cách đo ngược lại những hiện tượng gây biến dạng Vì vậy để khôi phục được ảnh có kết quả, điều cần thiết là phải biết được các nguyên nhân gây ra biến dạng ảnh Các nguyên nhân biến dạng thường gặp:
Do camera, đầu thu ảnh chất lượng kém.
Do môi trường ánh sáng, hiện trường (scene), khí quyển, nhiễuxung.
Do con người Việc khôi phục ảnh phụ thuộc vào loại hình xuống cấp hay khôi phục ảnh là nhằm xác định mô hình toán học của quá trình gây ra biến dạng Các loại hình xuống cấp ta xét gồm:
2 Ước lượng sự xuống cấp:
Có hai cách tiếp cận để có thông tin về sự xuống cấp.
Một cách tiếp cận là thu thập thông tin từ chính ảnh bị xuống cấp Nếu ta có thể tìm ra các vùng cường độ xấp xỉ đồng đều trong ảnh, chẳng hạn bầu trời, thì có thể ước lượng phổ công suất hoặc hàm mật độ xác suất của nhiễu nền ngẫu nhiên từ sự thăng giáng cường độ trong các vùng có nền đồng đều.
Một cách tiếp cận khác để hiểu biết về sự xuống cấp là nghiên cứu cơ chế gây ra
II MÔ HÌNH QUAN SÁT.
Quá trình gây ra biến dạng ảnh gốc phụ thuộc vào hệ thống quan sát và tạo ảnh.
Do vậy, trước hết ta cần xem ảnh quan sát được biểu diễn thế nào, trên cơ sở đó mô hình hoá nhiễu sinh ra Tiếp theo là dùng biến đổi ngược (lọc ngược) để khử nhiễu và thu lại ảnh gốc Đó là cơ sở lý thuyết của kỹ thuật khôi phục ảnh.
1 Mô hình ảnh bị xuống cấp bởi nhiễu cộng ngẫu nhiên.
Xét một ảnh x quan sát được có thêm nhiễu cộng n được thể hiện trong công thức sau:
Giả thiết nhiễu cộng ngẫu nhiên độc lập với tín hiệu (không tương quan).
2 Mô hình ảnh bị xuống cấp vì nhòe.
Một ảnh bị xuống cấp vì nhoè có thể mô hình hoá như sau: y m x m *h m
Trong mô hình trên ảnh bị xuống cấp y(m) là kết qủa nhân chập ảnh gốc x(m) với một đáp ứng xung h(m).h(m) được gọi là hàm nhòe.
Hình 1 Ảnh bị nhòe (Nguồn: http://www.svi.nl/BlindDeconvolution)
Sự xuống cấp này có thể được mô hình hoá bằng nhân chập với nhoè do các nguyên nhân như thấu kính lệch tiêu cự, máy bị rung và nhiễu loạn của khí quyển.
Bài toán làm giảm nhoè có thể chia thành hai loại:
G iải tích chập (deconvolution) : trong đó khi hàm nhoè h đã biết, một cách tiếp cận để khử nhoè là bộ lọc ngược Từ:
G iải tích chập mù (blind deconvolution) : trong đó nhòe h là không biết và phải ước lượng từ những thông tin sẵn có trước khi đưa tới bộ lọc ngược.
Hình 2 Ảnh bị nhòe nhưng không biết về hàm gây nhòe(Nguồn: http://www.svi.nl/BlindDeconvolution)
Vì ta muốn chia chập y(m) khi không có hiểu biết chi tiết về h(m), nên phép xử lý này được gọi là bài toán chia chập mù.
3 Mô hình ảnh bị xuống cấp bởi cả nhòe và nhiễu.
Thực tế thì sự xuống cấp của ảnh thường là tổ hợp của nhòe và nhiễu.Thông thường ta chỉ xét trường hợp nhiễu nhòe như là một bộ lọc tuyến tính với đáp ứng xung h(m) và nhiễu là nhiễu cộng n(m) Tín hiệu đầu ra được mô hình dưới dạng:
Một cách tiếp cận hợp lý để khôi phục ảnh x(m) là áp dụng một hệ làm giảm nhiễu để từ y(m) ước lượng u(m) = y(m) * h(m) sau đó áp dụng một hệ khử nhoè để từ u(m) ước lượng ra x(m).
Cách tiếp cận lần lượt khử các loại xuống cấp từng cái một, cho phép chúng ta khai triển những thuật toán khôi phục riêng cho mỗi loại, sau đó cứ kết hợp chúng lại một cách đơn giản nếu ảnh bị xuống cấp vì nhiều loại nguyên nhân khác nhau.
Trong miền tần số, mô hình nhiễu có dạng: Y f X f * H f N f
Hình 3 Mô hình bộ lọc trường hợp nhiễu cộng nhòe
4 Mô hình ảnh nhiễu phụ thuộc tín hiệu
Một ảnh bị xuốngcấp y(m) bất kỳ có thể biễu diễn bởi mô hình:
Trong đó D[.] là toán tử xuống cấp được áp dụng vào x Nếu d(m )không là hàm của tín hiệu x(m) thì nó được gọi là nhiễu cộng không phụ thuộc tín hiệu.Nếud(m) là hàm của tín hiệu x(m) thì d(m) được gọi là nhiễu cộng phụ thuộc tín hiệu Những ví dụ về nhiễu phụ thuộc tín hiệu là nhiễu đốm, nhiễu hạt trên phim và nhiễu lượng tử.
Một cách tiếp cận để làm giảm nhiễu phụ thuộc tín hiệu là biếnđổi y(m) vào một miền, ở đó nhiễu trở thành nhiễu cộng không phụ thuộc tín hiệu và sau đó làm giảm nhiễu không phụ thuộc tín hiệu Một cách tiếp cận khác là làm giảm nhiễu trực tiếp trong miền tín hiệu
PHẦN 2: ỨNG DỤNG KỸ THUẬT LỌC WIENER TRONG XỬ LÝ ẢNH.
TỔNG QUAN VỀ BỘ LỌC WIENER 11 1 Giới thiệu về bộ lọc Wiener 11 2 Nguyên lý cơ bản và cơ sở toán học 11 I ỨNG DỤNG BỘ LỌC WIENER TRONG XỬ LÝ ẢNH 15 1 Tổng quan về khôi phục ảnh 15 2 Bộ lọc Wiener và vấn đề khôi phục ảnh 15 PHẦN 3: THỬ NGHIỆM MÔ HÌNH LỌC WIENER KHÔI PHỤC ẢNH BẰNG LỌC MIỀN TẦN SỐ
1 Giới thiệu về bộ lọc Wiener.
Trong lĩnh vực xử lý tín hiệu, bộ lọc Wiener là một bộ lọc được đề xuất bởi Norbert Wiener (là một nhà toán học và triết học người Mỹ) trong những năm 1940s và được công bố vào năm 1949.
Bộ lọc Wiener được có vai trò quan trọng trong nhiều ứng dụng và mục đích của bộ lọc là nhằm để giảm lượng nhiễu xuất hiện bên trong một tín hiệu bằng cách so sánh với ước tính của tín hiệu không bị nhiễu mong muốn.
Bộ lọc Wiener được dựa trên phương pháp thống kê để giảm nhiễu trong tín hiệu hiện tại bằng cách so sánh nó với một tín hiệu ước tính mong muốn không có nhiễu.
2 Nguyên lý cơ bản và cơ sở toán học
Về thuật toán Wiener, đây là thuật toán xuyên suốt ý tưởng để xây dựng ra bộ lọc Wiener Nguồn gốc cơ bản của thuật toán Wiener là tạo ra tín hiệu “sạch, không có hay ít nhiễu bằng cách nén nhiễu” Ước lượng được thực hiện bằng cách hạ thấp sai số bình phương trung bình (Mean square error) giữa tín hiệu mong muốn và tín hiệu ước lượng.
Bộ lọc Wiener là một loại bộ lọc thích nghi (adaptive filter) tức là các giá trị hệ số của bộ lọc thay đổi theo thời gian, thường phản ứng với những thay đổi trong đặc tính của tín hiệu đầu vào.
Bộ lọc Wiener có thể là một trong hai loại:
IIR Wiener : bộ lọc đáp ứng xung vô hạn bao gồm các phương trình phi tuyến.
FIR Wiener : bộ lọc đáp ứng xung hữu hạn bao gồm các phương trình tuyến tính.
Vì các hệ số bộ lọc Wiener thay đổi theo thời gian, và bộ lọc IIR lại không ổn định cho các giá trị hệ số nhất định nên hiện nay người ta thường xây dựng các bộ lọc thích nghi với cấu trúc FIR Wiener nhằm ngăn chặn sự không ổn định.
Bộ lọc Wiener được đặc trưng bởi:
Giả thiết: Tín hiệu và nhiễu (nhiễu cộng) của quá trình ngẫu nhiên tĩnh tuyễn tính với phổ đặc trưng hoặc tự tương quan và tương quan chéo đã biết.
Yêu cầu: Các bộ lọc phải có thể thực hiện vật lý/quan hệ nhân quả (yêu cầu này có thể bỏ qua, dẫn đến một giải pháp quan hệ không nhân quả).
Hiệu suất tiêu chuẩn: Tối ưu hóa sai số bình phương trung bình (Minimun Mean Square Error).
Bộ lọc Wiener được biểu diễn bởi một vector trọng số: w T =[w 0 , w 1 , … , w P−1 ]
Quan hệ lọc giữa đầu vào và đầu ra:
Vì wT y là một vô hướng nên bằng chuyển vị của nó, tức là:w T y yw T
Tín hiệu δ(m)được xác định bởi sự sai khác giữa tín hiệu mong x(m) với tín hiệu thu được x^(m) được tính bằng:
Hình 4 Sơ đồ khối thực hiện bộ lọc Đối với bộ lọc Wiener, hàm hiệu năng được chọn là sai số bình phương trung bình:
Trong đó kỳ vọng thống kê được kí hiệu là:
Ta định nghĩa vector tương quan chéo giữa đầu vào và tín hiệu mong muốn là r xy =E[x(m)y(m)] và ma trận tự tương quan của tín hiệu đầu vào là R yy =E[y(m)y T (m)] ta được:
E [ δ 2 (m)]=r xy (0)−2w T r yx +w T R yy w Để thu được các trọng số ứng với E[δ 2 (m)] có giá trị cực tiểu,ta cần phải giải hệ phương trinh được tạo thành từ đạo hàm bậc nhất của E đối với mỗi trọng số bằng không, tức là:
Trong đó toán tử Gradian được xác định:
Do đó R yy w=r yx → w=R −1 yy r xx khi đó:
Hình 5 Mô phỏng bộ lọc Wiener.
Trong miền tần số, nhiễu cộng được biểu diễn:
Trong đó P xx v à P NN là phổ công suất của tín hiệu và nhiễu Nếu giả thiết rằng phổ công suất P xx v à P NN của chúng đã biết, thì có thể nhận được ước lượng tuyến tính tối ưu sai số quân phương tối thiểu củaX(f) bằng cách cho Y(f) qua bộ lọc Wiener mà đáp ứng tần số W ( f ).
Trong những bài toán thường gặp, ước lượng phổ công suất nhiễu P NN tương đối dễ làm, nhưng ước lượng phổ công suất ảnh P XX thì không đơn giản Một phương pháp được sử dụng là lấy trung bình ¿X(f)∨¿ 2 ¿cho nhiều ảnhx(m) khác nhau.
Chia cả tử cả mẫu của (1) cho P NN và đặt SNR( f )= P P xx (f )
NN (f) là tỉ số tín hiệu trên nhiễu ta thu được:
Trong nhiễu cộng đáp ứng xung xủa bộ lọc Wiener là một số thực và 0 ≤ W ( f ) ≤ 1
Bây giờ chúng ta hãy xem xét 2 trường hợp:
1) Ảnh không có nhiễu P NN =0=¿SNR→ ∞ v à W(f)≈1
2) Ảnh toàn nhiễu P XX →0=¿SNR→0v à W(f)≈0
Như vậy bộ lọc Wiener giữ nguyên SNR của các phần hợp thành tần số cao nhưng làm giản SNR của các phần hợp thành tần số thấp Đặc điểm của bộ lọc Wiener là thông thấp.
II ỨNG DỤNG BỘ LỌC WIENER TRONG XỬ LÝ ẢNH.
1 Tổng quan về khôi phục ảnh
Khôi phục ảnh đề cập tới các kỹ thuật loại bỏ hay tối thiểu hoá các ảnh hưởng của môi trường bên ngoài hay các hệ thống thu nhận, phát hiện và lưu trữ ảnh đến ảnh thu nhận được Các nguyên nhân gây biến dạng ảnh: do nhiễu bộ cảm nhận tín hiệu, ảnh mờ do camera, nhiễu ngẫu nhiên của khí quyển, v v Khôi phục ảnh bao gồm nhiều quá trình như: lọc ảnh, khử nhiễu nhằm làm giảm các biến dạng để có thể khôi phục lại ảnh gần giống ảnh gốc tuỳ theo các nguyên nhân gây ra biến dạng.
Hình 5 Một hệ khôi phục ảnh
Sự lựa chọn hệ phục hồi ảnh phụ thuộc vào loại hình xuống cấp hay khôi phục ảnh là nhằm xác định mô hình toán học của quá trình gây ra biến dạng.Các thuật toan làm giảm nhiễu cộng ngẫu nhiên khác với các thuật toán làm giảm nhoè ảnh Các loại hình xuống cấp ta sẽ xét là nhiễu cộng ngẫu nhiên, nhoè và nhiễu phụ thuộc tín hiệu, như nhiễu nhân. Những loại hình xuống cấp này thường xảy ra trong thực tiễn.
2 Bộ lọc Wiener và vấn đề khôi phục ảnh
KHÁI QUÁT CÁCH HOẠT ĐỘNG: 17 1 Phân tích thu thập dữ liệu 17 2 Xử Lí hình ảnh chuẩn bị cho lọc wiener
1 Phân tích thu thập dữ liệu.
Chúng ta có thể thu thập ảnh nhiễu bằng cách:
- Thu thập hình ảnh gốc (ảnh bị nhiễu):
Thu thập hình ảnh ban đầu muốn khôi phục Đây có thể là ảnh chụp từ máy ảnh hoặc hình ảnh được cung cấp từ nguồn khác nhau.
Đảm bảo rằng ảnh này chứa thông tin về đối tượng hoặc tín hiệu bạn quan tâm, nhưng có thể đã bị nhiễu do nhiều nguyên nhân như chất lượng cảm biến, điều kiện ánh sáng kém, hoặc quá trình truyền tải.
- Tạo nhiễu hình ảnh bằng Gauusian Bằng cách tính phương sai,độ lệch chuẩn của Gaussian:
Phương sai (Variance): Phương sai (σ²) là độ đo của mức độ biến đổi hoặc phân ) là độ đo của mức độ biến đổi hoặc phân tán của dữ liệu Trong trường hợp của phân phối Gaussian, phương sai được tính bằng cách lấy trung bình của bình phương của sự sai lệch giữa từng giá trị và trung bình (mean) Công thức toán học cho phương sai như sau: σ² = [(x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nx₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / n)² + (x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nx₂ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / n)² + (x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nx₃ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / n)² + + (x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nxₙ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / n)²] / n Trong đó:
σ²) là độ đo của mức độ biến đổi hoặc phân là phương sai.
x₁, x₂, x₃, , xₙ là các giá trị dữ liệu.
à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / n (x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nmu) là trung bỡnh (mean) của dữ liệu.
n là số lượng các giá trị dữ liệu. Độ lệch chuẩn (Standard Deviation):Độ lệch chuẩn (σ) là căn bậc hai của phương sai và được sử dụng để đo lường độ biến đổi trong dữ liệu Độ lệch chuẩn là căn bậc hai của phương sai và được tính như sau: σ = √(x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nσ²) Trong đó:
σ là độ lệch chuẩn (standard deviation).
Trong trường hợp của phân phối Gaussian, độ lệch chuẩn định nghĩa mức độ phân tán của dữ liệu Giá trị của σ cho biết khoảng cách trung bình giữa mỗi giá trị dữ liệu và giá trị trung bình của dữ liệu Nó cũng định rõ hình dạng của phân phối Gaussian, ví dụ, σ lớn sẽ tạo ra độ biến đổi lớn và hình dạng hình chuông rộng hơn. sau khi đã xác định phương sai (variance) và độ lệch chuẩn (standard deviation) của nhiễu Gaussian, chúng ta sử dụng phân phối Gaussian để tạo giá trị nhiễu và áp dụng nó lên ảnh gốc Dưới đây là cách thực hiện điều này:
B1:Xác định kích thước ảnh và tạo ma trận zeros: Đầu tiên, xác định kích thước ảnh, tức là chiều rộng và chiều cao của ảnh Sau đó, tạo một ma trận zeros với kích thước ảnh này Ma trận zeros này sẽ đại diện cho ảnh mờ.
Sử dụng phân phối Gaussian với độ lệch chuẩn (standard deviation) và trung bình (mean) bạn đã xác định, tạo ra một ma trận nhiễu Gaussian với kích thước tương tự như ảnh Đây chính là ma trận biểu diễn cho nhiễu Gaussian.
B3:Áp dụng nhiễu Gaussian vào ảnh gốc:
Bây giờ, thực hiện phép cộng pixel-wise giữa ảnh gốc và ma trận nhiễu Gaussian Điều này có thể được thực hiện bằng cách sử dụng công thức toán học:
I_blurred(x, y) là giá trị pixel của ảnh bị nhiễu mờ tại tọa độ (x, y).
I_original(x, y) là giá trị pixel của ảnh gốc tại tọa độ (x, y).
N(x, y) là giá trị pixel tương ứng từ ma trận nhiễu Gaussian tại tọa độ (x, y).
Khi thực hiện phép cộng này cho từng pixel trong ảnh gốc, sẽ có một ảnh bị nhiễu mờ với phương sai và độ lệch chuẩn đã xác định Đây là cách áp dụng công thức toán học để tạo ảnh bị nhiễu mờ dựa trên phân phối Gaussian.
Quá trình thu thập dữ liệu là quan trọng để hiểu rõ về tình huống cụ thể của bạn và để có dữ liệu cơ bản cho việc áp dụng phương pháp lọc Wiener Càng nhiều thông tin bạn có về hình ảnh ban đầu và quá trình gây nhiễu, càng tốt cho quá trình khôi phục hình ảnh sau này.
2 Xử Lí hình ảnh chuẩn bị cho lọc wiener a) Thực hiện biến đổi Fourier ảnh từ miền không gian sang tần số.
Biến đổi Fourier là một phép biến đổi toán học quan trọng trong xử lý tín hiệu và thị giác máy tính Nó được sử dụng để chuyển đổi một tín hiệu hoặc hình ảnh từ miền không gian sang miền tần số, cho phép chúng ta phân tích cấu trúc tần số của tín hiệu hoặc hình ảnh.
Ta có công thức Rourier :
X(x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nu, v) = ∬[x(x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nx, y) * e^(x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / n-j2π(ux + vy))] dx dyπ(x₁ - à)² + (x₂ - à)² + (x₃ - à)² + + (xₙ - à)²] / nux + vy))] dx dy
X(u, v) là biến đổi Fourier của hình ảnh X tại tần số u và v.
x(x, y) là hình ảnh gốc trong miền không gian.
Trong thực tế, để tính biến đổi Fourier, ta thường sử dụng thuật toán nhanh Fourier (FFT) cho tính toán hiệu quả OpenCV và thư viện Python như NumPy cung cấp các công cụ để thực hiện biến đổi Fourier trên hình ảnh hoặc tín hiệu một cách dễ dàng.
Kết quả của biến đổi Fourier là một biểu đồ phổ tần số, cho biết độ mạnh của các tần số khác nhau trong tín hiệu hoặc hình ảnh Phổ tần số này rất hữu ích để phân tích và xử lý tín hiệu và hình ảnh trong nhiều ứng dụng khác nhau. b) Tính toán phổ tần số ảnh nhiễu.
Sau khi có biểu đồ tần số của ảnh nhiễu bằng cách tính Fourier ta thực hiện tính toán phổ năng lượng của miền tần số vừa được tách bằng cách lấy bình phương giá trị tại mỗi tần số và tổng hợp chúng
Ta có công thức biến đổi như sau :
S(f) là phổ năng lượng của tín hiệu tại tần số f.
X(f) là biến đổi Fourier của tín hiệu tại tần số f
|X(f)|^2 là bình phương của mô đun của biến đổi Fourier X(f) tại tần số f. c) Xác định phương sai của nhiễu.
Xác định phương sai của nhiễu bằng phương pháp ta đã nói ở phần phân tích thu thập dữ liệu.
3 Áp dụng bộ lọc Wiener.
Công thức bộ lọc wener trong miền tần số được sử dụng để khôi phục ảnh bị nhiễu bằng cách thực hiện phép biến đổi Fourier nghịch đảo trên ảnh nhiễu.dưới
H_uv: Là phổ tần số của bộ lọc Wiener trong miền tần số, được tính bằng cách áp dụng công thức trên Nó là một phần của quá trình khôi phục ảnh bằng cách lọc miền tần số.