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
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGHIÊN CỨU GIẢI THUẬT KHỬ NHIỄU TRÊN ẢNH CHỤP BỞI CÁC ĐIỆN THOẠI THÔNG MINH
NGÀNH: KHOA HỌC MÁY TÍNH
GVHD: TS Nguyễn Hồ Mẫn Rạng GVPB: ThS Trần Ngọc Bảo Duy
—o0o—
SVTH: Nguyễn Bảo Huy (1711502)
TP HỒ CHÍ MINH, 8/2021
Trang 3- 6LQKYLrQWKӱQJKLӋP các mô hình tӕWQKҩWhiӋQQD\YӅNKӱQKLӉXQKѭ&\FOH,6P, MIRNetÿӗQJWKӡLÿӅ[XҩWP{KuQKFҧLWLӃQJL~StăQJWӕFÿӝ[ӱOý trên các thiӃWEӏGLÿӝQJ
- Mô hình ÿӅ[XҩWFyWKӇ[ӱOêÿѭӧFҧQK03GѭӟL100ms (tѭѫQJÿѭѫQJVÿӕLYӟLҧQK03 trên Samsung Exynos 9820 trong khi chҩWOѭӧQJNKӱQKLӉXJҫQWѭѫQJÿѭѫQJYӟLFác giҧLWKXұWWӕWnhҩWKiӋQQày trên hai ÿӝÿRSKәELӃQOà PSNR và SSIM KӃWTXҧWKӵFQghiӋPÿѭӧFÿánh giá WұSGӳOLӋXFKtQKOjDND và SIDD KӃWTXҧYӅPһWÿӏQKWính cNJQJFKRNӃWTXҧWѭѫQJÿѭѫQJ
- Sinh viên hiӋQWKӵFthành công giҧLWKXұWWUên thiӃWEӏdi ÿӝQJӭQJGөQJWUên Android) ÿӇminh hӑD
Trang 4-Ngày tháng năm
PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho người hướng dẫn/phản biện)
1 Họ và tên SV: Nguyễn Bảo Huy
2 Đề tài: Nghiên cứu giải thuật khử nhiễu trên ảnh được chụp bởi các điện thoại thông minh
(smartphone)
3 Họ tên người hướng dẫn/phản biện: TRẦN NGỌC BẢO DUY
4 Tổng quát về bản thuyết minh:
6 Những ưu điểm chính của LVTN:
- Trình bày được mô hình học máy để giải quyết bài toán đã nêu thông qua việc phân tích ưu nhược điểm của các mô hình single-scale, multi-scale, hybrid
- Hiện thực một ứng dụng nhỏ để demo kết quả luận văn đã nghiên cứu
7 Những thiếu sót chính của LVTN:
- Sinh viên trình bày báo cáo sơ sài, tuy nhiên, sau đó đã chỉnh sửa
- Không đề cập đến kết quả so sánh giữa nhiều phương pháp: học sâu (các mô hình kể trên), các phương pháp xử lý ảnh truyền thống
- Không đề cập đến tốc độ xử lý phụ thuộc vào phần cứng, không có sự so sánh thậm chí trên các thiết bị mà sinh viên đã có
- Ứng dụng hiện thực chỉ là demo, không thể sử dụng thực tế vì ảnh xử lý ra không có tính liên tục,
bị cắt thành các section khác nhau và các section không thể tạo thành một ảnh hoàn chỉnh
8 Đề nghị: Được bảo vệ ✓ Bổ sung thêm để bảo vệ □ Không được bảo vệ □
9 3 câu hỏi SV phải trả lời trước Hội đồng:
a Tốc độ và khả năng xử lý phụ thuộc như thế nào vào phần cứng của máy ảnh? Việc nhắm đến phần khúc bình dân trong khi tốc độ xử lý không ổn định này liệu có đáp ứng được yêu cầu?
b Tại sao phải cắt thành các section nhỏ trong quá trình xử lý một ảnh lớn hơn 1MP trong ứng dụngdemo?
c Kết quả của việc xử lý trên từng section không thể ghép lại thành một ảnh hoàn chỉnh, không tạo cảm giác phân chia là do đâu? Liệu mô hình có phải bị ảnh hưởng bởi histogram của ảnh?
10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm : 8.0 /10
Ký tên (ghi rõ họ tên)
Trang 5Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫncủa TS Nguyễn Hồ Mẫn Rạng Nội dung nghiên cứu và các kết quả đều là trungthực và chưa từng được công bố trước đây Các số liệu được sử dụng cho quá trìnhphân tích, nhận xét được chính tôi thu thập từ nhiều nguồn khác nhau và sẽ đượcghi rõ trong phần tài liệu tham khảo.
Ngoài ra, tôi cũng có sử dụng một số nhận xét, đánh giá và số liệu của các tácgiả khác, cơ quan tổ chức khác Tất cả đều có trích dẫn và chú thích nguồn gốc.Nếu phát hiện có bất kỳ sự gian lận nào, tôi xin hoàn toàn chịu trách nhiệm vềnội dung luận văn tốt nghiệp của mình Trường đại học Bách Khoa thành phố HồChí Minh không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ratrong quá trình thực hiện
Trang 6Tôi xin gửi lời cảm ơn sâu sắc đến thầy hướng dẫn của mình là TS Nguyễn HồMẫn Rạng, người đã hỗ trợ nhiệt tình trong quá trình thực hiện đề cương luận văncũng như luận văn tốt nghiệp Những góp ý của thầy giúp tôi rất nhiều trong quátrình nghiên cứu và viết luận văn.
Tôi cũng xin gửi lời cảm ơn đến các thầy cô trong khoa Khoa học và Kỹ thuậtMáy tính, trường đại học Bách Khoa thành phố Hồ Chí Minh đã tận tình truyền đạtkiến thức trong suốt năm tháng học tập ở trường Xin kính chúc quý thầy cô dồi dàosức khỏe và thành công trong công việc
Trang 7Với sự phát triển của công nghệ hiện nay, việc chụp hình bằng điện thoại thông minhngày càng phổ biến, bên cạnh đó yêu cầu người dùng đối với chất lượng ảnh chụp cũngcàng khắt khe hơn So với các dòng máy ảnh DSLR chuyên nghiệp, do sự giới hạn vềphần cứng, ảnh chụp bởi điện thoại thường có chất lượng kém hơn, xuất hiện nhiều nhiễuhơn Các giải thuật khử nhiễu mặc định bên trong điện thoại đa số đều khá đơn giản vàthường tỏ không hiệu quả khi chụp dưới điều kiện thiếu sáng Mục tiêu chính của luậnvăn là nghiên cứu giải thuật khử nhiễu trên ảnh chụp bởi các điện thoại thông minh, cóthể xử lý được ảnh 12MP trong vòng 1 giây Đầu tiên, luận văn sẽ tóm tắt các kiến thức
cơ bản về sensor, quá trình xử lý ảnh bên trong camera và phân loại các loại nhiễu có thể
có khi chụp hình Nội dung tiếp theo sẽ tập trung vào việc mô hình hóa bài toán và khảosát các giải thuật khử nhiễu cho ảnh Sau đó, luận văn sẽ trình mô hình khử nhiễu mớiđược thiết dựa trên U-Net, so sánh và đánh giá với các mô hình khử nhiễu khác về chấtlượng ảnh khử nhiễu cũng như tốc độ thực thi trên điện thoại thông minh Cuối cùng sẽ
là phần tóm tắt công việc, kết quả đạt được, khó khăn và hạn chế trong quá trình thựchiện luận văn
Trang 81 Giới thiệu 1
1.1 Đặt vấn đề 1
1.2 Động lực 2
1.3 Mục tiêu 3
1.4 Giới hạn đề tài 3
1.5 Bố cục luận văn 3
2 Kiến thức nền tảng 4 2.1 Quá trình xử lý ảnh của camera (Image Processing Pipeline) 4
2.1.1 Camera sensor 4
2.1.2 Quá trình xử lý ảnh của camera 5
2.2 Nguồn nhiễu trong máy ảnh kỹ thuật số 9
2.2.1 Nhiễu trong quá trình chụp ảnh (shot noise) 9
2.2.2 Nhiễu tối (dark current noise) và nhiễu đọc (read noise) 10
3 Bài toán khử nhiễu trên ảnh 12 3.1 Mô hình hóa bài toán 12
3.2 Các mô hình nhiễu phổ biến 13
3.2.1 Phân bố Gaussian 13
3.2.2 Phân bố Poisson 13
3.2.3 Phân bố Poisson-Gaussian 14
3.3 Độ đo 15
4 Các hướng tiếp cận 17 4.1 Các phương pháp cổ điển 17
4.1.1 Sử dụng bộ lọc (Spatial domain filtering) 17
4.1.2 Khử nhiễu trên miền không gian khác (Transform techniques) 21
Trang 94.2 Khử nhiễu bằng mô hình học sâu 22
4.2.1 Các bộ dữ liệu (Datasets) 22
4.2.2 Học có giám sát 24
4.2.3 Học không giám sát 32
4.3 Thảo luận 33
5 Đề xuất mô hình 35 5.1 Đề xuất mô hình 35
5.2 Hàm mất mát 40
6 Thí nghiệm 41 6.1 Dữ liệu 41
6.2 Hiện thực 42
6.3 Kết quả 42
6.4 Ablation study 45
6.4.1 Kiến trúc mô hình 45
6.4.2 Hàm mất mát 52
6.4.3 Depthwise Separable Convolution 53
6.5 Thảo luận 54
7 Tổng kết 55 7.1 Tổng kết 55
7.2 Hướng phát triển 56
Trang 105.1 Kiến trúc chi tiết của mô hình đề xuất 37
6.1 Kết quả khử nhiễu ảnh sRGB của các phương pháp/ mô hình CNN và thờigian xử lý (ms) ảnh 1024 × 1024 × 3 trên chip Exynos 9820 446.2 Thời gian xử lý của các mô hình CNN với từng kích thước ảnh trên haiứng dụng AI Benchmark và DenoisingApp trên điện thoại Nokia 5.3 456.3 Ablation study trên kiến trúc của mô hình Giá trị PSNR được đánh giátrên tập dữ liệu SIDD Validation Thời gian xử lý được đo trên con chipExynos 9820 với ảnh đầu vào 1024 × 1024 506.4 Kết quả khử nhiễu của mô hình với từng hàm mất mát 526.5 Kết quả khử nhiễu ảnh sRGB của hai mô hình U-Net và thời gian xử lý(ms) ảnh 1024 × 1024 × 3 trên chip Exynos 9820 53
Trang 111.1 Mức độ nhiễu trong ảnh tăng cao khi tăng giá trị ISO của camera (Nguồn:
[1]) 2
2.1 Camera Sensor 5
2.2 Quá trình xử lý ảnh bên trong camera 5
2.3 Hiệu chỉnh lens shading 7
2.4 Giải thuật demosaicing đơn giản 7
2.5 Các chế độ white balance của camera (Nguồn: Digital Camera World) 8
2.6 Quá trình cân bằng trắng 8
4.1 Chiến lược khử nhiễu của NLM Các vùng ảnh Y1, Y2 có độ tương đồng với Yi cao nên các trọng số wi,1, wi,2 mang giá trị lớn và ngược lại đối với trường hợp của Y3, trọng số wi,3 sẽ có giá trị nhỏ 20
4.2 Một vài ảnh nhiễu trong bộ dữ liệu DND (Nguồn: [2]) 23
4.3 Một vài cặp ảnh nhiễu và không nhiễu trong SIDD (Nguồn: [1]) 24
4.4 Các kiến trúc phổ biến của mô hình CNN cho bài toán khử nhiễu 25
4.5 Mô hình khử nhiễu DnCNN 26
4.6 Mô hình khử nhiễu RIDNet 27
4.7 Mô hình khử nhiễu của CycleISP (Nguồn: [3]) 28
4.8 Mô hình sinh dữ liệu của CycleISP (Nguồn: [3]) 29
4.9 Mô hình U-Net (Nguồn: [4]) 29
4.10 Mô hình khử nhiễu của MIRNet (Nguồn: [5]) 30
4.11 Selective Kernel Feature Fusion (SKFF) (Nguồn: [5]) 30
4.12 Dual Attention Unit (DAU) (Nguồn: [5]) 31
4.13 Residual resizing modules (Nguồn: [5]) 31
5.1 Mô hình khử nhiễu được đề xuất 36
Trang 12nhằm mục đích loại bỏ nhiễu Ở stage cuối cùng là context block, các feature
map đã được lọc hết nhiễu 38
5.3 Sau khi các feature map đã được encoder stage lọc được hết nhiễu, decoder stage sẽ trích xuất lại nhiễu có tần số cao theo công thức fhigh = f − flow Các feature map của stage cuối cùng của decoder stage là last conv được xem là nhiễu 39
6.1 Các bước đo thời gian tính toán của mô hình CNN 43
6.2 Kết quả khử nhiễu của các mô hình trên SIDD Validation 46
6.3 Kết quả khử nhiễu của các mô hình trên SIDD Validation 46
6.4 Kết quả khử nhiễu của các mô hình trên SIDD Plus Validation 47
6.5 Kết quả khử nhiễu của các mô hình trên SIDD Plus Validation 47
6.6 Kết quả khử nhiễu của các mô hình trên DND 48
6.7 Kết quả khử nhiễu của các mô hình trên DND 48
6.8 Kết quả khử nhiễu của mô hình đề xuất trên điện thoại Nokia 5.3 49
6.9 Kết quả khử nhiễu của mô hình đề xuất trên điện thoại Nokia 5.3 49
6.10 Kết quả khử nhiễu của mô hình đề xuất trên điện thoại Nokia 5.3 50
6.11 Mô hình khử nhiễu Simple U-Net 52
Trang 13Giới thiệu
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ụphì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ênnghiệ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àihạ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 sovớ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ảnxuấ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ấtnhỏ, 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íchthướ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êntrong ảnh Để khắc phục vấn đề này, người ta thường tăng thời gian phơi sáng (exposuretime) 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ánghơ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ị
Trang 14ISO 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 ảnhtăng cao Bất lợi này được thể hiện rõ trong hình 1.1.
Google Pixel, ISO 100, Normal Light Google Pixel, ISO 10000, Normal Light
Hình 1.1: Mức độ nhiễu trong ảnh tăng cao khi tăng giá trị ISO của camera (Nguồn: [1])
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áncủ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áccon 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ànhriê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.2GFLOPS đối với Qualcomm Snapdragon 855), và được tích hợp sẵn bộ xử lý đồ họa GPUbê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ácgiả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ànhcho đ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
Trang 151.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 ảnhvớ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ễucủa các mô hình học sâu
1.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ưởngkhác như là độ tương phản thấp, độ phân giải thấp hay bị mờ do ngoại cảnh (motionblur) 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 đượchai 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 chipSamsung Exynos 9820
• Chất lượng khử nhiễu của mô hình cần đạt được PSNR > 37
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ễucho ả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ìnhkhử 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ựchiện luận văn
Trang 16Kiế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
Process-ing Pipeline)
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ểmnhạ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ànhcác hạt điện tích electron để lưu trữ (hình 2.1a) Độ 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 (colorfilter) để 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ộttrong các màng lọc ánh sáng đơn sắc phổ biến đó là màng lọc Bayer (Bayer filter) (hình2.1b) Sau khi sensor đã lọc được ánh sáng đơn sắc, năng lượng của các electron mà cácphotodiode 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ácgiá 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 -
Trang 1714 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àmnhạ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 ảnhRGB, quá trình xử lý ảnh cũng đảm nhận vai trò chuyển các giá trị màu từ không gianmà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.1: Camera Sensor
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)
Raw Image Pre-processing DemosaicingBayer White Balance Color SpaceTransform
Color manipulation (photo-finishing)
Tone-mapping (photo-finishing)
Noise reduction Sharpening
Output color space conversion
Image resizing (including digital zoom)
JPEG compression Save to file
Bayer / RAW Processing Unit Image Processing Unit
Hình 2.2: Quá trình xử lý ảnh bên trong camera
Hình 2.2 mô tả một ISP đơn giản [7, 6] Tương ứng với từng loại sensor, quá trìnhnà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
Trang 18camera cũng sẽ tinh chỉnh các giải thuật xử lý ảnh và các tham số bên trong ISP để ảnhchụ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à saisó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 ốngkí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 Hình 2.3 mô tả quátrình lens shading correction Việc khắc phục vấn đề này khá đơn giản, tuy nhiên, quátrình này yêu cầu phải có lens shading mask trước để có thể thực hiện Đồng thời cáclens shading mask sẽ phụ thuộc vào từng cấu hình khi chụp của camera Do đó để thuậntiện, lens shading mask sẽ được nhà sản xuất ước tính từ trước
Bayer Demosaicing: Bước demosaicing sẽ chuyển ảnh RAW từ một kênh màu thànhảnh ba kênh màu RGB bằng cách nội suy các giá trị màu còn thiếu của các pixel dựatrên thông tin màu của các pixel xung quanh Hình 2.4 mô tả một giải thuật demosaicingđơn giản đi tìm hai giá trị màu green và blue còn thiếu tại vị trí pixel red trên ảnh RAWđược lấy mẫu bằng Bayer filter Chi tiết về cách thức thực hiện nội suy của các giải thuậtdemosaicing sẽ phụ thuộc trực tiếp vào bộ lọc màu (color filter array) của sensor, độ chitiết cũng như chất lượng ảnh cuối cùng mà người thiết kế giải thuật mong muốn
White Balance: Cân bằng trắng (white - balance) là quá trình chuyển đổi màu sắc
Trang 19Image of a uniformly illuminated surface
The light falling on the sensor is reduced
in a radial pattern.
Image of a uniformly illuminated surface after lens shading correction has been applied.
Lens shading mask required
to correct the radial fall-off.
Bayer image before
lens shading correction lens shading correction.Bayer image after
Hình 2.3: Hiệu chỉnh lens shading
R5 G8 B9 G6
G2 G4 B7
B3
G5 B5
B3 B1
Captured raw-Bayer image
Neighborhood about a red pixel
Hình 2.4: Giải thuật demosaicing đơn giản
dựa theo điều kiện ánh sáng môi trường, hay nói cách khác là chỉnh sửa màu trắng củaảnh giống với màu trắng mà mắt người cảm nhận Quá trình này yêu cầu cần có giá trịRGB của màu trắng tương ứng cho loại môi trường mà bộ lọc màu (color filter) phảnứng Các giá trị này sẽ được nhà sản xuất ước tính từ trước bằng cách thu thập các giá trịRGB của ánh sáng trắng khi đặt camera dưới từng loại điều kiện chiếu sáng khác nhaucủa môi trường (ví dụ: ánh sáng mặt trời, đèn dây tóc, đèn huỳnh quang) Sau khi chụpảnh, người dùng có thể thực hiện đổ màu cho ảnh bằng cách lựa chọn các giá trị cân bằngtrắng đã được cài đặt sẵn bên trong camera Hình 2.5 cho thấy ảnh hưởng của cân bằngtrắng lên màu sắc trong ảnh
Ngoài ra, camera còn có chế độ tự động cân bằng trắng (Auto White Balance) Dựatrên thông tin nội tại của ảnh RAW chụp được, các giải thuật tự động cân bằng trắng sẽước tính giá trị độ sáng của màu trắng và thực hiện cân bằng Hình 2.6 mô tả quá trìnhcân bằng trắng
Color Space Transform: Sau khi thực hiện cân bằng trắng, các giá trị độ sáng RGBcủa ảnh vẫn còn đang ở không gian màu của sensor Do đó ở bước này, ảnh RGB sẽ đượcchuyển sang không gian màu chuẩn, độc lập với không gian màu của sensor (ví dụ: không
Trang 20Hình 2.5: Các chế độ white balance của camera (Nguồn: Digital Camera World)
Auto white balance (AWB) algorithm estimates the illumination from the input image.
Sensor's RGB response
to scene illumination (ℓ) White-balance correction matrix
Raw sensor image before
white-balance correction
Raw sensor image after white-balance correction
Hình 2.6: Quá trình cân bằng trắng
Trang 21gian màu XYZ).
Color manipulation và tone mapping: Hai bước này được thực hiện sau khi ảnhRAW đã được chuyển sang ảnh RGB Người dùng có thể trực tiếp thao tác trên ảnhRGB, nhằm mục đích tăng tính thẩm mỹ cho ảnh (ví dụ: tăng độ tương phản, thay đổi
độ sáng, độ bão hòa màu sắc)
Noise reduction: Mục đích của việc khử nhiễu là tăng chất lượng ảnh, giảm đi mức
độ nhiễu trong ảnh đồng thời cần phải đảm bảo các chi tiết trong ảnh cần được bảo toàn
và không tạo ra các hiệu ứng phụ Bước này là được xem là một trong các bước quantrọng của ISP
Output color space conversion: Ở bước này, ảnh của chúng ta đang ở không gianmàu XYZ Không gian màu này có thể biểu diễn được 90% màu sắc mà con người nhìnthấy Tuy nhiên, các thiết bị màn hình không thể hiển thị đầy đủ không gian màu XYZ
Vì thế, chúng ta phải tiếp tục thực hiện chuyển từ không gian màu XYZ sang không gianmàu của thiết bị hiển thị (ví dụ như không gian màu sRGB), đồng thời thực hiện hiệuchỉnh hệ số gamma
Image resizing: Đôi khi ảnh được chụp sẽ cần phải thay đổi kích thước (resize) đểhiển thị cho phù hợp với màn hình
Save to file: Ảnh sau khi được chỉnh sửa sẽ được nén lại để thuận tiện trong việclưu trữ Quá trình nén được thực hiện có thể là nén suy giảm (lossy compression) hoặckhông suy giảm (lossless compression)
Nhiễu trong ảnh kỹ thuật số xuất hiện là do sự thay đổi ngẫu nhiên về độ sáng haymàu sắc Chúng có thể được sinh bởi quá trình thu thập các photon hoặc trong quá trìnhchuyển đổi thông tin từ tín hiệu analog sang dữ liệu số (analog to digital) của sensor Tùythuộc vào mức độ nhiễu mà chất lượng ảnh, thông tin trong ảnh sẽ bị thay đổi đi ít haynhiều
Ánh sáng là tập hợp dòng các hạt mang năng lượng, các hạt này được gọi là photon,nếu cường độ ánh sáng càng cao thì số lượng hạt photon càng cao và ngược lại Số lượngcác hạt photon đến sensor mỗi lần luôn có sự khác nhau, sai số này được xem là nhiễu
Trang 22(noise) Các hạt photon mỗi lần chạm vào sensor là độc lập với nhau và tuân theo phânphối Poisson.
Số lượng N hạt photon đến sensor trong một khoảng thời gian t có thể được mô tảtheo phân phối xác suất sau:
Trong thực tế, shot noise (photon noise) còn được mô hình theo phân phối Gaussian,với giá trị kỳ vọng và độ lệch chuẩn phụ thuộc vào số lượng photon trung bình:
Việc xấp xỉ này khá hợp lý bởi nếu số lượng photon trung bình đếm được lớn, theođịnh lý giới hạn trung tâm (central limit theorem) thì phân phối Poisson có thể tiến tớiphân phối Gaussian
Trong trường hợp tổng quát, một trong những cách hữu hiệu để giảm shot noise làtăng cường thu thập số lượng photon (tăng thời gian phơi sáng của camera) Theo nhưcông thức Signal-to-noise ratio SN R = µ
2.2.2 Nhiễu tối (dark current noise) và nhiễu đọc (read noise)Dark current noise xảy ra ngay cả khi không có photon nào đến sensor Nhiễu nàythường xuất hiện khi camera phơi sáng quá lâu, sensor nhạy sáng nóng lên, các electronbên trong sensor sẽ tự động sinh ra dẫn đến sai lệch trong quá trình đếm số lượng cáchạt electron sinh ra từ photon ánh sáng của hệ thống mạch
Số lượng electron Dp được sinh ra do nhiệt độ sensor tăng lên có thể mô hình hóatheo phân phối xác suất Poisson với giá trị kỳ vọng là Dp [9], giá trị Dp sẽ phụ thuộc vào
Trang 23nhiệt độ của sensor Nếu phơi sáng càng lâu thì dark current noise càng rõ rệt và ngượclại Trong trường hợp thời gian phơi sáng dài, trên ảnh sẽ có những xuất hiện những pixel
có độ sáng cao hơn hẳn so với những pixel xung quanh nó Những pixel có độ sáng quácao này được gọi là "hot pixels" Bởi loại nhiễu này chỉ phụ thuộc vào nhiệt độ, chúng
ta có thể khử nhiễu bằng cách trừ ảnh chụp với một bức ảnh tối (dark frame) được chụpcùng lúc với nhau Tuy nhiên, nếu việc trừ hai ảnh không hiệu quả hoặc thời gian quálâu, những "hot pixels" sẽ trở thành nhiễu muối và tiêu (salt-and-pepper) Chúng có thểkhử bằng cách nội suy dựa trên độ sáng của những pixel xung quanh
Read noise xuất hiện do sự không hoàn hảo của các sensor nhạy sáng Nhiễu nàybắt nguồn trong quá trình chuyển các hạt photon thành voltage, và quá trình số hóa tínhiệu (analog to digital) Read noise được mô hình theo phân phối xác suất Gaussian [10]với giá trị trung bình µ = 0
Để ước lượng độ lệch chuẩn cho read noise [11], người ta chụp hai ảnh tối với thờigian phơi sáng gần như bằng không (được gọi là zero frames hay bias frames), sau đó tính
σdif f của hiệu hai zero frames Độ lệch chuẩn của phân bố Gaussian cho read noise đượcước lượng theo công thức sau:
σ = σ√dif f
Trang 24
Bài toán khử nhiễu trên ảnh
Bài toán khử nhiễu trên ảnh (image denoising) là một trong những bài toán kinh điểntrong ngành thị giác máy tính Mặc dù đã được nghiên cứu từ rất lâu, nó vẫn còn đang
là một thách thức lớn đối với các nhà nghiên cứu và kỹ sư Bởi theo dưới góc độ toánhọc, khử nhiễu trên ảnh là một bài toán ngược (inverse problem), là quá trình đi tìm ảnhkhông nhiễu (tín hiệu gốc) có thể chấp nhận được từ ảnh nhiễu, chính vì thế lời giải của
nó không phải là duy nhất
Bài toán khử nhiễu có thể được mô hình hóa như sau:
với y là ảnh nhiễu cho trước, x là ảnh không nhiễu cần tìm và n là nhiễu tác động lênảnh mà chúng ta không biết trước được Mục tiêu của bài toán khử nhiễu là đi tìm n dựatrên ảnh đầu vào y, sao cho ảnh kết quả sau cùng đảm bảo được các cạnh (edge) trongảnh không bị mờ (blur), các vùng có màu đồng nhất nên mịn (smooth), các chi tiết trongảnh cần được bảo toàn và không tạo ra các hiệu ứng phụ
Công thức 3.1 biểu diễn mô hình nhiễu khá phổ biến là nhiễu cộng (additive noise),ngoài ra còn có mô hình nhiễu nhân (multiplicative noise):
trong đó nm là hệ số nhiễu nhân (multiplicative noise factor) Mô hình nhiễu nhân này
Trang 25vẫn có thể biểu diễn lại dưới dạng nhiễu cộng theo công thức: y = x + (nm− 1)x.
Không chỉ có các loại nhiễu shot noise, read noise (đã đề cập trong phần 2.2) xuấthiện trong ảnh mà còn có thể có thêm nhiều loại nhiễu khác như là electronic noise (fixedpattern, dark current, cross-talk, defective pixels), gained noise, quantization noise, chúngđược gọi chung là real noise Tuy nhiên, sẽ rất khó để mô hình hóa một cách tổng quátcho real noise, do đó để giải quyết bài toán một cách đơn giản, người ta sẽ đặt một sốgiả định lên mô hình nhiễu n bằng các phân bố phổ biến Các giả định này thường cóđặc điểm chung là biến ngẫu nhiên n đều được xem là i.i.d (independent and identicallydistributed) và phân bố của n thường sẽ là một trong những phân bố phổ biến như làphân bố Gaussian hay phân bố Poisson Sự khác biệt giữa các giả định này nằm ở việccác tham số của phân bố nhiễu sẽ được xem là hằng số và biết trước hay sẽ là phụ thuộcvào tín hiệu gốc
Trang 26với yi, xi lần lượt là tín hiệu thu được và tín hiệu gốc tại pixel thứ i, α là hệ số tỉ lệ củatừng sensor (sensor-specific scaling factor) Từ công thức 3.4, phân phối của nhiễu ni sẽlà:
Nếu chỉ đơn giản xem phân bố của n là Gaussian hay Poisson thì sẽ không đầy đủ,bởi tín hiệu ảnh thu được y đôi khi có thể bao gồm cả nhiễu độc lập và phụ thuộc vàotín hiệu Do đó người ta thường sử dụng mô hình nhiễu Poisson - Gaussian được kết hợp
từ cả hai mô hình trên:
ni ∼ αP(xi) − xi+ N (0, σ2) (3.6)
Người ta đôi khi cũng sẽ thay thế thành phần nhiễu Poisson trong mô hình Gaussian bằng phân phối Gaussian [12], mô hình này được gọi là heteroscedastic Gaussianmodel:
Mô hình nhiễu heteroscedastic Gaussian model còn có tên gọi khác là noise levelfunction (NLF) [1], mô tả mối quan hệ giữa tín hiệu ảnh và phương sai của nhiễu (noisevariance):
var(ni) = β1xi+ β2 β1 = α2, β2 = σ2 (3.8)trong đó β1 và β2 là tham số của NLF, có thể biết được thông qua metadata của ảnh.Ngoài ra, độ sáng của ảnh cũng sẽ bị giới hạn trong khoảng biểu diễn cường độ độsáng của sensor (sensor dynamic range) Độ rộng của khoảng này phụ thuộc vào số lượngbit mà sensor dùng để biểu diễn giá trị độ sáng, thường là 10 - 14 bit (có thể biểu diễnđược 1024 - 16384 giá trị) Sensor sẽ không thể biểu diễn được mức sáng mà tại đó giátrị của nó nhỏ hơn BlackLevel hay lớn hơn WhiteLevel Đồng thời, đôi khi để cho dễ tínhtoán, giá trị độ sáng của ảnh thường được chuẩn hoá về trong khoảng từ [0, 1], giá trị 0
và 1 sẽ lần lượt tương ứng với BlackLevel và WhiteLevel Vì thế, các giá trị độ sáng nào
mà nhỏ hơn BlackLevel sẽ được xem là 0, và là 1 nếu lớn hơn WhiteLevel:
Trang 27Điều này sẽ ảnh hưởng tới khoảng giá trị của mô hình nhiễu n:
ni ∼ N (0, α2xi+ σ2) ni ∈ [−xi, 1 − xi] (3.10)Mặc dù có thể mô hình được cả shot noise và read noise; tuy nhiên mô hình nhiễu dựatrên phân phối Poisson - Gaussian này vẫn chưa đầy đủ bởi real noise có thể bao gồm cácnguồn nhiễu khác như là fixed - pattern noise, defective pixels
Để đánh giá được chất lượng của ảnh được khử nhiễu, trong trường hợp có tín hiệugốc là ảnh không nhiễu để tham chiếu người ta thường sử dụng hai độ đo sau: PSNR(Peak signal-to-noise ratio) và SSIM (structural similarity index measure)
PSNR là một trong những độ đo phổ biến được dùng để đo chất lượng tín hiệu đượctái tạo (ví dụ: nén ảnh - image compression), và được tính theo công thức:
với ˆx, x lần lượt là ảnh khử nhiễu và tín hiệu gốc tham chiếu có kích thước M × N ,
M AXI là giá trị độ sáng lớn nhất có thể có của pixel, trong trường hợp độ sáng pixelđược biểu diễn bằng 8 bits thì M AXI = 28 − 1 = 255 Giá trị PSNR càng lớn thì chấtlượng ảnh càng cao
SSIM được dùng đánh giá độ tương đồng giữa hai bức ảnh bằng cách đánh giá dựatrên ba tiêu chí độ sáng (luminance), độ tương phản (contrast) và cấu trúc của ảnh(structure) Giá trị SSIM càng cao thì hai ảnh càng tương đồng Với hai vùng ảnh có kíchthước N × N cho trước là x và y, SSIM được tính theo công thức sau:
l(x, y) = 2µxµy + c1
µ2
x+ µ2
y+ c1c(x, y) = 2σxσy + c2
σ2
x+ σ2
y+ c2s(x, y) = σxy+ c3
σxσy+ c3SSIM (x, y) = [l(x, y)αc(x, y)βs(x, y)γ]
(3.12)
Trang 28trong đó:
• µx là giá trị trung bình (mean) của x
• µy là giá trị trung bình (mean) của y
• σ2
x là phương sai (variance) của x
• σ2
y là phương sai (variance) của y
• σxy là hiệp phương sai (covariance) của x và y
Trang 29Các hướng tiếp cận
Như đã đề cập ở chương 3, bài toán khử nhiễu cho ảnh là bài toán ngược, đi tìm tínhiệu gốc không nhiễu dựa trên tín hiệu ảnh thu được từ camera Đây là một bài toán khóbởi nó không tồn tại một nghiệm duy nhất mà là vô số những khả năng có thể có củalời giải Có rất nhiều nhóm nghiên cứu đề xuất các phương án khác nhau để giải quyếtcác bài toán này, chúng có thể được thực hiện trên ảnh RAW hoặc trên ảnh RGB Cácphương án này có thể được chia thành ba nhóm chính: các phương án cổ điển (classicaldenoising method), khử nhiễu trên miền không gian khác (transform techniques) và sửdụng mô hình CNN (CNN-based denoising method) Ở chương này, chúng ta sẽ tìm hiểu
về các phương pháp khử nhiễu phổ biến cho từng nhóm
4.1.1 Sử dụng bộ lọc (Spatial domain filtering)
Sử dụng bộ lọc (filter) là một trong những cách đơn giản để loại bỏ nhiễu Dựa trêngiả định rằng giá trị độ sáng của các pixel lân cận sẽ tương tự nhau, độ sáng của pixelthứ i trên ảnh được khử nhiễu được tính bằng cách tổng có trọng số với độ sáng của cácpixel lân cận j trên ảnh bị nhiễu Các phương pháp này đều có điểm chung là tập trungthiết kế kernel K Trước khi thực hiện phép tích chập convolution, các hệ số kij bên trong
K sẽ được chuẩn hóa thành wij có tổng bằng 1:
wij = P kij
Trang 30Bộ lọc trung bình (mean filter) còn được gọi là box filter Ở bộ lọc này, các trọng
số kij đều bằng nhau và bằng 1 Sau đây là ví dụ về bộ lọc trung bình có kích thước 3 × 3:
19
Bộ lọc Gaussian (Gaussian filter): Các giá trị kij trong bộ lọc Gaussian được tínhdựa trên khoảng cách của các pixel trên không gian hai chiều:
(4.4)
trong đó xi, xj là tọa độ của pixel thứ i và thứ j, hx là tham số của bộ lọc Sử dụngkhoảng cách của các pixel để tính trọng số cho bộ lọc Gaussian sẽ giúp các pixel ở gầnpixel trung tâm yi đóng góp nhiều hơn so với các pixel ở xa Tuy nhiên, khi thực hiệnconvolution trên những vùng có chi tiết cạnh (edge), bộ lọc gaussian tỏ ra không hiệu
Trang 31quả, các chi tiết cạnh sẽ không được bảo toàn và bị làm mờ Để khắc phục điều này, người
ta thường sử dụng những bộ lọc có tính chất bảo toàn cạnh (edge aware) như là bộ lọcsong phương (bilateral filter)
Bộ lọc song phương (bilateral filter)[13]: Bộ lọc này sử dụng cả hai thông tin về
exp
Bộ lọc trung vị (median filter): Bên cạnh việc xây dựng kernel K cho bộ lọc,người ta còn sử dụng các bộ lọc phi tuyến khác như là bộ lọc trung vị Giá trị độ sángcủa ảnh khử nhiễu ˆxi không được tính dựa trên trung bình cộng có trọng số như các bộlọc trên mà được thực hiện tính bằng cách lấy trung vị trên độ sáng của các pixel lân cậncủa pixel thứ i:
độ sáng của pixel hiện tại đang xét (hình 4.1)
Với yi là độ sáng của pixel hiện đang xét, Yi là vùng ảnh có kích thước S × S mà yi
Trang 32là tâm, h là tham số của bộ lọc (filtering parameter) Giá trị độ sáng của ảnh được khửnhiễu ˆxi được tính bằng cách lấy trung bình cộng có trọng số trên độ sáng của tất cả cácpixel trong ảnh:
Việc phải duyệt toàn bộ các pixel trong ảnh I liên tục để ước tính giá trị độ sáng
xi cho từng pixel sẽ làm tăng độ phức tạp của giải thuật lên rất nhiều Để tăng tốc giảithuật, tác giả chỉ thực hiện duyệt trong một vùng 21 × 21 xung quanh yi với kích thướccửa sổ của Yi sẽ là 7 × 7 Tham số của bộ lọc h sẽ được gán giá trị là 10σ trong trườnghợp nhiễu trong ảnh là nhiễu trắng AWGN với độ lệch chuẩn σ
Trang 334.1.2 Khử nhiễu trên miền không gian khác (Transform
tech-niques)
Bên cạnh các phương án khử nhiễu trên miền không gian, còn có những phương án ápdụng trên các miền không gian khác tiêu biểu là miền tần số (frequency domain) ví dụnhư là wavelet thresholding [15, 16], block-matching and 3D filtering (BM3D) [17] Đặcđiểm chung các phương pháp này đều cho rằng nhiễu thường sẽ có tần số cao, trong khithông tin ảnh sẽ có tần số thấp Tuy nhiên không phải lúc nào các tần số cao cũng đều
mô tả nhiễu, chúng còn chứa đựng thông tin về chi tiết của ảnh như là cạnh (edge), góc(corner) Mỗi loại nhiễu thường sẽ có một loại tần số khác nhau, điều đó dẫn đến việccần thiết kế từng bộ lọc riêng cho từng loại nhiễu riêng biệt
trong đó p(y|x) là hàm likelihood theo x và p(x) là image prior
Nếu giả định của chúng ta là AWGN và p(x) = e−λR(x) thì công thức (4.12) được viếtlại dưới dạng:
ˆ
x = arg min
x
12σ2 ||y − x||2
với R(x) là regularization cho ảnh kết quả và λ là hệ số của regularization
Các phương pháp khác nhau trong nhánh này sẽ tập trung vào việc đề xuất hàmregularization phù hợp cho image prior Hàm regularization tiêu biểu có thể được kể đến
Trang 34như là total variation regularization [18].
Total variation regularization (TV regularization) dựa trên quan sát rằng: trongảnh không nhiễu, độ sáng của các pixel sẽ không quá khác biệt so với các pixel xungquanh đồng thời tại ranh giới giữa các vùng (edge) độ sáng sẽ không thay đổi đột ngộtthay đổi mà thay đổi từ từ Theo như công bố [18], TV regularization được định nghĩanhư sau:
Chi tiết cách giải cho bài toán này đã được trình bày trong [18, 19]
Gần đây, nhiều phương pháp sử dụng mô hình CNN cho bài toán khử nhiễu đã ra đời
và đa số chúng đều đạt kết quả vượt trội hơn so với các phương pháp truyền thống Cácnghiên đạt kết quả cao như DnCNN [20], FFDNet [21] DenoiseNet [22] đều tập trungvào hướng học có giám sát Tuy nhiên, đối với bài toán khử nhiễu cho real noise, đôi khiviệc có được tín hiệu gốc (ground truth data) cũng không hề đơn giản, do đó cũng cónhiều nhóm đề xuất các phương án theo hướng học không giám sát: Noise2Noise [23],Noise2Void [24], Noise2Self [25], Deep learning for SURE [26]
Trong hướng nghiên cứu này, để có thể huấn luyện và đánh giá một cách khách quanđược những phương pháp khử nhiễu thì việc có được một số lượng lớn bộ dữ liệu ảnh làđiều cần thiết Các bộ dữ liệu cổ điển như là Berkeley Segmentation Dataset (BSD300)[27], SET14 [28], KODAK 1 thường tỏ ra không hiệu quả trong việc huấn luyện lẫn đánhgiá Bởi, hầu hết các dữ liệu ảnh bên trong các bộ dữ liệu này đơn thuần chỉ là ảnh sRGBđược xem không nhiễu, thường được lưu dưới dạng PNG/ JPEG Và do không có ảnhnhiễu đầu vào, các nhóm nghiên cứu thường sẽ phải thực hiện giả lập dữ liệu (synthesizedata) bằng cách thêm nhiễu vào trong ảnh gốc để thực hiện huấn luyện và đánh giá Các
1 http://r0k.us/graphics/kodak/
Trang 35loại nhiễu được thêm vào thường sẽ là nhiễu Gaussian, Poisson (đã trình bày ở phần 3.2),hoặc là nhiễu muối tiêu (salt-and-pepper), nhiễu Rayleigh Cách này có thể tạo ra một
số lượng lớn dữ liệu, nhưng nó lại không hiệu quả Bởi vì, thứ nhất, để có thể sinh dữliệu chúng ta cần phải có ảnh gốc không nhiễu Tuy nhiên lại không có gì đảm bảo rằngnhững ảnh trong bộ dữ liệu BSD300, SET14, KODAK là hoàn hảo Thứ hai, các giả địnhnhiễu được thêm vào không thể mô tả đầy đủ được real noise, điều này làm giảm chấtlượng các mô hình khi chúng được huấn luyện với dữ liệu được giả lập Đơn cử rẳng các
mô hình CNN hoạt động rất tốt khi được huấn luyện và đánh giá trên ảnh được thêmnhiễu Gaussian, tuy nhiên khi đem đánh giá các mô hình đã huấn luyện này (giữ nguyêntrọng số khi huấn luyện với ảnh nhiễu được giả lập) với ảnh real noise thì kết quả lại thấphơn so với các phương pháp truyền thống như là BM3D, NLM [1]
Để có thể đánh giá các phương pháp khử nhiễu tốt hơn, nhiều nhóm nghiên cứu đãcông bố các bộ dữ liệu ảnh real noise, có thể kể đến như là Darmstadt noise dataset(DND) [2] (hình 4.2), Smartphone Image Denoising Dataset (SIDD) [1] (hình 4.3) Các
bộ dữ liệu này sẽ gồm các cặp ảnh nhiễu và ảnh không nhiễu, được lưu đồng thời dưới cảhai định dạng là RAW và RGB
Hình 4.2: Một vài ảnh nhiễu trong bộ dữ liệu DND (Nguồn: [2])
DND [2] sử dụng các cặp ảnh high-ISO/ low-ISO để thay thế cho các cặp ảnh nhiễu/không nhiễu tương ứng, đồng thời chỉnh thời gian phơi sáng cho camera có low-ISO để
độ sáng của hai lần chụp giống nhau nhất có thể Sau đó hai ảnh này sẽ được thực hiệnalignment để giảm những di chuyển nhỏ của camera, và được xử lý hậu kỳ để hạn chếthay đổi ánh sáng trong lúc chụp
Tuy nhiên, DND cũng có những hạn chế nhất định, những bức ảnh trong DND chỉđược chụp với ánh sáng thông thường, đồng thời mức độ nhiễu của ảnh cũng khá thấp,hầu như không ảnh hưởng đến chất lượng ảnh quá nhiều Bên cạnh đó, DND cũng khôngcông bố tập huấn luyện mà chỉ có tập kiểm thử, điều này sẽ làm việc huấn luyện và đánh
Trang 36Galaxy 6, ISO 3200, Low light, 5500K Galaxy 6, ISO 3200, Normal light, 5500K
Hình 4.3: Một vài cặp ảnh nhiễu và không nhiễu trong SIDD (Nguồn: [1])
giá không toàn diện Vì thế,Abdelhamed et al.đã công bố một bộ dữ liệu bao quát hơn,mức độ nhiễu cũng đa dạng hơn Các cặp ảnh nhiễu/ không nhiễu trong SIDD cũng đượclưu trữ ở cả hai định dạng RAW và RGB Để có thể thấy rõ sự ảnh hưởng của các yếu
tố khác nhau tới mức độ nhiễu trong ảnh, nhóm tác giả đã sử dụng camera của 5 dòngđiện thoại khác nhau là IPhone 7, Google Pixel, Galaxy S6, Nexus 6, LG G4, đồng thờithay đổi các giá trị ISO của camera, độ sáng của ánh sáng môi trường, ánh sáng nhân tạo
và tốc độ màn trập Nhóm tác giả không dùng ảnh low-ISO để làm ảnh gốc không nhiễu
mà ước tính chúng dựa trên chuỗi các ảnh nhiễu được chụp liên tiếp nhau Tuy vậy, ảnhđược xem là ảnh gốc không nhiễu vẫn chưa thật sự hoàn hảo
với ˆx là ảnh được khử nhiễu và f là mô hình CNN được thiết kế
Để huấn luyện các mô hình này, các nhóm nghiên cứu thường sử dụng hàm mấtmát intensity-loss L1 hoặc L2 Đôi khi để tránh trường ảnh bị mờ (blur), hàm mất mátgradient-loss cũng được thêm vào để cố gắng bảo toàn các chi tiết cạnh (edge), góc
Trang 37L(ˆx, x) = λ1||ˆx − x||i+ λ2||∇ˆx − ∇x||j (4.17)trong đó λ1 và λ2 là các trọng số cho từng thành phần của hàm mất mát, ||.||i và ||.||jthường sẽ là norm 1 hoặc norm 2, và ∇(.) là độ lớn gradient của ảnh
+
Conv Block Conv Block Conv Block
(a) Single Scale (High Resolution) Network
Hình 4.4: Các kiến trúc phổ biến của mô hình CNN cho bài toán khử nhiễu
Trong hướng này, kiến trúc của các mô hình CNN thường sẽ thuộc một trong badạng sau: high resolution (hình 4.4a), encoder decoder (hình 4.4b) và hybrid (lai giữa haidạng trên) (hình 4.4c) Đối với các mô hình dạng high resolution [20, 21, 22], kích thướccủa tensor (H và W) được giữ nguyên trong quá trình lan truyền (forwarding) mà khôngthực hiện bất kì toán tử downsampling, do đó các mô hình này có thể bảo toàn các chitiết trong ảnh (spatial precise) tốt, tuy nhiên lại không thể khai thác thông tin toàn cụccủa ảnh (global information/ semantic precise) Ngược lại, các mô hình encoder decoder[29, 30] sẽ khai thác tối đa thông tin toàn cục, nhưng lại hạn chế trong khả năng tái tạochi tiết, người ta thường khắc phục điểm yếu này bằng cách thực hiện skip-connectiongiữa encoder và decoder Các mô hình lai như [5, 31] thì tận dụng ưu điểm của hai cáchthiết kế trên, thực hiện multi-scale nhưng cũng đồng thời giữ nguyên kích thước featuremap trong quá trình lan truyền để có kết quả ảnh khử nhiễu tốt nhất