Báo cáo môn học : Mô hình hóa hình học Đề tài : Tái tạo mặt cong B-spline

25 749 2
Báo cáo môn học : Mô hình hóa hình học 
Đề tài : Tái tạo mặt cong B-spline

Đ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

Báo cáo môn học : Mô hình hóa hình học (cao học : Khoa học máy tính) Đề tài : Tái tạo mặt cong B-spline

Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khơi LỜI MỞ ĐẦU Mơ hình hóa hình học lĩnh vực phát triển nhanh ngành Cơng nghệ thơng tin Nó đƣợc ứng dụng rộng rãi nhiều lĩnh vực khoa học công nghệ, chẳng hạn nhƣ y học, kiến trúc, giải trí Một lĩnh vực mơ hình hóa hình học xây dựng đƣờng cong mặt cong để mô vật thể giới thực.Tiểu luận giải toán “tái tạo mặt cong B-spline bậc từ tập điểm cho” Mặc dù cố gắng, nhƣng điều kiện thời gian khả nhiều hạn chế nên tiểu luận chƣa cịn nhiều thiếu sót Rất mong nhận đƣợc góp ý, phê bình, đánh giá để nội dung tìm hiểu tiểu luận đƣợc hoàn thiện Chúng em xin gửi lời cảm ơn đặc biệt đến TS Nguyễn Tấn Khôi cung cấp, định hƣớng hƣớng dẫn để chúng em hoàn thành tiểu luận Đà Nẵng, ngày 05 tháng 02 năm 2014 Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khôi MỤC LỤC LỜI MỞ ĐẦU I ĐƢỜNG VÀ MẶT CONG THAM SỐ BEZIER I.1 Biểu diễn đƣờng cong Bezier I.2 Các tính chất đƣờng cong Bezier I.3 Mặt cong Bezier II ĐƢỜNG VÀ MẶT CONG B-SPLINE II.1 Đánh giá đƣờng cong Bezier II.2 Định nghĩa II.3 Mặt cong tham số B-spline II.3.1 Phƣơng trình mặt cong B-spline III TÁI TẠO ĐỐI TƢỢNG B-SPLINE BẰNG PHƢƠNG PHÁP BÌNH PHƢƠNG TỐI THIỂU III.1 Tái tạo đƣờng cong B-spline qua tập điểm cho trƣớc III.2 Các phƣơng pháp tái tạo mặt cong B-spline 11 III.2.1 Phƣơng pháp Nội suy 11 III.2.2 Phƣơng pháp Xấp xỉ 14 III.3 Tái tạo đƣờng mặt cong B-spline với phƣơng pháp bình phƣơng tối thiểu 20 TÀI LI U THAM KHẢO 25 Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khôi I ĐƢỜNG VÀ MẶT CONG THAM SỐ BEZIER Đƣờng cong Bezier đƣờng cong tham số đƣợc biểu diễn dạng hàm đa thức theo tham số t Bậc đa thức phụ thuộc vào số lƣợng điểm điều khiển đƣợc dùng để định nghĩa đƣờng cong Phƣơng pháp sử dụng điểm điều khiển tạo đƣờng cong xấp xỉ Chính điều làm cho đƣờng cong dễ hiệu chỉnh tái tạo lại hình dáng đƣờng cong, lý đƣờng cong Bezier phổ biến Đa giác điều khiển đƣờng cong Bezier đa giác thu đƣợc điểm điều khiển đƣợc nối lại theo thứ tự với đoạn thẳng Chúng ta ứng dụng đƣờng cong B-spline để tạo font chữ cách dễ dàng, nghĩa từ vecto kiểm sốt có ta sử dụng chƣơng trình để vẽ đƣờng cong qua phƣơng trình B-spline chúng I.1 Biểu diễn đƣờng cong Bezier Đƣờng cong Bezier dựa (n+1) điểm kiểm soát P0,P1 , ,P đƣợc cho công thức: n n P  t    Pk Bk  t  k 0 Trong đó, P(t) điểm mặt phẳng không gian Bn  t  đƣợc gọi đa thức Bernstein, đƣợc cho công thức: k Bn  t   Ck 1  t  k n n k t k  n! n k 1  t  t k k! n  k ! n với n k, B t 1 k 1 n k Mỗi đa thức Bernstein có bậc n Thơng thƣờng ta gọi (blending function) Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Bn  t  hàm trộn k Trang Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khơi P1 P01 P11 P02 P1 P2 Đƣờng cong Bezier bậc Đƣờng cong Bezier bậc Để thích hợp cho việc xử lý máy tính, ta biểu diễn hai ma trận Bn  t  P nhƣ sau: n n Bn  t   B0  t  B1  t  Bn  t  n   P   P0 P1 Pn  P  t   Bn  t .PT Do đó: Dƣới dạng đa thức, biểu diễn Bn  t  nhƣ sau: k Bn  a  a1.t   a n t n   t , t1 , , t n . a ,a1, ,a n  k Do P(t) biểu diễn lại nhƣ sau: P  t   Pow n  t .Bezn PT Trong đó: * Pow n  t    t , t1 , , t n  * BezL ma trận hàng i ma trận ứng với hệ số tƣơng ứng (a0,a1 , ,an) Bin  t  vị trí (i,j) ma trận Bezn có giá trị Bez n  i, j   1 Cin Cij đa thức ji Ví dụ: Ma trận Bez3 cho đƣờng Bezier bậc 1 0  3 3 Bez    6   1 3 0 0  0  1 Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang Tiểu luận môn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khơi I.2 Các tính chất đƣờng cong Bezier Đƣờng cong Bezier có tính chất: + Nội suy đƣợc điểm đầu cuối: P(0) = P0; P(n) = Pn + Tính bất biến Affine:Khi biến đổi đƣờng cong Bezier, ta không cần biến đổi điểm đƣờng cong cách riêng rẻ mà cần biến đổi điểm kiểm sốt đƣờng cong sử dụng công thức Bernstein để tái tạo lại đƣờng cong Bezier đƣợc biến đổi + Tính chất bao lồi: Đƣờng cong Bezier P(t) không ngồi bao lồi nó.Ở đây, bao lồi điểm kiểm soát tập đỉnh nhỏ chứa tất điểm kiểm sốt + Độ xác tuyến tính: Đƣờng cong Bezier trở thành đƣờng thẳng tất điểm kiểm soát nằm đƣờng thẳng bao lồi chúng đƣờng thẳng nên đƣờng Bezier bị kẹp vào bên bao lồi nên trở thành đƣờng thẳng + Bất kỳ đƣờng thẳng hay mặt phẳng ln ln cắt đƣờng cong Bezier lần so với cắt đa giác kiểm soát + Đạo hàm đƣờng Bezier:Là đƣờng cong Bezier khác đƣợc tạo từ ' vector kiểm soát Pk n 1  P  t    n. P B  t , P k 0 k n 1 k k  Pk 1  Pk I.3 Mặt cong Bezier Các mặt cong biểu diễn dạng tham số qua hàm vector với tham số u, v Dạng tổng quát mặt cong: S u, v    X  u, v  ,Y  u, v  , Z  u, v)    S  u, v   i.X  u, v   j.Y  u, v   k.Z  u, v  Khi u,v biến thiên, hàm X(u,v), Y(u,v) Z(u,v) thay đổi giá trị dẫn đến S(u,v) thay đổi không gian chiều Đƣờng cong khơng gian chiều đƣợc viết dƣới dạng hàm tham số v với k+1 điểm kiểm soát tùy thuộc vào tham số u theo cách Đối với mặt Bezier, phƣơng trình biểu diễn bởi: m n n P  u, v    Pi,k Bim  u  Bk  v  i 0 k 0 Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khơi Đây gọi tích Tensor cho băng Bezier Nghĩa đƣờng viền u đƣờng cong Bezier chuẩn, giá trị u khác điểm kiểm sốt nằm vị trí khác Khi u biến thiên điểm kiểm soát i   chạy đƣờng cong cụ thể Do đó, mặt cong xem nhƣ dịch chuyển hay trƣợt đƣờng Bezier không gian P u Ta tƣởng tƣợng đa giác kiểm sốt chuyển động khơng gian thay đổi dạng chuyển động Ở vị trí, đa giác tạo nên đƣờng cong Bezier tạo thành mặt cong q trình trƣợt Trong trƣờng hợp này, khối đa diện kiểm soát có (m+1).(n+1) đỉnh II ĐƢỜNG VÀ MẶT CONG B-SPLINE II.1 Đánh giá đƣờng cong Bezier Bằng điểm kiểm sốt, ta tạo dạng đƣờng cong khác cách hiệu chỉnh điểm kiểm soát tạo đƣợc dạng đƣờng cong mong muốn Công việc lặp lặp lại toàn đƣờng cong thỏa yêu cầu Tuy nhiên, ta thay đổi điểm kiểm sốt tồn đƣờng cong bị thay đổi theo Nhƣng thực tế, ta thƣờng mong muốn thay đổi dạng đƣờng cong gần khu vực hiệu chỉnh điểm kiểm soát Bn t Tính cục yếu đƣờng cong Bezier đƣợc biểu qua đa thức k   khác toàn khoảng [0,1] Mặt khác đƣờng cong p(t) lại tổ hợp tuyến tính điểm kiểm soát đƣợc gia trọng hàm Bn  t  k nên ta kết luận điểm kiểm sốt có ảnh hƣởng đến đƣờng cong tất giá trị t  [0,1] Do đó, hiệu chỉnh điểm kiểm soát ảnh hƣởng đến dạng toàn thể đƣờng cong Để giải toán này, ta sử dụng tập hợp hàm trộn khác Các hàm trộn có giá mang (support: khoảng mà hàm lấy giá trị khác 0) phần khoảng [0,1] Ngồi giá mang chúng có giá trị Thƣờng ta chọn hàm trộn đa thức giá mang đó, giá mang kề Nhƣ vậy, hàm trộn tập đa thức đƣợc định nghĩa khoảng kề đƣợc nối lại với để tạo nên đƣờng cong liên tục Các đƣờng cong kết đƣợc gọi đa thức riêng phần hay phần (piecewise polynomial) Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khơi Ví dụ: ta định nghĩa hàm g(t) gồm đa thức a(t), b(t), c(t) nhƣ sau:  a  t   t có mang  0,1 giá    3  g  t   b  t     t   có mang 1,2 giá  2   giaù c  t     t  coù mang  2,3  Các giá trị t ứng với chỗ nối đoạn gọi nút (knut), chẳng hạn t=0,1,2,3 bốn nút g(t) Hơn nữa, chỗ nối đƣờng cong g(t) trơn, không bị gấp khúc Do đó, ta gọi hàm Spline Vậy, hàm Spline cấp m đa thức riêng phần cấp m có đạo hàm cấp m -1 liên tục nút Dựa tính chất hàm Spline, ta dùng nhƣ hàm trộn để tạo đƣờng cong p(t) dựa điểm kiểm soát P0, ,Pn Khi đó: n p  t    Pk g k  t  k 0 L P(t) =  k0 Pk.gk(t) Tổng quát hóa, ta xây dựng hàm p(t) với L+1 điểm kiểm soát nhƣ sau: Với điểm kiểm sốt Pk , ta có hàm trộn tƣơng ứng Rk(t) tập nút gọi vector nút T=(t0,t1, ,tn) với ti R, ti ti+1 Khi đó: L P(t) =  k0 Pk.Rk(t) II.2 Định nghĩa n Theo ta có: P  t    Pk R k  t  (*) k 0 Pk với k=1 n điểm kiểm soát Rk(t) hàm trộn liên tục đoạn [ti , ti+1]và liên tục nút Mỗi Rk(t) đa thức riêng phần Do đƣờng cong p(t) tổng đa thức này, lấy điểm kiểm soát Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khôi Các đoạn đƣờng cong riêng phần gặp điểm nút tạo cho đƣờng cong trở nên liên tục Ta gọi đƣờng cong nhƣ SPLINE Cho trƣớc vector nút có nhiều họ hàm trộn đƣợc dùng để tạo đƣờng cong Spline định nghĩa vector nút Một họ hàm nhƣ đƣợc gọi sở cho Spline Trong số họ hàm này, có sở cụ thể mà hàm trộn có giá mang nhỏ nhờ đem lại khả kiểm sốt cục lớn Đó BSpline, với B viết tắt chữ Basic (cơ sở) Đối với hàm B-Spline, đa thức riêng phần tạo có cấp n Do đó, thay dùng ký hiệu Rk(t) cho hàm riêng phần ta ký hiệu hàm trộn Nk,n(t) Do đƣờng cong B-Spline biểu diễn lại: n P  t    Pk N k ,n  t  k 0 ***TÓM LẠI Để xây dựng đƣờng cong B-Spline ta cần có: * Một vector nút T=(t0, t1, t2, ,tk+n-1) * (n+1) điểm kiểm sốt Cấp m hàm B-Spline cơng thức cho hàm B-Spline Nk,n(t) là:  t  tk   t t  Nk,n  t    Nk,n 1  t    k n   Nk 1,n 1  t   t k n 1  t k   t k n  t k 1  với k=0 n Đây công thức đệ quy với 1 t  t  t k 1 N k ,n  t    k 0 other else (Hàm đoạn (tk , tk+1) Đối với mặt B-Spline, ta có cơng thức biểu diễn tƣơng tự: m n P  u, v    Pi,k N i,m  u  N k ,n  v  i 0 k 0 Nhận xét: Các đƣờng Bezier đƣờng B-Spline Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang Tiểu luận môn: Mô hình hóa hình học GVHD: TS Nguyễn Tấn Khơi II.3 Mặt cong tham số B-spline Có hai loại mặt đƣợc sử dụng hệ thống mơ hình hóa: tham số (parametric) ẩn (implicit) Mặt cong tham số B-spline thƣờng dùng để thiết kế mặt cong tự do, mặt cong đƣợc định nghĩa nhƣ sau: với u, v tham số f(u,v) = (x(u,v),y(u,v),z(u,v)) II.3.1 Phương trình mặt cong B-spline Cho tập hợp (m+1) x (n+1) điểm kiểm sốt {Pi,j} với 0im 0jn Phƣơng trình mặt cong tham số B-spline: m n i 0 S(u,v) = j 0   Ni,p(u) Ni,q(v).Pij u [u0,un+k],v [v0,vn+l] Pi,j, i=0…m, j=0…n Bậc p theo hƣớng u, bậc q theo hƣớng v Vecto nút gồm (m+p+1) nút theo hƣớng u U={ui, |0  i  n+k, u0   ui … um+p } Vecto nút gồm (n+q+1) nút theo hƣớng v V={vj, |0  j  m+l, v0   vj … vn+l } Tiểu luận xét đến mặt cong bậc 3, p = q = m n i 0 Ta viết lại nhƣ sau : S(u,v) = j 0   Ni,3(u) Ni,3(v).Pij III TÁI TẠO ĐỐI TƢỢNG B-SPLINE BẰNG PHƢƠNG PHÁP BÌNH PHƢƠNG TỐI THIỂU III.1 Tái tạo đƣờng cong B-spline qua tập điểm cho trƣớc Từ điểm nằm đƣờng cong, ta tìm tập điểm kiểm sốt chúng Bài tốn đƣợc miêu tả nhƣ sau: Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang Tiểu luận môn: Mô hình hóa hình học GVHD: TS Nguyễn Tấn Khơi Xác định điểm kiểm soát dựa số điểm biết nằm đƣờng cong Nếu điểm biết thuộc đƣờng cong ta có: Với  k  n+l  j+l ta có ma trận [P] = [N][B] (*) Các tham số tj điểm cho trƣớc xem độ đo khoảng cách điểm đến đƣờng cong B-spline Ta tính đƣợc tham số tj thơng qua độ dài dây cung điểm Với j+1 điểm đƣờng cong cho trƣớc, tham số điểm đƣờng cong cho trƣớc thứ b đƣợc tính cơng thức: Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang 10 Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khôi tmax = giá trị lớn vecto nút Trong trƣờng hợp  k  n+l  j+l (n=j), ma trận N vuông, tập điểm kiểm sốt xác định thơng qua ma trận nghịch đảo [B] = [N]-1[P] Trong trƣờng hợp  k  n+l  j+l (nh≥p≥l, cần tìm đƣờng cong B-spline C(u) bậc p có (h+1) {pi} điểm điều khiển đáp ứng cách điều kiện sau: - Đƣờng cong qua điểm đầu điểm cuối - Đƣờng cong xấp xỉ đa thức theo phƣơng pháp bình phƣơng tối thiểu Với số đỉnh h bậc p xác định, ta xây dựng đƣợc vecto tham số từ xây dựng đƣợc vecto nút T = {t0, t1, …, tn} h  Phƣơng trình đƣờng cong B-spline : C(u) = Ni,p(u).Pi i 0 Để đƣờng cong qua điểm điểm cuối cùng: D0 = C(0) = P0 Dn = C(1) = Ph Nhƣ có {Pi} {i= 1…h-1} điểm kiểm sốt chƣa biết Ta có: h 1 C(u) = N0,p(u)D0 + (  Ni,p(u)Pi) + Nh,p(u).Dn i 1 Biểu diễn biểu thức Dk – C(tk) dƣới dạng : h 1 Dk – C(tk) = Dk – [N0,p(tk)D0 + (  Ni,p(tk)Pi) + Nh,p(tk).Dn] i 1 h 1 = (Dk – N0,p(tk)D0 – Nh,p(tk)Dn) – (  Ni,p(tk)Pi) i 1 Các giá trị D0, Dk, Dn, N0,p(tk) Nh,p(tk) tính đƣợc dựa vào N0,p(u) Nh,p(u)tk Đặt vecto Qk = Dk – N0,p(tk)D0 – Nh,p(tk)Dn Hàm bình phƣơng f() biểu diễn : f(p1,…,ph-1) = h 1  i 1 h 1 |Qk – (  Ni,p(tk)Pi)|2 i 1 tiếp theo, ta tìm lỗi bình phƣơng khoảng cách Với x*x = |x|2 Nhƣ phƣơng trình đƣợc viết lại nhƣ sau: h 1 h 1 h 1 i 1 i 1 i 1 Qk – (  Ni,p(tk)Pi)|2 = ( Qk – (  Ni,p(tk)Pi)) * ( Qk – (  Ni,p(tk)Pi)) Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang 15 Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khôi h 1 h 1 h 1 i 1 i 1 i 1 = Qk Qk – 2(  Ni,p(tk)Pi) Qk ) + (  Ni,p(tk)Pi)* (  Ni,p(tk)Pi) Hàm f() trở thành : f(p1,…,ph-1) = n 1  i 1 h 1 h 1 h 1 i 1 i 1 i 1 [Qk Qk – 2(  Ni,p(tk)Pi) Qk )+(  Ni,p(tk)Pi)* (  Ni,p(tk)Pi)] Hàm số f() paraboloid elliptic với biến { p1,…,ph-1} Khi đạo hàm f() với tham số Pg, tất Qk Ni,p(tk) số đạo hàm phần (partial derivative) theo P g phải (Qk Qk) = (Ni,p(tk)Pi) Qk) = Ni,p(tk) Qk Đạo hàm phần Pi theo Pg khác i=g Đạo hàm theo số hạng thứ : h 1 (  Ni,p(tk)Pi) Qk) = Ng,p(tk)Qk i 1 Đạo hàm theo số hạng thứ Sử dụng quy tắc nhân (fg)’ = f*g + f*g’ h 1 h 1 i 1 i 1 (  Ni,p(tk)Pi) (  Ni,p(tk)Pi) h 1 h 1 i 1 i 1 = (  Ni,p(tk)Pi) (  Ni,p(tk) h 1 = 2(  Ni,p(tk) i 1 h 1 h 1 )+ (  Ni,p(tk) ) (  Ni,p(tk)Pi) i 1 i 1 h 1 ) (  Ni,p(tk)Pi) i 1 Với dẫn xuất phần Pi , Pg số i≠g, đạo hàm phần lần với kết Pg : h 1 h 1 h 1 i 1 i 1 i 1 (  Ni,p(tk)Pi) (  Ni,p(tk)Pi) = Ng,p(tk) (  Ni,p(tk)Pi) Kết hợp kết này, đạo hàm phần f() với Pg h 1 = -2 Ng,p(tk)Qk + Ng,p(tk) (  Ni,p(tk)Pi) i 1 h 1 Ta có :  i 1 h 1 Ng,p(tk)  i 1 h 1 Ni,p(tk)Pi =  Ng,p(tk)Qk i 1 Do có (h-1) biến, giá trị g=1…h-1 (h-1) phƣơng trình tuyến tính Học viên thực hiện: Nguyễn Minh Quỳnh-Ngơ Văn May Trang 16 Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khôi Ký hiệu ma trận : n 1  k 1 n 1  P= k 1 Q= [ ] N= [ n 1  [ k 1 ] ] Ta có : - Hàng thứ k ma trận P vecto Pk Hàng thứ k ma trận Q phƣơng trình Hàng thứ k N giá trị N1,p(u), N2,p(u),…,Nh-1,p(u) tham số tk Vì vậy, cấc điểm liệu đầu vào s, chiều vecto P,N Q(h-1)x s, (n-1)x(h-1) (h-1)x s ma trận tƣơng ứng Biểu diễn lại phƣơng trình tuyến tính thứ g: n 1  k 1 n 1 Ng,p(tk)  i 1 Thành dạng : n 1 Ng,p(tk)Pi =  Ng,p(tk)Qk i 1 h 1  i 1 n 1 (  Ng,p(tk) Ni,p(tk))Pi = k 1 Từ phƣơng trình trên, hệ số Pi : n 1  Ng,p(tk)Qk k 1 n 1  Ng,p(tk) Ni,p(tk) k 1 Hệ phƣơng trình tuyến tính đƣợc viết lại : (NTN).P = Q Nhận thấy đƣờng cong tái tạo có nhiều đỉnh điều khiển xấp xỉ điểm liệu tốt so với đƣờng cong tái tạo có số điểm kiểm sốt Thơng thƣờng, đƣờng cong xấp xỉ tồn cục có điểm kiểm soát so với đƣờng cong nội suy toàn cục Nếu số lƣợng điểm kiểm sốt số điểm liệu, xấp xỉ tồn cục trở thành nội suy tồn phần Thuật tốn xấp xỉ toàn cục : *Input : (n+1) điểm liệu D0, D1, …, Dn, bậc p, điểm kiểm soát h+1 *Output : Đƣờng cong B-spline bậc p, đƣợc xác định (h+1) điểm kiểm soát, nút vecto U bậc p xấp xỉ điểm liệu cho Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang 17 Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khôi Tập hợp thông số t0,…,tn nút vecto U Let P0 = D0 and Ph = Dn for k:= to h-1 Tính lƣu vào hàng thứ i ma trận Q: n 1  Ni,p(tk)Qk k 1 for k:= to n-1 for i:= to h-1 Tính Ni,p(tk) lƣu hàng k cột I N Tính M = NTN Tìm P từ M*P = Q; //hàng I P kiểm soát điểm Pi b Xấp xỉ toàn cục mặt cong Cho trƣớc tập (m+1)x(n+1) điểm liệu Dij(0≤i≤m 0≤j≤n), cặp giá trị (p,q) (e,f) thỏa: m e≥p≥1 n f≥q≥1 Cần tìm mặt cong B-spline bậc (p,q) có lƣới đỉnh điều khiển {Pij} (0≤i≤e 0≤j≤f) xấp xỉ với điểm lƣới liệu Mặt cong B-spline bậc (p,q) đƣợc xác định (e+1)*(f+1) điểm kiểm soát chƣa biết Pịj đƣợc biểu diễn: e f i 0 S(u,v) = j 0   Ni,p(u) Nj,q(v)Pij Xây dựng vecto tham số theo hƣớng u {S0, S1, …, Sm} hƣớng v {t0, t1, …, tm} Các điểm mặt cong ứng với điểm liệu Dcd đƣợc tính nhƣ sau : e f i 0 Dcd = S(sc,td) = j 0   Ni,p(sc) Nj,q(td)Pij Bình phƣơng khoảng cách Dcd đến mặt cong : |Dcd - S(sc,td)|2 Hàm biểu diễn tổng bình phƣơng khoảng cách : m n c0 f(P00,P01,…, Pef) = d 0   |Dcd - S(sc,td)|2 với (e+1)*(f+1) điểm Pij chƣa xác định Để cực tiểu hàm f(), ta tính đạo hàm riêng: Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May =0 Trang 18 Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khơi Từ có (e+1)x(f+1) phƣơng trình có điểm Pij chƣa xác định Các phƣơng trình khơng tuyến tính có thời gian giải lớn Thay tìm lời giải tối ƣu, ta tìm giải pháp hợp lý tốt Tƣơng tự nhƣ phƣơng pháp nội suy mặt cong toàn cục, ta xấp xỉ đƣờng cong cột điểm liệu để xây dựng điêm “trung gian” Xét cột có (m+1) điểm liệu, ta tính (e+1) điểm liệu “trung gian” Do có (n+1) cột nên có (e+1)*(n+1) điểm liệu “trung gian” Sẽ có (n+e+2) đƣờng cong xấp xỉ đƣợc thực kết ta có đƣợc (e+1)*(f+1) điểm kiểm soát{ Pij } mặt cong tái tạo B-spline Hoặc ta xét hàng có (n+1) điểm liệu, ta tính (f+1) điểm liệu trung gian Có (m+1) hàng nên tạo (m+1)*(f+1) điểm liệu trung gian Nhƣ có (m+f+2) đƣờng cong xấp xỉ đƣợc thực Kết ta có đƣợc (m+1)*(f+1) điểm kiểm soát { Pij } mặt cong tái tạo B-spline Nhƣ vậy, phƣơng pháp xấp xỉ linh hoạt phƣơng pháp nội suy, ta không chọn bậc, số lƣợng điểm kiểm sốt **Thuật tốn xấp xỉ tồn cục mặt cong: *Input: tập (m+1)*(n+1) điểm liệu Dij Bậc (p,q) (e+1) hàng (f+1) cột đỉnh điều khiển *Output: Mặt cong B-spline bậc (p,q) xấp xỉ điểm liệu Tính tham số theo hƣớng u s0,s1,…,sm nút vecto U; Tính tham số theo hƣớng v t0,t1,…,tm nút vecto V; For d:= to n /* for column d ò D */ Begin /* tính tốn “các điểm liệu trung gian” Q */ Xấp xỉ đƣờng cong cột d: - Các điểm liệu (D0d, D1d,…,Dmd) Bậc p Các tham số s0,s1,…,sm nút vecto U // kết cột d điểm liệu trung gian Q0d, Q1d,…,Qed dạng Q(e+1)*(n+1) ma trận */ End For c:= to e /* for rơ c ị Q’s */ Begin /* tính tốn điểm điều khiển mong muốn P */ Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang 19 Tiểu luận môn: Mô hình hóa hình học GVHD: TS Nguyễn Tấn Khơi Xấp xỉ đƣờng cong Q: (Qc0, Qc1,…,Qcn) có bậc q, tham số T, nút V //kết hàng c điểm kiểm soát mong muốn Pc0, Pc1,…,Pcf End III.3 Tái tạo đƣờng mặt cong B-spline với phƣơng pháp bình phƣơng tối thiểu Thuật tốn tái tạo đối tƣợng B-spline khơng thiết phải đáp ứng xác liệu cho trƣớc điều quan trọng định dạng đƣợc “hình dạng” từ liệu khơng cần nắn đƣờng cong theo điểm nhƣng phải đáp ứng sai số cho phép *Thuật toán: - Bƣớc 1: Bắt đầu việc tính tốn cách lựa chọn số điểm điều khiển tối thiểu - Bƣớc 2: Dựng đƣờng cong xấp xỉ theo phƣơng pháp bình phƣơng tối thiểu - Bƣớc 3: Kiểm tra độ xác đƣờng cong điểm liệu - Bƣớc 4: Nếu độ sai lệch tất điểm liệu đáp ứng sai số cho phép kết thúc Ngƣợc lại, tăng số điểm điều khiển trở bƣớc Phƣơng pháp bình phƣơng tối thiếu (Least Square Mothod) phƣơng pháp tối ƣu hóa tốn học để tìm đƣờng khớp với tập điểm liệu ứng cho tổng sai số thống kê đƣờng khớp liệu cực tiểu Giả sử sai số phép đo đạc liệu phân phối ngẫu nhiên, kết thu đƣợc từ phƣơng pháp bình phƣơng tối thiểu không thiên vị sai số việc sai số việc đạc liệu khơng thiết phải tn theo Nhiều tốn tối ƣu hóa đƣợc quy tìm cực trị dạng bình phƣơng Trong tốn ƣớc lƣợng bình phƣơng cực tiểu, với giả thiết dạng hàm f(x) biết, ta xác định tham số cho giá trị f(xi) xấp xỉ tốt giá trị yi theo tiêu chuẩn gọi bình phƣơng cực tiểu Ta cần xây dựng đƣờng cong thức gần điểm liệu Xét hàm đa thức f(x) bậc m: f(x) = a0 + a1x1 + … + am-1 xm-1 + amxm Vì giá trị f(xi) thƣờng khác giá trị yi , giả sử sai số ei , ta có: yi = a0 + a1x1 + … + am-1 xim-1 + amxim + ei i = 1, 2, … ,n Nhƣ vậy: ei = yi - m  ajxij j 0 Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang 20 Tiểu luận môn: Mô hình hóa hình học Tổng bình phƣơng sai số: S = n  GVHD: TS Nguyễn Tấn Khôi n  ei = i 0 m (yi - ajxij )2 j 0 i 0 Điều kiện để S đạt giá trị nhỏ :  = với k = 0,1,…,m Thực phép lấy đại hàm riêng thành phần tổng theo ak ta có: m ( yi -  m  ajxij ) / ak = (yi - j 0 j 0 n m  j 0 j 0 =  ( - yi xik +  ajxij+k ) = , k=1,2,…,m Nhƣ vậy: Từ j 0 m i 0 m ajxij) (-xik) = 2( - yi xik +  ajxij+k ) n aj  xij+k = i 0 n  yixik , k=0,1,2,…,m i 0 n n n i 0 i 0 n i 0 (n+1)a0 + a1  xi + a2  xi2 + … +am  xim n n n i 0 i 0 i 0 n n n n i 0 i 0 i 0 i 0 n i 0 =  yi i 0 a0  xi + a1  xi2 + a2  xi3 + … +am  xim+1 a0  xi2 + a1  xi3 + a2  xi4 + … +am  xim+2 n =  yi xi i 0 n =  yi xi2 i 0 … n n n n i 0 i 0 i 0 i 0 a0  xim + a1  xim+1 + a2  xim+2 + … +am  xim+m n =  yi xim i 0 Đặt: n n n n    n n n n  n i 0 i 0 i 0  i 0 i 0 n      n n n n n i 0 C= i 0   i 0 n  [ i 0 n i 0 n i 0 i 0  n i 0 yi xi1 , …, i 0 n  i 0   i 0  i 0 i 0  i 0 n  d = (  yi xi0 , i 0 i 0 n  n  i 0 ] yi xim) i 0 Ta có hệ phƣơng trình C*a=d Học viên thực hiện: Nguyễn Minh Quỳnh-Ngơ Văn May Trang 21 Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khơi Ta đặt y = (y0, y1,…,yn)T , e = (e0,e1,…,enT) , a = (a0,a1,…,anT) F= [ ] Hệ phƣơng trình C*a=d viết dƣới dạng : FTFa = FTy Ta dùng phƣơng pháp Gaus-Jordan để giải hệ phƣơng trình Nếu m≤n định thức ma trận C khác 0, đa thức nội suy bình phƣơng tối thiểu đƣợc xác định Thật vậy, biểu diễn chi tiết ma trận C : Bằng cách tách cột ta thu đƣợc (n+1)m+1 ma trận C1, C2, , cột ma trận phụ thuộc số 1, x0, x1, , xn Sau tách đƣợc nhƣ vậy, cách đặt thừa số chung ta lại thu đƣợc ma trận mà ma trận có m+1 cột, cột đƣợc lấy từ tổ hợp (n+1) cột có dạng: Dễ thấy rằng: - Nếu m>n ma trận ln có cột trùng nên định thức det C = Σ det Ci = Nếu n ≥ m: ma trận C đƣợc tách thành hai loại ma trận: + Loại 1: Các ma trận có cột phụ thuộc thành phần x0,x1, ,xn nên có định thức Học viên thực hiện: Nguyễn Minh Quỳnh-Ngô Văn May Trang 22 Tiểu luận mơn: Mơ hình hóa hình học GVHD: TS Nguyễn Tấn Khơi + Loại 2: Các ma trận có m+1 cột khác lấy từ (n+1) cột có dạng Các ma trận có dạng Vandermond nên khác khơng Do det C ≠ ***Chƣơng trình cài đặt Sau đoạn chƣơng trình thể thuật tốn tái tạo phƣơng pháp bình phƣơng tối thiểu : /*Tai tao dung da thuc uoc luong theo phuong phap binh phuong toi thieu*/ /*Cho truoc bac m, xac dinh cac he so, tra ve tong binh phuong cac sai so*/ double regresspoli(double *a,int m) { int i,j,k; kmatran aa; double **f,**ft; f = new double* [nqs+1]; for(I=0;i

Ngày đăng: 13/03/2014, 11:44

Từ khóa liên quan

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

Tài liệu liên quan