Chương 1 Kiến thức chuẩn bị
2.3. Thử nghiệm số
2.3.2. Bài tốn khơi phục ảnh đa cấp xám
Một trong những bài toán quan trọng của xử lý ảnh là bài tốn khơi phục ảnh. Quá trình thu nhận ảnh chịu sự ảnh hưởng của mơi trường bên ngồi, như các hệ thống thu nhận, phát hiện và lưu trữ ảnh dẫn đến sự biến dạng của ảnh thu nhận được. Một số nguyên nhân gây biến dạng: do nhiễu bộ cảm nhận tín hiệu, ảnh mờ do camera, nhiễu ngẫu nhiên của khí quyển, vv....
Vấn đề đặt ra trong bài tốn khơi phục ảnh là lọc ảnh, khử nhiễu nhằm giảm các biến dạng để có thể khơi phục lại ảnh gần giống ảnh gốc. Bài tốn khơi phục ảnh được phát biểu như sau:
Ảnh của một đối tượng có thể biểu diễn dưới dạng g(x,y) =
ZZ
h(x,y,x0,y0)f(x0,y0)dx0dy0+η(x,y), (2.34) trong đó:
f(x0,y0)là hàm biểu diễn đối tượng, g(x,y)là ảnh thu nhận,
h(x,y,x0,y0)là hàm tán xạ điểm,
η(x,y)là hàm biểu diễn nhiễu cộng tính.
Ta cần tìm một xấp xỉ của f(x0,y0) khi h(x,y,x0,y0),g(x,y) có thể đo lường hay quan sát được và một số tính chất xác suất củaη(x,y)đã biết.
Chúng ta giả thiết hàm tán xạ điểm là bất biến trượt và có thể tách biến được theo nghĩa
h(x,y,x0,y0) =h1(x−x0)h2(y−y0). (2.35)
Thực tế ảnh của đối tượng được ghi bởi các thiết bị như CCD camera là rời rạc và do đó hàm g(x,y) được thay thế bởi một ma trận M×M các giá trị của g(x,y)tại các node lưới. Các giá trị này được ký hiệu là
gi j=g(xi,yj), 0≤i≤M−1,0≤ j≤M−1.
Rời rạc hố phương trình (2.34) và sử dụng cơng thức cầu phương hình chữ nhật xấp xỉ tích phân, ta có gi j = M−1 ∑ µ=0 M−1 ∑ υ=0
h(xi−xµ,yj−yυ)f(xµ,yυ)∆x∆y+η(xi,yj) = M−1 ∑ µ=0 M−1 ∑ υ=0
h1(xi−xµ)h2(yj−yυ)f(xµ,yυ)∆x∆y+η(xi,yj).
(2.36) Ký hiệu A=Toeplitz(h11−M, ...,h1−1,h10,h11, ...,h1M−1), B=Toeplitz(h21−M, ...,h2−1,h20,h21, ...,h2M−1), F= [f]i,j, 0≤i≤M−1,0≤ j≤M−1, G= [g]i,j, 0≤i≤M−1,0≤ j≤M−1, h1i−j=h1((i− j)∆x)∆x, 0≤i≤M−1,0≤ j≤M−1,
h2i−j=h2((i− j)∆y)∆y, 0≤i≤M−1,0≤ j≤M−1,
η= [η]i,j, 0≤i≤M−1,0≤ j≤M−1,
với
fi j = f(i∆x,j∆y), gi j =g(i∆x, j∆y) và ηi j =η(i∆x, j∆y). Khi đó (2.34) có thể viết lại dưới dạngG=BFAT +η, hay
vec(G) = (A⊗B)vec(F) +vec(η). (2.37) Đặt H = (A⊗B),x=vec(F),d = vec(η),g=vec(G), ta có phương trình (2.37)
được viết lại như sau
g=Hx+d. (2.38)
Khi đó, bằng cách phân hoạchH vàgδ =g−dthànhN khốiHi vàgδi và áp dụng phương pháp chỉnh lặp hiện song song một bước, ta có
xin= xn− 1 γn HiTHixn−HiTgδi+αn Nxn , i=1. . .N, xn+1:= 1 N N ∑ i=1 xni, n=0,1,2. . . (2.39)
Nhận xét 2.5. Giả sửHi là ma trận có kích thước mi×n với mi<<n. Khi đó, để tính
tíchHiTHixn, chúng ta nên lần lượt tính tích yi =Hixn rồi tínhHiTyi. Cách này có khối
lượng tính tốn là 2min phép tính, nhỏ hơn nhiều nếu ta tính tíchK =HiTHi trước rồi
tínhKxn với khối lượng tính tốnn2mi+n2phép tính. Việc tính cácxin là hồn tồn độc
lập, nên ta có thể tính tốn đồng thời trên các bộ xử lý. Trên mỗi bộ xử lý, ta có các ma
trậnHi kích thướcmi×nnhỏ hơn so với kích thước ma trân H =n×ngiúp giảm khối
lượng tính tốn và bộ nhớ cần lưu trữ.
Mặt khác, do tính chất đặc biệt của các ma trận A và B, chúng ta có thể cải tiến hiệu suất tính tốn HiTHixn bằng cách sử dụng phép biến đổi Fourier nhanh. Tuy nhiên việc áp dụng trực tiếp phương pháp chỉnh lặp hiện song song một bước để giải phương trình (2.38) sẽ phá vỡ tính chất Toeplitz của các ma trận A và B do phép phân hoạch ma trận. Do vậy ta không thể sử dụng phép biến đổi Fourier nhanh, một trong những phương pháp hữu hiệu thường được sử dụng trong xử lý ảnh. Phần tiếp theo trình bày một phương pháp cải biên dựa trên phương pháp chỉnh lặp hiện song song một bước kết hợp với phép biến đổi Fourier nhanh. Ý tưởng chính của phương pháp cải biên là ta tìm cách phân
tính tốn tíchHiTHizn sử dụng phép biến đổi Fourier nhanh, dựa trên cấu trúc ma trận các khối Toeplitz của ma trậnHi=Ai×B.
Để tính tích(A⊗B)vec(X) trong đó A,Bkhơng có cấu trúc đặc biệt ta có thể sử dụng tính chất sau [50]
(A⊗B)vec(X)=vec(BX AT).
Trong trường hợp A, B là các ma trận xoay vịng hay Toeplitz, tích này có thể được tính một cách hiệu quả hơn bằng cách sử dụng phép biến đổi Fourier nhanh (Thuật toán 5.2.1 tr.83 [82], [51]).
Ma trận tựa Toeplitz
Một ma trận T được gọi là ma trận tựa Toeplitz nếu ta có thể bổ sung thêm một số phần tử để thu được ma trậnTe là ma trận Toeplitz
e T = T T2 T1 T3 . (2.40) Tính tích(A1⊗A)vec(X)
Giả sử A1 là ma trận tựa Toeplitz, A là ma trận Toeplitz. Mở rộng A1 thành ma trận ToeplitzAe1. Phụ thuộc vào số chiều của ma trận Ae1, ta mở rộng ma trận
X thành ma trận e X = X 0 0 0 (2.41)
vàAthành ma trận ToeplitzAecó số chiều thích hợp. Khi đó, tích(A1⊗A)vec(X) có thể được tính bằng cách, tính tích (eA1⊗A)e vec(Xe) sử dụng phép biến đổi Fourier nhanh và trích ra phần tích(A1⊗A)vec(X) cần tính.
Như vậy, việc tính tích (A⊗B)vec(X)= vec(BX AT) với giả thiết A là ma trận Toeplitz hoặc là ma trận tựa Toeplitz,B là ma trận Toeplitz đều có thể tính một cách hiệu quả bằng cách sử dụng phép biến đổi Fourier nhanh.
Định nghĩa 2.3.2. Ma trậnA∈Rn×Nn được gọi là ma trận các khối Toeplitz nếuA= [A1, . . . ,AN], trong đóAi∈Rn×n,i=1, . . . ,N là các ma trận Toeplitz.
Tính chất của ma trận các khối Toeplitz
Giả sử A∈RnN×nN, Ar = [Ar1, ...,ArN] vớiAri ∈Rn×n,i =1, . . . ,N là các ma trận Toeplitz,X ∈RnN×nN,Y ∈RnN×n. Khi đó, ta có
(Ar⊗A)vec(X) =vec(A[X1, ..,XN]ATr) =vec(
N
∑
i=1
Q trình tính các tíchAXiArTi là hồn tồn độc lập và có thể tính tốn song song bằng cách sử dụng phép biến đổi Fourier nhanh.
(Ar⊗A)Tvec(Y) =vec(ATYAr) =vec(ATY[A1r, ...,ArN]) =vec([ATYAr1, ...,ATYArN]).
Quá trình tính các tíchATYAri là hồn tồn độc lập và có thể tính tốn song song bằng cách sử dụng phép biến đổi Fourier nhanh.
Tính chất của ma trận Toeplitz
Để đơn giản, ta giả sử ma trận Toeplitz
A= A11 A12 . . . A1N A21 A22 . . . A2N ... ... . . . ... AN1 AN2 . . . ANN
vớiAi j ∈Rn×n.
Ta chứng minh các ma trận conAi j, i,j=1. . .N là các ma trận Toeplitz. Thật vậy, ma trận Ai j có các phần tử làainN+k,jnN+h, k,h∈[0, . . . ,n−1].Các phần tửainN+k,jnN+h thuộc đường chéo của ma trậnAi j thỏa mãn tính chất
inN+k− jnN−h= (i− j)nN+k−h,
với k−h là một hằng số. Khi đó, với mỗi ma trận con Ai j của ma trận Ai ta có i,j, k−hcố định, nên (i− j)nN+k−h là một số cố định trong ma trận A. Do A là ma trận Toeplitz nên ta cóAi j là ma trận Toeplitz.
Phân hoạch ma trận Toeplitz
Giả sử ma trận A∈Rm×m với m= (n−1)N+r. Ta mở rộng A thành ma trận Toeplitz Ae∈RnN×nN. Khi đó, ta có thể phân tách Aethành N ma trận con Aie,i=
1, . . .N,sao cho
e
Ai= [Ai1e , ...,AiNe ]
vớiAei j ∈Rn×n, j=1, . . .N, là các ma trận Toeplitz.
Khi đó, ma trậnAcó thể phân hoạch thành các ma trận conAi,i=1, . . .N sao cho
A= [A1, ...,AN−1,AN]
AiN,i=1, . . . ,N−1 vàAN j, j=1, . . . ,N là các ma trận tựa Toeplitz.
Phương pháp cải tiến (F_PEIRM1)
Xét bài toán (2.37), ta phân hoạch ma trận ToeplitzA thànhN ma trận Ai có cấu trúc khối Toeplitz như trên và đặtHi=Ai⊗B. Phân hoạch gδ thành N khối tương ứng và thực hiện phương pháp chỉnh lặp hiện song song một bước (2.39). Theo tính chất của ma trận khối Toeplitz, thay vì tính các tíchyn=Hixn, HiTyn và HiTgδi một cách trực tiếp, ta tính các tích này bằng cách sử dụng phép biến đổi Fourier nhanh, doAi là các ma trận khối Toeplitz và tựa Toeplitz và Blà ma trận Toeplitz
Như vậy ta có thể tính xin một cách độc lập trên các bộ xử lý bằng cách sử dụng phép biến đổi Fourier nhanh.
Thử nghiệm số
Chúng tôi tiến hành thử nghiệm số phương pháp chỉnh lặp hiện song song một bước và phương pháp chỉnh lặp song song kết hợp với phép biến đổi Fourier nhanh cho bài tốn khơi phục ảnh đa cấp xám bị làm mờ và nhiễu. Bài toán đặt ra là cần xác định một xấp xỉ đủ tốt của ảnh gốc. Giả sử bức ảnh rời rạc được biểu diễn bằng một ma trậnM×M các giá trị điểm ảnh. Để tính tốn các giá trị điểm ảnh được sắp xếp lại thành một véctơ dịng có độ dàin:=M×M. Ảnh biến dạng thu nhận được sắp xếp lại và lưu trữ thành một véctơ g. Ma trận làm mờe ảnh B là ma trận khối Toeplitz có cấu trúc là tích Kronecker T⊗T, trong đó T là ma trận Toeplitz đối xứng có kích thướcM×M với các phần tử xác định theo cơng thức t(i,j) = 1 4√ πexp(−(i−32j)), |i−j|<k, 0, cịn lại.
Chúng tơi tạo véctơ gebằng cách nhân véctơ biểu diễn ảnh gốc với ma trận làm mờBvà cộng thêm véctơ nhiễuη. Các phần tử của véctơ nhiễuη là các giá trị ngẫu nhiên có phân bố chuẩn với kỳ vọng bằng 0 và độ lệch chuẩn được chọn sao cho kηk ≤δ =0.01. Các tính tốn được thực hiện trên bó máy tính cluster 1350 tại Trung tâm Tính tốn Hiệu năng cao Trường Đại học Khoa học Tự nhiên với 8 node tính tốn. Mỗi node có 2 bộ xử lý Intel Xeon dual core 3.2 GHz, 2 GB RAM.
Ví dụ 3.
Chúng ta xem xét bài tốn khơi phục bức ảnh Lena và bức ảnh Venice với k=48,M=512và N=2.
Hình 2.5: Ảnh nhiễu Hình 2.6: Ảnh khơi phục
Hình 2.9: Ảnh nhiễu Hình 2.10: Ảnh khơi phục
Bảng 2.6: Thời gian thực hiện thuận toán cải tiến và PEIRM1
M nmax k PIIRM1 F_PEIRM1
Ts REN Ts REN 48 259 0.0691 223 0.0691
512 60 96 498 0.0584 223 0.0584
128 745 0.0576 223 0.0576
Bảng dữ liệu 2.6 chỉ ra rằng, trong chế độ tuần tự, với cùng một giá trị sai số tương đối cho trước phương pháp cải tiến có thời gian thực hiện ít hơn so với phương pháp chỉnh lặp hiện song song một bước.
Bảng 2.7: Hệ số tăng tốc và hiệu suất của phương pháp PEIRM1
Số bộ xử lý 1 2 4
Thời gian(s) 259 132 100
Hệ số tăng tốc 1.962 2.6
Hiệu suất 0.981 0.65
Từ Bảng dữ liệu 2.7, ta có nhận xét đối với các bài tốn khơi phục ảnh có kích thước lớn, u cầu phải xử lý nhanh, các phương pháp song song trên bó máy tính là một giải pháp có tính khả thi.
Nhận xét 2.6. Trong [11] các tác giả Phạm Kỳ Anh, Nguyễn Minh Tuấn và Phan Đức Tuấn đã đề xuất phương pháp giải phương trình tích phân loại II với nhân Toeplitz và Hankel λ ϕ(x) + Z b a p(x−u) +q(x+u)ϕ(u)du= f(x) (2.42)
dựa trên phép biến đổi Hartley hữu hạn. Dựa trên kỹ thuật hiệu chỉnh Lavrentiev và phép biến đổi Hartley cũng như các kết quả đã có về phương trình tích phân loại II, chúng tôi đã đề xuất phương pháp giải xấp xỉ phương trình tích phân loại I với nhân Toeplitz
p(x−u)cộng Hankelq(x+u) Z b
a
p(x−u) +q(x+u)ϕ(u)du= f(x). (2.43)
Ngoài ra, dựa trên phương pháp chỉnh lặp ẩn song song, chúng tôi đã đưa ra một phương pháp song song giải hệ phương trình tích phân loại I với nhân Toeplitz cộng Hankel
1 π Z π −π pi(x−u) +qi(x+u)ϕ(u)du= fi(x), i=1, . . . ,N, (2.44)
với dữ liệu fi ∈L2[−π,π] có thể bị nhiễu. Các thử nghiệm số cho hệ (2.44) hiện vẫn
đang được tiến hành.
2.4 Phương pháp song song toàn phần giải một lớpphương trình đạo hàm riêng đại số