Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN NGUYẾN ĐỒNG SỸ NỘI SUY BỞI HÀM RBF VÀ ỨNG DỤNG TRONG ĐỒ HỌA M
Trang 1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN
NGUYẾN ĐỒNG SỸ
NỘI SUY BỞI HÀM RBF VÀ ỨNG DỤNG
TRONG ĐỒ HỌA MÁY TÍNH
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Thái Nguyên – 2010
Trang 2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
NGUYỄN ĐỒNG SỸ
NỘI SUY BỞI HÀM RBF VÀ ỨNG DỤNG
TRONG ĐỒ HỌA MÁY TÍNH
Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số : 60 48 01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS TS ĐẶNG QUANG Á
Thái Nguyên – 2010
Trang 31
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
MỤC LỤC
MỞ ĐẦU 4
Chương 1 TỔNG QUAN VỀ NỘI SUY HÀM NHIỀU BIẾN 5
1.1 Khái niệm cơ bản về nội suy và xấp xỉ hàm số 5
1.1.1 Bài toán nội suy hàm số 5
1.1.2 Bản chất của phương pháp nội suy 7
1.2 Nội suy hàm một biến 8
1.2.1 Phát biểu bài toán 8
1.2.2 Nội suy và xấp xỉ đa thức 9
1.2.3 Nội suy bởi hàm ghép trơn 9
1.3 Nội suy và xấp xỉ hàm nhiều biến 11
1.3.1 Nội suy hàm hai biến 11
1.3.2 Nội suy hàm ba biến 12
Chương 2 NỘI SUY BỞI HÀM RBF 13
2.1 Hàm cơ sở bán kính và các tính chất 13
2.2 Nội suy dữ liệu phân tán bởi hàm RBF 13
2.2.1 Phát biểu bài toán 13
2.2.2 Một số hàm cơ sở 15
2.2.3 Thành phần đa thức RBF 16
2.2.4 Phép nội suy trơn nhất 16
2.3 Hạn chế của nội suy sử dụng RBF và giải pháp 17
2.3.1 Vấn đề dữ liệu lớn 17
2.3.2 Dữ liệu có nhiễu 17
2.3.3 Một số giải pháp khắc phục 19
2.4 Các phương pháp nhanh nội suy sử dụng RBF 21
2.4.1 Giảm tâm 21
2.4.2 Làm trơn dữ liệu nhiễu 22
Trang 4Chương 3
BÀI TOÁN BIỂU DIỄN VÀ KHÔI PHỤC CÁC ĐỐI TƯỢNG 3D 24
3.1 Bài toán biểu diễn và khôi phục dữ liệu phân tán 24
3.1.1 Giới thiệu 24
3.1.2 Mô tả bài toán 25
3.2 Khôi phục đối tượng 3D từ tập điểm trên bề mặt sử dụng RBF 26
3.2.1 Trùng khớp tới dữ liệu bề mặt 3D 26
3.2.1.1 Tạo dữ liệu dày đặc từ các pháp tuyến bề mặt 27
3.2.1.2 Đảm bảo khoảng cách thích hợp tới dữ liệu bề mặt 28
3.2.1.3 Hợp lệ khoảng cách chiếu và nhiễu 30
3.2.2 Chuẩn hóa bề mặt 31
3.2.2.1 Các điểm hạt giống của bề mặt chuẩn 32
3.2.2.2 Tối ưu lưới 33
3.2.2.3 Bao biên 33
Chương 4 XÂY DỰNG VÀ CÀI ĐẶT THỬ NGHIỆM NỘI SUY BỞI RBF 35
4.1 Phân tích và xây dựng chương trình 35
4.1.1 Hàm tạo lập RBF 35
4.1.2 Hàm nội suy RBF 40
4.1.3 Một số file xây dựng chương trình 42
4.2 Kết quả thử nghiệm nội suy bởi RBF 59
KẾT LUẬN 63
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 63
TÀI LIỆU THAM KHẢO 64
PHỤ LỤC 66
1 Môi trường lập trình MATLAB 66
2 Các khả năng thực hiện của Matlab 66
3 Chế độ làm việc 67
4 Câu lệnh và biến 68
5 Hàm và tạo hàm 71
6 Các câu lệnh điều khiển của Matlab 72
7 Đồ họa 3D 75
Trang 53
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
DANH MỤC CÁC HÌNH
Hình 1.1 Đồ thị biểu diễn tín hiệu trước nội suy 6
Hình 1.2 Đồ thị biểu diễn tín hiệu sau khi nội suy 6
Hình 1.3 Nội suy hàm y = cos(x) 8
Hình 1.4 Nội suy spline bậc 3 hàm y = sin(x) + x2 10
Hình 1.5 Nội suy hàm hai chiều interp2 11
Hình 1.6 Nội suy hàm ba chiều interp3 12
Hình 2.1 Nội suy một chiều RBF hàm y = sin(x) 15
Hình 2.2 Dữ liệu có nhiễu với cường độ 0.5 18
Hình 2.3 Bề mặt nội suy dữ liệu có nhiễu 18
Hình 2.4 Độ chính xác đánh giá và độ chính xác trùng khớp 20
Hình 2.5 Minh họa giảm tâm RBF 21
Hình 3.1 Phục hồi dữ liệu phân tán 24
Hình 3.2 Điểm kết thúc bề mặt (off-surface) 27
Hình 3.3 Thêm vào các điểm off-surface 28
Hình 3.4 Nội suy dữ liệu khi chưa được hợp lệ 29
Hình 3.5 Nội suy dữ liệu khi đã hợp lệ giá trị 29
Hình 3.6 Nội suy dữ liệu sau khi hợp lệ khoảng cách 30
Hình 3.7 Chuẩn hóa bề mặt bằng Marching Cubes 31
Hình 3.8 Một số dạng chuẩn hóa bề mặt 32
Hình 3.9 Các kiểu tối ưu lưới 33
Hình 3.10 Bề mặt mở không có bao biên 34
Hình 3.11 Bề mặt đóng với biên dương 34
Hình 3.12 Bề mặt đóng với biên âm 34
Hình 4.1 Giao diện chương trình demo 59
Hình 4.2 Đồ thị so sánh hàm nội suy RBF và hàm interp1 59
Hình 4.3 Đồ thị biểu diễn một số dạng hàm cơ bản 60
Hình 4.4 Giao diện chức năng RBF 2D 60
Hình 4.5 Kết quả nội suy hàm z = x*exp(-x2-y2) 61
Hình 4.6 Nội suy đối tượng 3D với 2000 điểm 61
Trang 6Hình 4.7 Kết quả xử lý dữ liệu trong cửa sổ lệnh 62
Trang 7Trong đồ họa máy tính bài toán khôi phục và biểu diễn các đối tượng 3D là một trong các bài toán cơ bản Công cụ quan trọng để giải quyết bài toán này là lý thuyết nội suy hàm số nhiều biến Để nội suy hàm số từ một tập điểm đã biết thông thường người ta sử dụng các hàm ghép trơn (spline) và các biến thể của nó Từ khoảng hai chục năm nay người ta đã và đang phát triển một kỹ thuật nội suy mới có độ chính xác cao Đó là nội suy bởi hàm cơ
sở bán kính (radial basis functions) viết tắt là RBF Phương pháp nội suy này
đã được sử dụng trong nhiều lĩnh vực của CNTT như xử lý tín hiệu, xử lý ảnh
và lý thuyết điều khiển Một số phần mềm về hàm RBF và các ứng dụng cũng
đã được phát triển Vì thế, việc tìm hiểu về hàm RBF và nghiên cứu phát triển các ứng dụng của nó trong đồ họa máy tính là một việc làm thiết thực và có ý
nghĩa khoa học cũng như thực tiễn Đề tài luận văn thạc sĩ “Nội suy bởi hàm
RBF và ứng dụng trong đồ họa máy tính” chính là nhằm mục đích trên
Em xin được gửi lời biết ơn sâu sắc tới Thầy giáo PGS TS Đặng
Quang Á, người đã tận tình chỉ bảo và tạo những điều kiện tốt nhất để em
hoàn thành luận văn này
Em cũng xin chân thành cảm ơn các Thầy cô giáo Khoa Công nghệ Thông tin Trường Đại học Thái Nguyên, các Thầy cô trong Viện Công nghệ Thông tin đã trang bị kiến thức và góp ý cho em trong quá trình thực hiện đề tài
Trang 8Chương 1 TỔNG QUAN VỀ NỘI SUY HÀM NHIỀU BIẾN
1.1 Khái niệm cơ bản về nội suy và xấp xỉ hàm số
1.1.1 Bài toán nội suy hàm số
Một trong các bài toán cơ bản của giải tích số là nội suy hàm số Bài toán thường gặp trong các trường hợp sau:
i) Cần phục hồi hàm số f(x) đối với mọi điểm x thuộc khoảng [a, b], khi cho trước giá trị của hàm tại một số điểm Các giá trị này thường là các giá trị quan sát hoặc đo đạc được
Xét ví dụ : Cho quan hệ hàm số y = f(x), dạng hàm là chưa biết nhưng biết sự phụ thuộc của đại lượng y vào đại lượng x bằng phép đo thực nghiệm theo bảng :
x x0 x1 x2 xn
y y0 y1 y2 yn
Xác định giá trị của y với x xi (i = 1, ,n) trở thành bài toán nội suy Dựa vào bảng trên ta phải ước lượng đại lượng y ứng với đại lượng x khi x không có trong bảng bằng phương pháp nội suy hay phương pháp xấp xỉ [1]
Ví dụ minh họa sử dụng phép nội suy : Gia tăng tỉ lệ mẫu trong tín hiệu biến thiên theo thời gian t (Code trong MATLAB)
Trang 97
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
stem(y(1:120));
title('Sau khi noi suy');
Kết quả như sau:
Tin hieu ban dau
Hình 1.1 Đồ thị biểu diễn tín hiệu trước nội suy
Sau khi noi suy
Hình 1.2 Đồ thị biểu diễn tín hiệu sau khi nội suy
Trang 10Nội suy đa thức là việc xác định đa thức y = P(x) thỏa mãn điều kiện nội suy P(xk) = yk với k = 0, ,n
ii) Khi hàm f(x) cho bởi công thức quá phức tạp đòi hỏi khối lượng tính toán lớn và ta cần tính giá trị hàm f tại các điểm x thuộc [a, b] nào đó Khi đó người ta thường tính gần đúng f(x) tại một số điểm rồi xây dựng công thức nội suy để tính các giá trị khác và làm tăng tốc độ tính toán
iii) Ngoài ra nội suy hàm số còn được dùng để xây dựng các công thức tính đạo hàm, tính tích phân số hoặc tìm nghiệm gần đúng của phương trình
1.1.2 Bản chất của phương pháp nội suy
Bản chất của nội suy là thay hàm f(x) bằng hàm (x) sao cho :
(x) đơn giản, dễ tính toán
(x) = f(x) tại một số điểm đã biết
Thông thường chọn (x) có dạng đơn giản là đa thức bậc m
( ) ( ) 0
0 1 1 1
a x a x P
m m m
Với (x) = Pm(x), ta có đa thức nội suy hay đa thức xấp xỉ
Ví dụ xét đồ thị hàm y = cos(x) với x thuộc [0, 2pi]
Tiến hành nội suy đa thức trong MATLAB
Trang 11data error !!! can't not
read
Trang 12data error !!! can't not
read
Trang 13data error !!! can't not
read
Trang 14data error !!! can't not
read
Trang 15data error !!! can't not
read
Trang 17data error !!! can't not
read
Trang 18data error !!! can't not
read
Trang 19data error !!! can't not
read
Trang 20data error !!! can't not
read
Trang 21data error !!! can't not
read
Trang 22data error !!! can't not
read
data error !!! can't not
read
Trang 23data error !!! can't not
read
data error !!! can't not
read
Trang 24data error !!! can't not
read
data error !!! can't not
read
Trang 26read
Trang 27data error !!! can't not
read