Kết quả và đánh giá so sánh với các phương pháp khác

Một phần của tài liệu PHÁT TRIỂN MỘT SỐ THUẬT TOÁN XỬ LÝ ẢNH SỬ DỤNG MẠNG NƠRON TẾ BÀO (Trang 98 - 103)

CHƯƠNG 4: MỘT SỐ KẾT QUẢ THỰC NGHIỆM

4.1.2. Kết quả và đánh giá so sánh với các phương pháp khác

Hình 4.2 Kết quả thực nghiệm bộ lọc shock trên Bi-I

a) Ảnh nguyên bản "ha_long.bmp" kích thước 128x100 b) Ảnh nguyên bản có nhiễu NSR = 5dB c) Ảnh nhiễu sau 5 lần thực hiện bộ lọc shock, thời gian tổng cộng 45 mili giây d) Ảnh nhiễu sau 20 lần lặp thực hiện bộ lọc shock, thời gian tổng cộng 200 mili giây.

Sau khi thực hiện shock kết hợp khuếch tán phức theo (3.32) ảnh có nhiễu (4.2b) đã được giảm nhiễu và biên giới các phân vùng (các biên) trở nên nét hơn (4.2d).

Thuật toán lai thực hiện lọc shock tiêu tốn nhiều thời gian do các khâu tính toán nối tiếp 5,6,7,11,12,14,15 trên DSP.

Hình 4.3 Kết quả thực hiện bộ lọc shock trên ảnh xám thu trực tiếp từ camera CNN UM Bi-I V2: a) Ảnh nguyên bản thu được kích thước 128x128; b) Ảnh có nhiễu c) Ảnh nhiễu sau 5 lần lặp bộ lọc shock thời gian tổng cộng 60ms; d) Ảnh nhiễu sau 20 lần lặp bộ lọc shock , thời gian toàn bộ 250 ms.

Nhận xét:

Để đánh giá hiệu quả của việc xử lý chúng tôi sử dụng chỉ số PSNR (Peak Signal-to-Noise Ratio). Chỉ số này phản ảnh sự thay đổi tỷ lệ của tỉ số tín hiệu trên nhiễu của ảnh qua xử lý. Khi PSNR lớn hơn chất lượng của ảnh tốt hơn và ngược lại thì chất lượng kém hơn.

⎟⎟⎠

⎜⎜ ⎞

= ⎛ db MSE PSNR

2552

log

* 10 )

