Khôi phục ảnh bằng tối ưu độ tương tự cục bộ

79 10 0
Khôi phục ảnh bằng tối ưu độ tương tự cục bộ

Đ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

i ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THƠNG TIN &TRUYỀN THƠNG HỒNG XN TRUNG KHƠI PHỤC ẢNH BẰNG TỐI ƢU ĐỘ TƢƠNG TỰ CỤC BỘ Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH NGƢỜI HƢỚNG DẪN KHOA HỌC TS.ĐÀO NAM ANH THÁI NGUYÊN - 2015 Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn ii LỜI CẢM ƠN Trên thực tế thành cơng mà khơng gắn liền với hỗ trợ, giúp đỡ suốt thời gian từ bắt đầu học tập trƣờng đến nay, em nhận đƣợc nhiều quan tâm, giúp đỡ quý Thầy Cô Trƣờng Đại học Công nghệ Thông tin Truyền thông - Đại học Thái Nguyên với tri thức tâm huyết để truyền đạt vốn kiến thức quý báu cho chúng em suốt thời gian học tập trƣờng, luôn tạo điều kiện tốt cho chúng em suốt trình theo học trƣờng Em xin chân thành cảm ơn quý Thầy Cô Ban lãnh đạo nhà trƣờng! Với lòng biết ơn sâu sắc em xin gửi lời cảm ơn tới TS Đào Nam Anh, cán trực tiếp hƣớng dẫn khoa học cho em Thầy dành nhiều thời gian cho việc hƣớng dẫn em cách nghiên cứu, đọc tài liệu, cài đặt thuật toán giúp đỡ em việc xây dựng chƣơng trình, em xin chân thành cảm ơn Thầy! Và cuối em xin bày tỏ lòng chân thành biết ơn tới lãnh đạo khoa Công nghệ Thông tin trƣờng Cao đẳng Hoan Châu Nghệ An bạn bè đồng nghiệp bên cạnh lúc em khó khăn tạo điều kiện thuận lợi giúp em hồn thành luận văn Hồng Xn Trung Số hố Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn iii LỜI CAM ĐOAN Tôi xin cam đoan luận văn kết nghiên cứu tôi, không chép Nội dung luận văn có tham khảo sử dụng tài liệu liên quan, thông tin tài liệu đƣợc đăng tải tạp chí trang website theo danh mục tài liệu luận văn Tác giả luận văn Hồng Xn Trung Số hố Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn iv MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN iii DANH MỤC CÁC TỪ VIẾT TẮT vi DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ vii MỞ ĐẦU CHƢƠNG 1: TỔNG QUAN VỀ BÀI TỐN KHƠI PHỤC ẢNH 1.1 Một số khái niệm 1.1.1 Phần tử ảnh (Picture Element) 1.1.2 Mức xám (Gray level) 1.1.3 Quan hệ ảnh, điểm ảnh, mức xám 1.1.4 Lân cận điểm ảnh 1.1.5 Mối liên kết điểm ảnh 1.1.6 Đo khoảng cách điểm ảnh 1.2 Tổng quan khôi phục ảnh 1.2.1 Bài tốn khơi phục ảnh 1.2.2 Ứng dụng khôi phục ảnh 1.3 Một số phƣơng pháp khôi phục ảnh 10 1.3.1 Phƣơng pháp khôi phục ảnh dùng kim tự tháp mờ Gaussian 10 1.3.2 Phƣơng pháp khôi phục ảnh dùng lọc Median 12 1.3.3 Phƣơng pháp khôi phục ảnh nhanh dựa vào lọc 13 1.3.4 Khôi phục ảnh dùng biến phân phần PDE 14 1.3.5 Khơi phục ảnh dùng phƣơng trình Navier-Stokes 16 1.3.6 Khôi phục ảnh dùng tổng biến thể 17 1.4 Một số tiêu chí dùng để đánh giá chất khôi phục ảnh 18 1.4.1 Tổng quan tiêu chí đánh giá chất lƣợng ảnh 18 1.4.2 Sai số bình phƣơng trung bình MSE 18 1.4.3.Tỷ lệ tín hiệu tín hiệu tạp PSNR 18 Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn v 1.4.4 Ứng dụng MSE PSNR 19 1.5 Kết luận chƣơng 19 CHƢƠNG 2: KHÔI PHỤC ẢNH DÙNG BẢN VÁ VÀ TỐI ƢU ĐỊA PHƢƠNG 20 2.1 Khôi phục ảnh dùng vá 20 2.1.1 Khôi phục ảnh dùng vùng mẫu 20 2.1.2 Khôi phục ảnh dùng vá có kết cấu 23 2.1.3 Khôi phục ảnh dùng vá với độ thƣa 27 2.1.4 Khôi phục ảnh dùng kết hợp vá biến phân phần PDE 30 2.1.5 Một số dạng khôi phục ảnh vá khác 33 2.2 Khôi phục ảnh dùng vá với điều kiện tối ƣu địa phƣơng 37 2.2.1 Bƣớc tiền xử lý ảnh màu: Tách ảnh 37 2.2.2 Phát biểu tốn phơi phục ảnh vá 38 2.2.3 Điều kiện tối ƣu địa phƣơng 38 2.2.4 Thuật toán 40 2.2.5 Đầu vào đầu thuật tốn khơi phục ảnh dùng vá với điều kiện tối ƣu địa phƣơng 41 2.3 Kết luận chƣơng 43 CHƢƠNG 3: CÀI ĐẶT THỬ NGHIỆM 44 3.1 Môi trƣờng cài đặt 44 3.2 Kết thực nghiệm 44 3.3 So sánh với số phƣơng pháp khác 54 3.4 Kết luận chƣơng 55 TÀI LIỆU THAM KHẢO 57 PHỤ LỤC: TRÍCH MÃ NGUỒN 59 Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn vi DANH MỤC CÁC TỪ VIẾT TẮT Các thuật ngữ Ý nghĩa Wavelet Sóng nhỏ Inpainting Khôi phục ảnh Các từ viết tắt Ý nghĩa XLA Xử lý ảnh PDE Partial differential equation MSE Mean square error PSNR Peak Signal to Noise Ratio Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn vii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1: Mỗi điểm ảnh có tọa độ x, y, giá trị với ảnh xám Hình 2: Ảnh xám đồ thị theo mức xám Hình 3: Khơi phục tác phẩm hội họa Hình 4: Khôi phục ảnh đen trắng Hình 5: Khơi phục ảnh dùng kim tự tháp mờ Gaussian 11 Hình 6: Khôi phục ảnh dùng kim tự tháp mờ Gaussian 12 Hình 7: Khơi phục ảnh Median theo hƣớng 13 Hình 8: Khơi phục ảnh nhanh dựa vào lọc 14 Hình 9: Khơi phục ảnh biến phân phần PDE 16 Hình 10: Khơi phục ảnh dùng tổng biến thể 18 Hình 11: Ví dụ PSNR 19 Hình 12: Khơi phục ảnh dùng vùng mẫu: xác định mẫu p 21 Hình 13: Khơi phục ảnh dùng vùng mẫu: tìm miếng vá thích hợp cho p q’, q”, cuối tiến hành vá q’ cho p 22 Hình 14: Khơi phục ảnh dùng vùng mẫu 23 Hình 15: Khơi phục ảnh dùng vá có kết cấu: bên trái ảnh kết cấu, bên phải: dùng kết cấu để vá 24 Hình 16: Khơi phục ảnh dùng vá có kết cấu theo Efros Leung: 25 Hình 17: Khơi phục ảnh dùng vá có kết cấu theo Criminisi cộng sự: bên trái ảnh đầu vào, bên phải ảnh kết 26 Hình 18: Khơi phục ảnh dùng độ thƣa: từ điển hình học từ điển kết cấu 29 Hình 19: Khơi phục ảnh dùng độ thƣa: 29 Hình 20: Khơi phục ảnh dùng độ thƣa: bên trái ảnh đầu vào bị nhiễu, bên phải ảnh kết 30 Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn viii Hình 21: Một hình ảnh ban đầu, sau loại bỏ 15 x 15 hình vng khơi phục lại với phƣơng pháp đƣợc giới thiệu Masnou Morel 31 Hình 22: Khơi phục dùng kết hợp vá biến phân phần PDE 32 Hình 23: Khôi phục ảnh dùng vá cho video 33 Hình 24: Khơi phục ảnh dùng vá từ ảnh khác: 36 Hình 25: Tách khơng gian Vector 38 Hình 26: Khôi phục ảnh dùng vá tối ƣu địa phƣơng 41 Hình 27: Khơi phục ảnh dùng vá tối ƣu địa phƣơng 42 Hình 28: Ảnh gốc mặt nạ 45 Hình 29: Kiểm tra phần biên mặt nạ 46 Hình 30: Kiểm tra phần biên mặt nạ 47 Hình 31: Khơi phục phần có kết cấu mạnh, có lỗi 48 Hình 32: Lỗi khơi phục phần có kết cấu phức tạp 49 Hình 33: Khơi phục kết cấu yếu, tốt 49 Hình 34: Khơi phục kết cấu yếu, có lỗi 50 Hình 35: Khơi phục kết cấu yếu, lỗi 50 Hình 36: Khơi phục kết cấu phức tạp, lỗi 51 Hình 37: Khơi phục kết cấu phức tạp, lỗi 52 Hình 38: Khơi phục kết cấu phức tạp, lỗi 53 Hình 39: Khơi phục kết cấu phức tạp, lỗi 53 Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn MỞ ĐẦU Khôi phục ảnh (inpainting) trình xây dựng lại phận bị xuống cấp ảnh video Trong trƣờng hợp tranh có giá trị, nhiệm vụ đƣợc thực nghệ sĩ có tay nghề cao phục hồi tranh Trong giới công nghệ thông tin, khôi phục ảnh đề cập đến việc áp dụng thuật toán phức tạp để thay phận liệu ảnh bị bị hỏng Khôi phục ảnh có liên quan đến việc loại bỏ nhiễu, đơi thuật tốn sử dụng ý tƣởng loại nhiễu, nhƣng khôi phục ảnh vấn đề khác vấn đề loại nhiễu Vùng nhiễu thƣờng có số thơng tin ảnh gốc nhƣng khôi phục ảnh, số vùng bị hoàn toàn liệu ảnh gốc Trọng tâm luận văn tìm hiểu vấn đề liên quan đến việc khôi phục ảnh, nghiên cứu số thuật tốn khơi phục ảnh tập trung tìm hiểu thuật toán tổng hợp để tạo vùng ảnh lớn từ kết cấu mẫu, kỹ thuật lấp đầy khoảng trống ảnh nhỏ Trong giá trị màu sắc đƣợc tính tốn tổng hợp dựa mẫu Thuật tốn đƣợc thực nghiệm với chƣơng trình sử dụng ngơn ngữ C++, MathLab Ngồi phần mở đầu kết luận, luận văn đƣợc chia làm chƣơng, luận văn có chƣơng nhƣ sau: Chƣơng 1: Tổng quan tốn khơi phục ảnh Trình bày vấn đề đặt cần giải tốn khơi phục ảnh, hƣớng tiếp cận xử lý nhiễu ảnh khơi phục phần ảnh bị Trình bày số phƣơng pháp Khôi phục ảnh dựa vào hàm Gaussian, khôi phục ảnh nhanh, khôi phục ảnh Bertalmio Một số phƣơng pháp khôi phục ảnh khác Một số tiêu chí dùng để đánh giá kết khơi phục ảnh Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn Chƣơng 2: Khôi phục ảnh từ vá với điều kiện tối ƣu địa phƣơng Các thuật tốn khơi phục ảnh vá đƣợc trình bày mối liên hệ với thuật tốn khơi phục ảnh vá với tối ƣu địa phƣơng Các thuật tốn khơi phục ảnh vá có khả lấp khoảng trống ảnh cách tổng hợp vùng ảnh từ vùng khác Phƣơng pháp đƣợc gọi vá, lần điền thơng tin, thuật toán điền mảng điểm ảnh, không điểm ảnh nhƣ phƣơng pháp dùng biến phân phần Chƣơng 3: Thực nghiệm đánh giá Trình bày việc cài đặt chƣơng trình, xây dựng liệu thực nghiệm với thuật tốn khơi phục ảnh có khả lấp khoảng trống ảnh cách tổng hợp vùng ảnh từ vá, dựa vào độ tƣơng tự cục bộ, trình thực nghiệm, kết Số hố Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 57 TÀI LIỆU THAM KHẢO [1] Lƣơng Mạnh Bá, Nguyễn Thanh Thủy (1999) Nhập môn xử lý ảnh số, Nhà xuất Khoa học kỹ thuật, Hà Nội [2] Đỗ Năng Tồn, Phạm Việt Bình (2007) Giáo trình xử lý ảnh, Nhà xuất Đại học Hà nội [3] Võ Đức Khánh, Hoàng Kiếm (2007) Giáo trình xử lý ảnh Nhà xuất Đại học Quốc Gia TP Hồ Chí Minh [4] Nguyễn Kim Sách (1977) Xử lý ảnh video số, Nhà xuất Khoa học kỹ thuật, Hà Nội [5] Pablo Arias, Gabriele Facciolo, Vicent Caselles, Guillermo Sapiro, “A Variational Framework for Exemplar-Based Image Inpaiting“, Springer Science and Business Media, 2011 [6] Mahmoud Ghoniem, Youssef Chahir, Abderrahim Elmoataz, “Geometric And Texture Inpainting Based On Discrete Regularization On Graphs”, ICIP 2009 [7] Jun Zhou ; Canberra Res Lab., Robles-Kelly, A., Image Inpainting Based on Local Optimisation, Pattern Recognition (ICPR), 2010 [8] A Criminisi, P Perez, and K Toyama, "Region Filling and Object Removal by Exemplar-Based Image Khôi phục," IEEE Trans Image Processing, 13 (9), pp 1200-1212, September 2004 [9] J Sun, L Yuan, J Jia, and H.-Y Shum, “Image Completion with Structure Propagation,” SIGGRAPH, Vol 24, pp 861-868, 2005 [10] R Szeliski, R Zabih, D Scharstein, O Veksler, V Kolmogorov, A Agarwala, M Tappen, and C Rother, “A Comparative Study of Energy Minimization Methods for Markov Random Fields,” ECCV, volume 2, pages 16-29, Graz, Austria, May 2006 Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 58 [11] Alexandru Telea, “An Image Inpainting Technique Based on the Fast Marching Method”, Journal of graphics tools, 2004 [12] A Efros and T Leung, “Texture synthesis by non-parametric sampling,” Proc IEEE International Conference Computer Vision, pp 1033-1038, Corfu, Greece, September 1999 [13] E Simoncelli and J Portilla Texture characterization via joint statistics of wavelet coefficient magnitudes 5th IEEE Int’l Conf on Image Processing, Chicago, IL Oct 4-7, 1998 [14] S Masnou and J.M Morel Level-lines based disocclusion 5th IEEE Int’l Conf on Image Processing, Chicago, IL Oct 4-7, 1998 [15] C Kenney and J Langan A new image processing primitive: reconstructing images from modified flow fields University of California Santa Barbara Preprint, 1999 Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 59 PHỤ LỤC: TRÍCH MÃ NGUỒN Mục trích đoạn mã nguồn phân tích vá : #include "Exemplar.h" #include "Local.h" #include "Parallel.h" IplImage* exmpExtractPatch(IplImage *img, int r, int c, int size) { IplImage* ret = cvCreateImage(cvSize((size*2)+1,(size*2)+1),img>depth,img->nChannels); for(int a = -size; a height) row = img->height-1; if(row < 0) row = 0; if(col >= img->width) col = img->width-1; if(col < 0) col = 0; int x = row - (r - size), y = col - (c - size); cvSet2D(ret, x, y, cvGet2D(img, row, col)); } } return ret; } void exmpBorderFront(IplImage *msk, vector< pair >& borderPixels) { if(!msk) return; borderPixels.clear(); Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 60 for(int a = 0; a < msk->height; a++) { for(int b = 0; b < msk->width; b++) { if( iPixel(msk, a, b) < 128 ) continue; if( iPixel(msk, a+1, b) < 128 || iPixel(msk, a, b+1) < 128 || iPixel(msk, a-1, b) < 128 || iPixel(msk, a, b-1) < 128 ) { borderPixels.push_back(make_pair(a, b)); } } } return; } void exmpListSourcePatches(IplImage *msk, vector< pair >& sourcePatches, int patchSize, int stepSize) { if(!msk) return; sourcePatches.clear(); bool foundUncertain = false; for(int a = patchSize; a < msk->height - patchSize; a+=stepSize) { for(int b = patchSize; b < msk->width - patchSize; b+=stepSize) { foundUncertain = false; for(int a1 = a - patchSize; a1 width ) continue; if( cx2 < || cx2 >= img->height ) continue; if( cy2 < || cy2 >= img->width ) continue; if( iPixel(msk, cx1, cy1) > 128 ) continue; if( earlyExit >= 0.0 && dis > earlyExit ) return 1e50; for(int k = 0; k < img->nChannels; k++) { Số hoá Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 62 dis += iSq( iPixel( img, cx1, cy1, k ) - iPixel( img, cx2, cy2, k ) ); } } } if( result != NULL ) (*result) = dis; return dis; } void exmpFillPatch( IplImage *img, IplImage *msk, int sx, int sy, int dx, int dy, int patchSize ) { for(int a = -patchSize; a height || cy1 >= img->width || cx2 >= img->height || cy2 >= img->width ) continue; iSixel( msk, cx2, cy2, 0.0 ); cvSet2D( img, cx2, cy2, cvGet2D( img, cx1, cy1 ) ); } } } double exmpGetConfidence( IplImage *cp, int x, int y, int patchSize ) { double thelta = 0; for(int a = x - patchSize; a 128 ) cdy = 0.0; dx = k * cdx; dy = k * cdy; d = sqrt(iSq(dx)+iSq(dy)); r++; if( r > EXMP_GRADIENT_MAX_RADIUS ) return Vector2D(0.0, 0.0); } return Vector2D( dx , dy ); } double exmpCalculateDatapoint( IplImage *img, IplImage *msk, int x, int y, int windowSize, int patchSize ) { if( patchSize height/2)+1, (mskdx>width/2)+1 ), iPixel( mskdy, (mskdy->height/2)+1, (mskdy->width/2)+1 ) ); normal.normalize(); double dataPointValue = fabs(isotope * normal) / EXMP_DATAPOINT_ALPHA; if( dataPointValue < 0.0 ) dataPointValue = 0.0; cvReleaseImage( &mskWindow ); cvReleaseImage( &mskdx ); cvReleaseImage( &mskdy ); return dataPointValue; } double exmpCalculatePriority( IplImage *img, IplImage *msk, IplImage *cp, int x, int y, int patchSize, double *result) { if( patchSize height; a++) { for(int b = 0; b < msk->width; b++) { if( iPixel(msk, a, b) < 128 ) iSixel( cp, a, b, 1.0 ); else iSixel( cp, a, b, 0.0 ); } } } void exmpSourceMask( IplImage *imsk, IplImage *smsk, int dis ) { cvDilate(smsk, smsk, 0, dis); for(int a = 0; a < smsk->height; a++) { for(int b = 0; b < smsk->width; b++) { if( iPixel(imsk, a, b) > 128 ) { iSixel(smsk, a, b, 0.0); } } } } void exmpInPaint(IplImage *img, IplImage *msk, int iter, int patchSize, int boundary, int skip, int method, bool GPU) { if(!img || !msk || iter sourcePatches; vector borderPriority; exmpSourceMask( iterMask, sourceMask, boundary ); exmpListSourcePatches( sourceMask, sourcePatches, patchSize, skip ); if( sourcePatches.size()

Ngày đăng: 24/03/2021, 08:38

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

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

Tài liệu liên quan