Nội suy bởi hàm ghép trơn Nội suy hàm số bởi đa thức là phương pháp xấp xỉ hàm số dựa vào giá trị của hàm tại một số các điểm nút.. Giảm tâm Theo truyền thống, để nội suy các giá trị
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
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 3MỤ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 5DANH 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 7MỞ ĐẦU
Đồ họa máy tính ngày nay được ứng dụng rất rộng rãi trong nhiều lĩnh vực khoa học, kĩ thuật, nghệ thuật điển hình như bài toán mô phỏng và chẩn đoán hình ảnh, tái tạo hình ảnh, hỗ trợ thiết kế, đào tạo huấn luyện… Các ứng dụng đồ họa rất đa dạng, phong phú và phát triển liên tục không ngừng
Trong đồ 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 9stem(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 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 11Hình 1.3 Nội suy hàm y = cos(x)
1.2 Nội suy hàm một biến
1.2.1 Phát biểu bài toán
Trên đoạn [a, b] cho tập các điểm nút a ≤ x0 < x1 < … < xn ≤ b và tại các điểm này cho các giá trị f(xi) (i = ) của hàm f(x) Cần xây dựng hàm g(x)
dễ tính và trùng với với hàm f(x) tại các điểm nút trên tức là g(xi) = f(xi) (i= )
Trang 12Một số dạng hàm g(x) thường được dùng để nội suy hàm số :
- Đa thức đại số
- Hàm hữu tỉ
- Đa thức lượng giác
- Hàm spline
1.2.2 Nội suy và xấp xỉ đa thức
Biết quan hệ y = f(x) bởi một số cặp giá trị (x0, y0), (x1, y1),… (x n, yn)
Ta chọn hàm nội suy là một đa thức bậc m = n
) ( ) ( 0 0 1 1 1 1x a x a x a x a x P x m m m m m Từ dãy giá trị (xi, yi) ta có : n n m n m m n m m m m m m m m m y a x a x a x a y a x a x a x a y a x a x a x a 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 0 1 0
(2)
Xác định đa thức nội suy bằng cách tìm các hệ số a0, a1, , am, tức là giải hệ phương trình đại số tuyến tính :
;
\
;
;
;
;
0
0
1
1
1
1 1 1
0
1 0 0
b A a
y
y
y b a
a
a a
x x
x
x x
x
x x
x A b
a
A
n
m m
n
m n
m n
m m
m m
1.2.3 Nội suy bởi hàm ghép trơn
Nội suy hàm số bởi đa thức là phương pháp xấp xỉ hàm số dựa vào giá trị của hàm tại một số các điểm nút Nếu muốn đạt độ chính xác cao cần phải
sử dụng nhiều nút nội suy, khi đó bậc của đa thức sẽ lớn Điều này không thuận tiện cho việc tính toán và sai số tính toán có thể tăng lên Để khắc phục
Trang 13nhược điểm trên người ta sử dụng các đa thức cấp thấp trên mỗi đoạn nhỏ và ghép chúng lại với nhau sao cho kết quả là một hàm trơn tru Hàm trơn trên toàn đoạn lớn gọi là hàm ghép trơn (spline)
Ví dụ với hàm y = sin(x) + x2 trên đoạn [0, 2], bước tăng 0.2; sử dụng hàm nội suy spline bậc 3 trong môi trường MATLAB
0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Hình 1.4 Nội suy spline bậc 3 hàm y = sin(x) + x2
Trang 141.3 Nội suy và xấp xỉ hàm nhiều biến
1.3.1 Nội suy hàm hai biến
Cho biết quan hệ z = f(x, y), nếu không biết biểu thức của hàm f(x, y)
mà chỉ biết giá trị của hàm này tại một số điểm lưới :
),1((
;),1()
,
(x i y j D i m j n
),( i j
Để ước lượng các giá trị của z tại các điểm (x, y) không nằm trên lưới phải sử dụng phép nội suy 2 chiều
Ví dụ minh họa sử dụng hàm nội suy interp2 trong MATLAB
[X,Y] = meshgrid(-3:.25:3); Z = peaks(X,Y);
0 2
-5 0 5 10 15 20
noi suy 2 chieu
Hình 1.5 Nội suy hàm hai chiều interp2
Trang 151.3.2 Nội suy hàm ba biến
Dựa vào giá trị đã biết của hàm tại một số điểm trong không gian ba chiều để tìm ra các giá trị nội suy giữa tập các điểm ba chiều đã cho Thông thường có 3 phương pháp nội suy cơ bản đối với dữ liệu ba chiều :
Nearest neighbor interpolation (Nội suy láng giềng gần nhất)
Linear interpolation (Nội suy tuyến tính)
Cubic interpolation (Nội suy bởi hàm spline bậc 3)
[x,y,z,v] = flow(10);
[xi,yi,zi] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3);
vi = interp3(x,y,z,v,xi,yi,zi);
slice(xi,yi,zi,vi,[6 9.5],2,[-2 2]), shading flat
title('noi suy 3 chieu')
0 2
noi suy 3 chieu
Hình 1.6 Nội suy hàm ba chiều interp3
Trang 16Chương 2 NỘI SUY BỞI HÀM RBF
1
)(
)()
2.2 Nội suy dữ liệu phân tán bởi hàm RBF
2.2.1 Phát biểu bài toán
Cho tập N điểm phân tán xi và các giá trị tương ứng fi đo được tại các điểm đó Bài toán đặt ra là tìm một hàm nội suy RBF có dạng s(x) thỏa mãn s(xi) = fi với i = 1,…, n
Gọi quy trình tìm hàm nội suy s nói trên là sự trùng khớp (fitting), hàm RBF trùng khớp được định nghĩa bởi các hệ số λi của hàm cơ sở φ , các hệ số của đa thức p trong hàm tổng s(x)
Nếu ta đặt {p1, , pM} là các đa thức cơ sở của không gian các đa thức bậc ≤ M và c=(c1,…, cM)T là các hệ số theo cơ sở trên để biểu thị p(x) thì hàm nội suy dạng s(xi) = fi có thể biểu thị bằng hệ phương trình tuyến tính :
Trang 17f PC
Ax
Để khép kín hệ phương trình người ta bổ sung thêm điều kiện :
0
T
P
Với :
) ( )
( ) (
) ( ) ( ) ( 2 1 1 1 2 1 1 n m n n m x p x p x p x p x p x p P ||) (|| ,
2 1
1 12
11
i j ij
nn n
n
n
x x a
a a
a
a a
a
n m
c c f
f f
1 1
1
, ,
Do đó có thể viết hệ phương trình trên dưới dạng ma trận :
0 0
f c
P
P A
T
(4)
Trong đó :
Ai,j = φ(|| xi - xj ||) với i, j = 1,…,n là ma trận nội suy
Pi,j = pj(xi) với i, j = 1,…,n và j = 1,…,m
f = (f1,…,f2)T
Giải hệ phương trình trên ta tính được hàm nội suy s(x)
Trang 18op=rbfcreate(x, y); rbfcheck(op);
fi = rbfinterp(xi, op); %ham tu tao trong MATLAB
subplot(2,1,2); plot(x, y,'o', xi, fi,xi, sin(xi),'r'); title('noi suy RBF');
Trang 192.2.4 Phép nội suy trơn nhất (Smoothest Interpolants)
Các hàm spline song điều hòa và spline tam điều hòa được biết như là nội suy trơn nhất trong ngữ cảnh chúng làm cực tiểu hàm năng lượng nào đó
và nội suy dữ liệu Xét ví dụ cho tập các điểm nút 3
x i i N và một tập các giá trị hàm f i N i1 R, hàm s*(x) thỏa mãn điều kiện nội suy s*(xi) = f i và cực tiểu hóa tích phân của bình phương đạo hàm cấp 2 dạng :
s* = arg min||s||
trong đó :
||s||2=
dx z
y
x s z
x
x s y
x
x s z
x s y
x s x
2 2
2 2
2
2
2 2
2
2 2
2
2
)(2)(2)(2)()
()
(
là một spline song điều hòa hoặc spline bản mỏng;
||s||2 là độ đo năng lượng của đạo hàm bậc hai của hàm s(x) Spline tam điều hòa làm cực tiểu năng lượng tương ứng trong đạo hàm cấp ba của s(x), các RBF này sẽ làm thay đổi độ trơn giữa các giá trị của các mốc nội suy
Trang 202.3 Hạn chế của nội suy sử dụng RBF và giải pháp
f c
P
P A
T
Việc giải hệ phương trình trên bằng cách thông thường hay còn gọi là phương pháp trực tiếp sẽ mất rất nhiều thời gian và bộ nhớ khi số điểm nội suy N tăng nhanh và lớn hơn vài nghìn điểm Điều này đặc biệt đúng với các hàm cơ sở dạng spline đa điều hòa (polyharmonic spline), là các hàm có đặc trưng cực tiểu năng lượng rất đáng chú ý, là những công cụ nội suy trơn nhất
Hệ phương trình trên không những đòi hỏi bộ nhớ tỉ lệ với N2 và việc tính toán để giải nó tỉ lệ với N3
mà sự liên quan của hệ đó với việc đánh giá hàm s(x) qua phương trình :
1
)(
)()
Hình dưới đây được minh họa trong môi trường Matlab, tạo nhiễu bằng cách chọn một hàm với cường độ nhiễu 0.5
Trang 21Hình 2.2 Dữ liệu có nhiễu với cường độ 0.5
Sau khi trùng khớp dữ liệu bằng RBF đối với dữ liệu này cho ra sự đánh giá trên bề mặt nội suy dữ liệu nhiễu có lỗi :
Hình 2.3 Bề mặt nội suy dữ liệu có nhiễu
Trang 22- Làm trơn spline (spline smoothing)
b Dùng thuật toán làm giảm số tâm của RBF khi số điểm nội suy khá lớn
Các thử nghiệm của FarField cho thấy khi nội suy dữ liệu 3D khó có thể đạt được dấu bằng tại các mốc cần nội suy nghĩa là chỉ có thể xấp xỉ hàm s(xi) fi Do đó xuất hiện khái niệm độ chính xác trùng khớp (fitting accuracy) kí hiệu m_fit, đó là giá trị sai lệch lớn nhất giữa các giá trị RBF và các giá trị hàm fi cần nội suy tại các điểm xi đã cho
m_fit = Max|s(xi – fi)| với i =0,…,N
Đối với mỗi điểm xi đã cho, việc tính giá trị RBF s(xi) được gọi là việc đánh giá RBF (evaluating the RBF) tại điểm xi đó Mặt khác vì các phương pháp nội suy là xấp xỉ nhanh cho nên một giá trị đúng RBF tại các mốc thường là không đạt được Vì vậy nếu gọi ai là giá trị xấp xỉ của một RBF s tại mốc xi thì độ chính xác đánh giá (evaluation accuracy) kí hiệu m_eval, được định nghĩa là độ lệch lớn nhất giữa giá trị đúng RBF s tại xi với giá trị xấp xỉ
ai tại đó : m_eval = max|s(xi – ai)|
Thông thường độ chính xác đánh giá m_eval nên phải cao hơn độ chính xác trùng khớp m_fit nghĩa là ta cần đạt được m_eval < m_fit
Trang 23Hình 2.4 Độ chính xác đánh giá và độ chính xác trùng khớp[4]
Hình trên minh họa trường hợp nội suy dữ liệu 1D bởi FastRBF, dữ liệu được chỉ ra cùng với các vạch chỉ độ chính xác trùng khớp, đường bao trên dưới chỉ độ chính xác đánh giá
Qua các giải pháp trên ta có thể thấy được sự đánh giá phương pháp thông qua bảng so sánh sau :
Phương pháp trực tiếp
Phương pháp FastRBF
Trang 24
2.4 Các phương pháp nhanh nội suy sử dụng RBF
2.4.1 Giảm tâm
Theo truyền thống, để nội suy các giá trị fi tại tập điểm xi thì tất cả các điểm xi sẽ được sử dụng làm tâm RBF và giải hệ phương trình biểu thị tuyến tính để tìm ra các hệ số hàm RBF Phương pháp đó thường được gọi là trùng khớp trực tiếp (Direct fit) Tuy nhiên để giảm chi phí tính toán thì thuật toán tham lam (Greedy algorithm) được đề xuất với mục đích nhằm giảm số tâm RBF Ý tưởng chính của thuật toán là lặp lại việc trùng khớp ở trong một độ chính xác trùng khớp mong muốn
Hình 2.5 Minh họa giảm tâm RBF[4]
Thuật toán mô tả như sau :
Bước 1 Chọn tập con các nút nội suy xi và trùng khớp một RBF chỉ bằng các nút này
Bước 2 Đánh giá độ lệch ei = fi – s(xi) với mọi nút
Bước 3 Nếu max{|ei|} < độ chính xác trùng khớp thì dừng
Bước 4 Ngược lại, bổ sung thêm các tâm mới ứng với các ei lớn
Bước 5 Lặp lại việc trùng khớp và quay lại bước 2
Nếu như độ chính xác trùng khớp m_fit được chỉ ra tại mỗi điểm thì điều kiện ở bước 3 được thay thế bởi |ei|<m_fit
Trang 25Việc giảm tâm làm tăng tốc độ sự trùng khớp và làm giảm thời gian đánh giá mà không làm thay đổi độ chính xác Do vậy phương pháp này chỉ
có thể thực hiện khi việc nội suy RBF có độ chính xác giới hạn Phương pháp giảm tâm phù hợp nhất đối với dữ liệu mà nó có các vùng dữ liệu đáng kể là trơn so với mật độ lấy mẫu, nghĩa là dữ liệu được lấy mẫu khắp nơi liên quan đến mức thể hiện chi tiết và độ chính xác được đặt ra
2.4.2 Làm trơn dữ liệu nhiễu
a Làm trơn spline (Spline Smoothing)
Làm trơn dữ liệu có thể đạt được trong một bộ lọc RBF bằng việc sửa đổi tiêu chuẩn làm trơn thành việc tìm kiếm cực tiểu sau :
s
1
2 2
))((
1
||
||
Trong đó ρ ≥ 0 và || ρ||2 biểu thị độ bất lợi làm trơn
Tham số ρ như là mộ hằng số điều chỉnh Khi bằng 0 thì các hằng số điều chỉnh không thể mở rộng và RBF đi qua trực tiếp các điểm dữ liệu Khi khác 0 các hằng số điều chỉnh có thể dãn ra và RBF được kéo gần các điểm
dữ liệu hơn nhưng không trực tiếp đi qua chúng RBF thỏa mãn phương trình (5) có thể viết dưới dạng ma trận :
f c
P
P I A
ρ Nếu một độ chính xác ε được chỉ rõ cho một bộ lọc RBF khi có tham số làm trơn ρ thì ε là lỗi lớn nhất được phép xảy ra trong phương trình (6) điều
đó thỏa mãn :
Trang 26f c
P
P I A
Công thức này đưa ra các biên lỗi thực tế áp vào các giá trị RBFs đối với từng điểm dữ liệu :
|s(xi) – fi| < ε + ρ|λi| i (9) Khi ρ = 0 thì công thức này làm trơn trên dữ liệu trung thực theo công thức (9)
Khi ρ ≠ 0 thì công thức này làm trơn trên dữ liệu không trung thực do ρ tăng
b Làm trơn trong giới hạn phạm vi trơn nhất
Làm trơn trong phạm vi được giới hạn giả định rằng tồn tại một phạm
vi các giá trị tại từng điểm dữ liệu, trong số đó có giá trị đúng của hàm Phạm
vi dữ liệu này tương tự như các vạch lỗi gắn với dữ liệu thử nghiệm Sự trùng khớp trong phạm vi được giới hạn tìm kiếm một hàm trơn nhất mà nó đi bên trong các vạch lỗi của các điểm dữ liệu Tham số chủ chốt của phương pháp này là một sự ước lượng cường độ nhiễu tại mỗi điểm dữ liệu Một cách toán học chúng ta có thể biểu diễn điều này bằng việc sửa đổi lại điều kiện nội suy trong phương trình : s(xi) = fi với i = 1,…,n để tìm kiếm một RBF thỏa mãn :
li ≤ s(xi) ≤ ui ; i = 1,2, ,N
Các biên li và ui tương tự như các vạch lỗi (error bars) của các giá trị hàm fi Nếu ta đặt li = fi – ε và ui = fi + ε thì chúng ta đang tìm kiếm một spline trơn nhất nằm trong ε
Trang 27
Chương 3 BÀI TOÁN BIỂU DIỄN VÀ KHÔI PHỤC
CÁC ĐỐI TƯỢNG 3D
3.1 Bài toán biểu diễn và khôi phục dữ liệu phân tán
3.1.1 Giới thiệu
Các đối tượng 3D trong thực tế như các mẫu vật cổ, các bộ phận trong
y tế … vì lý do nào đó có thể bị hư hại và chỉ còn một vài đặc điểm nhận dạng nào đó Khi đó nảy sinh nhu cầu khôi phục lại các phần bị hỏng và thể hiện lại hình ảnh các đối tượng Vấn đề này được chuyển thành bài toán nội suy một tập dữ liệu phân tán trong đó các điểm dữ liệu được nội suy là đã biết và tương ứng với các vị trí không bị hư hại trên đối tượng 3D Từ đó có thể suy
ra các giá trị xấp xỉ cần phục hồi tại các vị trí bị hỏng
Hình 3.1 Phục hồi dữ liệu phân tán[2]
Bài toán nội suy một tập dữ liệu phân tán được quy về một hệ phương trình tuyến tính mà tính giải được duy nhất nhờ ràng buộc ma trận nội suy xác định dương Tuy nhiên việc giải hệ này gặp nhiều khó khăn khi dữ liệu là lớn
và khi dữ liệu có nhiễu.Thông thường người ta phải dùng các phương pháp xấp xỉ nhanh để khắc phục các hạn chế đó
Trang 283.1.2 Mô tả bài toán
Dữ liệu vào ra của bài toán :
(Tập các điểm dữ liệu)
Có tổ chức hoặc không
Có định hướng hoặc không
Phân bố không đều hoặc nằm rải rác
Dữ liệu có nhiễu
Một bề mặt hoặc lưới biểu diễn được tối thiểu hóa, có tính liên kết và định hướng
Để thực hiện khôi phục đối tượng từ tập các điểm dữ liệu đầu vào như
đã mô tả, có rất nhiều phương pháp được sử dụng, điển hình là các phương pháp dựa trên sự thể hiện lưới tam giác (triangulation) hay lược đồ Voronoi Tuy nhiên các phương pháp này chỉ cho kết quả ở dạng lưới và chất lượng rất tốt nếu dữ liệu vào là rõ ràng Nếu dữ liệu có nhiễu hoặc rải rác không đều thì kết quả cho sẽ rất hạn chế Gần đây có nhiều phương pháp khôi phục dựa trên việc xây dựng và chuẩn hóa bề mặt ẩn của đối tượng Các phương pháp này tỏ
ra có hiệu quả ngay cả khi dữ liệu có nhiễu hoặc phân bố không đồng đều Kỹ thuật chủ đạo là sử dụng hàm nội suy làm xấp xỉ bề mặt ẩn trơn nhất ẩn chứa sau bề mặt thực của đối tượng Ý tưởng chính của phương pháp này gồm hai bước cơ bản :
Xây dựng bề mặt ẩn gần với bề mặt thực của đối tượng
Tạo ra các điểm trên bề mặt ẩn
Để xác định được một bề mặt ẩn chúng ta có thể sử dụng nhiều phương pháp, điển hình là sử dụng các hàm khoảng cách, phương trình Poisson hay hàm cơ
sở bán kính RBF…
Trang 293.2 Khôi phục đối tượng 3D từ tập điểm trên bề mặt sử dụng RBF
3.2.1 Trùng khớp tới dữ liệu bề mặt 3D
Bề mặt đi qua tập N điểm {xi} với i = 1,…,N được nội suy bởi một RBFs thỏa mãn f(xi) = 0 gọi là bề mặt chuẩn (isosurface) của hàm s Thông thường còn được gọi là bề mặt ẩn (implicit surface) bởi tính ẩn tự nhiên trong
sự xác định chúng Quy trình của sự tạo ra một sự thể hiện rõ ràng một bề mặt như một tập các điểm hay một lưới các đa giác gọi là chuẩn hóa bề mặt (isosurfacing) Tập trung vào việc xây dựng hàm s, ta chọn s để xấp xỉ một hàm có dấu đo khoảng cách tới bề mặt (signed distance –to–surface) của điểm
x, trong đó s(x) là khoảng cách (có dấu) từ x tới bề mặt Các điểm nằm trên cùng một phía của bề mặt được gán các khoảng cách dương, còn các điểm ở phía bên kia bề mặt được gán khoảng cách âm Bề mặt do đó tương ứng với một tập các điểm mà khoảng cách tới chính bề mặt chứa chúng là bằng 0, nghĩa là {x ϵ R3
: s(x) = 0 } Tất cả các điểm dữ liệu đã cho đều nằm trên bề mặt Từ đó tìm kiếm hàm s thỏa mãn :
s(xi) = 0, i = 1,…,N Việc giải hệ phương trình này sẽ sinh ra một lời giải nghiệm tầm thường s(x)
= 0 ở mọi nơi Thêm vào ràng buộc tương ứng với các điểm mà tại đó s khác zero để được nghiệm không tầm thường Ta định nghĩa các điểm ứng với khoảng cách khác zero tới bề mặt là các điểm kết thúc bề mặt (off-surface points) Do đó chọn một tập M điểm off-surface {yi} với i = 1,…,M có giá trị khác zero :
s(yi) = fi ≠ 0; i = 1,…,M trong đó fi là khoảng cách có dấu từ điểm yi tới điểm gần nhất nằm trên bề mặt Các kết quả này tạo thành một hệ N + M phương trình của N + M điểm
Trang 30Để sinh ra các điểm off-surface thì phải có các pháp tuyến bề mặt (surface normals) hoặc ước lượng từ đó Giả định rằng các pháp tuyến bề mặt tồn tại với nhiều nhất các điểm trên đó
Hình 3.2 Điểm kết thúc bề mặt(off-surface)
3.2.1.1 Tạo dữ liệu dày đặc từ các pháp tuyến bề mặt
Khi một pháp tuyến bề mặt n xác định tại một điểm bề mặt p, các điểm off-surface p0 (phía ngoài) và p1 (phía trong) được sinh bởi phương trình:
p0 =p + αn
và p1 =p – βn
trong đó : α, β là các khoảng cách chiếu của các điểm off-surface
Khi thực hiện thêm vào các điểm off-surface kết quả sẽ làm tăng tập dữ liệu
Có thể tạo ra các điểm off-surface từ một phía hoặc hai phía từ pháp tuyến bề mặt, trong trường hợp tạo một phía thì đôi khi là nguyên nhân gây ra sự gợn sóng trong bề mặt chuẩn s(x) = 0 tương ứng với bề mặt được nội suy Khi các pháp tuyến trên cả hai phía được sử dụng thì tất cả các pháp tuyến đã dùng sinh ra hai tập điểm off-surface Điều này có thể tăng kích thước của dữ liệu dày đặc lên gấp ba lần so với số lượng điểm dữ liệu gốc
Các điểm off-surface
điểm bề mặt
Trang 31Các điểm bề mặt với các off-surface được các off-surface được
các pháp tuyến thêm vào 2 phía thêm vào 1 phía
Hình 3.3 Thêm vào các điểm off-surface
Bởi vì ta hiếm khi mong muốn nội suy bộ ba các điểm này nên cần phải thiết lập một con số lớn nhất các điểm được tăng lên, giá trị mặc định là 1.0 nghĩa
là với N điểm đã cho trên bề mặt thì không được có quá N điểm off-surface được thêm vào
3.2.1.2 Đảm bảo khoảng cách thích hợp tới dữ liệu bề mặt
Việc sử dụng các pháp tuyến với một khoảng cách cố định có thể có vấn đề khi có các vùng mảnh hoặc các góc cạnh sẽ tạo ra khoảng cách tới bề mặt không thích hợp Do đó cần phải cố gắng đảm bảo sự phù hợp của dữ liệu bằng cách hợp lệ khoảng cách chiếu theo các pháp tuyến hoặc là bằng cách hợp lệ giá trị mật độ tại điểm chiếu [4] Sự ảnh hưởng của khoảng cách chiếu
và các giá trị mật độ cho kết quả không mong đợi nếu không thực hiện hợp lệ các điểm off-surface
Chiến lược hợp lệ các giá trị mật độ là tìm điểm gần nhất Tìm điểm q trên bề mặt gần điểm off-surface nhất và thiết lập một giá trị mật độ để gán cho khoảng cách từ q tới điểm đó Dấu được quyết định bởi pháp tuyến bề mặt tại q
Phương pháp hợp lệ khoảng cách chiếu : Khi sinh ra một điểm poff surface từ một điểm p trên bề mặt, chúng ta tìm điểm q trên bề mặt gần nó nhất Nếu q không phải là p thì khoảng cách chiếu được giảm cho đến khi p gần với điểm poff nhất
Trang 32off-Xét ví dụ trong việc hợp lệ dữ liệu [4] cho hình ảnh bàn tay (hình a), trong đó một độ dài pháp tuyến cố định 15mm được dùng mà không có sự hợp lệ nào Các điểm được tô màu biểu thị khoảng cách của chúng tới bề mặt, các điểm bề mặt gốc có màu green, các điểm nằm ngoài có màu red, các điểm phía trong có màu blue Điều này thể hiện dữ liệu khoảng cách tới bề mặt không tốt như kết quả thấy được sau khi nội suy RBF
(a) Không hợp lệ Kết quả
Hình 3.4 Nội suy dữ liệu khi chưa được hợp lệ
Sau khi làm hợp lệ các giá trị mật độ (hình b), do không thuận lợi trong việc lựa chọn khoảng cách chiếu, nhiều điểm trùng với các điểm bề mặt gốc nên kết quả biểu diễn chưa được như mong muốn
(b) Hợp lệ giá trị Kết quả
Hình 3.5 Nội suy dữ liệu khi đã hợp lệ giá trị
Trang 33Sử dụng sự hợp lệ khoảng cách chiếu của các pháp tuyến (hình c), các pháp tuyến xung quanh các ngón tay ngắn lại và các điểm blue bên trong giữ lại trong từng ngón tay, tương tự cho các pháp tuyến phía ngoài do đó cho ra một kết quả thể hiện sự hợp lý dữ liệu khoảng cách tới bề mặt
Hình 3.6 Nội suy dữ liệu sau khi hợp lệ khoảng cách
3.2.1.3 Hợp lệ khoảng cách chiếu và nhiễu
Khi làm thích hợp khoảng cách chiếu dữ liệu có nhiễu, có thể xuất hiện một số nhỏ các pháp tuyến không mong đợi Điều này có thể gây ra sự gợn sóng trong bề mặt và làm giảm hiệu quả của việc làm trơn dữ liệu khi độ chính xác trùng khớp nhỏ hơn mức nhiễu Nếu có một biên chính xác trên nhiễu và khi trùng khớp nó với tùy chọn errorbar bằng độ chính xác trùng khớp tại mức nhiễu thì việc thay đổi khoảng cách chiếu nhỏ nhất sẽ không có ảnh hưởng Tuy nhiên nếu độ chính xác trùng khớp là quá chặt thì việc có một khoảng cách chiếu cực tiểu xung quanh gấp hai lần ngưỡng nhiễu mong đợi,
có thể cải thiện tính trơn của bề mặt Các điểm sinh ra tại một khoảng cách nhỏ hơn khoảng cách cực tiểu thì sẽ được loại bỏ
Trang 343.2.2 Chuẩn hóa bề mặt
Việc hiển thị các bề mặt có giá trị chuẩn là một cách hữu ích để trực quan một hàm 3D Cho một hàm mật độ s, một bề mặt chuẩn (isosurface) tại giá trị a được định nghĩa là tập các điểm x thỏa mãn s(x) = a Trong nội dung xây dựng lại bề mặt thì s thể hiện là hàm khoảng cách và có dấu Bề mặt được xây dựng tương ứng với chuẩn bề mặt tại giá trị zero tức là s(x) = 0 Quy trình trích rút ra một bề mặt chuẩn của một hàm như là một tập các điểm hoặc như một lưới đa giác được gọi là việc chuẩn hóa bề mặt (isosurfacing) Hai dạng hàm thông thường được dùng để chuẩn hóa bề mặt là : một sự thể hiện Marching Cubes quy ước và một sự thể hiện surface-following được tối ưu
Cả hai mẫu hàm s tại các “khoảng đều “ xây dựng một lưới đa diện các đa giác thể hiện bề mặt chuẩn mong đợi tại một lời giải được chỉ rõ Các đỉnh trên cạnh được sắp xếp sao cho tích chéo của các cạnh liền kề (tức là pháp tuyến bề mặt) là phù hợp với gradient của hàm mật độ s
Hình 3.7 Chuẩn hóa bề mặt bằng Marching Cubes
Kỹ thuật surface-following sẽ tối ưu số lượng các ước lượng của s bởi
nó chỉ ước lượng các mẫu s ở gần bề mặt Điều này rất có ý nghĩa trong việc tiết kiệm khả năng tính toán và lưu trữ khi xử lý chuẩn hóa bề mặt
Trang 35Marching Cubes Surface-following
Hình 3.8 Một số dạng chuẩn hóa bề mặt
3.2.2.1 Các điểm hạt giống của bề mặt chuẩn
Các điểm hạt giống (seed points) gần bề mặt chuẩn được đòi hỏi để khởi tạo bề mặt theo một quy trình vì chúng ta không đánh giá s trên khắp cả khối Một gradient tìm kiếm một trong các điểm seed để tìm một điểm gần nó nhất do đó các điểm seed không nằm chính xác trên bề mặt chuẩn Một “sóng phía trước” lưới trải ra từ mỗi điểm seed đến tận chỗ giao của chính nó hoặc đến chỗ bắt gặp một sóng phía trước liên kết với một điểm seed khác Có ít nhất một điểm seed được đòi hỏi để rút ra từng bề mặt ngăn cách nhau trong khối Tuy nhiên sự chỉ ra một số lượng lớn các seed có thể gây ra nhiều hơn
sự đánh giá hàm tại lúc thiết lập và làm tăng dung lượng bộ nhớ một cách đáng kể
Trong nội dung mô hình hóa bề mặt đã được mô tả, dữ liệu thô bao gồm tập các điểm nằm gần với bề mặt chuẩn Vị trí của các tâm RBF tương ứng với các điểm dữ liệu thô này xuất phát từ chúng Các điểm hạt giống đối với bề mặt chuẩn do đó được lựa chọn từ các tâm RBF Đối với dữ liệu dày đặc nói chung, bề mặt chuẩn có thể nằm xa so với các tâm RBF và thậm chí
Trang 36xa các điểm dữ liệu gốc Vì vậy không có sự đảm bảo rằng việc dùng tất cả các tâm hoặc tất cả các điểm dữ liệu sẽ sinh ra kết quả mong muốn khi xây dựng tất cả các thành phần bề mặt chuẩn Đối với lý do này cũng như sự vượt quá khi sử dụng tất cả các điểm hạt giống, việc ước lượng lưới đầy đủ theo thuật toán Marching Cubes có thể thích hợp hơn
3.2.2.2 Tối ưu lưới
Bề mặt chuẩn RBF kết hợp việc tối ưu lưới diễn ra trong quá trình bề mặt hóa Việc tối ưu lưới cải thiện tỉ lệ các cạnh tam giác và cực tiểu số lượng các cạnh được sinh ra Việc tối ưu hóa là rạch ròi từ bước đề ra thuật toán đã biết như việc giảm lưới hoặc làm đơn giản hóa nó bởi vì mọi điểm mẫu vẫn xây dựng tại ít nhất một mặt lưới Kiến trúc bề mặt như đã định nghĩa bởi các giá trị hàm tại các điểm mắt cáo luôn đảm bảo khi việc tối ưu lưới được thực hiện Minh họa cho tối ưu lưới trong 3D, hình a và b so sánh giữa việc không tối ưu và tối ưu đầy đủ, hình c thể hiện tối ưu ràng buộc trong đó các đỉnh của cạnh bị ràng buộc là nằm trên mặt phẳng song song
(a) Không tối ưu (b) Tối ưu đầy đủ (c) Tối ưu ràng buộc các mặt
Hình 3.9 Các kiểu tối ưu lưới
3.2.2.3 Bao biên
Bề mặt áp dụng theo kỹ thuật bề mặt chuẩn không đòi hỏi một mảng 3D các điểm mẫu phải được lưu trữ Điều này có nghĩa là một bề mặt là vô hạn không tương ứng với việc giải quyết lấy mẫu Khi thể hiện chúng ta thường không muốn một bề mặt vô hạn vì thế việc chỉ rõ một hộp biên được tính đến Hơn nữa trong môi trường Matlab luôn đòi hỏi phải lưu trữ lưới để
Trang 37kết xuất dữ liệu Một bề mặt được cắt ra bởi hộp biên có thể để mở hoặc được bao biên
Hình 3.10 Bề mặt mở không có bao biên
Khi một bề mặt được bao, giá trị của RBF bên ngoài hộp biên có thể được xem như dương hoặc âm tương ứng với ngưỡng của bề mặt chuẩn, nghĩa là hoặc ở trên ngưỡng hoặc ở dưới ngưỡng Minh họa dưới đây thể hiện việc bao trong đó các điểm nằm ngoài hộp biên được xem như các giá trị đậm đặc ở trên ngưỡng dương do đó không phải là một phần của đối tượng
Hình 3.11 Bề mặt đóng với biên dương
Hình ảnh thể hiện việc bao biên trong đó giá trị mật độ bên ngoài hộp được coi như âm nghĩa là có giá trị thấp hơn ngưỡng và điểm này nằm bên trong đối tượng
Hình 3.12 Bề mặt đóng với biên âm
Trang 38Chương 4 XÂY DỰNG VÀ CÀI ĐẶT THỬ NGHIỆM
NỘI SUY BỞI RBF
4.1 Phân tích và xây dựng chương trình
Chương trình Thử nghiệm nội suy RBF được lập trình trong môi
trường MATLAB 7.1 gồm 7 file dữ liệu cơ bản dạng m_file :
rbfcreate.m : chứa các hàm tạo lập RBF
rbfinterp.m : chứa các hàm sử dụng nội suy RBF
rbfcheck.m : kiểm tra dữ liệu RBF
rbftest.m : thử nghiệm nội suy dữ liệu 1 chiều
rbf2d_export.m : thử nghiệm nội suy dữ liệu 2 chiều
rbftest3d.m : thử nghiệm dữ liệu 3D
Thu_nghiem_RBF.m : Thực hiện chức năng tạo giao diện chương trình chính
4.1.1 Hàm tạo lập RBF
Hàm cơ sở bán kính (RBF) là một hàm dựa trên khoảng cách của bán kính vô hướng với các tâm [12]
|) (|
Trang 39Linear : ( r ) r
Thinplate : (r) r2 ln(r 1)
* Cú pháp hàm rbfcreate :
coeff = rbfcreate(x, y);
Input : x là ma trận chứa tọa độ các điểm nút
y vector chứa giá trị tại các nút
Output : coeff là các hệ số nội suy
* Code lệnh mô tả hàm rbfcreat trong file rbfcreat.m :
function options = rbfcreate(x, y, varargin)
%RBFCREATE tao noi suy hamf RBF
Trang 40%cac gia tri mac dinh
options.('RBFFunction') = 'linear';
options.('RBFConstant') = (prod(max(x')-min(x'))/nXCount)^(1/nXDim);
%xap xi khoang cah trung binh giua cac nut
options.('RBFSmooth') = 0;
options.('Stats') = 'off';
% Taoj lap noi suy RBF
switch lower(options.('RBFFunction'))