( (4.1)

( )

∑∑= =

= M −

1

i 1

2

* SE N '

j

ij ij

N M

I

M I (4.2)

Trong đó: MSE (Mean-Square error): Sai hỏng bình phương trung bình M, N Kích thước ảnh theo chiều hàng và cột.

Iij và I'ij: Giá trị dữ liệu thực và giá trị ước lượng.

Bảng 4.1 so sánh hiệu quả lọc nhiễu với ảnh trên hình 4.2 và 4.3 khi thực hiện theo phương pháp của Alvarez và Mazorra và bộ lọc shock thường.

Bảng 4.1 Hiệu quả xử lý của một số bộ lọc shock Bộ lọc

shock thường

Bộ lọc shock của Alvarez và

Mazorra

Phương pháp lai CNN+DSP PSNR

Ảnh 1 17,315 18,386 31,228

Ảnh 2 15,041 16,422 29,750

Về tốc độ: Tốc độ xử lý của phương pháp lai đề xuất chắc chắn phải nhanh hơn thực hiện trên máy tính truyền thống bởi các lý do sau: Khi thực hiện trên máy tính xử lý tuần tự truyền thống như PC tất cả 15 bước (trong hình 3.9) đều được thực hiện tuần tự. Còn trong thuật toán lai chỉ còn lại 7 bước thực hiện tuần tự. Các bước được tính toán song song hoàn toàn là các bước 1, 2, 3, 4, 8, 9, 10, 13. Hầu hết là các bước này có khối lượng tính toán lớn, tiêu tốn thời gian như thực hiện nhân chập (bước 13) hoặc tính các đạo hàm bậc hai (8, 9, 10, 11), ...nhưng do đã được tính song song thực sự nên đã giảm thời gian thực hiện đi rất nhiều. Để có thể ước lượng so sánh việc thực hiện thuật toán ở hình (3.9) theo phương pháp lai và phương pháp hoàn toàn nối tiếp chúng ta giả sử tốc độ thực hiện lệnh nối tiếp trong hai trường hợp là như nhau. Chúng ta tính:

- Tổng số phép tính khi thực hiện hoàn toàn nối tiếp.

- Số phép tính nối tiếp được giảm đi khi sử dụng CNN.

Từ đó ước lượng được hiệu quả của phương pháp lai.

Tính tổng số phép toán thực hiện: Theo dòng lệnh nối tiếp. Ví dụ thực hiện trên MATLAB các bước 1,2,3,4,5 của thuật toán hình 3.9 với ảnh 128x100:

Bước 1: Thực hiện câu lệnh:

I_mx = I-I(:,[1 1:nx-1]); Gồm 128.128 phép tính trừ (do có 128 pixel ngang và 128 lần trừ các phần tử ảnh lân cận)

Vậy bước 1 hết 16384 phép trừ Bước 2:

I_px = I(:,[2:nx nx]) – I; Gồm 128.128 phép tính trừ (128 pixel ngang, 128 lần trừ). Vậy bước 2 hết 16384 phép trừ

Bước 3:

I_my = I-I([1 1:ny-1], : ; Gồm 100.100 phép tính trừ (100 pixel chiều dọc, 100 lần trừ). Vậy bước 3 hết 10000 phép trừ.

Bước 4:

I_py = I([2:ny ny, :) – I; Gồm 100.100 phép tính trừ (100 pixel chiều dọc, 100 lần trừ). Vậy bước 4 hết 10000 phép trừ.

Bước 5:

I_x = (I_mx+I_px)/2; Gồm 128.128 phép cộng và 128.128 phép chia.

I_y = (I_my+I_py)/2; Gồm 100.100 phép cộng và 100.100 phép chia.

Dx = min (abs(I_mx), abs(I_px)); 128 phép gán.

ind = find (I_mx.I_px < 0); 128 phép gán.

Dx (ind) = zeros (size(ind)); 128.128 phép gán.

Vậy bước 5 hết 26384 phép cộng, 26384 phép chia, 16512 phép gán.

Tương tự: Bước 6 hết 26384 phép cộng, 26384 phép chia, 16512 phép gán.

Bước 7: 128.100.38400 phép nhân + 120.100 phép cộng. =38400 ph.nhân, 12000ph.cộng

Bước 8: 16384 phép nhân, 16384 phép cộng, 16384 phép trừ Bước 9: 10000 phép nhân, 10000 phép cộng, 10000 phép trừ Bước 10: 12800 phép nhân, 12800 phép cộng, 12800 phép chia.

Bước 11: 38400 phép cộng 115200 phép nhân, 64000 phép gán +12000 phép chia.

Bước 12:38400 phép cộng 115200 phép nhân, 64000 phép gán +12000 phép chia.

Bước 13: 115200 phép nhân.

Bước 14: 12800 phép gán.

Bước 15: 25600 phép nhân, 25600 phép chia, 25600 phép cộng

Bảng 4.2 Tỷ lệ số phép toán thực hiện song song khi sử dụng thuật toán lai:

Loại

phép tính Tổng số

Số phép toán được thực hiện song song ở các bước

1,2,3,4,8,9,10,13

Tỷ lệ phần trăm số bước thực hiện song

song (%)

Phép nhân 448784 128784 20.7

Phép chia 115168 12800 11.1

Phép cộng 412704 245536 59.5

Phép trừ 81952 81952 100.0

Phép gán 173824 173824 0.0

Trên máy tính tuần tự các phép toán nhân và chia có thể thực hiện trên một thanh ghi bằng các phép dịch trái và dịch phải (hoặc trên 2 thanh ghi). Thời gian thực hiện các phép cộng và trừ cũng thường thực hiện trên 2 thanh ghi (hoặc trên 1 thanh ghi và 1 ô nhớ - trường hợp này còn tốn thời gian hơn nữa). Thời gian thực hiện phép gán thì rất nhỏ so với hai loại phép tính trên. Từ cọc 4 của bảng 4.2 có thể thấy rằng theo dự tính tính toán cơ học thì thuật toán lai chỉ giảm khoảng 40% số lệnh. Tuy nhiên như đã phân tích, số lượng phép tính trên hai thanh ghi của máy tuần tự rất nhiều nên khi thực hiện bằng CNN thực tế thời gian còn giảm đi hơn nữa. Thực nghiệm chạy thuật toán chương trình MATLAB trên máy tuần tự 1.8GHz, 512MB RAM tốn khoảng 3 giây. Trong khi đó thực hiện trên Bi-I với DSP chỉ có xung nhịp 600MHz mà chỉ tốn vài trăm miligiây (hình 4.2 và 4.3). Do các thời gian đọc, viết mảng chiếm khá nhiều nên dù thực hiện mỗi bộ mẫu CNN trong mỗi bước song song chỉ tốn vài micro giây nhưng tổng số thời gian của thuật toán lai cũng ở cỡ vài trăm mili giây; tuy vậy việc thực hiện cũng đã nhanh hơn trên máy tính tuần tự nhiều lần.

Thuật toán lai thực hiện trên Bi-I còn một điểm vượt trội nữa mà khi xử lý trên các máy tính tuần tự không thể có là ảnh từ camera sau khi thu không phải qua các bộ ADC nữa mà được đưa trực tiếp tới đầu vào của mỗi tế bào CNN để xử lý nên tốc độ bắt và xử lý ảnh có thể lên tới hàng chục nghìn fps.

Một phần của tài liệu PHÁT TRIỂN MỘT SỐ THUẬT TOÁN XỬ LÝ ẢNH SỬ DỤNG MẠNG NƠRON TẾ BÀO (Trang 98 - 103)

Tải bản đầy đủ (PDF)

(124 trang)