BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH KHOA HỌC MÁY TÍNH Đề tài SIÊU ĐỘ PHÂN GIẢI CHO HÌNH ẢNH SỬ DỤNG
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH KHOA HỌC MÁY TÍNH
Đề tài
SIÊU ĐỘ PHÂN GIẢI CHO HÌNH ẢNH
SỬ DỤNG PHƯƠNG PHÁP HỒI QUI HẠT NHÂN HỮU HƯỚNG
Sinh viên: Võ Hoàng Nhân
Mã số: 1111502 Khóa: K37
Cần Thơ, 05/2015
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH KHOA HỌC MÁY TÍNH
Đề tài
SIÊU ĐỘ PHÂN GIẢI CHO HÌNH ẢNH
SỬ DỤNG PHƯƠNG PHÁP HỒI QUI HẠT NHÂN HỮU HƯỚNG
Người hướng dẫn Sinh viên thực hiện Ths Phạm Nguyên Hoàng Võ Hoàng Nhân
Mã số: 1111502
Khóa: K37
Cần Thơ, 05/2015
Trang 31
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Cần Thơ, ngày… Tháng… năm 2015 Giáo viên hướng dẫn
(Ký và ghi rõ họ tên)
Trang 4NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Cần Thơ, ngày… Tháng… năm 2015 Giáo viên phản biện
(Ký và ghi rõ họ tên)
Trang 53
LỜI CẢM ƠN !
Lời đầu tiên em xin bài tỏ lời cảm ơn sâu sắc đến quý Thầy, Cô trong
Khoa đã giảng dạy em ở các môn học, là nền tảng cho những kiến thức
nâng cao được áp dụng trong đề tài
Em xin gởi lời cảm ơn chân thành đến thầy Phạm Nguyên Hoàng,
người đã trực tiếp hướng dẫn em hoàn thành đề tài này Thầy đã giúp em
nghiên cứu tổng quan về lý thuyết xử lý ảnh số, hướng dẫn em tìm hiểu
những kiến thức về siêu độ phân giải của hình ảnh, giới thiệu ý tưởng của
thuật toán chính được áp dụng trong đề tài
Đồng thời, em cũng xin gởi lời cảm ơn đến tất cả bạn bè, những người
đã giúp đỡ và hỗ trợ trong quá trình hoàn thiện đề tài
Và lời cuối cùng, em xin bày tỏ lòng chân thành và biết ơn vô hạn tới
cha mẹ, những người luôn ở bên cạnh em những lúc em khó khăn nhất,
giúp em vượt qua khó khăn trong học tập cũng như trong cuộc sống
Cần Thơ, ngày 12 tháng 05 năm 2015
Sinh viên
Võ Hoàng Nhân
Trang 6MỤC LỤC
DANH MỤC HÌNH, BẢNG 5
TÓM TẮT 6
ABSTRACT 7
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN 8
I GIỚI THIỆU 8
II TÌNH HÌNH NGHIÊN CỨU 8
III PHẠM VI ĐỀ TÀI 9
IV PHƯƠNG PHÁP NGHIÊN CỨU 9
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 10
I TỔNG QUAN VỀ XỬ LÝ ẢNH 10
1 Biểu diễn ảnh số 11
2 Các mối quan hệ cơ bản giữa các điểm ảnh 12
3 Mức xám của ảnh 13
4 Biểu diễn ảnh 13
5 Các định dạng ảnh cơ bản 15
6 Độ phân giải của ảnh 16
7 Các thuật toán siêu độ phân giải 16
II TỔNG QUAN VỀ CÔNG CỤ LẬP TRÌNH (QT CREATOR) 18
III GIỚI THIỆU VỀ THƯ VIỆN OPENCV 18
IV THUẬT TOÁN HỒI QUY HẠT NHÂN 19
V HỒI QUY HẠT NHÂN STEERING 22
VI LỰA CHỌN CÁC THAM SỐ CHO HỒI QUY HẠT NHÂN 23
VII CHỈ SỐ ĐÁNH GIÁ PSNR 24
CHƯƠNG 3: CHƯƠNG TRÌNH ỨNG DỤNG 25
I GIỚI THIỆU VỀ CHƯƠNG TRÌNH 25
II CÁC CHỨC NĂNG CHÍNH CỦA CHƯƠNG TRÌNH 26
1 Mở ảnh 26
2 Giảm độ phân giải 27
3 SKR 27
4 Nội suy song khối 29
KẾT QUẢ THỐNG KÊ 30
KẾT LUẬN 31
Kết quả đạt được của đề tài: 31
Một số hạn chế trong đề tài: 31
Hướng phát triển của đề tài: 31
TÀI LIỆU THAM KHẢO 32
Trang 75
DANH MỤC HÌNH, BẢNG
Hình 1: Quá trình xử lý ảnh……….8
Hình 2: Quá trình thu nhận ảnh ở mắt người và ở máy ảnh……… ….8
Hình 3: Qúa trình thu nhận ảnh ở máy ảnh số……….9
Hình 4: Lân cận của một điểm ảnh……….10
Hình 5: Minh họa ảnh biểu diễn bằng mã loạt dài……… 11
Hình 6: Minh họa ảnh biểu diễn bằng mã xích……… 11
Bảng cấu trúc một tệp ảnh……… 13
Hình 7: Các pixel nằm cạnh nhau……… 14
Hình 8: Ảnh độ phân giải 512 x 512……… 15
Hình 9: Ảnh độ phân giải 171 x 171……… 15
Hình 10: Ý tưởng của kỹ thuật Multi – frame……….15
Hình 11: Ý tưởng của kỹ thuật Single – frame………16
Hình 12: Logo Qt Creator……… 16
Hình 13: Ảnh nhiễu……… 22
Hình 14: Ảnh kết quả……… 22
Hình 15: Ảnh độ phân giải thấp……… 22
Hình 16: Ảnh kết quả……… 22
Hình 17: Giao diện chính của chương trình……….24
Hình 18: Giao diện cửa sổ mở ảnh……… 24
Hình 19: Giao diện cửa sổ ảnh giảm độ phân giải (128 X 128)………25
Hình 20: MessageBox hiển thị kích thước của ảnh……… 25
Hình 21: Cửa sổ hiển thị kết quả của ảnh SKR………26
Hình 22: MessageBox hiển thị kích thước của ảnh và thời gian thực hiện……… 26
Hình 23: Cửa sổ hiển thị kết quả của thuật toán nội suy-bicubic……….27
Hình 24: MessageBox hiển thị kích thước của ảnh……… 27
Hình 25: Biểu đồ so sánh chỉ số PSNR………28
Trang 8TÓM TẮT
Trong hai thập kỉ qua, chúng ta đã chứng kiến một sự tăng trưởng bùng nổ trong
đa dạng cả về kỹ thuật và phạm vi các ứng dụng xử lý ảnh Xử lý ảnh là một trong những chuyên ngành quan trọng và lâu đời của Công nghệ thông tin Xử lý ảnh được áp dụng trong nhiều lĩnh vực y học, vật lý, hóa học, tìm kiếm tội phạm, trong quân sự và trong một
số lĩnh vực khác…Vì vậy ảnh có chất lượng cao ngày càng quan trọng hơn Tuy nhiên do nhiều lí do khách quan như hạn chế của máy ảnh, môi trường chụp ảnh không tốt nên ảnh
có thể có độ phân giải không cao Đã có nhiều thuật toán đưa ra để giải quyết vấn đề trên
và trong đề tài này em tập trung nghiên cứu và xây dựng thuật toán hồi quy hạt nhân hữu hướng nhằm khôi phục và nâng cao độ phân giải của ảnh Ngoài ra còn nghiên cứu giải thuật kiểm tra độ nhiễu cũng như độ chính xác sau khi khôi phục ảnh Tìm hiểu các hàm
có sẵn trong thư viện OpenCV để xây dựng chương trình demo cho thuật toán
Trang 97
ABSTRACT
In the past two decades, we have witnessed an explosive growth in both technical diversity and range of image processing applications Image processing is one of the important and old subjects of Information Technology Image processing is applied in many fields as: medicine, physics, chemistry, search crime in the military and in some other areas So high image quality increasingly more important However, due to many reasons such as limited objective of the camera, shooting environment is not good so the image may not higher resolution There have been many algorithms proposed to solve this problem and in this topic and you focus on building nuclear regression algorithm useful direction to restore and enhance the resolution of images Also study algorithms as well as the noise test accuracy after restoring image Learn the functions available in the library OpenCV to build demo program for the algorithm
Trang 10CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
Trong những năm gần đây, cùng với sự phát triển vượt bậc của khoa học máy tính, thì xử lý ảnh cũng đã có những bước phát triển nhất định Xử lý ảnh được áp dụng trong nhiều lĩnh vực khác nhau như y học, vật lý, hóa học, quân sự, trong giải trí và nhiều lĩnh vực khác nhau…
Phần lớn con người thu nhận thông tin bằng thị giác, cụ thể đó là các hình ảnh Vì vậy xử lý ảnh là vấn đề không thể thiếu và hết sức quan trọng để thu được hình ảnh tốt hơn, đẹp hơn nhằm đáp ứng yêu cầu thông tin khác nhau của người nhận
Các phương pháp xử lý ảnh ban đầu là nâng cao chất lượng và phân tích ảnh Qua nhiều năm phát triển thì các phương pháp này luôn được cải tiến để kết quả được tốt hơn Song song đó giá cả của các máy ảnh kỹ thuật số ngày càng giảm nên
số lượng ảnh được chụp lại ngày càng tăng và phổ biến rộng rãi với mọi người
Tuy nhiên vẫn có một bộ phận không nhỏ máy ảnh kỹ thuật số có độ phân giải chưa cao so với các máy ảnh cơ Ảnh được chụp ra từ các loại máy ảnh này thường bị hiệu ứng răng cưa Nguyên nhân là do số lượng các điểm ảnh CCD (Charge Coupled Device) sử dụng trong các máy ảnh kỹ thuật số thấp để giảm chi phí sản xuất Các phương pháp xử lý ảnh luôn được cải thiện để thay thế cho chi phí sản xuất
Từ những lý do trên, em đã chọn đề tài “Siêu độ phân giải cho hình ảnh sử dụng phương pháp hồi quy hạt nhân hửu hướng” cho bài nghiên cứu của
mình
Có rất nhiều thuật toán xử lý ảnh nhằm nâng cao độ phân giải đã được xây dựng trên thế giới Tuy nhiên ở Việt Nam xử lý ảnh chỉ mới được đưa vào giảng dạy ở bậc đại học trong khoảng thời gian gần đây Việc nghiên cứu, xây dựng và phát triển các thuật toán về lĩnh vực xử lý ảnh là một vấn đề mới và đang ngày càng được quân tâm nhiều hơn
Đã có một số thuật toán được các bạn sinh viên ở các trường đại học nghiên cứu như: nội suy tuyến tính, truy hồi…Tuy nhiên kết quả vẫn chưa được tối ưu ảnh đầu ra vẫn còn bị nhiễu răng cưa, bị mờ…
Trang 119
Trong đề tài này, em tập trung vào các phương pháp hồi quy nhằm cố gắng khôi phục lại các thông tin tần số cao không bị nhiễu bởi những hạn chế của hệ thống hình ảnh, cũng như các quá trình nén và giải nén ảnh Phép nội suy ở đây không chỉ cho phép phục hồi mà nó còn nâng cao chất lượng ảnh bị nhiễu Tuy nhiên đề tài chỉ dừng lại ở việc xử lý trên ảnh mức xám
Tham khảo thuật toán xử lý ảnh trên mạng, sách báo, bạn bè, thầy cô Sau khi đã nắm rõ được vấn đề thì bắt đầu viết mã giả cho từng phép xử lý Dựa trên công cụ QT Creator và thư viện OpenCv để biên dịch thành code có thể sử dụng được
Trang 12CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
Quá trình xử lý ảnh được xem như là quá trình thu nhận ảnh đầu vào sau
đó áp dụng các phép xử lý lên ảnh nhằm cho ra kết quả như mong muốn Kết quả của ảnh sau khi xử lý có thể là một tấm ảnh “tốt” hơn hoặc một kết luận nào đó về ảnh đầu vào
Các phép xử
lý ảnh
Kết luận
Trang 1311
- Ảnh có thể thu nhận qua camera Thường ảnh thu nhận qua camera là tín hiệu tương tự (loại camera ống kiểu CCIR), nhưng cũng có thể là tín hiệu số hóa (loại CCD – Charge Coupled Device) Ngoài ra, ảnh cũng có thể thu nhận từ
vệ tinh qua các bộ cảm ứng (sensor) hay ảnh, tranh được quét trên scanner
- Tiếp theo là quá trình số hóa (digitalizer) để biến đổi tín hiệu tương tự sang tín hiệu rời rạc (lấy mẫu) và số hóa bằng lượng hóa, trước khi chuyển sang giai đoạn xử lý, phân tích hay lưu trữ lại
Hình 3: Quá trình thu nhận ảnh ở máy ảnh số
- Quá trình phân tích ảnh thực chất bao gồm nhiều công đoạn nhỏ Trước hết là công việc tăng cường ảnh Do những nguyên nhân khác nhau: có thể do chất lượng thiết bị thu nhận ảnh, do nguồn sáng hay do nhiễu mà ảnh có thể bị suy biến Do vậy cần phải tăng cường và khôi phục ảnh để làm nổi bật một số đặc tính của ảnh, hay làm cho ảnh gần giống với trạng thái gốc – trạng thái trước khi ảnh bị biến dạng Giai đoạn tiếp theo là phát hiện các đặc tính như: biên, phân vùng ảnh, trích chọn các đặc tính, v.v…
- Cuối cùng, tùy theo mục đích của ứng dụng mà sẽ là giai đoạn nhận dạng, phân lớp hay áp dụng các hiệu ứng lên ảnh
Trang 14hợp sao cho mắt người cảm nhận về sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như thật Mỗi phần tử trong ma trận là một phần tử ảnh
2 Các mối quan hệ cơ bản giữa các điểm ảnh
- Lân cận của một điểm ảnh: Một điểm ảnh p tại tọa độ (x, y) có các lân cận theo chiều ngang và chiều dọc là: (x + 1, y), (x – 1, y), (x, y + 1), (x, y - 1)
- Tập hợp các điểm ảnh trên được gọi là lân cận 4 của p, ký hiệu N4(p) Mỗi điểm ảnh
có khoảng cách đơn vị đến (x, y), và nếu (x, y) nằm trên biên của ảnh thì lân cận của
nó có thể nằm ngoài ảnh
- Các lân cận chéo của p có tọa độ: (x + 1, y + 1), (x + 1, y - 1), (x - 1, y + 1), (x - 1, y - 1)
- Tập lân cận chéo cùng với lân cận 4 tạo thành lân cận 8 của p, kí hiệu N8(p)
Hình 4: Lân cận của một điểm ảnh
- Liên kết giữa các điểm ảnh: Các mối liên kết được sử dụng để xác định giới hạn của đối tượng vật thể hoặc xác định vùng trong một ảnh Một liên kết được đặc trưng bởi tính liên kết giữa các điểm và mức xám của chúng
- Giả sử V là tập các giá trị mức xám Một ảnh có các giá trị cường độ sáng theo thang mức xám từ 32 đến 64 được mô tả như sau:
+ Liên kết m (liên kết hỗn hợp): Hai điểm ảnh p và q với các giá trị cường độ sáng V
được nói là liên kết m nếu: q thuộc N4(p) hoặc q thuộc ND(p)
Trang 15+ Định nghĩa: Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng
giá trị số tại điểm đó
+ Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (mức 256 là
mức phổ dụng) Lý do từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám
+ Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức
xám ở các điểm ảnh có thể khác nhau
+ Ảnh nhị phân: ảnh chỉ có 2 mức đen, trắng phân biệt Nói cách khác mỗi
điểm ảnh nhị phân chỉ có thể là 0 hoặc 1
+ Ảnh màu: trong hệ màu RGB (Red, Green, Blue) để tạo nên hệ thống màu,
người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu: 28*3
+ Biểu diễn bằng mã chạy (Run – Length Code)
+ Biểu diễn bằng mã xích (Chaine - Code)
+ Biểu diễn bằng mã tứ phân (Quad-Tree Code)
- Biểu diễn bằng mã chạy: Phương pháp này thường biểu diễn cho vùng ảnh và áp dụng cho ảnh nhị phân Một vùng ảnh R có thể mã hóa đơn giản nhờ một ma trận nhị phân: U(m, n) = 1 nếu (m, n) thuộc R
U(m, n) = 0 nếu (m, n) không thuộc R
Trong đó: U(m, n) là hàm mô tả mức xám ảnh tại tọa độ (m, n) Với cách biểu diễn trên, một vùng ảnh được mô tả bằng một tập các chuỗi 0 hoặc 1
Giả sử chúng ta mô tả ảnh nhị phân của một vùng ảnh được thể hiện theo tọa độ (x, y) theo các chiều và đặc tả chỉ đối với giá trị “1”
Trang 16Khi đó dạng mô tả có thể là: (x, y)r; trong đó (x, y) là tọa độ, r là số lượng các bit có giá trị “1” liên tục theo chiều ngang hoặc dọc
Hình 5: Minh họa ảnh biểu diễn bằng mã loạt dài
- Biểu diễn bằng mã xích: Phương pháp này thường dùng để biểu diễn đường biên ảnh Một đường bất kỳ được chia thành các đoạn nhỏ Nối các điểm chia, ta có các đoạn thẳng kế tiếp được gán hướng cho đoạn thẳng đó tạo thành một dãy xích gồm các đoạn Các hướng có thể chọn 4, 8, 12, 24… mỗi hướng được mã hóa theo số thập phân hoặc số nhị phân thành mã của hướng
Hình 6: Minh họa ảnh biểu diễn bằng mã xích
Biểu diễn bằng mã tứ phân: Phương pháp mã tứ phân xem một vùng ảnh được bao kín bởi một hình chữ nhật Vùng này được chia làm 4 vùng con Nếu vùng con gồm toàn điểm đen (1) hay toàn điểm trắng (0) thì không cần chia tiếp Trong trường hợp ngược lại, vùng con gồm cả đen và trắng gọi là vùng xám tiếp tục được chia làm 4 vùng con tiếp Quá trình chia dừng lại khi không thể chia tiếp được nữa, có nghĩa là vùng con khi chứa thuần nhất điểm đen hay trắng Như vậy, cây biểu diễn gồm một chuỗi các kí hiệu b, w, g kèm theo ký hiệu mã hóa 4 vùng con Biểu diễn theo phương
Trang 17- Tuy các định dạng này khác nhau, song chúng đều tuân thủ theo một cấu trúc chung nhất Nhìn chung, một tệp ảnh bất kỳ thường bao gồm 3 phần:
+ Header: phần đầu tệp
+ Data Compression: dữ liệu nén
+ Palette Color: màu của tệp
Header Là phần chứa các thông tin về kiểu ảnh, kích thước,
độ phân giải, số bit dùng cho 1 pixel, cách mã hóa,
vị trí bảng màu…
Data Compression Số liệu ảnh được mã hóa bởi kiểu mã hóa chỉ ra trong
phần Header
Palette Color Bảng màu không nhất thiết phải có, ví dụ khi ảnh là
đen trắng Nếu có, bảng màu cho biết số màu dùng trong ảnh và bảng màu được sử dụng để hiện thị màu của ảnh
Bảng cấu trúc một tệp ảnh
- Ảnh BMP (Bitmap): là ảnh được mô tả bởi một ma trận các giá trị số xác định
và bảng màu của các điểm ảnh tương ứng khi hiển thị Ưu điểm của ảnh Bitmap
là tốc độ vẽ và tốc độ xử lý nhanh Nhược điểm của nó là kích thước rất lớn
- Ảnh JPEG (Joint Photographic Experts Group): Đây là một định dạng ảnh
được hỗ trợ nhiều trên trình duyệt web Ảnh JPEG được phát triển để nén dung lượng và lưu trữ ảnh chụp, và được sử dụng tốt nhất cho đồ họa có nhiều màu sắc, ví dụ như là ảnh chụp được scan File Ảnh JPEG là ảnh Bitmap đã được nén lại
- Ảnh GIF (Graphics Interchange Format): Ảnh GIF được phát triển dành cho
những ảnh có tính chất thay đổi Nó được sử dụng tốt nhất cho đồ họa có ít màu, ví dụ như là ảnh hoạt hình hoặc là những bức vẽ với nhiều đường thẳng File ảnh GIF là những ảnh Bitmap được nén lại
- Có hai sự khác nhau cơ bản giữa ảnh GIF và ảnh JPEG: