Nghiên cứu thuật toán khử nhiễu ảnh dựa trên phương pháp biến phân

63 155 3
Nghiên cứu thuật toán khử nhiễu ảnh dựa trên phương pháp biến phân

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

VŨ ĐÌNH KHƠI ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA TRẦN HỮU LỘC - VŨ ĐÌNH KHƠI LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ C C R L T NGHIÊN CỨU THUẬT TOÁN KHỬ NHIỄU ẢNH DỰA TRÊN PHƢƠNG PHÁP BIẾN PHÂN U D LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ NĂM 2019 Đà Nẵng – Năm 2019 ĐẠI HỌC ĐÀ NẴNG TRƢỜNG ĐẠI HỌC BÁCH KHOA - VŨ ĐÌNH KHƠI C C R L T NGHIÊN CỨU THUẬT TOÁN KHỬ NHIỄU ẢNH DỰA TRÊN PHƢƠNG PHÁP BIẾN PHÂN U D Chuyên nghành: KỸ THUẬT ĐIỆN TỬ Mã số: 8520203 LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHAN TRẦN ĐĂNG KHOA Đà Nẵng – Năm 2019 LỜI CAM ĐOAN Tôi cam đoan cơng trình nghiên cứu riêng tơi Nội dung cơng trình luận văn “Nghiên cứu thuật tốn khử nhiễu ảnh dựa phƣơng pháp biến phân”; số liệu kết nêu luận văn trung thực chưa công bố cơng trình khác Học viên cao học Vũ Đình Khơi C C R L T U D I MỤC LỤC CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN 1.1 Đặt vấn đề 1.2 Các phương pháp xử lý ảnh 1.2.1 Phương pháp hình thái học 1.2.2 Phân tích phổ 1.2.3 Phân tích đa phân giải 10 1.2.4 Phương pháp dựa mơ hình ngẫu nhiên 11 1.2.5 Phương pháp biến phân 12 1.2.6 Phương trình đạo hàm riêng 12 1.2.7 Mối liên hệ phương pháp 12 C C 1.3 Các thuật toán khử nhiễu phổ biến 13 1.3.1 Bộ lọc trung bình 13 R L T 1.3.2 Bộ lọc Gauss 13 U D 1.3.3 Bộ lọc trung vị 14 1.3.4 Bộ lọc Wiener 14 1.4 Mục tiêu nghiên cứu 15 CHƢƠNG 2: THUẬT TOÁN KHỬ NHIỄU ẢNH DỰA TRÊN PHƢƠNG PHÁP BIẾN PHÂN 16 2.1 Hàm lượng 16 2.2 Hàm lồi 18 2.3 Functional 20 2.4 Đạo hàm Gâteaux 20 2.5 Phương trình Euler-Lagrange 21 2.6 Thuật toán Gradient Descent 21 2.7 Toán tử gradient divergence rời rạc 23 2.8 Thuật toán khử nhiễu ảnh sử dụng tổng biến phân 24 CHƢƠNG 3: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 26 3.1 Mô tả thực nghiệm 26 3.2 Tiêu chí đánh giá 27 3.3 Kết đánh giá thuật toán TV-GD 27 3.3.1 Ảnh hưởng tham số 27 3.3.2 Ảnh hưởng số vòng lặp 29 3.3.3 Ảnh hưởng hệ số 31 3.4 Kết so sánh thuật toán 33 3.4.1 Kết định lượng 33 3.4.2 Đánh giá chủ quan 37 KẾT LUẬN 42 TÀI LIỆU THAM KHẢO 43 PHỤ LỤC 45 Chương trình thuật tốn khử nhiễu dựa phương pháp biến phân sử dụng tổng biến phân 45 C C U D R L T NGHIÊN CỨU THUẬT TOÁN KHỬ NHIỄU ẢNH DỰA TRÊN PHƢƠNG PHÁP BIẾN PHÂN Học viên: Vũ Đình Khơi Chuyên ngành: Kỹ thuật điện tử Mã số: CH678 Khóa: 36 Trường Đại học Bách khoa – Đại học Đà Nẵng Tóm tắt: Khử nhiễu ảnh vấn đề nghiên cứu quan trọng lĩnh vực xử lý ảnh Trong luận văn này, nghiên cứu thuật toán khử nhiễu ảnh phương pháp biến phân Thuật tốn tìm nghiệm ảnh khử nhiễu cách tối thiểu hóa hàm mục tiêu bao gồm thành phần đo khoảng cách ảnh khử nhiễu ảnh nhiễu thành phần đo độ mượt ảnh thông qua tổng biến phân Quá trình tối ưu thực phương pháp Gradient Descent Trong phần thực nghiệm, thuật toán nghiên cứu đánh giá so sánh với thuật toán khử nhiễu phổ biến khác dựa tiêu chí đánh giá PSNR, SSIM đánh giá chủ quan Kết thực nghiệm cho thấy, thuật toán khử nhiễu ảnh phương pháp biến phân cho kết tốt so với thuật toán khác C C Từ khóa: khử nhiễu ảnh, phương pháp biến phân, tổng biến phân, gradient descent R L T U D VARIATIONAL METHOD BASED DENOISING ALGORITHM Student: Vu Dinh Khoi Major of Master program: Electrical engineering Student code: CH678 Course: K36 The University of Science and Technology – The University of Danang Abstract: Image denoising is an important research problem in the field of digital image processing In this thesis, we study a denoising algorithm based on variational method The algorithm search the denoised image by minimizing the energy function, which consists of two terms – the fitting term measuring the distance between the denoised image and the noisy image and the regularization term measuring the smoothness of the denoised image using the total variation The optimization process is based on the Gradient Descent method In the experiments, the algorithm is compared with widely used denoising algorithms based on criteria PSNR, SSIM and visual quality The experimental results show that the variational method based denoising algorithm outperforms other competing methods Key words: image denoising, variational method, total variation, gradient descent DANH SÁCH CÁC KỸ HIỆU, CHỮ VIẾT TẮT PSNR SSIM MSE VM PDE GD TV-GD AF GF MF WF Sob-GD Peak Signal-to-Noise Ratio Structural Similaritykj Mean Squared Error Tỉ số tín hiệu cực đại nhiễu Variational method Partial Differential Equation Phương pháp biến phân Phương trình đạo hàm riêng Gradient Descent Total variation – Gradient Descent Average Filter Gauss Filter Median Filter Wiener Filter Sobolev - Gradient Descent Thuật toán Gradient Descent Hệ số tương đồng cấu trúc Sai số bình phương trung bình Bộ lọc trung bình Bộ lọc Gauss Bộ lọc trung vị Bộ lọc Wiener U D R L T C C DANH MỤC BẢNG BIỂU Thứ tự Nôi dung tên bảng biểu Trang Bảng 3.1: Sự phụ thuộc PSNR SSIM vào số giá trị tham số 34 Bảng 3.2: PSNR SSIM thuật toán 35 Bảng 3.3: PSNR SSIM thuật toán 36 Bảng 3.4: PSNR SSIM thuật toán 37 Bảng 3.5: PSNR SSIM thuật toán 38 C C U D R L T DANH MỤC HÌNH Thứ tự Nơi dung tên hình Hình 1.1 Q trình gây nhiễu ảnh khử nhiễu Hình 1.2 Ảnh tách đường biên Hình 1.3 Một số tốn tử hình thái học [6] 10 Hình 1.4 Biến đổi Fourier lọc [6] 11 Hình 1.5 Biến đổi wavelet ảnh [6] 12 Hình 1.6 Mối liên hệ phương pháp 14 Hình 1.7 Hàm Gauss với giá trị Hình 1.8 Bộ lọc trung vị [6] Hình 2.1 Ba hàm khác có giá trị tổng biến phần [2] Hình 2.2 Hàm lồi [5] Hình 2.3 Ví dụ hàm lồi 21 Hình 2.4 Minh họa phương pháp GD [5] 24 Hình 2.5 So sánh hàm | | √ 26 Hình 3.1 Các ảnh thực nghiệm 27 Hình 3.2 Sự phụ thuộc ảnh khử nhiễu vào giá trị tham số 29 Hình 3.3 Hình 3.4 Trang C C khác [6] R L T U D 15 16 20 21 | | với giá trị khác Sự phụ thuộc (a) hàm lượng, (b) PSNR (c) SSIM vào số vòng lặp Ảnh ảnh khử nhiễu với giá trị tham số khác 30 33 Hình 3.5 Kết khử nhiễu thuật tốn ) 40 Hình 3.6 Kết khử nhiễu thuật toán ) 42 CHƢƠNG 1: GIỚI THIỆU TỔNG QUAN Chương trình bày tổng quan toán khử nhiễu ảnh, phương pháp xử lý ảnh thuật toán khử nhiễu ảnh phổ biến 1.1 Đặt vấn đề Khử nhiễu ảnh (image denoising) vấn đề nghiên cứu quan trọng lĩnh vực xử lý ảnh bước tiền xử lý cần thiết cho nhiều ứng dụng Trong trình thu nhận, truyền ghi liệu, hình ảnh bị nhiễu khiếm khuyết cấu tạo thiết bị thu phát hình ảnh mơi trường bên ngồi Do đó, việc khử hiệu ứng nhiễu cần thiết nhằm phục vụ cho bước xử lý ảnh Gọi ảnh gốc (không nhiễu) ảnh nhiễu gây nhiễu Q trình khử nhiễu mơ hình hóa đơn giản sau (1.1) đó, tốn tử phép cộng nhân Trong luận văn này, xem xét nhiễu cộng Gauss Mơ hình nhiễu sau (1.2) đó, nhiễu Gauss với giá trị trung bình độ lệch chuẩn Quá trình gây nhiễu ảnh nhiễu Gauss thể Hình 1.1 C C R L T U D Hình 1.1 Quá trình gây nhiễu ảnh khử nhiễu [1] Để hiểu rõ tầm quan trọng việc khử nhiễu phân tích ảnh, ta xem ví dụ ảnh hưởng khử nhiễu đến thuật toán tách đường biên (edge detection) cho ảnh siêu âm Thuật toán tách đường biên phổ biến tốn tử Sobel có dạng sau [3]: ( ) ( ) (1.3) 46 deps = sqrt( epsilon^2 + d.^2 ); G0 = -div( Gr / repmat(deps, [1 2]) ); G = fTV-y+lambda*G0; energy(i) = 1/2*norm( y-fTV,'fro' )^2 + lambda*sum(deps(:)); fTV = fTV - tau*G; end figure, plot(1:niter, energy); axis('tight'); set_label('iteration', 'Energy'); figure,imshow(fTV) title('Denoised') peaksnr = psnr(fTV,f0); ssimval = ssim(fTV,f0); disp(['PSNR = ' num2str(peaksnr) ' , SSIM = ' num2str(ssimval)]) C C R L T if option == imwrite(fTV,['.\results\' imgName '_' num2str(noiseLevel) '_TVGD.tif']) end U D function [fx,fy,fz] = grad(M, options) nbdims = 2; if size(M,1)==1 || size(M,2)==1 nbdims = 1; end if size(M,1)>1 && size(M,2)>1 && size(M,3)>1 nbdims = 3; end if strcmp(bound, 'sym') if order==1 fx = M([2:end end],:,:)-M; else fx = ( M([2:end end],:,:)-M([1 1:end-1],:,:) )/2; 47 % boundary fx(1,:,:) = M(2,:,:)-M(1,:,:); fx(end,:,:) = M(end,:,:)-M(end-1,:,:); end if nbdims>=2 if order==1 fy = M(:,[2:end end],:)-M; else fy = ( M(:,[2:end end],:)-M(:,[1 1:end-1],:) )/2; % boundary fy(:,1,:) = M(:,2,:)-M(:,1,:); fy(:,end,:) = M(:,end,:)-M(:,end-1,:); end end if nbdims>=3 if order==1 fz = M(:,:,[2:end end])-M; else fz = ( M(:,:,[2:end end])-M(:,:,[1 1:end-1]) )/2; % boundary fz(:,:,1) = M(:,:,2)-M(:,:,1); fz(:,:,end) = M(:,:,end)-M(:,:,end-1); end end else if order==1 fx = M([2:end 1],:,:)-M; else fx = ( M([2:end 1],:,:)-M([end 1:end-1],:,:) )/2; end if nbdims>=2 if order==1 fy = M(:,[2:end 1],:)-M; else fy = ( M(:,[2:end 1],:)-M(:,[end 1:end-1],:) )/2; end end C C U D R L T 48 if nbdims>=3 if order==1 fz = M(:,:,[2:end 1])-M; else fz = ( M(:,:,[2:end 1])-M(:,:,[end 1:end-1]) )/2; end end end if nargout==1 if nbdims==2 fx = cat(3,fx,fy); elseif nbdims==3 fx = cat(4,fx,fy,fz); end end R L T C C function fd = div(Px,Py, options) nbdims = 2; if size(Px,1)==1 || size(Px,2)==1 nbdims = 1; end if size(Px,3)>1 if nargin>1 options = Py; clear Py; end if size(Px,4)=2 fy = Py-Py(:,[1 1:end-1],:); fy(:,1,:) = Py(:,1,:); % boundary fy(:,end,:) = -Py(:,end-1,:); end if nbdims>=3 fz = Pz-Pz(:,:,[1 1:end-1]); fz(:,:,1) = Pz(:,:,1); % boundary fz(:,:,end) = -Pz(:,:,end-1); end else fx = (Px([2:end end],:,:)-Px([1 1:end-1],:,:))/2; fx(1,:,:) = +Px(2,:,:)/2+Px(1,:,:); % boundary fx(2,:,:) = +Px(3,:,:)/2-Px(1,:,:); fx(end,:,:) = -Px(end,:,:)-Px(end-1,:,:)/2; fx(end-1,:,:) = Px(end,:,:)-Px(end-2,:,:)/2; if nbdims>=2 fy = (Py(:,[2:end end],:)-Py(:,[1 1:end-1],:))/2; fy(:,1,:) = +Py(:,2,:)/2+Py(:,1,:); fy(:,2,:) = +Py(:,3,:)/2-Py(:,1,:); fy(:,end,:) = -Py(:,end,:)-Py(:,end-1,:)/2; fy(:,end-1,:) = Py(:,end,:)-Py(:,end-2,:)/2; end if nbdims>=3 fz = (Pz(:,:,[2:end end])-Pz(:,:,[1 1:end-1]))/2; fz(:,:,1) = +Pz(:,:,2)/2+Pz(:,:,1); % boundary fz(:,:,2) = +Pz(:,:,3)/2-Pz(:,:,1); C C U D R L T 50 fz(:,:,end) = -Pz(:,:,end)-Pz(:,:,end-1)/2; fz(:,:,end-1) = Pz(:,:,end)-Pz(:,:,end-2)/2; end end else if order==1 fx = Px-Px([end 1:end-1],:,:); if nbdims>=2 fy = Py-Py(:,[end 1:end-1],:); end if nbdims>=3 fz = Pz-Pz(:,:,[end 1:end-1]); end else fx = (Px([2:end 1],:,:)-Px([end 1:end-1],:,:))/2; if nbdims>=2 fy = (Py(:,[2:end 1],:)-Py(:,[end 1:end-1],:))/2; end if nbdims>=3 fz = (Pz(:,:,[2:end 1])-Pz(:,:,[end 1:end-1]))/2; end end end C C R L T U D % gather result if nbdims==3 fd = fx+fy+fz; elseif nbdims==2 fd = fx+fy; else fd = fx; end function y = rescale(x,a,b) if nargin

Ngày đăng: 27/11/2020, 10:07

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan