Cách giải quyết vấn đề - Sử dụng mô hình học sâu Generative Adversarial Networks GAN để mô hình có thể tự sinh ra một tấm ảnh tương tự với tấm ảnh ban đầu nhưng có những đặc điểm khác..
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
Trang 3LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành cảm ơn Ban Giám hiệu, quý Thầy/Cô Khoa Sau đại học Trường Đại học Lạc Hồng đã tạo điều kiện để em hoàn thành chương trình học và thực hiện tốt luận văn thạc sĩ Công nghệ thông tin Xin chân trọng cảm ơn Thầy/ Cô tham gia giảng dạy và truyền đạt kiến thức trong thời gian qua
Em cũng xin gửi lời cảm ơn đến các anh chị, đồng nghiệp, các bạn trong lớp đã luôn quan tâm và giúp đỡ em trong suốt thời gian học tập cũng như làm luận văn
Em xin bày tỏ lòng biết ơn sâu sắc và những động viên từ Cha và Mẹ, những người thân trong gia đình đã hỗ trợ em thực hiện luận văn này
HỌC VIÊN
Được sự đồng ý của Khoa Sau Đại học, Trường Đại học Lạc Hồng và giảng
viên hướng dẫn TS cho phép em thực hiện đề tài “Phục chế và tăng cường độ
phân giải cho ảnh cũ bằng cách kết hợp mô hình học sâu”
Hơn ai hết, em xin chân thành cảm ơn thầy TS đã tận tình hướng dẫn, góp ý, chỉ bảo và tạo điều kiện thuận lợi để em hoàn thành luận tốt văn này
Trang 4LỜI CAM ĐOAN
Tôi cam đoan rằng kết quả đạt được trong luận văn này là sản phẩm của cá nhân tôi, đó là kết quả đạt được trong quá trình học tập và nghiên cứu
Trong toàn bộ nội dung của luận văn, những điều được trình bày là của cá nhân hoặc được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm cho lời cam đoan của mình
HỌC VIÊN
Trang 5TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA SAU ĐẠI HỌC TÓM TẮT LUẬN VĂN
(Dùng cho học viên và người hướng dẫn)
Đề tài: Phục chế và tăng cường độ phân giải cho ảnh cũ bằng cách kết hợp
mô hình học sâu
NỘI DUNG TÓM TẮT
1 Nội dung được giao và kết quả
- Thu thập dữ liệu: Bộ dữ liệu phục vụ quá trình huấn luyện (Ảnh cũ, ảnh bị nhiễu, ảnh bị rách, )
- Tìm hiểu về xử lý ảnh và các thư viện xử lý ảnh số
- Tìm hiểu các phương pháp phục chế ảnh cũ thủ công bằng phần mềm và bằng các thuật toán đơn giản
- Nghiên cứu và so sánh các thuật toán học sâu để phục chế ảnh
- Tiến hành huấn luyện mô hình học sâu dựa vào tập dữ liệu thu thập
- Thử nghiệm và đánh giá
2 Cách giải quyết vấn đề
- Sử dụng mô hình học sâu Generative Adversarial Networks (GAN) để mô hình có thể tự sinh ra một tấm ảnh tương tự với tấm ảnh ban đầu nhưng có những đặc điểm khác
- Sử dụng mô hình Variational Autoencoders (VAEs) thay cho Autoencoders truyền thống để cho ra kết qua tốt hơn
- Thử nghiệm và đánh giá kết quả
3 Đánh giá về mặt khoa học của kết quả
- Học viên đã tự sưu tầm dữ liệu và tham khảo các tài liệu từ các công trình nghiên cứu trên internet để tiến hành áp dụng kỹ thuật vào luận văn
- Dựa trên kết quả khảo sát, nghiên cứu, học viên sử dụng ngôn ngữ Python và thư viện Pytorch để xây dựng và huấn luyện mô hình học sâu
- Chương trình chạy thử nghiệm được thực hiện trên ứng dụng Google Colab
Ngành: Công nghệ thông tin Mã số:
Học viên:
Người hướng dẫn:
Trang 64 Những vấn đề còn tồn tại so với nội dung được giao (nếu có)
NGƯỜI HƯỚNG DẪN
HỌC VIÊN
Trang 7MỤC LỤC
LỜI CẢM ƠN
LỜI CAM ĐOAN
TÓM TẮT LUẬN VĂN
MỤC LỤC
DANH MỤC HÌNH
MỞ ĐẦU 1
Chương 1 TỔNG QUAN 2
1.1 Tình hình nghiên cứu trong và ngoài nước 2
1.1.1 Công trình nước ngoài có liên quan 2
1.1.2 Công trình trong nước có liên quan 2
1.2 Mục tiêu của đề tài 2
1.3 Đối tượng nghiên cứu 3
1.4 Phương pháp nghiên cứu 3
1.5 Tổng quan về ảnh cũ (đối tượng) 3
Chương 2 KHÁI QUÁT VỀ XỬ LÝ ẢNH VÀ PHỤC CHẾ ẢNH 5
2.1 Giới thiệu 5
2.2 Giới thiệu về phục chế ảnh 5
2.3 Xử lý ảnh 6
2.3.1 Ảnh số và điểm ảnh 6
2.3.2 Các khái niệm 7
2.3.3 Các định dạng phổ biến của ảnh 7
2.3.4 Thu nhận ảnh 8
2.3.5 Một số loại ảnh số 9
2.3.6 Xử lý ảnh là gì? 9
2.3.7 Một số phương pháp xử lý ảnh 9
2.3.8 Xử lý ảnh không phải là thị giác máy 12
2.4 Deep learning 13
2.4.1 Supervised Learning (Học có giám sát) 13
2.4.2 Classification (Phân loại) 13
2.4.3 Unsupervised Learning (Học không giám sát) 14
2.4.4 Semi-Supervised Learning (Học bán giám sát) 14
2.4.5 Reinforcement Learning (Học củng cố) 14
2.5 Mạng nơ ron tích chập CNN (Convolutional Neural Network) 15
Trang 82.5.1 Kiến trúc chung của mạng nơ ron tích chập 15
2.5.2 Tính chất của mạng nơ ron tích chập 16
2.5.3 Hàm kích hoạt (activation function) trong neural network 18
2.5.4 Hàm mất mát (lossfuntion) 19
2.5.4.1 Regression losses 20
2.5.4.2 Classification losses 21
2.6 Generative Adversarial Network (GAN) 21
2.7 Encoder 26
2.7.1 Auto Encoder 26
2.7.2 Cách thức hoạt động của Autoencoder 28
2.7.3 Variational AutoEncoder 29
Chương 3 PHƯƠNG PHÁP PHỤC CHẾ ẢNH GƯƠNG MẶT 31
3.1 Giới thiệu 31
3.2 Phương pháp phục chế ảnh bằng học sâu 31
3.2.1 Phương pháp phục chế bằng thuật toán HiFace-Gan 31
3.2.2 Phương pháp phục chế bằng thuật toán GFP-Gan 37
3.3 Kết luận 44
3.4 Giải pháp được đề xuất phục chế ảnh và tăng cường độ phân giải của ảnh 44 Chương 4 XÂY DỰNG CHƯƠNG TRÌNH VÀ CHẠY THỬ NGHIỆM 45
4.1 Giới thiệu 45
4.2 Xây dựng hệ thống 45
4.2.1 Dataset 45
4.2.2 Cài đặt thư viện 45
4.2.3 Công cụ 46
4.2.4 Huấn luyện dữ liệu 46
4.2.5 Thuật toán 47
4.2.6 Kết quả chạy thử nghiệm 47
4.2.7 Đánh giá kết quả 49
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50
TÀI LIỆU THAM KHẢO 51
Trang 9DANH MỤC HÌNH
Hình 1.1: Sơ đồ tổng quát 3
Hình 2.1: Ảnh trước và sau khi đã được phục chế 5
Hình 2.2: Minh họa ảnh và điểm ảnh xám 6
Hình 2.3: Minh họa ảnh và điểm ảnh màu 6
Hình 2.4: Minh họa điểm ảnh và độ phân giải ảnh 7
Hình 2.5: Minh họa kích thước ảnh (độ phân giải) 7
Hình 2.6: Minh hoạ phổ của ảnh 8
Hình 2.7: Minh hoạ phương pháp thu nhận ảnh 8
Hình 2.8: Minh họa các dạng ảnh số 9
Hình 2.9: Minh họa ảnh đầu vào và ảnh đầu ra 9
Hình 2.10: Minh họa giảm nhiễu ảnh 9
Hình 2.11: Minh họa độ tương phản ảnh 10
Hình 2.12: Minh họa tìm cạnh ảnh 10
Hình 2.13: Minh họa nén ảnh 10
Hình 2.14: Minh họa phân vùng ảnh 11
Hình 2.15: Minh họa khôi phục ảnh 11
Hình 2.16: Minh hoạ hương pháp xử lý ảnh Grayscale 11
Hình 2.17: Minh hoạ phương pháp Perspective Transformation 12
Hình 2.18: Minh họa phương phápCropping 12
Hình 2.19: Minh họa kỹ thuật cổ điển của xử lý ảnh và thị giác máy tính 13
Hình 2.20: Cấu trúc đại diện của một mạng nơ ron tích chập 15
Hình 2.21: Tính tích chập trên bản đồ kích hoạt 17
Hình 2.22: Cấu trúc các khối nơ ron 3D 17
Hình 2.23: Đồ thị hàm Sigmoid 18
Hình 2.24: Đồ thị hàm ReLU 19
Hình 2.25: Hình ảnh GAN sinh dữ liệu 22
Hình 2.26: Mô hình Machine Learning minh hoạ 22
Hình 2.27: Minh hoạ mô hình phân biệt và mô hình sinh 23
Hình 2.28: Hình ảnh minh hoạ Discriminator và Generator 24
Hình 2.29: Sơ đồ kiến trúc Generator 25
Hình 2.30: Sơ đồ kiến trúc Discriminator (Ảnh D là ảnh giả hay thật) 25
Hình 2.31: Hình ảnh minh hoạ Input và Output của Autoencoder 27
Hình 2.32: Kiến trúc của Autoencoder bao gồm 3 phần chính: Encoder, Bottleneck, Decoder 27
Hình 2.33: Kiến trúc Variational AutoEncoder 29
Hình 2.34: Các khuôn mặt được sinh ra bởi Variational AutoEncoder 30
Hình 2.35: Hàm loss trong Variational AutoEncode 30
Hình 3.1: Hình ảnh chụp từ tập dữ liệu FFHQ 32
Hình 3.2: Hình ảnh chụp từ tập dữ liệu CelebA 32
Hình 3 3Hình 3.3: Kiến trúc mô hình HiFace-Gan 32
Hình 3.4: Sơ đồ khối quy trình đào tạo 33
Hình 3.5: Ảnh được xử lý (ở trên), ảnh dưới là ảnh gốc(ở dưới) 35
Hình 3.6: Gen Loss hiển thị sự giảm dần theo thời gian 36
Trang 10Hình 3.7: Dis Loss hiển thị sự giảm dần theo thời gian 36
Hình 3.8: Kết quả hình ảnh chạy bằng thuật toán HiFace-Gan 37
Hình 3.9: Tổng quan về GFP-GAN 38
Hình 3.10: Pre trained face GAN(StyleGAN) 38
Hình 3.11: Sơ đồ khối tóm tắt 41
Hình 3.12: Ảnh được xử lý (x), ảnh dưới là ảnh gốc(y) 42
Hình 3.13: Gen Loss hiển thị sự giảm dần theo thời gian 43
Hình 3.14: D Loss hiển thị sự giảm dần theo thời gian 43
Hình 4.1: Hình ảnh chứa hai thư mục 45
Hình 4.2: Sơ đồ khối tóm tắt 46
Hình 4.3: Minh họa sơ đồ thuật toán của chương trình 47
Hình 4.4: Ảnh trái (ảnh cần phục hồi), ảnh phải (ảnh đã phục hồi) 47
Hình 4.5: Ảnh trái (ảnh cần phục hồi), ảnh phải (ảnh đã phục hồi) 48
Hình 4.6: Ảnh trái (ảnh cần phục hồi), ảnh phải (ảnh đã phục hồi) 48
Hình 4.7: Ảnh trái (ảnh cần phục hồi), ảnh phải (ảnh đã phục hồi) 48
Hình 4.8: Kết quả sự khác nhau giữa HiFace-Gan và GFP-Gan 49
Trang 11DANH MỤC CÁC KÝ HIỆU CHỮ VIẾT TẮT
2 CNN (Convolutional Neural Network)
3 GAN Generative Adversarial Networks
Trang 12MỞ ĐẦU
Ra đời từ thế kỷ 19 (~1888), phim ảnh đã được sử dụng để ghi lại những khoảnh khắc kỷ niệm trong cuộc sống của cá nhân, xã hội Và thời gian đã làm nguồn tư liệu này bị tác động rất mạnh về chất lượng, sự hư hại….khi film ảnh không được bảo quản trong môi trường tốt
Hiện nay, công nghệ số (điện thoại, máy ảnh số, ) giúp việc số hóa hình ảnh trở nên dễ dàng hơn cũng như bảo quản thuận tiện và thời gian lâu hơn, là bước đệm cho việc khôi phục hình ảnh bị hư hỏng bằng các phần mềm chỉnh sửa ảnh chuyên nghiệp trở nên nhẹ nhàng hơn
Tuy nhiên, với nguồn ảnh cũ hiện nay đang được lưu trữ và cần phục chế không ít, với cách làm thủ công cần rất nhiều công sức và thời gian Cung và cầu chưa cân đối dẫn đến người cần hình ảnh phục chế cần thời gian chờ đợi cũng như chi phí cần thanh toán cao, ngoài ra chất lượng ảnh sau khi phục hồi chưa như kỳ vọng
Nắm bắt nhu cầu, các phần mềm tự động phục chế ảnh được sinh ra để có thể sửa chữa ảnh cũ ngay lập tức cho những người muốn mang những bức ảnh
cũ trở lại cuộc sống Trước đây khi chưa có sự xuất hiện của học máy, học sâu (deep learning) thì các kỹ thuật xử lý ảnh ra đời để khôi phục ảnh bằng cách tự động nhận diện khu vực có các vết hỏng, vết xước và vết mờ trên ảnh và cố gắng lấp đầy các khu vực này bằng kỹ thuật sơn lại Giới hạn của những kỹ thuật này là chỉ cố gắn lấp đầy nội dung trong ảnh và không thể giải quyết các hư hỏng khác như ảnh bị nhiễu, bị rách, phai màu,… vì vậy ảnh sau khi phục chế cho ra kết quả và màu sắc không được chân thực Ngày nay, bằng cách tiếp cận
mô hình học sâu thì vấn đề này đã được giải quyết , kết quả thu được như mong đợi
Trang 13Chương 1 TỔNG QUAN 1.1 Tình hình nghiên cứu trong và ngoài nước
1.1.1 Công trình nước ngoài có liên quan
Hiện nay đã có nhiều bài báo, công trình nghiên cứu được đặt ra nhằm
phục chế lại những tấm ảnh cũ ngày xưa mà màu sắc và chi tiết trong ảnh làm ta
tưởng lầm rằng những tấm ảnh đấy chỉ mới được chụp Sau đây luận văn sẽ liệt kê một vài công trình để minh họa như sau:
- GANFIT: Generative Adversarial Network Fitting for High Fidelity
3D Face Reconstruction (2019) Bài báo trình bày về việc tái tạo ảnh 3D có độ trung
thực cao [1]
- Analyzing and Improving the Image Quality of StyleGAN (2019),
Phân tích và cải thiện chất lượng hình ảnh [2]
- Towards Real-World Blind Face Restoration with Generative Facial
Prior (2021) Phục hồi khuôn mặt với khuôn mặt có trước [3]
- Face Renovation via Collaborative Suppression and Replenishment
[2020] Cải tiến khuôn mặt thông qua loại bổ sung [4]
- Towards Real-World Blind Face Restoration with Generative Facial Prior Hướng tới phục hồi khuôn mặt trong thế giới thực [5]
1.1.2 Công trình trong nước có liên quan
Hiện nay đã có nhiều công trình nghiên cứu được thực hiện nhằm phục chế ảnh cũ, các công trình này đến nhiều trường Đại học, Cao đẳng trên cả nước Nổi bật có một số công trình như:
- Khôi phục ảnh bằng tối ưu độ tương tự cục bộ (2015) Bài báo trình
bày xây dựng thực nghiệm với một thuật toán khôi phục ảnh có khả năng lấp trống khoảng trống ảnh bằng cách tổng hợp các vùng ảnh từ bản vá, dựa vào độ tương tự cục bộ, các quá trình thực nghiệm và kết quả.[6]
- Nghiên cứu một số kỹ thuật phục hồi ảnh và ứng dụng (2013) Luận
văn trình bày một số kỹ thuật phục hồi nhằm làm cho ảnh tốt lên sao cho ảnh thu
được gần giống so với ảnh gốc.[7]
1.2 Mục tiêu của đề tài
Xây dựng chương trình trên máy tính để phục chế và tái tạo lại ảnh từ ảnh cũ, ảnh bị rách, oxi hóa,…
Trang 14Nghiên cứu, lựa chọn các kỹ thuật xử lý ảnh, học sâu, phương pháp tự động tái tạo ảnh bằng công nghệ học sâu
Tiến hành chạy thử nghiệm để phát hiện và xử lý các vấn đề phát sinh, kết quả của chương trình có thể được sử dụng để tạo thành một chương trình riêng biệt
Hình 1.1: Sơ đồ tổng quát
1.3 Đối tượng nghiên cứu
Những tấm ảnh mờ, nhiễu, bị oxi hoá
Những tấm ảnh để lâu hoặc lâu năm
Ảnh chụp bằng những máy ảnh chất lượng thấp, ảnh chụp trắng đen hay những tấm ảnh phim
1.4 Phương pháp nghiên cứu
Đề thực hiện việc phục hồi ảnh từ ảnh cũ, ảnh bị rách, hướng thực hiện của luận văn được đề xuất các bước như sau:
- Nghiên cứu lý thuyết về xử lý ảnh, học sâu và tham khảo các phương pháp
từ các công trình nghiên cứu đã công bố
- Nghiên cứu và chọn giải pháp pháp tự động tái tạo ảnh
- Thu thập dữ liệu từ internet, viết chương trình xử lý
- Chạy thực nghiệm và đánh giá kết quả
1.5 Tổng quan về ảnh cũ (đối tượng)
Phục hồi ảnh cũ hay còn được gọi là xử lý ảnh cũ là một hình thức xử lý tín hiệu mà đầu vào là một hình ảnh bị mờ, rách hoặc đã cũ Việc sử dụng photoshop
để phục hồi ảnh cũ là một giải pháp được sử dụng rộng rãi trên toàn thế giới nhưng yêu cầu người phục hồi ảnh phải có kỹ thuật, kinh nghiệm tốt về photoshop Để giải quyết vấn đề trên, đã có một số công trình nghiên cứu sử dụng phương pháp xử lý ảnh để phục hồi ảnh cũ Nó ứng dụng các kỹ thuật xử lý ảnh và các thuật toán máy học để tìm các đối tượng trong các hình ảnh
Trang 15Ảnh bị mờ là những ảnh chụp bằng máy ảnh kém chất lượng, dẫn đến độ phân giải thấp, làm ảnh bị mờ
Ảnh oxi hoá là những ảnh để trong thời gian lâu, ảnh bị ẩm mốc, sờn rách ở các chi tiết
Trang 16Chương 2 KHÁI QUÁT VỀ XỬ LÝ ẢNH VÀ PHỤC CHẾ ẢNH 2.1 Giới thiệu
Trong chương này Luận văn sẽ trình bày cơ bản về lý thuyết xử lý ảnh số và
lý thuyết học sâu (deep learning) để làm cơ sở lựa chọn phương pháp giải quyết cho bài toán nhận dạng làn đường và phát hiện vật cản
Hình 2.1: Ảnh trước và sau khi đã được phục chế
Ngày nay, việc phục chế ảnh là làm cho bức ảnh ngả màu, cũ nát, vàng ố được đẹp, giống với ảnh gốc tự nhiên hơn Giúp mọi người lưu giữ lại những kỷ niệm của những người thân trong gia đình, những hình ảnh mang tính chất kỷ niệm
Những tấm ảnh từ được chụp và để thời gian rất lâu bởi máy ảnh thời xưa không được tối ưu hay có nhiều tính năng hoặc ảnh để trong một thời gian lâu và bị
mờ, không còn nhìn rõ như trước nữa, bị oxi hoá theo thời gian Mà bạn không muốn
Trang 17vứt bỏ chúng đi thì dịch vụ khôi phục hình ảnh chính là giải pháp cần thiết Đây
được xem là dịch vụ/phương pháp tuyệt vời giúp cho bạn giải quyết được những
vấn đề mà bạn đang gặp phải với hình ảnh mà mình đang lưu giữ
2.3 Xử lý ảnh
2.3.1 Ảnh số và điểm ảnh
Điểm ảnh (pixel) có vị trí (x,y) và có độ xám I (x,y), với ảnh có điểm ảnh
từ màu trắng đến màu đen được minh họa như sau:
Hình 2.2: Minh họa ảnh và điểm ảnh xám
Với ảnh màu ảnh thì mỗi điểm ảnh sẽ có 3 giá trị màu tương ứng với độ sáng của các màu như: màu đỏ, màu xanh lục, màu xanh dương (RGB - Red, Green, Blue) được minh họa như sau:
Hình 2.3: Minh họa ảnh và điểm ảnh màu
Trang 182.3.2 Các khái niệm
Ảnh số: "một ảnh có thể được định nghĩa là hàm hai chiều, f(x, y), trong
đó x và y là tọa độ không gian (mặt phẳng) và biên độ của f tại bất kỳ cặp tọa độ (x,y) nào được gọi là cường độ hoặc mức độ màu xám của ảnh tại điểm đó Khi x,
y và các giá trị cường độ của f đều là các đại lượng hữu hạn, rời rạc, được gọi ảnh
là ảnh kỹ thuật số".[4]
Hay có thể hiểu một cách đơn giản rằng "Ảnh số là số hóa làm cho một hình ảnh kỹ thuật số minh họa xấp xỉ cho một cảnh thực"
Hình 2.4: Minh họa điểm ảnh và độ phân giải ảnh
Điểm ảnh là ảnh kỹ thuật số chứa một số lượng hữu hạn các hàng và cột của các phần tử Mỗi phần tử được gọi là pixel
Độ phân giải là thước đo của chi tiết rõ ràng nhỏ nhất trong ảnh, được tính là số điểm (pixel) trên một đơn vị khoảng cách đo bằng đơn vị DPI (Dot Per Inch) " [4]
Hình 2.5: Minh họa kích thước ảnh (độ phân giải)
2.3.3 Các định dạng phổ biến của ảnh
- 1 giá trị trên điểm/pixel (B&W hay Grayscale)
- 3 giá trị trên điểm/pixel (Red, Green, Blue)
Trang 19- 4 giá trị trị trên điểm/pixel (Red, Green, Blue, + “Alpha” or Opacity) Chúng ta sẽ bắt đầu với grayscale images, mở rộng với ảnh màu sau:
Hình 2.6: Minh hoạ phổ của ảnh
2.3.4 Thu nhận ảnh
Phương pháp thu nhận ảnh tổng quát được minh họa như hình sau:
Hình 2.7: Minh hoạ phương pháp thu nhận ảnh
Ngoài ra, ảnh có thể được tạo ra từ việc thu nhận và biểu diễn lại các sóng khác (ngoài ánh sáng) như:
- Siêu âm (ultrasound)
- Tia X
- Tia gamma
- Sonar
- Sóng radio
Trang 20Hình 2.9: Minh họa ảnh đầu vào và ảnh đầu ra
Hiện nay xử lý ảnh gồm 4 lĩnh vực chính: xử lý nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh Sự phát triển của xử lý ảnh đem lại rất
nhiều lợi ích cho cuộc sống của con người
Trang 21Minh họa điều chỉnh độ tương phản ảnh số như sau:
Hình 2.11: Minh họa độ tương phản ảnh
Minh họa tìm cạnh cho ảnh số như sau:
Trang 22Minh họa phân vùng ảnh số như sau:
Hình 2.14: Minh họa phân vùng ảnh
Minh họa khôi phục ảnh số như sau:
Hình 2.15: Minh họa khôi phục ảnh
Minh hoạ trong việc xử lý ảnh màu thành ảnh trắng đen
Hình 2.16: Minh hoạ hương pháp xử lý ảnh Grayscale
Trang 23Minh hoạ trong việc xử lý ảnh nghiêng góc thành thẳng góc
Hình 2.17: Minh hoạ phương pháp Perspective Transformation
Minh hoạt trong việc xử lý ảnh cắt và phóng to
Hình 2.18: Minh họa phương phápCropping
2.3.8 Xử lý ảnh không phải là thị giác máy
Các kỹ thuật xử lý ảnh và thị giác máy cũng khác nhau
Xử lý ảnh (Image processing)
- Nén ảnh (Compression)
- Giảm nhiễu (Noise reduction)
- Nâng cao tương phản (Contrast enhancement)
Trang 24- Nhận dạng (Recognition)
- Phân vùng ngữ nghĩa (Semantic segmentation)
Xử lý ảnh (Image processing) Thị giác máy (Computer vision) Hình 2.19: Minh họa kỹ thuật cổ điển của xử lý ảnh và thị giác máy tính
2.4 Deep learning
Deep Learning là một phương pháp của học máy Nó cho phép chúng ta huấn luyện một AI (Artificial Intelligence) có thể dự đoán được các đầu ra dựa vào một tập các đầu vào Cả hai phương pháp có giám sát và không giám sát đều có thể sử dụng để huấn luyện
Phương thức học có thể sử dụng để huấn luyện thường được chia làm 4 nhóm:
- Supervised learning (Học có giám sát)
- Unsupervised learning (Học không có giám sát)
- Semi-supervised learning (Học bán giám sát)
- Reinforcement learning (Học củng cố)
Ngoài các phân nhóm trên, còn có một số cách phân nhóm khác không có Semi- supervised learning hoặc Reinforcement learning
2.4.1 Supervised Learning (Học có giám sát)
Supervised learning là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn) Supervised learning là nhóm phổ biến nhất trong các thuật toán Machine Learning [5]
2.4.2 Classification (Phân loại)
Một bài toán được gọi là classification nếu các label của input data được chia thành một số hữu hạn nhóm Ví dụ: Gmail xác định xem một email có phải là spam hay không; các hãng tín dụng xác định xem một khách hàng có khả năng thanh toán nợ hay không, ví dụ phía trên được chia vào loại này [5]
Trang 252.4.3 Unsupervised Learning (Học không giám sát)
Trong thuật toán này, chúng ta không biết được outcome hay nhãn mà chỉ có dữ liệu đầu vào Thuật toán unsupervised learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm
số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán [5]
Một cách toán học, Unsupervised learning là khi chúng ta chỉ có dữ liệu vào 𝜒 mà không biết nhãn 𝛾 tương ứng [5]
Những thuật toán loại này được gọi là Unsupervised learning vì không giống như Supervised learning, chúng ta không biết câu trả lời chính xác cho mỗi
dữ liệu đầu vào Giống như khi ta học, không có thầy cô giáo nào chỉ cho ta biết đó
là chữ A hay chữ B Cụm không giám sát được đặt tên theo nghĩa này [5]
2.4.4 Semi-Supervised Learning (Học bán giám sát)
Các bài toán khi chúng ta có một lượng lớn dữ liệu 𝜒 nhưng chỉ một phần trong chúng được gán nhãn được gọi là Semi-Supervised Learning Những bài toán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên [5]
Một ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn bản được gán nhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản khoa học, chính trị) và phần lớn các bức ảnh/văn bản khác chưa được gán nhãn được thu thập từ internet Thực tế cho thấy rất nhiều các bài toán Machine Learning thuộc vào nhóm này vì việc thu thập dữ liệu có nhãn tốn rất nhiều thời gian và có chi phí cao Rất nhiều loại dữ liệu thậm chí cần phải có chuyên gia mới gán nhãn được (ảnh y học chẳng hạn) Ngược lại, dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp
từ internet [5]
2.4.5 Reinforcement Learning (Học củng cố)
Reinforcement learning là các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the performance) Hiện tại, Reinforcement learning chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo để đạt được điểm số cao nhất.[5]
Trang 262.5 Mạng nơ ron tích chập CNN (Convolutional Neural Network)
2.5.1 Kiến trúc chung của mạng nơ ron tích chập
Tích chập được ứng dụng phổ biến trong lĩnh vực thị giác máy tính Thông qua các phép tích chập, các đặc trưng chính từ ảnh được trích xuất và truyền vào các tầng tích chập (layer convolution) Mỗi một tầng tích chập sẽ bao gồm nhiều đơn vị mà kết quả ở mỗi đơn vị là một phép biến đổi tích chập từ layer trước đó thông qua phép nhân tích chập với bộ lọc.[9]
Về cơ bản thiết kế của một mạng nơ ron tích chập 2 chiều có dạng như sau:
INPUT -> [[CONV -> RELU]*N -> POOL?]*M -> [FC -> RELU]*K -> FC
- FC: Tầng kết nối hoàn toàn Thông thường tầng này nằm ở sau cùng
và kết nối với các đơn vị đại diện cho nhóm phân loại
Các kí hiệu []*N, []*M và []*K ám chỉ các khối bên trong [] có thể lặp lại nhiều lần liên tiếp nhau M, K là số lần lặp lại Kí hiệu đại diện cho các tầng liền
kề nhau mà tầng đứng trước sẽ làm đầu vào cho tầng đứng sau Dấu ? sau POOL để thể hiện tầng POOL có thể có hoặc không sau các khối tích chập
Hình 2.20: Cấu trúc đại diện của một mạng nơ ron tích chập
Như vậy có thể thấy một mạng nơ ron tích chập về cơ bản có 3 quá trình khác nhau:
Trang 27- Quá trình trích xuất đặc trưng (convolution): Thông qua các tích chập giữa ma trận đầu vào với bộ lọc để tạo thành các đơn vị trong một tầng mới Quá trình này có thể diễn ra liên tục ở phần đầu của mạng và thường sử dụng hàm kích hoạt relu
- Quá trình tổng hợp (max pooling): Các tầng càng về sau trích xuất đặc trưng sẽ cần số lượng tham số lớn đo chiều sâu được quy định bởi số lượng các kênh
ở các tầng sau thường tăng tiến theo cấp số nhân Điều đó làm tăng số lượng tham số
và khối lượng tính toán trong mạng nơ ron Do đó để giảm tải tính toán chúng ta sẽ cần giảm chiều của khối ma trận đầu vào hoặc giảm số đơn vị của tầng Vì mỗi một đơn vị sẽ là kết quả đại diện của việc áp dụng 1 bộ lọc để tìm ra một đặc trưng cụ thể nên việc giảm số đơn vị sẽ không khả thi Giảm kích thước khối ma trận đầu vào thông qua việc tìm ra 1 giá trị đại diện cho mỗi một vùng không gian mà bộ lọc đi qua sẽ không làm thay đổi các đường nét chính của bức ảnh nhưng lại giảm được kích thước của ảnh Do đó quá trình giảm chiều ma trận được áp dụng Quá trình này gọi
là tổng hợp nhằm mục đích giảm kích thước dài, rộng
- Quá trình kết nối hoàn toàn (fully connected): Sau khi đã giảm kích thước đến một mức độ hợp lý, ma trận cần được làm dẹt (flatten) thành một vector và
sử dụng các kết nối hoàn toàn giữa các tầng Quá trình này sẽ diễn ra cuối mạng CNN
và sử dụng hàm kích hoạt là relu Tầng kết nối hoàn toàn cuối cùng (fully connected layer) sẽ có số lượng đơn vị bằng với số classes và áp dụng hàm kích hoạt là softmax nhằm mục đích tính phân phối xác suất.[9]
2.5.2 Tính chất của mạng nơ ron tích chập
Tính kết nối trượt: Khác với các mạng nơ ron thông thường, mạng nơ ron tích chập không kết nối tới toàn bộ hình ảnh mà chỉ kết nối tới từng vùng địa phương (local region) hoặc vùng nhận thức (receptive field) có kích thước bằng kích thước
bộ lọc của hình ảnh đó Các bộ lọc sẻ trượt theo chiều của ảnh từ trái qua phải và từ trên xuống dưới đồng thời tính toán các giá trị tích chập và điền vào bản đồ kích hoạt (activation map) hoặc bản đồ đặc trưng (feature map)
Trang 28Hình 2.21: Tính tích chập trên bản đồ kích hoạt
Các khối nơ ron 3D: Không giống như những mạng nơ ron thông thường khi cấu trúc ở mỗi tầng là một ma trận 2D (batch size x số đơn vị ở mỗi tầng) Các kết quả ở mỗi tầng của một mạng nơ ron là một khối 3D được sắp xếp một cách hợp lý theo 3 chiều rộng (width), cao (height), sâu (depth) Trong
đó các chiều rộng và cao được tính tích chập Giá trị rộng (cao) của một tầng phụ thuộc vào kích thước của bộ lọc, chiều rộng (cao) của tầng trước, độ rộng viền (padding) và bước trượt bộ lọc (stride) Tuy nhiên chiều sâu lại hoàn toàn không phụ thuộc vào những tham số này mà nó bằng với số bộ lọc trong tầng
đó Quá trình tính bản đồ kích hoạt dựa trên một bộ lọc sẽ tạo ra một ma trận 2D Như vậy khi áp dụng cho bộ lọc khác nhau, mỗi bộ lọc có tác dụng trích xuất một dạng đặc trưng trên mạng nơ ron, ta sẽ thu được ma trận 2D có cùng kích thước mà mỗi ma trận là một bản đồ đặc trưng Khi sắp xếp chồng chất các ma trận này theo chiều sâu kết quả đầu ra là một khối nơ ron 3D Thông thường đối với xử lý ảnh thì tầng đầu vào có depth = 3 (số kênh) nếu các bức ảnh đang để ở dạng màu gồm 3 kênh RGB Bên dưới là một cấu trúc mạng nơ ron điển hình có dạng khối.[9]
Hình 2.22: Cấu trúc các khối nơ ron 3D
Trang 292.5.3 Hàm kích hoạt (activation function) trong neural network
2.5.3.1 Sigmoid
Công thức:
1 𝜎(𝑥) =
2.5.3.2 ReLU
Công thức:
𝑓(𝑥) = max(0, 𝑥)
Trang 30Phân tích
Hình 2.24: Đồ thị hàm ReLU
Hàm ReLU đang được sử dụng khá nhiều trong những năm gần đây khi huấn luyện các mạng neuron ReLU đơn giản lọc các giá trị < 0 Nhìn vào công thức chúng dễ dàng hiểu được cách hoạt động của nó Một số ưu điểm khá vượt trội của nó so với Sigmoid và Tanh: [12]
2.5.4 Hàm mất mát (lossfuntion)
Máy học từ giá trị trung bình của một hàm mất mát Đây là một phương pháp đánh giá độ hiệu quả của một thuật toán nào đó trên bộ dữ liệu cho trước Nếu kết quả dự đoán chênh lệch quá nhiều so với kết quả thực tế, hàm mất mát sẽ là một số rất lớn Với sự trợ giúp từ các phương pháp regularization, hàm mất mát
sẽ học cách giảm đi sai số trong việc dự đoán dự đoán dữ liệu đầu ra
Có rất nhiều yếu tố trong việc lựa chọn hàm mất mát cho vấn đề cần giải quyết, ví dụ như loại thuật toán machine learning được sử dụng, độ phức tạp trong việc tính toán đạo hàm và tỉ lệ phần trăm các thành phần ngoại lai trong tập dữ liệu
Hàm mất mát có thể được phân chia thành 2 loại dựa vào Regression
losses và Classification losses Trong việc phân loại (classification), dự đoán
giá trị đầu ra từ một tập giá trị phân loại hữu hạn
Ví dụ: Cho trước một tập dữ liệu ảnh của các chữ số viết tay, phân loại chúng vào một trong các đơn vị từ 0 đến 9 Mặt khác, hồi quy (regression) giải quyết việc dự đoán một giá trị liên tục
Trang 31b) Mean Absolute Error/L1 Loss
Công thức:
∑𝑛 (𝑦𝑖 − 𝑦̂𝑖 ) 𝑀𝐵𝐸 = 𝑖=1
𝑛 MAE (Mean Absolute Error) MAE được tính bằng trung bình cộng của giá trị tuyệt đối của hiệu giữa giá trị dự đoán và giá trị thực Giống như MSE, phương pháp này đo đạc độ lớn của lỗi chứ không quan tâm đến hướng của nó MAE cần nhiều công cụ phức tạp.[11]
Ví dụ: Như linear programming để tính đạo hàm Thêm vào đó, MAE không bị ảnh hưởng nhiều bởi dữ liệu ngoại lai vì nó không sử dụng cách tính lấy bình phương
c) Mean Bias Error
Phương pháp này ít được sử dụng trong machine learning so với cái phương pháp trên Nó giống với MAE với khác biệt duy nhất là chúng ta không lấy trị tuyệt đối [11]
Rõ ràng nên có một sự thật trọng khi sử dụng phương pháp này vì các lỗi dương và lỗi âm có thể triệt tiêu nhau