Đặt vấn đề Hiện nay, đa số mọi người đều chụp hình bằng điện thoại thông minh. Điều này khá dễ hiểu bởi điện thoại thông minh vô cùng phổ biến, nhỏ gọn, dễ mang theo và khi chụp hình cũng không cần phải tinh chỉnh quá nhiều so với các dòng máy ảnh DSLR chuyên nghiệp. Tuy nhiên, đánh đổi với sự tiện lợi đó, các camera trên điện thoại sẽ có một vài hạn chế nhất định về phần cứng, cũng như là chất lượng ảnh chụp sẽ thấp hơn nhiều so với các dòng máy ảnh DSLR. Vì chụp hình đơn thuần chỉ là một tính năng nhỏ trên điện thoại, cho nên các nhà sản xuất sẽ cố gắng hạ giá thành của mô-đun (module) camera này xuống thấp nhất có thể (khoảng 5 - 15 USD cho một đơn vị).
Sensor của các loại camera này có kích thước rất nhỏ, khoảng 5 × 4 mm; trong khi đó kích thước sensor của DSLR là 36 × 24 mm [6]. Khẩu độ (aperture), tiêu cự (focal length) của các loại sensor này sẽ luôn cố định mà không thể thay đổi được như DSLR. Do đó, các nhà sản xuất điện thoại thường phải bổ sung thêm 2 - 3 camera có tiêu cự khác nhau để có thể phát triển các tính năng chụp góc rộng, zoom. Ngoài ra, khi chụp hình trong điều kiện thiếu sáng (ví dụ: ngược sáng, trời tối), vì kích thước sensor nhỏ, khẩu độ cố định dẫn đến lượng ánh sáng đi vào camera thấp, ảnh chụp được thường sẽ rất tối, mắt người hầu như khó mà có thể phân biệt được các chi tiết bên trong ảnh.
Để khắc phục vấn đề này, người ta thường tăng thời gian phơi sáng (exposure time) hoặc tăng giá trị ISO của camera. Mặc dù hai cách này đều giúp ảnh chụp sáng hơn, tuy nhiên chúng cũng mang lại những bất lợi khác. Tăng thời gian phơi sáng thường sẽ làm ảnh bị mờ khi chụp các vật thể chuyển động (motion blur), trong khi tăng giá trị 1 GIỚI THIỆU ISO sẽ giúp sensor nhạy sáng hơn nhưng đồng thời cũng lại làm mức độ nhiễu trong ảnh tăng cao. Bất lợi này được thể hiện rõ trong hình 1.
Google Pixel, ISO 100, Normal Light Google Pixel, ISO 10000, Normal Light Noisy Clean Noisy Clean Hình 1.1: Mức độ nhiễu trong ảnh tăng cao khi tăng giá trị ISO của camera.2 Động lực Mặc dù gặp những bất lợi về mặt phần cứng camera sensor nhưng khả năng tính toán của điện thoại thông minh lại vượt trội hơn rất nhiều so với các dòng máy DSLR. Các con chip CPU trên điện thoại hiện nay, tuy không thể so sánh với các dòng CPU dành riêng cho máy tính, nhưng vẫn có khả năng thực hiện số lượng lớn các phép toán (114.2 GFLOPS đối với Qualcomm Snapdragon 855), và được tích hợp sẵn bộ xử lý đồ họa GPU bên trong. Bên cạnh đó, kết quả của các mô hình học sâu đã vượt trội hơn rất nhiều các giải thuật truyền thống, cùng với sự hỗ trợ của thư viện học sâu Tensorflow Lite dành cho điện thoại thông minh, việc áp dụng mô hình học sâu để khử nhiễu cho ảnh chụp bởi điện thoại là một điều khả thi.3 Mục tiêu Trong phạm vi của đề tài, nhóm sẽ tập trung giải quyết bài toán khử nhiễu cho ảnh với hai mục tiêu chính: • Đề xuất mô hình khử nhiễu cho ảnh chạy trực tiếp trên điện thoại. • So sánh và đánh giá về mặt thời gian xử lý trên điện thoại và khả năng khử nhiễu của các mô hình học sâu.4 Giới hạn đề tài Ảnh chụp bởi camera trên điện thoại ngoài nhiễu ra thì còn chịu những ảnh hưởng khác như là độ tương phản thấp, độ phân giải thấp hay bị mờ do ngoại cảnh (motion blur).
Tuy nhiên, trong phạm vi của đề tài, nhóm sẽ chỉ tập trung giải quyết bài toán khử nhiễu cho ảnh chụp từ điện thoại. Đồng thời, mô hình được đề xuất cần đảm bảo được hai yêu cầu sau về tốc độ xử lý và chất lượng khử nhiễu: • Xử lý được ảnh có kích thước 12 MP (12 Megapixel) trong vòng 1 giây trên con chip Samsung Exynos 9820. • Chất lượng khử nhiễu của mô hình cần đạt được PSNR > 37.5 Bố cục luận văn Phần còn lại của luận văn sẽ được tổ chức như sau. Chương 2 sẽ cung cấp kiến thức cơ bản về sensor của camera, quá trình xử lý ảnh bên trong camera, và các nguồn nhiễu có thể xuất hiện trong quá trình chụp.
Tiếp theo, chương 3 sẽ mô hình hóa bài toán khử nhiễu, giới thiệu các mô hình nhiễu phổ biến và các độ đo thường được sử dụng để so sánh và đánh giá các phương pháp, giải thuật khử nhiễu. Các phương pháp dùng để khử nhiễu cho ảnh sẽ được trình bày chi tiết ở chương 4. Chương 5 và chương 6 sẽ đề xuất mô hình khử nhiễu mới, trình bày các thí nghiệm cũng như so sánh và đánh giá chất lượng khử nhiễu, thời gian xử lý của các mô hình khác trên điện thoại di động. Cuối cùng, chương 7 sẽ tóm tắt công việc, kết quả đạt được, những khó khăn và hạn chế trong quá trình thực hiện luận văn.
3 Chương 2 Kiến thức nền tảng Chương này sẽ trình bày các kiến thức cơ bản về sensor, quá trình camera xử lý dữ liệu thô thu được từ sensor để cho ra ảnh chất lượng cao cuối cùng. Đồng thời, chi tiết về các nguồn nhiễu chính thường xuất hiện trong ảnh cũng sẽ được đề cập.1 Quá trình xử lý ảnh của camera (Image Process- ing Pipeline) 2.1 Camera sensor Thay vì sử dụng các tấm phim hóa học để lưu trữ ánh sáng, máy ảnh kỹ thuật số DSLR thay thế chúng bằng sensor nhạy sáng. Camera sensor bao gồm hàng triệu điểm nhạy sáng (photodiode) được sắp xếp dưới dạng mảng hai chiều. Mỗi photodiode sẽ tương ứng với một điểm ảnh (pixel), số lượng photodiode càng lớn thì số lượng pixel cũng sẽ càng lớn.
Các photodiode này sẽ thu thập các hạt photon trong tia sáng và chuyển thành các hạt điện tích electron để lưu trữ (hình 2. Độ sáng của pixel sẽ tỉ lệ thuận với số lượng electron. Trên các photodiode, người ta sẽ đặt một màng lọc ánh đơn sắc (color filter) để lấy các ánh sáng đơn sắc cần thiết cho việc tái tạo màu sắc trong ảnh. Một trong các màng lọc ánh sáng đơn sắc phổ biến đó là màng lọc Bayer (Bayer filter) (hình 2.
Sau khi sensor đã lọc được ánh sáng đơn sắc, năng lượng của các electron mà các photodiode thu thập sẽ được chuyển thành điện áp (voltage) và được khuếch đại để có thể thực hiện số hóa (analog to digital) thành các giá trị độ sáng. Khoảng giá trị của các giá trị độ sáng này phụ thuộc vào số lượng bit mà sensor có thể biểu diễn, thường 10 - 4 KIẾN THỨC NỀN TẢNG 14 bit (tương ứng với 1024 - 16384 giá trị). Kết thúc bước này, chúng ta thu được mảng dữ liệu hai chiều chứa đựng thông tin độ sáng môi trường, được gọi là ảnh RAW. Mặc dù ảnh RAW chứa đựng thông tin màu sắc, nhưng hiện tại nó chỉ có một kênh màu.
Vì thế, mục tiêu chính của quá trình xử lý ảnh bên trong camera sẽ chuyển ảnh RAW sang ảnh RGB để hiển thị cho phù hợp với thị giác của con người. Bên cạnh đó, vì các hàm nhạy sáng (spectral sensitive) của các bộ lọc ánh sáng đơn sắc (color filter) là riêng biệt đối với từng loại sensor (hình 2.1c), do đó ngoài việc chuyển đổi từ ảnh RAW sang ảnh RGB, quá trình xử lý ảnh cũng đảm nhận vai trò chuyển các giá trị màu từ không gian màu của sensor sang một không gian màu chuẩn, độc lập với không gian màu của sensor, ví dụ như là không gian màu CIE 1931 XYZ. (a) Camera Sensor (b) Cấu tạo của sensor (c) Quang phổ của ánh sáng đơn sắc Hình 2.2 Quá trình xử lý ảnh của camera Bên trong hệ thống camera sẽ có một con chip riêng biệt đảm nhận vai trò chuyển từ ảnh RAW sang ảnh RGB. Con chip này được gọi là Image Signal Processor (ISP).
Bayer / RAW Processing Unit Image Processing Unit Color Raw Image Bayer Color Space Tone-mapping White Balance manipulation Pre-processing Demosaicing Transform (photo-finishing) (photo-finishing) Image resizing JPEG Output color Save to file (including Sharpening Noise reduction compression space conversion digital zoom) Hình 2.2: Quá trình xử lý ảnh bên trong camera.2 mô tả một ISP đơn giản [7, 6]. Tương ứng với từng loại sensor, quá trình này sẽ có một vài thay đổi nhỏ để phù hợp với phần cứng. Bên cạnh đó, các nhà sản xuất 5 KIẾN THỨC NỀN TẢNG camera cũng sẽ tinh chỉnh các giải thuật xử lý ảnh và các tham số bên trong ISP để ảnh chụp được có chất lượng tốt nhất cũng như tạo ra sự khác biệt với các đối thủ cạnh tranh. Raw image pre-processing: Ở một số sensor, các pixel có giá trị độ sáng thấp nhất (BlackLevel) không phải là giá trị 0 mà là một con số cụ thể nào đó ví dụ như là 32 hoặc 64.
Cho nên, để có thể mô tả chính xác màu đen tuyệt đối mang giá trị độ sáng là 0, và màu trắng là 1, bước đầu của tiền xử lý ảnh RAW là đưa các giá trị độ sáng này về giá trị 0 và thực hiện chuẩn hóa về trong khoảng [0, 1]. ISP sẽ sử dụng hai giá trị BlackLevel và WhiteLevel (giá trị độ sáng cao nhất mà sensor phản ứng) của camera để thực hiện. Hai giá trị này phụ thuộc vào từng loại sensor và từng cấu hình khi chụp của camera. Trong trường hợp hai giá trị này không được cung cấp sẵn, ISP sẽ thay thế bằng hai giá trị độ sáng nhỏ nhất và lớn nhất trong ảnh RAW.
Trong quá trình sản xuất, đôi khi các photodiode trên sensor sẽ bị lỗi, dẫn đến một số pixel sẽ mô tả sai lệch đi so với độ sáng thực tế. Các photodiode luôn trả về các giá trị cao (hot pixel) hoặc không trả về giá trị nào (dead pixel) đều được xem là lỗi. Đây là sai sót không thể tránh khỏi trong quá trình sản xuất. Vì thế, đi kèm theo camera sensor sẽ là defective pixel mask đánh dấu vị trí của các pixel lỗi đã được nhà sản xuất ước tính từ trước.
Bước tiếp theo của quá trình tiền xử lý ảnh RAW là thực hiện sửa chữa các pixel bị lỗi. Ở bước này, người ta thường sử dụng các phương pháp nội suy để tìm các giá trị độ sáng còn thiếu tại các vị trí này dựa trên độ sáng của các pixel lân cận. Cuối cùng của bước tiền xử lý ảnh RAW là lens shading correction. Ánh sáng qua ống kính của camera sẽ không phủ đều sensor, mà sẽ tập trung mạnh ở tâm ảnh và giảm dần về hai bên.
Điều này khiến cho độ sáng của toàn bộ ảnh không đều.3 mô tả quá trình lens shading correction.