Bài toán khôi phục ảnh đa cấp xám

Một phần của tài liệu Giải hệ phương trình kích thước lớn và điều kiện xấu trên bó máy tính (Trang 65 - 74)

Một trong những bài toán quan trọng của xử lý ảnh là bài toá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 ngoà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 toá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 toá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 hoá 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 toá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 toánn2mi+n2phép tính. Việc tính cácxin là hoàn toàn độc

lập, nên ta có thể tính toá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 toá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 toá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 hoạch ma trận ToeplitzAthành các ma trận khối ToeplitzAi và sau đó thực hiện

tính toá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. (adsbygoogle = window.adsbygoogle || []).push({});

Để 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 (Ae1⊗Ae)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, ...,ANr] 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

Quá trình tính các tíchAXiArTi là hoàn toàn độc lập và có thể tính toá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[Ar1, ...,ArN]) =vec([ATYAr1, ...,ATYArN]). Quá trình tính các tíchATYAri là hoàn toàn độc lập và có thể tính toá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 Aei,i=

1, . . .N,sao cho

e

Ai= [Aei1, ...,AeiN]

vớiAei j ∈Rn×n, j=1, . . .N, là các ma trận Toeplitz. (adsbygoogle = window.adsbygoogle || []).push({});

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]

với

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 toá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 toá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ơ ge. Ma trận làm mờ ả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(−(32i−j)), |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 toán được thực hiện trên bó máy tính cluster 1350 tại Trung tâm Tính toán Hiệu năng cao Trường Đại học Khoa học Tự nhiên với 8 node tính toá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 toá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 toán khôi phục ảnh có kích thước lớn, yê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 (adsbygoogle = window.adsbygoogle || []).push({});

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ố

Một phần của tài liệu Giải hệ phương trình kích thước lớn và điều kiện xấu trên bó máy tính (Trang 65 - 74)