Một PDE có thể được giải bởi CNN theo phương pháp sai phân. Lưới sai phân không gian 2 chiều x, y có ảnh hưởng đến độ chính xác khi giải. Khi giải PDE trên CNN sau khi đã được chọn mô hình CNN thích hợp người ta dùng khai triển Taylor để rời rạc hóa thực hiện xấp xỉ hóa các số hạng của PDE. Sau đó so sánh PDE đã được ròi rạc hóa này với phương trình trạng thái cơ bản của CNN để tìm ra tập mẫu.
2.7. Sử dụng phƣơng trình khuếch tán trong xử lý ảnh trên máy tính hệ lệnh tuần tự
Quá trình làm trơn ảnh (smoothing) bằng PDE đơn giản nhất được nghiên cứu là quá trình khuếch tán tuyến tính. Sự khuếch tán là một quá trình vật lý làm giảm sự tập trung (concentration) mà không tạo ra hay phá hủy vật chất. Có thể dễ dàng thấy được điều này trong công thức toán học. Thuộc tính khuếch tán được biểu thức hóa bằng định luật Fick:
(2.1) Phương trình này mô tả Gradien tạo ra một thong lượng flux có chiều ngược lại với Gradient này. Quan hệ giữa và được diễn tả bằng tensor khuếch tán (diffusion tensor) D, một ma trận đối xứng. Trong trường hợp hướng của và là song song thì quá trình khuếch tán gọi là đẳng hướng (isotropic). Khi đó chúng ta có thể thay thế diffusion tensor bằng một giá trị vô hướng dương gọi là hệ số khuếch tán (hoặc hệ số dẫn) c. Trong trường hợp tổng quát dị hướng (anisotropic) thì hướng của và là không song song.
Trong đó t là thời gian, div là toán tử divergence. Nếu chúng ta đưa định luật Fick (2.1) vào phương trình liên tục 2.2 thì chúng ta sẽ có phương trình khuếch tán.
tu=div(D. ) (2.3) Trong xử lý ảnh ta thường dùng các bộ lọc khuếch tán sau:
- Các bộ lọc khuếch tán đẳng hướng tuyến tính có hệ số dẫn là hằng số; - Các bộ lọc khuếch tán dị hướng phi tuyến có bộ khuếch tán thích hợp theo cấu trúc ảnh cục bộ.
a. Khuếch tán đẳng hướng
Khuếch tán đẳng hướng là quá trình khuếch tán thực hiện với hệ số khuếch tán (hoặc còn gọi là hệ số dẫn) đều và không đổi theo mọi hướng. Một ví dụ cho quá trình này là khuếch tán ảnh bằng phương pháp parabolic:
= c (2.4) Trong đó l(x,y,t) là độ sáng của ảnh x,y và t là các biến không gian và thời gian, là toán tử Laplace. Gabor đã nhận xét từ năm 1960 rằng sự khác nhau giữa ảnh nguyên bản và ảnh đã được làm mờ thì xấp xỉ tương ứng với Laplace của nó. Như vậy sau khi khuếch tán bằng phương trình này thì đã được làm mờ. Tuy nhiên do hệ số khuếch tán không đổi nên quá trình khuếch tán thực hiện trên cả biên và làm mờ biên. Để khắc phục nhược điểm này quá trình khuếch tán dị hướng được thực hiện.
b. Khuếch tán dị hướng
Phương pháp làm trơn thích nghi (adaptive smoothing methods) dựa trên cơ sở tư tưởng ứng dụng quá trình khuếch tán mà hệ số khuếch tán phụ thuộc vào thuộc tính cục bộ của ảnh. Perona và Malick (PM) năm 1990 đã đưa ra khái niệm nổi tiếng này trong giới xử lý ảnh.
Như đã nói ở trên: khi thực hiện khuếch tán tuyến tính đẳng hướng thông thường quá trình này làm mờ ảnh, giảm nhiễu nhưng cũng làm giảm sự chênh lệch độ sáng của các biên edge. Perona và Malick đã đề xuất một phương pháp khuếch tán phi tuyến để khắc phục nhược điểm này của bộ lọc khuếch tán tuyến tính. Perona và Malick đã áp dụng quá trình khuếch tán không đồng nhất (được họ đặt tên là anisotropic) giảm hệ số khuếch tán ở những vị trí mà tại đó có nhiều khả năng là biên. Khả năng này được tính bằng | I |:
It = div(c(| I |) I) c > 0 (2.5) Hệ số khuếch tán được đề xuất là:
c(s) = 2 (2.6)
k là một thông số ngưỡng gradient. Như vậy mô hình PM là một mô hình anisotropic có hệ số khuếch tán giá trị vô hướng (scalar-valued).
Khi các phương trình khuếch tán phi tuyến được áp dụng trong xử lý ảnh giá trị mức xám của ảnh sẽ được khuếch tán từ giá trị cao tới giá trị thấp và cho kết quả làm trơn ảnh. Một chương trình khuếch tán 2D có dạng:
2
2 + 2 (2.7) Tương đương với phép tích chập ảnh với hàm Gauss 2D:
G 2exp(- (2.8) Trong đó I(x,y) là ảnh 2 D và điều kiện khởi tạo I(x,y,0) = I0(x,y) với I0
là ảnh nguyên thủy và là độ lệch tiêu chuẩn = trong đó t là thời gian khuếch tán. Phương trình 2.16 có thể viết dưới dạng tổng quát như sau:
Trong đó c(x,y,t) là hệ số khuếch tán hoặc hệ số dẫn của phương trình truyền nhiệt là toán tử gradient, div là toán tử divergence. Nếu c là một hằng số sẽ dẫn đến phương trình khuếch tán tuyến tính, với một hện số khuếch tán đồng nhất. Trong trường hợp này bộ lọc làm trơn nhiễu trong phạm vi một vùng nhưng cũng làm mờ tất cả các cấu trúc quan trọng như các biên trong quá trình thực hiện theo thời gian. Rõ ràng đây là điều mà người ta không mong muốn. Để giải quyết vấn đề này đã dẫn tới một sự cải tiến đơn giản là chuyển đổi phương trình khuếch tán tuyến tính đơn giản thành phương trình khuếch tán có hệ số khuếch tán không đồng nhất (tức là hệ số dẫn có thể thay đổi theo vị trí trong ảnh) bằng cách cho c phụ thuộc vào ảnh (c( )), phương trình khuếch tán tuyến tính trở thành phương trình khuếch tán phi tuyến. Công thức 2.8 mô tả sự khuếch tán không đẳng hướng (anisotropic diffusion) quá trình khuếch tán này thực hiện với một hệ số khuếch tán có thể thay đổi và thích ứng nhằm mục đích để giảm hiệu ứng làm trơn ở gần sườn. Thuật ngữ “anisotropic” của Perona và Malik là sử dụng cho trường hợp hệ số khuếch tán là một hàm tỷ lệ thay đổi theo vị trí. Hiệu quả sẽ tốt hơn khi hệ số khuếch tán là 1 hàm tensor thay đổivới cả vị trí sườn và hướng của nó. Nhiều tác giả đã thay đổi theo hướng này và nhiều sự lựa chọn khác nhau đã đề xuất cho hàm khuếch tán, lời giải số của công thức trên cơ sở PDE và sự rời rạc hóa không gian của toán tử phi tuyến. Ở đây chúng ta xem xét các hàm hệ số khuếch tán sau:
c(x,y,t)=exp (2.10)
Hoặc hàm:
Trong đó k là tham số ngưỡng và làm cho quá trình khuếch tán bị trễ khi nhỏ hơn . Tác dụng của hai hệ số khuếch tán này khác nhau. Hệ số theo (2.9) thiên về các biên có độ tương phản cao vượt qua độ tương phản thấp trong khi (2.10) thiên về các miền rộng vượt qua các miền nhỏ hơn. Khuếch tán anisotropic của PM thì không khuếch tán một cách đúng đắn trong hướng trực giao với gradient. Việc thay thê c( 2) bằng c( 2) (trong đó * biểu diễn phép chập cuộn), sự ổn định của lời giải được cải thiện trong phạm vi khuếch tán trễ, sự hiểu nhầm nhiễu là biên được giảm đi một cách đáng kể.
c. Khuếch tán với thành phần phức
Quá trình khuếch tán của Perona và Malik vẫn còn một số hạn chế là nhiễu ở gần biên chưa được giảm, cần phải cho cơ hội thêm khuếch tán dọc theo biên cùng với xuyên qua nó. Gilboa và các đồng tác giả đã tổng quát hóa không gian tỷ lệ tuyến tính trong vùng phức bởi kết hợp phương trình khuếch tán với chương trình Schorodiger tự do và sử dụng khuếch tán phức để đạt được mục đích giảm nhiễu, tìm biên có nhiều ưu điểm hơn. Quá trình khuếch tán thực hiện với một hệ số khuếch tán giá trị phức. Giá trị phức trong quá trình khuếch tán được dùng như một bộ tìm biên mạnh kháng nhiễu tốt và quá trình khuếch tán cho kết quả ra hai ảnh đồng thời: phần thực là ảnh đã được giảm nhiễu và phần ảo là ảnh đã được tìm biên.
d. Khuếch tán phức tuyến tính
Phương trình khuếch tán phức tuyến tính được Gilboa đưa ra có dạng: It = cIxx t>0, x
I(x;0) = I0 c,I (2.12) Dựa trên cơ sở phương trình khuếch tán tuyến tính và phương trình Schorodiger. Ở đây c và I là các số phức. Hệ số khuếch tán phức được chọn c = rej và để tồn tại một giá trị c thực dương chúng ta giới hạn
CHƢƠNG 3.
ỨNG DỤNG CÔNG NGHỆ MẠNG NƠRON TẾ BÀO CHO BÀI TOÁN KHỬ NHIỄU
3.1. Bài toán khử nhiễu với CNN
3.1.1. Điều kiện biên tiêu biểu cho một CNN
Các điều kiện biên cố định (Dirichlet)
Các tế bào ảo bên trái: yi,0 = 1; ui,0 = 1 , i = 1, 2, …, M. Các tế bào ảo bên phải: yi,N+1 = 2; ui,N+1 = 2 , i = 1, 2, …, M. Các tế bào ảo bên trái: y0,j = 3; u0,j = 3 , j = 1, 2, …, N. Các tế bào ảo bên trái: yM+1,j = 4; uM+1,j = 4 , j = 1, 2, …, N. trong đó i , i là hằng số do người sử dụng quy định (thường là bằng 0).
Sự thể hiện mạch: thêm 1 dòng hoặc cột về phía trước đường biên và năng lượng mỗi cell có 1 đầu vào và đầu ra cố định bởi ắc quy (Hình 3.1)
Hình 3.1. Mạch thể hiện của điều kiện biên cố định (Dirichlet)
Các điều kiện biên Zero-flux (Neuman)
Các tế bào ảo bên phải: yi,N+1 = yi,N; ui,N+1 = ui,N , i = 1, 2, …, M. Các tế bào ảo bên trái: y0,j = y1,j; u0,j = u1j , j = 1, 2, …, N. Các tế bào ảo bên trái: yM+1,j = yMj; uM+1,j = uMj , j = 1, 2, …, N.
Hình 3.2. Mạch thể hiện điều kiện biên Neumann
Các điều kiện biên tuần hoàn (Toroidal)
Các tế bào ảo bên trái: yi,0 = yi,N; ui,0 = ui,N , i = 1, 2, …, M. Các tế bào ảo bên phải: yi,N+1 = yi,1; ui,N+1 = ui,1 , i = 1, 2, …, M. Các tế bào ảo bên trái: y0,j = yMj; u0,j = uMj , j = 1, 2, …, N. Các tế bào ảo bên trái: yM+1,j = y1j; uM+1,j = u1j , j = 1, 2, …, N.
Hình 3.3. Mạch thể hiện của điều kiện biên tuần hoàn
Xác định mỗi cell từ hàng trên với cell tương ứng trong hàng dưới, xác định mỗi cell từ cột bên trái với cell tương ứng trong cột bên phải.
3.1.2. Quá trình ứng dụng CNN vào bài toán khử nhiễu
Việc nghiên cứu và tiến hành xây dựng bộ trọng số liên kết cơ sở trong CNN (các mẫu - template), thuật toán cơ bản vẫn được các nhà khoa học nghiên cứu về CNN tìm và tập hợp, sắp xếp thành thư viện chuẩn. Thư viện này vẫn có thể được cập nhật thêm các mẫu và các thủ tục.
Phối hợp các mẫu và thủ tục cơ bản này có thể giải quyết nhiều nhiệm vụ của tính toán và xử lý song song bằng CNN. Bên cạnh đó, việc xây dựng các mô hình mới, tìm ra các mẫu mới, xây dựng các thủ tục mới để giải quyết nhiệm vụ tính toán xử lý của mình vẫn được tiến hành.
Để ứng dụng CNN vào bài toán khử nhiễu, ta tiến hành:
Hình 3.4. Mô hình tìm hiểu ứng dụng CNN khử nhiễu
Tìm hiểu Phương pháp khử nhiễu trong xử lí ảnh Tìm hiểu Kiến trúc mạng CNN Tìm hiểu phương pháp thiết kế mẫu CNN Đề xuất mẫu CNN khử nhiễu ảnh Phương pháp học
3.1.3. Quá trình tìm mẫu bằng phương pháp học
Bƣớc 1. Nạp ảnh đầu vào;
Bƣớc 2. Đưa yêu cầu xử lí (ví dụ làm mờ, dò biên, dãn ảnh…); Bƣớc 3. Thực hiện các xử lý logic hoặc analogic để tìm mẫu; Bƣớc 4. Thực hiện xử lí song song với mẫu tìm được;
Bƣớc 5. Đánh giá kết quả thu được, nếu đầu ra chưa hội tụ đến đầu ra của
biên lí tưởng tiến hành quay trở lại bước 3 cho tới khi đạt được mẫu CNN tối ưu.
Hình 3.5. Quá trình tìm mẫu bằng phương pháp học
Khi tìm được mẫu tối ưu, ta áp dụng thực hiện xử lý cho bất kỳ ảnh đầu vào, thuật toán như sau:
Bƣớc 1: Nạp ảnh đầu vào;
Bƣớc 2: Nạp mẫu xử lý (tùy yêu cầu xử lý để nạp mẫu thích hợp); Bƣớc 3: Chạy chương trình;
Bƣớc 4: Đưa ra kết quả xử lý. 3.2. Mẫu CNN khử nhiễu đề xuất
DENOISSING CNN 01: 1 1 1 0 0 0 A 1 8 1 B 0 0 0 Z= -1 1 1 1 0 0 0 DENOISSING CNN 02: 0 1 0 0 0 0 A 1 2 1 B 0 1 0 Z= -1 0 1 0 0 0 0 DENOISSING CNN 03: 0.1 0.15 0.1 0 0 0 A 0.15 0 0.15 B 0 0 0 Z= 0 0.1 0.15 0.1 0 0 0
3.3. Cài đặt thử nghiệm, mẫu khử nhiễu
3.3.1. Chuẩn bị
Chuẩn bị: Ảnh nhị phân (hoặc ảnh xám) P; Đầu vào: U(t)=P;
Khởi tạo giá trị: x(0) = tùy chọn giá trị (ta chọn xij (0)=0);
Điều kiện biên: sử dụng giá trị cố định uij = 0, yij = 0 cho tất cả các tế bào ảo, có nghĩa là [U]=[Y]= [0];
Đầu ra: Y(t) Y(∞) = cho ra ảnh nhị phân được khử bớt nhiễu P’.
Input Image:
Image 01
Image 02
3.3.2. Cài đặt
- Sử dụng Mẫu CNN tìm được tiến hành trên phần mềm chuẩn Candy, ứng dụng Java CNN. So sánh kết quả thu được trên Candy và Java CNN.
3.3.2.1. Phần mềm Candy
Bước 1. Cài đặt Candy_Setup.exe
- Vào link website (http://www-inst.eecs.berkeley.edu/~ee129/) tải phần cài đặt, lưu lại vào máy tính.
Bước 2. Chạy ứng dụng; Giao diện chính:
- Những hình ảnh được xử lý nên được nạp trên màn hình ngay từ đầu. Để làm điều này, nhấp vào “File/open image”, sau đó màn hình sau đây sẽ xuất hiện.
Nếu chọn thư mục D tập tin "anhmau2.bmp" trên danh sách File Name, hình ảnh sau đây sẽ xuất hiện:
- Để xử lý hình ảnh hiển thị trên màn hình, chọn “Template Runner” (xem trợ giúp Help/Menu Interface/Template).
+ Lựa chọn Mẫu Template (ở đây chọn Average hoặc Median,…..); + Để chạy Click “script” box.
3.3.2.2. Mô phỏng CNN với chương trình Java CNN
Giao diện chính
3.3.3. Thử nghiệm 01: mẫu DENOISSING CNN 01
1 1 1 0 0 0
A 1 8 1 B 0 0 0 Z= -1
Kết quả (1)
Input Output (T = 0.3s)
Image 01
Image 02
3.3.4. Thử nghiệm 02: mẫu DENOISSING CNN 02
0 1 0 0 0 0 A 1 2 1 B 0 1 0 Z= -1 0 1 0 0 0 0 Kết quả (2) Input Output (T = 0.1s) Image 01
Image 02
Input Output (T = 0.3s)
Image 01
Image 02
3.3.5. Thử nghiệm 03: mẫu DENOISSING CNN 03
0.1 0.15 0.1 0 0 0 A 0.15 0 0.15 B 0 1 0 Z= 0 0.1 0.15 0.1 0 0 0 Kết quả (3) Input Output (T = 0.9s) Image 01
Image 02
Input Output (T = 0.5s)
Image 01 Image 02
3.4. Nhận xét & đánh giá
Từ những kết quả thu được khi áp dụng 03 mẫu DENOISSING CNN 01, DENOISSING CNN 02, DENOISSING CNN 03, ta có một số đánh giá như sau:
Với mẫu DENOISSING CNN 01, DENOISSING CNN 02
Kết quả, thời gian thực hiện là giống nhau, chất lượng ảnh thu được là khá tốt. Nhiễu của ảnh đã được loại bỏ.
Với mẫu DENOISSING CNN 03
Thời gian thực hiện lâu hơn, tỉ lệ nhiễu được loại thấp hơn so với 02 mẫu đầu. Ảnh thu được mờ hơn ảnh ban đầu, do biên ảnh không rõ nét.
KẾT LUẬN
Luận văn đã giới thiệu được kiến trúc, hoạt động của mạng nơron tế bào, sự phát triển công nghệ mạng nơron tế bào và các ứng dụng CNN trong mọi lĩnh vực, qua đó thể hiện những ưu thế vượt trội về tốc độ tính toán, kích thước dữ liệu.
Tìm hiểu một số phương pháp xử lí ảnh sử dụng công nghệ CNN. Ứng dụng vào bài toán khử nhiễu ảnh: từ các phương pháp thiết kế bộ mẫu (A, B, z), tiến hành thử nghiệm đưa ra 03 bộ mẫu đề nghị DENOISSING CNN 01, DENOISSING CNN 02, DENOISSING CNN 03 trên phần mềm Candy, phần mềm mô phỏng Java CNN.
Tuy nhiên luận văn còn hạn chế, bước đầu mới tiến hành thử nhiệm với ảnh hai chiều và trạng thái đầu vào đã được mã hóa theo mã nhị phân, ảnh đa cấp xám, mô phỏng trên máy tính PC (yêu cầu máy có cấu hình từ Pentium 4 và cài đặt jdk 1.5.0 trở lên). Chưa thực hiện việc thiết kế kiến trúc phần cứng trên chip CNN nên kết quả tính toán, tốc độ chưa được thể hiện rõ
Trong thời gian tới sẽ tìm hiểu các phương pháp công nghệ xử lý song song cho thao tác khử nhiễu ảnh mới trong các bài toán thời gian thực, cấu hình trên chip FPGA có tài nguyên lớn hơn cho các bài toán. Tiếp tục thử nghiệm đề xuất nhiều bộ mẫu mới bổ sung thêm cho thư viện mẫu. Ứng dụng hiệu quả hơn trong các bài toán thực tế yêu cầu.
TÀI LIỆU THAM KHẢO
I. Tiếng Việt
1. Phạm Thượng Cát (2007), “Hợp tác nghiên cứu phát triển các hệ thống