2.3.8 Giải thuật Ray casting cải tiến sử dụng cấu trúc phân cấp không gian dữ liệu gian dữ liệu procedure CaiTienRayCasting(u) begin C(u) := 0; (u) := 0; x := First(u); m := mmax;
[Loop until beyond data or opacity > threshold] while InBounds(x) and (u) ≤ 1 - do begin
i := Index(m, x);
if Vm(i) and m > mmin then m := m – 1; else begin
[if level-zero contain a one, render it]
if vm(i) then RenderCell(u, x, next(m, x, u));
[Advance to next cell and maybe jump to higher level] while Parent(m, Index(m, next(m, x, u))) ≠ Parent(m, i) and m<M do begin i := Parent(m, i); m := m+1; end x := next(m, x, u); end end
2.3.9 So sánh tốc độ của Ray casting và Ray casting cải tiến sử dụng cấu trúc phân cấp không gian cấu trúc phân cấp không gian
Ray casting cải tiến sử dụng cấu trúc phân cấp không gian tối ưu bằng cách lưu trữ các thông tin thống nhất trong không gian trống. Khi tia chiếu qua những không gian trống thì có thể bỏ qua mà không cần phải tính toán. Điều này sẽ làm cho thời gian xử lý được rút ngắn vì chúng ta có thể chiếu tia xa hơn tiết kiệm được nhiều thời gian.
Cho khối dữ liệu CT hàm và da có kích thước 256x128x59 và sử dụng 2 kỹ thuật Ray casting và ray casting cải tiến để tái dựng lại hình ảnh 3D. Thời gian tái dựng khi sử dụng 2 kỹ thuật này là:
Bảng 2.1 Thời gian thực hiện tái dựng bằng kỹ thuật Ray casting và Ray cating cải tiến
Tên kỹ thuật Thời gian /[s]
Ray casting 293
Ray casting cải tiến sử dụng phân cấp
không gian dữ liệu 94
Nhận xét : Ray casting và Ray casting cải tiến sử dụng cấu trúc phân cấp không gian có ảnh đầu ra như nhau nhưng thời gian tính toán khi sử dụng cấu trúc phân cấp không gian là ít hơn. Do đó việc sử dụng Ray casting cải tiến cấu trúc phân cấp không gian dữ liệu tối ưu hơn.
Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM 3.1 Bài toán
Ngày nay, công nghệ hình ảnh 3D đang thu hút sự chú ý của nhiều người và lĩnh vực y học cũng không phải là một ngoại lệ. Nhiều bác sĩ cũng đang cố gắng tận dụng công nghệ mới này để điều trị bệnh. Với sự phát triển của kỹ thuật chụp CT, MRI cung cấp các hình ảnh hai chiều của cấu trúc ba chiều trên đối tượng khảo sát. CT – chụp cắt lớp là một trong những phương tiện hỗ trợ chấn đoán bệnh chấn thương sọ não và các khối u trong nội tạng của cơ thể. MRI – cộng hưởng từ cho thấy các cấu trúc mô mềm rõ ràng đến từng thớ thịt, từng miếng sụn nhỏ trong khớp hay từng thương tổn nhỏ trong não. Với các phương pháp chụp cắt lớp (CT) hay chụp cộng hưởng từ (MRI), những tín hiệu tự có trong cơ thể, những thay đổi do khác biệt về cấu trúc hay do bệnh lý,… tất cả đều được ghi nhận, tái tạo thành ảnh và in ra phim.
Trong công tác chẩn đoán và điều trị , các bác sĩ vừa phải nhìn vào những hình ảnh 2D, vừa phải tưởng tượng hình ảnh đó sẽ như thế nào trong không gian 3 chiều, điều đó đã gây không ít khó khăn cho họ. Việc ứng dụng công nghệ dựng hình ảnh 3D từ các lát cắt sẽ giúp cho các bác sĩ có thể nhìn được hình ảnh 3 chiều của đối tượng rõ nét ngay lập tức. Trên không gian 3 chiều, các bác sĩ còn có thể quan sát được những thương tổn hay khối u ở nhiều góc độ, giúp tầm soát tốt tất cả các loại bệnh. Điều này chắc chắn sẽ nâng cao hiệu quả, tăng độ chính xác trong việc chẩn đoán và điều trị cho bệnh nhân.
Bài toán đặt ra là với những lát cắt song song thu được từ việc chụp CT, MRI, … chương trình ứng dụng sẽ tiến hành xử lý, tính toán và cuối cùng cho ra kết quả là hình ảnh 3D của đối tượng đấy. Do tầm quan trong công tác điều
trị, tái dựng lại hình ảnh 3D từ những lát cắt song song đòi hỏi hình ảnh kết quả phải có độ chính xác, và chất lượng hình ảnh cao.
Có nhiều phương pháp tiếp cận để tái dựng ảnh 3D từ các lát cắt song song trong y tế tiêu biểu là những kĩ thuật liệt kê ở chương 2. Trong đó:
1. Kỹ thuật Ray casting là thuật toán được sử dụng nhiều nhất vì dễ thực hiện và cung cấp kết quả chất lượng rất cao- được cho là cung cấp chất lượng hình ảnh tốt nhất. Cho phép người sử dụng có thể xem cả các phần bị che khuất và cả những chi tiết nhỏ nhất. Nhược điểm là thời gian xử lý lâu cũng như yêu cầu về phần cứng.
2. Kỹ thuật Shear warp: chất lượng hình ảnh đầu ra thấp nhưng có thời gian thực hiện nhanh.
3. Kỹ thuật Marching cubes: là một trong những thuật toán tốt để tái tạo bề mặt từ dữ liệu khối cho ảnh có độ phân giải cao. Tuy nhiên nó có thể để lại các lỗ trên bề mặt
So sánh thời gian thực hiện của kỹ thuật Marching cubes và Ray casting[4]:
Cho khối dữ liệu MRI đầu người có độ kích thước 258x258x126. Ta sử dụng 2 kỹ thuật Ray casting và Marching cubes để cùng tái dựng lại khối dữ liệu trên với cùng điều kiện môi trường: nguồn sáng, thuộc tính, phép chiếu song song để hiển thị và mặt phẳng quan sát có kích thước 258x258.
Kỹ thuật Ray casting:
Thời gian thực hiện : 17,5 giây
Những mẫu duyệt qua : 6.890.357 mẫu Những mẫu đóng góp : 841.856 mẫu
Bộ nhớ : 8.654.344 bytes Kỹ thuật Marching cubes :
Thời gian thực hiện : 165,3 giây Số lượng đỉnh : 1.603.683 đỉnh
Số lượng tam giác : 3.134.660 tam giác Những cell đóng góp : 1.667.569 cell Bộ nhớ : 84.491.376 bytes
Nhận xét : Nhìn chung thời gian thực hiện và bộ nhớ sử dụng cho kỹ thuật Marching cubes lớn hơn nhiều so với kỹ thuật Ray casting do số lượng đỉnh và số lượng tam giác phát sinh trong quá trình tín toán. Tuy nhiên với mặt phẳng quan sát có kích thước lớn thì kỹ thuật Ray casting sẽ tăng đáng kể thời gian tái dựng ảnh còn kỹ thuật Marching cubes thì hầu như không.
So sánh thời gian thực hiện của kỹ thuật Ray casting và Shear warp[9]:
Cho khối dữ liệu ảnh CT có kích thước 320x320x119. Mặt phẳng hiển thị có kích thước 320x320
Bảng 3.1 Thời gian tái dựng của Ray casting và Shear warp
Kỹ thuật Thời gian /[s]
Ray casting 26,5
Shear warp 8,4
Nhận xét : do tính đơn giản trong giải thuật Shear warp nên thời gian thực hiện tái dựng ảnh nhanh hơn nhiều so với kĩ thuật Ray casting vì vậy chất lượng ảnh đầu ra cũng thấp.
Mỗi phương pháp đều có những ưu và nhược điểm riêng nên tùy vào ứng dụng và yêu cầu cụ thể để có thể chọn ra một giải pháp phù hợp. Đối với tái tạo ảnh 3D trong y tế thì điều quan trọng nhất là chất lượng hình ảnh tốt để bác sĩ chẩn đoán bệnh, do đó thuật toán Ray Casting phù hợp nhất với yêu cầu đề bài đặt ra là cho ra hình ảnh đầu ra rõ nét và độ chính xác cao, tuy vậy giải thuật này có nhược điểm là tốc độ chậm và yêu cầu phần cứng cao. Tuy nhiên để khắc phục những nhược điểm đấy tác giả đề xuất :
Về tốc độ, tác giả dựa trên giải thuật Ray casting cải tiến phân cấp không gian dữ liệu để tăng tốc cho thuật toán.
Về yêu cầu cấu hình, với cấu hình chung hiện nay thì đã dư đủ để đáp ứng yêu cầu của thuật toán.
Tác giả sử dụng giải thuật Ray casting có cải tiến kết hợp với bộ công cụ mã nguồn mở VTK để xây dựng ứng dụng và được cài đặt thực nghiệm tại Bệnh viện Đa khoa Đồng Nai
3.2 Giới thiệu bộ công cụ mã nguồn mở VTK
VTK là một bộ công cụ mã nguồn mở được xuất bản lần đầu năm 1994, hiện tại VTK đang được quản lý và phát triển bởi Kitware Inc. VTK có thể ứng dụng vào đồ họa 3D và trực quan hóa. VTK cung cấp hàng trăm hàm, thuật toán xử lý ảnh và trực quan hóa, VTK được thiết kế theo hướng đối tượng dựa trên nên ngôn ngữ C++, do đó có thể phát triển được cho các ngôn ngữ khác như Tcl/Tk, Python, Java [18]… VTK được thiết kế để có thể chạy trên nhiều hệ điều hành Unix, Windows, Max OS [18].
Phiên bản VTK mới nhất 5.6 có trên 600 lớp với khoảng hơn 325.000 dòng mã lệnh. Việc sử dụng VTK tuân theo các quy định chung của thế giới về sử dụng mã nguồn mở.
3.2.1 Cấu trúc một ứng dụng VTK
VTK tương tác với phần cứng thông qua OpenGL/Mesa. Sơ đồ tương tác VTK với phần cứng.
+ Tcl/Tk shell + Tcl/Tk source + Java interpreter + Java JDK + Python interpreter + Python source
Nhân core (C++) File thư viện
và các file tiêu đề ( .dll file và .h file) Tất cả các lớp trong mã nguồn (khối dữ liệu sẽ rất lớn) Cấu trúc chương trình ứng dụng VTK
Sơ đồ trên giới thiệu cấu trúc của một chương trình ứng dụng VTK. Nếu chỉ muốn kế thừa các lớp từ VTK ta có thể xây dựng phần mềm theo kiểu “binary”. Ở hướng khác ta có thể chỉnh sửa mà nguồn trong VTK.
3.2.2 Mô hình đối tượng (Object model)
Mô hình đối tượng của VTK gồm 2 thành phần: mô hình đồ họa (graphics model) và mô hình trực quan hóa (visualization model) [18].
Mô hình đồ họa: là mô hình cho đồ họa 3D. Mô hình này dựa trên các hệ thống đồ họa đã được sử dụng rộng rãi. Có 9 đối tượng cơ bản trong mô hình đồ họa của VTK:
1. Render Master: định vị thiết bị và tạo render window. Nó độc lập với phương pháp
Một hoặc nhiều renderer cùng vẽ trong một render window để tạo nên một cảnh.
3. Renderer: xác định cách biểu diễn của light, camera và actor. 4. Light: chiếu sáng actor trong cảnh.