ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRƯƠNG NGỌC KIÊN
KHÔI PHỤC DEPTHMAP TỪ BẢN IN 2D MỘC BẢN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Hà Nội - 2022
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRƯƠNG NGỌC KIÊN
KHÔI PHỤC DEPTHMAP TỪ BẢN IN 2D MỘC BẢN
Ngành: Khoa học máy tính
Chuyên ngành: Khoa học máy tính Mã số:
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Lê Thanh Hà
Hà Nội - 2022
LỜI CẢM ƠN
Em xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tận tình giúp đỡ và truyền đạt kiến thức cho em trong suốt 2 năm học qua để em có đủ kiến thức hoàn thành khóa luận này.
Đặc biệt, em xin gửi lời cảm ơn sâu sắc tới thầy Lê Thanh Hà – người đã nhiệt tình động viên, giúp đỡ em trong quá trình định hình, nghiên cứu và hoàn thành luận văn này.
Xin gửi lời cảm ơn thiết tha nhất tới những người thân trong gia đình đã tạo điều kiện và động viên cho con/em rất nhiều trong quá trình hoàn thành khóa luận này.
Mặc dù đã rất cố gắng hoàn thành luận văn này với tất cả nỗ lực của bản thân, xong luận văn sẽ khó tránh khỏi những thiếu sót, kính mong quý thầy cô tận tình chỉ bảo cho em những sai lầm cần khắc phục của mình. Một lần nữa em xin gửi tới tất cả mọi người lời cảm ơn chân thành nhất.
Hà Nội, tháng 06 năm 2022 Học viên
Trương Ngọc Kiên
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn thạc sĩ khoa học máy tính: “Khôi phục depthmap từ bản in 2D mộc bản” là kết quả của quá trình học tập, nghiên cứu khoa học độc lập, nghiêm túc.
Các số liệu trong luận văn là trung thực, có nguồn gốc rõ ràng, được trích dẫn và có tính kế thừa, phát triển từ các sách, tài liệu, tạp chí, các công trình nghiên cứu đã được công bố, và các website, …
Các phương pháp nêu trong luận văn được rút ra từ những cơ sở lý luận và quá trình nghiên cứu tìm hiểu của tác giả.
Hà Nội, tháng 06 năm 2022 Học viên
Trương Ngọc Kiên
Mục lục
LỜI CẢM ƠN ... i
LỜI CAM ĐOAN ... ii
Mục lục ... iii
Danh mục các ký hiệu và chữ viết tắt ... v
Danh mục các hình vẽ ... vii
Danh mục các bảng ... ix
MỞ ĐẦU ... 1
CHƯƠNG 1. KIẾN THỨC NỀN TẢNG ... 4
1.1 Tổng quan mộc bản triều Nguyễn ... 4
1.1.1 Giới thiệu mộc bản triều Nguyễn ... 4
1.1.2 Hiện trạng của mộc bản triều Nguyễn ... 4
1.1.3 Khôi phục mộc bản từ bản in ... 5
1.2 Công nghệ số hóa 3D mộc bản ... 7
1.3 Tổng quan depthmap ... 11
1.4 Mô hình sinh depthmap từ ảnh 2D ... 11
1.4.1 Mô hình pix2pix ... 14
1.4.2 Mô hình CLUT ... 19
1.5 Độ đo Fréchet Inception Distance ... 24
1.6 Tổng kết chương ... 27
CHƯƠNG 2. KHÔI PHỤC DEPTHMAP TỪ BẢN IN 2D MỘC BẢN .... 28
2.1 Quy trình chuẩn bị tập dữ liệu huấn luyện ... 29
2.1.1 Xử lý dữ liệu thủ công ... 31
2.1.2 Xử lý dữ liệu bán tự động ... 32
2.1.3 Sinh ảnh depthmap từ mô hình 3D ... 37
2.1.4 Sinh thêm dữ liệu huấn luyện ... 38
2.2 Sinh depthmap từ bản in 2D mộc bản... 38
2.3 Tổng kết chương ... 39
CHƯƠNG 3. THỬ NGHIỆM VÀ ĐÁNH GIÁ ... 40
3.1 Bộ dữ liệu ... 40
3.2 Thử nghiệm ... 40
3.2.1 Thử nghiệm CUT, Fast-Cut và pix2pix ... 40
3.2.2 Thử nghiệm pix2pix cho toàn bộ tập dữ liệu ... 43
3.3 Đánh giá ... 44
3.4 Tổng kết chương ... 46
KẾT LUẬN ... 47
TÀI LIỆU THAM KHẢO ... 48
Danh mục các ký hiệu và chữ viết tắt STT Từ viết tắt Tiếng Anh Tiếng Việt
1 cGAN Conditional Generative Ad- versarial Network
Mạng đối lập tạo sinh có điều kiện
2 CLUT
Contrastive Learning for Unpaired Image-to-Image Translation
Học mâu thuẫn đối với công việc dịch hình ảnh sang hình ảnh không ghép cặp
3 CNN Convolutional Neural Net-
work Mạng nơ-ron tích chập
4 FID Fréchet Inception Distance
Độ đo khoảng cách độ tương đồng của ảnh với ảnh dựa trên mô hình In- ception V3
5 GAN Generative Adversarial Net-
work Mạng đối lập tạo sinh
6 LSGAN Least Squares Generative Adversarial Networks
Một loại hàm mất mát trong mô hình GAN 7 MLP Multi-layer perceptron Mạng nơ-ron truyền
thẳng nhiều lớp 8 MND Multivariate normal distri-
bution
Phân phối chuẩn nhiều chiều
9 nrmse Normalization Root Mean Square Error
Chuẩn hóa sai số toàn phương trung bình
10 pix2pix
Image-to-Image Translation with Conditional Adversar- ial Networks
Trình dịch từ ảnh sang ảnh với mạng đối lập tạo sinh có điều kiện
STT Từ viết tắt Tiếng Anh Tiếng Việt
11 rmse Root Mean Square Error Sai số toàn phương trung bình
12 SimCLR
A Simple Framework for Contrastive Learning of Visual
Một mô hình học mâu thuẫn
13 stl Standard Triangle Language
Loại tệp được sử dụng để mô hình số hóa 3D dữ liệu về mộc bản
Danh mục các hình vẽ
Hình 1.1 Mộc bản triều Nguyễn. ... 4
Hình 1.2 Những tấm mộc bản bị hư hại... 5
Hình 1.3 Mộc bản gốc, số hóa 3D và in từ bản số. ... 6
Hình 1.4 Tổng quát xử lý khôi phục mộc bản ... 7
Hình 1.5 Ảnh depthmap. ... 11
Hình 1.6 Ảnh ghép cặp. ... 12
Hình 1.7 Ảnh ghép cặp và không ghép cặp. ... 13
Hình 1.8 Mô hình pix2pix. ... 14
Hình 1.9 Encoder-decoder và U-Net. ... 15
Hình 1.10 PatchGan. ... 16
Hình 1.11 Ảnh ngày – đêm. ... 18
Hình 1.12 Ảnh phác thảo - tô màu. ... 18
Hình 1.13 Ảnh bản đồ - vệ tinh. ... 19
Hình 1.14 Mục đích học mâu thuẫn. ... 20
Hình 1.15 Mô hình SimCLR. ... 20
Hình 1.16 Tổng quan mô hình CLUT... 22
Hình 1.17 Hàm mất mát mâu thuẫn patchwise. ... 23
Hình 1.18 Phân phối chuẩn cho dữ liệu 2-chiều. ... 25
Hình 1.19 Phân phối 2-chiều của các điểm dữ liệu 3-chiều. ... 25
Hình 2.1 Toàn trình khôi phục Deptmap từ bản in 2D mộc bản. ... 28
Hình 2.2 Quy trình xử lý dữ liệu huấn luyện mộc bản. ... 30
Hình 2.3 Dữ liệu ký tự trong mộc bản ghép cặp. ... 31
Hình 2.4 Depthmap và bản in. ... 32
Hình 2.5 Lề khung của sách. ... 33
Hình 2.6 Xoay và crop ảnh. ... 34
Hình 2.7 Đường mức một. ... 35
Hình 2.8 Ma trận cắt, đường màu trắng thể hiện các đường cắt... 36
Hình 2.9 Kết quả công cụ trích xuất ký tự chữ bản in 2D. ... 36 Hình 2.10 Chữ 3D và depthmap. ... 38 Hình 2.11 Quy trình khôi phục deptmap từ bản in. ... 39
Danh mục các bảng
Bảng 1.1 Đặc trưng của các kỹ thuật số hóa 3D ... 8
Bảng 1.2 Thông số kỹ thuật thiết bị GOM ATOS III Triple Scan ... 9
Bảng 1.3 Thông số kỹ thuật thiết bị PRINCE335 ... 10
Bảng 1.4 Chi tiết kích thước ma trận mạng Inception-V3... 26
Bảng 3.1 Tham số chạy thử nghiệm các mô hình GAN ... 41
Bảng 3.2 Kết quả thử nghiệm giữa các mô hình GAN ... 42
Bảng 3.3 Bộ tham số mô hình pix2pix ... 43
Bảng 3.4 Kết quả đầu ra của mô hình pix2pix ... 44
Bảng 3.5 Chi tiết của các thông số đánh giá ... 45
Bảng 3.6 Thống kê kết quả tất cả các mẫu kiểm thử ... 45
MỞ ĐẦU
Mộc bản Triều Nguyễn được Unesco công nhận là di sản tư liệu thế giới từ năm 2009. Việc bảo tồn và phát huy giá trị di sản tư liệu đóng vai trò quan trọng để gìn giữ tư liệu quá khứ nhằm kết nối tới hiện tại và tương lai.
Ngày nay chúng ta đã thu thập, bảo tồn và lưu trữ được khoảng gần 35.000 tấm mộc bản. Tuy nhiên tổng số lượng thực tế các tấm mộc bản triều Nguyễn theo ước lượng vào khoảng trên 50.000 tấm. Thêm vào đó, có một số lượng lớn những tấm mộc bản tuy vẫn được lưu trữ, bảo tồn nhưng không còn toàn vẹn, thậm chí có những tấm mộc bản chỉ còn lại một nửa hoặc một phần ba của nguyên bản.
Những thư tịch liên quan về những tấm mộc bản bị mất hoặc không toàn vẹn (là bản in được in ra từ tấm mộc bản) hiện vẫn đang được bảo tồn. Cùng với sự phát triển về công nghệ hiển thị, số hóa 3D và máy quét phân giải cao chúng ta đã thành công lưu trữ và hiển thị các tấm mộc bản và thư tịch của chúng trong môi trường máy vi tính. Từ những tiền đề trên, nghiên cứu này tập trung vào việc khôi phục lại số hóa của những tấm mộc bản bị thất lạc hay không toàn vẹn kể trên.
Mục tiêu tổng quan mà nghiên cứu hướng tới là khôi phục lại biểu diễn (mô hình) 3D của các tấm mộc bản bị thất lạc hoặc không toàn vẹn dựa trên những thư tịch (bản in) đã được số hóa 2D còn lưu trữ lại của các tấm mộc bản trên.
Có hai hướng tiếp cận cho bài toán khôi phục biểu diễn 3D của một đối tượng nói chung và của tấm mộc bản nói riêng là cách trực tiếp hoặc cách gián tiếp. Cách trực tiếp chúng ta sẽ khôi phục lại mô hình 3D từ các điểm trong không gian dữ liệu 3D (point clouds); và cách gián tiếp là khôi phục lại đối tượng trung gian mà có thể phục dựng lại biểu diễn 3D từ chúng. Cách trực tiếp khôi phục một biểu diễn 3D từ một góc nhìn (single view) 2D là khó và các nghiên cứu hiện nay cũng cho thấy sự hạn chế của phương pháp này. Do vậy, nghiên cứu này lựa chọn cách tiếp cận gián tiếp và giới hạn lại phạm vi của bài toán từ việc khôi phục lại bản 3D của tấm mộc bản sang khôi phục lại ảnh độ sâu (depthmap) của tấm mộc bản.
Mục đích nghiên cứu
Nghiên cứu này xây dựng phương pháp xử lý dữ liệu, đề xuất mô hình, quy trình thực hiện khôi phục lại mô hình depthmap từ bản in 2D mộc bản. Sau khi khôi
phục lại depthmap từ bản in 2D, tiếp tục nghiên cứu cách đánh giá kết quả của mô hình đào tạo và kết luận kết quả của nghiên cứu.
Phương pháp nghiên cứu
Phương pháp nghiên cứu khi thực hiện luận văn là quan sát tấm mộc bản, bản số hóa 3D và bản in 2D của chúng để hình dung ra các đối tượng, đầu vào đầu ra của bài toán. Kế tiếp, tác giả phân tích các đối tượng kể trên từ nhiều mẫu đúc rút ra các đặc điểm, đặc tính và phân bố của vật thể mà từ đó thu được các thông tin để khảo sát và tham khảo các lý thuyết liên quan, cùng với các công cụ hiện có trong lĩnh vực để có thể ánh xạ vào bài toán của luận văn. Sau khi khảo sát, tham khảo tác giả tổng hợp lại kiến thức và đề xuất các quy trình trong xử lý dữ liệu và quy trình khôi phục lại depthmap cho mộc bản và thử nghiệm chúng. Cuối cùng, luận văn thực hiện đánh giá và đưa ra nhận xét cho kết quả của bài toán.
Đóng góp mới của luận văn
Luận văn này đã thiết lập được quy trình xây dựng tập dữ liệu huấn luyện là tập các ký tự được trích xuất từ tấm mộc bản 3D và bản in tương ứng của chúng. Thử nghiệm các mô hình học máy khác nhau và đề xuất mô hình học máy tốt nhất áp dụng trong bài toán khôi phục depthmap từ bản in 2D mộc bản. Đánh giá được kết quả của sau khi thực hiện khôi phục depthmap từ bản in 2D mộc bản.
Kết quả đạt được
Sau khi tập trung nghiên cứu đề tài, tôi đã giải quyết được các vấn đề mà trong phần mục tiêu đã đề ra. Luận văn đã trình bày một cách rõ ràng, chi tiết từ bước chuẩn bị dữ liệu cho đến các mô hình học máy và khôi phục lại mô hình depthmap từ bản in 2D mộc bản.
Kết cấu luận văn
Ngoài phần mở đầu và phần tham khảo, luận văn này được tổ chức thành 3 chương với các nội dung chính như sau:
- Chương 1 Kiến thức nền tảng
o Tổng quan mộc bản triều Nguyễn o Công nghệ số hóa 3D mộc bản o Tổng quan về depthmap
o Mô hình sinh depthmap từ ảnh 2D
o Độ đo Fréchet Inception Distance dùng để đánh giá mô hình sinh depthmap từ ảnh 2D
- Chương 2 Khôi phục depthmap từ bản in 2d mộc bản o Quy trình chuẩn bị tập dữ liệu huấn luyện o Sinh depthmap từ bản in 2D mộc bản - Chương 3 Thử nghiệm và đánh giá
o Bộ dữ liệu huấn luyện dùng đề khôi phục depthmap
o Thử nghiệm các mô hình khác nhau trên tập dữ liệu con và đề xuất áp dụng mô hình tốt nhất trong toàn bộ tập dữ liệu
o Đánh giá kết quả
- Phần kết luận, tác giả tổng kết lại những công việc đã hoàn thành, những vấn đề còn tồn tại và định hướng tương lai của bài toán khôi phục depthmap từ bản in 2D mộc bản
CHƯƠNG 1. KIẾN THỨC NỀN TẢNG
Chương 1 trình bày các kiến thức nền tảng về mộc bản, công nghệ số hóa 3D mộc bản, tổng quan về depthmap và về các mô hình học máy, độ đo Fréchet Inception Distance là những kiến thức được tác giả sử dụng để giải quyết bài toán khôi phục depthmap từ bản in 2D mộc bản.
1.1 Tổng quan mộc bản triều Nguyễn 1.1.1 Giới thiệu mộc bản triều Nguyễn
Mộc bản triều Nguyễn là những tấm gỗ khắc chữ Hán hoặc chữ Nôm ngược dùng để in ra các sách, sử dụng phổ biến ở Việt Nam trong thời kỳ phong kiến và được lưu giữ đến ngày nay. Do nhu cầu phổ biến rộng rãi các chuẩn mực xã hội, các điều luật, ghi lại các sự kiện lịch sử và lưu truyền công danh, sự nghiệp của các vua chúa triều đình nhà Nguyễn đã cho biên soạn, khắc in nhiều bộ sách sử và các tác phẩm văn chương. Để in được các cuốn sách đó đã sản sinh ra một tài liệu đặc biệt, đó là mộc bản triều Nguyễn. Hình 1.1 Mộc bản triều Nguyễn bên trái là tấm mộc bản được làm bằng gỗ, bên phải là nội dụng bản in được in từ tấm mộc bản.
Hình 1.1 Mộc bản triều Nguyễn.
1.1.2 Hiện trạng của mộc bản triều Nguyễn
Hiện tại, việc bảo tồn di sản mộc bản triều Nguyễn đang gặp phải nhiều vấn đề và đối mặt với nhiều thách thức. Trong đó có hai vấn đề lớn và nổi bật là mộc bản bị thất lạc trong quá trình bảo quản, vận chuyển hoặc do chiến tranh; và theo thời
gian, vật liệu gỗ tạo nên các mộc bản dần bị biến dạng, hư hỏng do các nguyên nhân như thời tiết, nấm mốc, mối, mọt, cháy nổ.
Thực tế thống kê cho thấy, di sản mộc bản Triều Nguyễn để lại hơn 50.000 tấm nhưng hiện nay chỉ còn 34.619 tấm đang được lưu trữ và bảo tồn tại Trung tâm Lưu trữ quốc gia IV, trong đó nhiều tấm là chỉ là một phần còn lại của mộc bản và đối mặt với hiện trạng vật lý yếu, khó bảo tồn. Hình 1.2 Những tấm mộc bản bị hư hại, chúng ta có thể thấy có những tấm mộc bản đã bị mất hơn một nửa tấm hoặc chỉ còn lại một phần ba hay thậm chí còn lại một góc so với nguyên bản của tấm mộc bản.
Hình 1.2 Những tấm mộc bản bị hư hại.
Từ những vấn đề nêu trên, chúng ta cần có một phương án, cách thức lưu trữ bền vững và phục hồi lại những tấm mộc bản đã bị thất lạc, hư hỏng hoặc không toàn vẹn.
1.1.3 Khôi phục mộc bản từ bản in
Vấn đề bảo tồn và lưu trữ mộc bản một cách có hiệu quả đã được nghiên cứu và công bố trong một vài tạp chí [3,5]. Năm 2019, nhóm nghiên cứu của PGS. TS.
Lê Thanh Hà tại phòng thí nghiệm Tương tác Người máy, Trường Đại học Công nghệ, đã chủ trì và thực hiện thành công đề tài “Nghiên cứu, lựa chọn công nghệ
số hóa và in 3D tài liệu mộc bản Triều Nguyễn – Di sản tư liệu thế giới”. Nhóm nghiên cứu đã khảo sát hơn sáu trăm tấm mộc bản, số hóa 3D thử nghiệm mười mộc bản và in 3D thử nghiệm năm mộc bản và kết quả được đánh giá cao [10].
Đầu vào của quy trình này là các tấm mộc bản vật lý đang được lưu trữ tại Trung tâm Lưu trữ quốc gia IV, đầu ra là mô hình 3D của các tấm mộc bản kể trên.
Hình 1.3 Mộc bản gốc, số hóa 3D và in từ bản số.
Như đã đề cập ở Mục 1.1.2. số lượng mộc bản thực tế hơn 50.000 tấm nhưng hiện tại còn lưu trữ tại Trung tâm Lưu trữ quốc gia IV chỉ còn 34.619 hơn thế nữa có rất nhiều tấm không nguyên vẹn. Tuy nhiên, các bản in từ những tấm mộc bản bị thất lạc hư hỏng kể trên chúng ta vẫn đang lưu trữ lại. Qua đó, vấn đề của bài toán là tìm được phương thức có thể khôi phục lại các mộc bản bị thất lạc hoặc không nguyên vẹn từ những bản in còn lưu trữ lại. Hay nói cách khác, chúng ta đi tìm phương pháp khôi phục lại mô hình 3D của mộc bản (những tấm đã được số hóa thành mô hình 3D) từ ảnh 2D bản in tương ứng của mộc bản.
Có hai hướng tiếp cận chính để giải quyết bài toán khôi phục mô hình 3D từ bản in 2D mộc bản. Cách thứ nhất là trực tiếp khôi phục các điểm dữ liệu trong miền dữ liệu 3D của mộc bản (point clouds), đầu vào của phương pháp này là bức ảnh 2D bản in của mộc bản và đầu ra là mô hình 3D mộc bản với các điểm point clouds cấu thành lên tấm mộc bản 3D, tuy nhiên cho tới nay kết quả của các nghiên cứu về việc khôi phục trực tiếp từ 2D sang 3D còn chưa được khả quan. Cách thứ hai là thực hiện khôi phục lại đối tượng trung gian đơn giản có thể hiện hơn và có khả năng tái tạo lại mô hình 3D của mộc bản. Ảnh độ sâu depthmap là một dạng trung gian như vậy, nó là một ảnh 2D nhưng thể hiện chiều sâu của ảnh và có khả năng thể hiện được các đặc trung 3D theo một góc nhìn cụ thể. Phương pháp tiếp
cận gián tiếp được tác giả áp dụng trong luận văn này. Giới hạn nghiên cứu của luận văn là khôi phục depthmap từ bản in 2D mộc bản.
Hình 1.4 Tổng quát xử lý khôi phục mộc bản
Hình 1.4 Tổng quát xử lý khôi phục mộc bản khi khôi phục lại một tấm mộc bản đã bị thất lạc hoặc không toàn vẹn (đã mất). Trong đó phương pháp tiếp cận mà tác giả sử dụng là khôi phục lại ở mức ký tự của tấm mộc bản đã mất, do vậy trong luận này sẽ giới hạn khôi phục lại tấm mộc bản ở mức ký tự depthmap.
1.2 Công nghệ số hóa 3D mộc bản
Việc số hóa 3D mộc bản là công việc cần thiết và tiên quyết trong quá trình khôi phục Deptmap cho mộc bản. Nó vừa trợ giúp cho việc bảo tồn, trưng bày, triển lãm tốt hơn khi không ảnh hưởng đến các tấm mộc bản gốc mà còn là đầu vào cho quá trình khôi phục depthmap của mộc bản.
Hiện nay có nhiều công nghệ có thể được sử dụng để số hóa 3D các đối tượng thể khối bao gồm mộc bản. Những công nghệ số hóa phổ biến bao gồm:
công nghệ quét 3D có tiếp xúc (contact – based); công nghệ quét 3D sử dụng ảnh chụp từ các góc của vật (photogrammetry); công nghệ quét 3D sử dụng ánh sáng la-de (laser); công nghệ quét 3D sử dụng ánh sáng có cấu trúc (structed light);
công nghệ quét sử dụng xung laser (LASER pulse-based). Các đặc trưng được mô tả trong Bảng 1.1
Bảng 1.1 Đặc trưng của các kỹ thuật số hóa 3D
STT Kĩ thuật số hoá 3D Vật nhỏ
Vật trung
bình Vật to Ghi chú
1 Kỹ thuật số hoá 3D
contact-based X X
Công nghệ sử dụng sẽ chạm liên tục vào vật quét, không phù hợp sử dụng trên mộc bản.
2 Kỹ thuật số hoá 3D
photogrammetry X X
Công nghệ cần có thiết bị máy tính hiệu năng cực mạnh.
3
Kỹ thuật số hoá 3D LASER triangula- tion
X X
Quét được các bề mặt khó như bóng, tối màu, …
4
Kỹ thuật số hoá 3D sử dụng ánh sáng có cấu trúc
X X
Đa dụng, có nhiều ống kính để quét các chi tiết nhỏ tới lớn trong cùng vật quét.
5
Kỹ thuật số hoá 3D LASER pulse- based
X
Độ chi tiết không cao, phù hợp để quét các vật thể lớn.
Kỹ thuật quét 3D dựa trên tiếp xúc sử dụng một vật mềm nhỏ hoặc một đầu dò để áp vào bề mặt vật cần quét, kỹ thuật sử dụng phần mềm hỗ trợ để tính toán vị trí vật trong môi trường 3D. Kỹ thuật quét 3D sử dụng ảnh chụp sẽ dùng các ảnh chụp từ các góc của vật, áp dụng các thuật toán tính toán hình học phức tạp và thị giác máy để xác định các điểm của vật tương đương trên ảnh, các thông số đo của vật trong ảnh để tính toán và xây dựng mô hình 3D số của vật. Kỹ thuật quét 3D sử dụng xung laser là các kỹ thuật quét tầm xa, phù hợp cho những vật to như toà nhà, máy bay, … Các cảm biến và phần mềm hỗ trợ có thể dựa vào thời gian phản xạ của tia laser hoặc dựa vào góc thay đổi của tia laser để tính toán và
số hoá vật được quét. Kỹ thuật quét 3D sử dụng ánh sáng có cấu trúc chiếu mô hình ánh sáng gồm các hình thanh và khối sáng lên vật được quét. Kỹ thuật bao gồm một hoặc nhiều cảm biến “nhìn” vào góc, cạnh của thanh/khối sáng để xác định hình dạng 3D của vật. Kỹ thuật quét 3D LASER triangulation cũng tương tự như kỹ thuật sử dụng ánh sáng có cấu trúc đó là dựa vào góc thay đổi của tia sáng để tính toán hình dạng bề mặt của vật thể.
Qua thảo luận và khảo sát hiện trạng của mộc bản về kích thước và khối lượng; màu sắc; nội dung tấm và tình trạng mộc bản nhằm lựa chọn công nghệ quét cũng như thực hiện qui trình quét hợp lý. Nhận thấy hai dòng thiết bị quét 3D GOM ATOS và PRINCE có kỹ thuật quét ánh sáng sử dụng cấu trúc và công nghệ quét la-de tương ứng là phù hợp với việc quét mộc bản, vì yêu cầu kỹ thuật quét các tấm mộc bản đỏi hỏi độ chính xác cao đồng thời cần hạn chế tiếp xúc với mộc bản để tránh tác động không mong muốn vào mộc bản. Với những ưu điểm trên, Phòng thí nghiệm Tương tác Người - Máy, Khoa CNTT, Trường ĐHCN, ĐHQG HN đã sử dụng 2 máy quét cụ thể GOM ATOS III Triple Scan và PRINCE335 với thông số kỹ thuật tương được mô tả trong (Bảng 1.2 và Bảng 1.3) để thực hiện quét thử nghiệm.
Bảng 1.2 Thông số kỹ thuật thiết bị GOM ATOS III Triple Scan
Chỉ số Giá trị
Số lượng điểm ảnh 2 x 8.000.000 pixel
Diện tích vùng đo 38 x 29 - 2000 x 1500 mm Độ phân giải (Tùy theo cửa sổ đo
và khoảng cách tới vật đo) 0.01 - 0.61 mm
Khoảng cách đo 490 – 2.000 mm
Bộ điều khiển sensor Tích hợp
Độ dài cáp nối Lên tới 30m
Cảm biến định vị Cảm biến công nghiệp tự động
Chỉ số Giá trị
Định vị thành phần quét Dùng bàn xoay tự động hoặc thủ công Máy tính xử lý ảnh Di động hoặc PC cao cấp
Hệ điều hành Windows 7
Phần mềm Thu thập dữ liệu, xử lý và kiểm tra hoàn chỉnh
Bảng 1.3 Thông số kỹ thuật thiết bị PRINCE335
Chỉ số Giá trị
Model Standard mode R Hyperfine mode B
Cân nặng 0.95 Kg
Kích thước 315x165x105 mm
Nguồn laser 3 cặp tia laser đỏ chéo
nhau 5 tia laser xanh song song
Tốc độ quét 265.000 phép đo/giây 320.000 phép đo/giây
Camera frame rate 60fps 120fps
Độ phân giải 0.05 mm 0.02 mm
Độ chính xác Lên tới 0.03 mm
Khoảng cách hoạt động 200 mm - 450 mm 100 mm - 200 mm
GOM ATOS Scan là thiết bị quét có giá đỡ và có độ phân giải cao. Trong khi đó PRINCE335 là thiết bị cầm tay với hai chế độ quét 3D khác nhau (i) chế độ tiêu chuẩn R - sử dụng ba tia laser đỏ cho khả năng thích ứng cao và (ii) chế độ Hyperfine B - sử dụng năm đường thẳng song song màu xanh, cho mức độ chi tiết cao.
1.3 Tổng quan depthmap
Trong đồ họa máy tính 3D và thị giác máy tính, depthmap (bản đồ độ sâu) là một hình ảnh hoặc kênh hình ảnh chứa thông tin liên quan đến khoảng cách bề mặt của các đối tượng cảnh từ một điểm nhìn (viewpoint). Có nghĩa là với một depthmap, chúng ta có thể ước lượng ra được một vật thể gần hay xa so với một điểm nhìn (thường là một ống kính của máy ảnh) theo độ sâu màu của hình ảnh.
Hình 1.5 Minh họa một bức ảnh depthmap của một ký tự trong mộc bản.
Ta thấy phần chữ nổi gần với điểm nhìn hơn thì sẽ có màu đậm hơn, ngược lại phần đuôi và phần rỗng trong ký tự xa điểm nhìn hơn thì màu sáng hơn. Như vậy qua bức hình ta có thể hình dung được hình dáng (gần, xa) của một ký tự. Trong thực tế ảnh nhiều ảnh depthmap với các điểm nhìn khác nhau (multi-viewpoints) cũng được sử dụng để tái tạo lại mô hình 3D của đối tượng [6,8,17].
Hình 1.5 Ảnh depthmap.
Bởi depthmap là một đối tượng 2D có thể biểu diễn một phần đối tượng 3D theo một điểm nhìn nên hướng tiếp cận sử dụng dụng depthmap làm đối tượng trung gian nhằm khôi phục lại mô hình 3D của mộc bản đã được tác giả áp dụng trong luận văn.
1.4 Mô hình sinh depthmap từ ảnh 2D
Với những nghiên cứu, ứng dụng và kết quả khả quan của mạng nơ-ron tích chập trong việc xử lý ảnh trong những năm gần đây, nhất là sự ra đời của mạng đối lập tạo sinh [4] (Generative Adversarial Network - GAN) vào năm 2014 bởi Ian Goodfellow cùng cộng sự, mô hình GAN đã nhận được sự quan tâm, đầu tư, cải
tiến liên tục cả về mô hình, ứng dụng và kết quả đạt được của giới khoa học. Tác giả đã quyết định lựa chọn cách tiếp cận sử dụng mạng GAN để giải quyết bài toán khôi phục Deptmap từ ảnh 2D.
Mạng GAN hiện nay có khá nhiều biến thể và tùy vào ứng dụng cụ thể để áp dụng những biến thể đó để giải quyết bài toán. Trong bài toán mà luận văn đang giải quyết là dạng dịch thuật hình ảnh sang hình ảnh (Image to image trans- lation), trong đó một hình ảnh 2D sẽ được dịch sang một ảnh depthmap tương ứng.
Trong lĩnh vực dịch thuật hình ảnh sang hình ảnh được chia làm hai phương pháp tiếp cận là dịch hình ảnh sang hình ảnh có ghép cặp (pair) và dịch hình ảnh sang hình ảnh không ghép cặp (un-pair). Ảnh ghép cặp có nghĩa chúng ta có thể xây dựng được bộ dữ liệu tương ứng một-một, với một ảnh đầu vào sẽ có tương ứng một ảnh đầu ra của chính bức ảnh đó.
Hình 1.6 Ảnh ghép cặp.
Hình 1.6 minh họa ảnh ghép cặp, trong đó bên trái là một bức ảnh phác thảo, chưa được tô màu; bên phải là một bức ảnh của chính bức ảnh bên trái nhưng được tô thêm màu. Đa phần những bức ảnh có thể ghép cặp là những dữ liệu không hoặc ít thay đổi và có thể ánh xạ lẫn nhau trong thực tế. Một vài ví dụ có thể xây dựng được tập dữ liệu ghép cặp như ảnh phác thảo - ảnh tô màu, ảnh đen trắng - ảnh màu, ảnh địa hình - ảnh vệ tinh, …
Ảnh không ghép cặp là việc chúng ta không thể hoặc khó để có thể xây dựng được bộ dữ liệu một-một như trường hợp của ảnh ghép cặp. Đa phần trong
thực tế chúng ta khó có thể xây dựng được các cặp ảnh do sự thay đổi hoặc tính duy nhất của đối tượng. Một vài dữ liệu không thể hoặc khó có trong thực tế để xây dựng ảnh ghép cặp như ngựa thường – ngựa vằn, mùa đông – mùa hè, ảnh – tranh vẽ (Van Gogh, Monet, Cezanne, …). Hình 1.7 minh họa một cách rõ ràng sự khác nhau giữa ảnh ghép cặp và không ghép cặp, bên trái là tập dữ liệu ghép cặp và bên phải và tập dữ liệu không ghép cặp.
Hiện nay có nhiều nghiên cứu trong lĩnh vực dịch thuật ảnh sang ảnh (đọc thêm chi tiết trong [18]). Trong số đó kể đến như pix2pix, CycleGAN, StarGAN, BicycleGAN là những mô hình được biết đến nhiều trong lĩnh vực này. Để giải quyết bài toán của luận văn, tác giả đã thử nghiệm, đi sâu vào tìm hiểu ba mô hình đã được thử nghiệm và áp dụng vào nhiều ứng dụng thực tiễn là pix2pix, CUT và Fast-CUT. Pix2pix là mô hình dịch ảnh ghép cặp, từ khi bài báo của Phillip Isola và cộng sự công bố vào năm 2017 đã nhận được nhiều sự quan tâm của cộng đồng và có rất nhiều ứng dụng khác nhau dựa trên mô hình này [13]. Tương tự pix2pix, CycleGAN là mô hình không ghép cặp được cộng đồng quan tâm và sử dụng nhiều trong khoảng thời gian 2018 sau khi nó được công bố bởi Jun-Yan Zhu và cộng sự [7]. Tác giả lựa chọn thử nghiệm hai mô hình không ghép cặp CUT, Fast- CUT bởi nó chính là mô hình được nhóm tác giả của CycleGAN công bố năm 2020 và khuyến nghị thay thế một cách có hiệu quả của mô hình CycleGAN (xem chi tiết trong [19]).
Hình 1.7 Ảnh ghép cặp và không ghép cặp.
1.4.1 Mô hình pix2pix
1.4.1.1 Tổng quan mô hình pix2pix
Mô hình pix2pix (chi tiết bài báo gốc tham khảo [13]) một mô hình GAN [4] hay cụ thể là GAN có điều kiên (conditional GAN- cGAN) [9], nó bao gồm hai thành phần Generator (G) để sinh ảnh giả và Discriminator (D) để phân biệt ảnh thật và ảnh giả. Tuy nhiên, khác với mạng cGAN bình thường khi đầu vào của Generator là nhiễu, trong mô hình pix2pix đầu vào của Generator là ảnh và đầu ra của Gen- erator cũng là ảnh.
Hình 1.8 minh họa qui trình xử lý của mô hình pix2pix, đầu vào của Dis- criminator là ảnh x (đầu vào của Generator) và G(x) (Đầu ra của Generator). Hai ảnh này cùng kích thước được xếp lên nhau rồi cho vào Discriminator. Discrimi- nator học bằng cách phân biệt x và G(x) là ảnh giả (fake). Ngược lại Generator sẽ học bằng cách cho x và G(x) là ảnh thật.
Hình 1.8 Mô hình pix2pix.
1.4.1.2 Generator
Tính năng chính của các vấn đề dịch thuật (Translation) từ ảnh sang ảnh là chúng ánh xạ ma trận đầu vào có độ phân giải cao sang ma trận đầu ra có độ phân giải cao. Ngoài ra, đầu vào và đầu ra khác nhau về hình thức bề mặt, nhưng cả hai đều là kết xuất của cùng một cấu trúc cơ bản. Do đó, cấu trúc trong đầu vào gần đúng với cấu trúc trong đầu ra.
Nhiều giải pháp cho các vấn đề trong lĩnh vực này đã sử dụng mạng en- coder-decoder [2]. Trong một mạng như vậy, đầu vào được chuyển qua một loạt các lớp giảm dần, cho đến khi một lớp tắc nghẽn (bottleneck layer), tại đó quá trình được đảo ngược. Một mạng như vậy đòi hỏi tất cả các luồng thông tin đi qua
tất cả các lớp, bao gồm cả nút cổ chai. Đối với nhiều vấn đề dịch thuật ảnh, có rất nhiều thông tin cấp thấp được chia sẻ giữa đầu vào và đầu ra, và chúng ta kỳ vọng đưa thông tin này trực tiếp qua mạng. Ví dụ, trong trường hợp tô màu hình ảnh, đầu vào và đầu ra chia sẻ vị trí của các cạnh nổi bật.
Hình 1.9 Encoder-decoder và U-Net.
Để cung cấp cho Generator phương tiện để vượt qua nút nghẽn cổ chai cho những thông tin như thế, pix2pix thêm các kết nối bỏ qua (skip connections), theo hình dạng chung của một U-Net [12]. Cụ thể, pix2pix thêm các kết nối bỏ qua giữa mỗi lớp i và lớp n - i, trong đó n là tổng số lớp. Mỗi kết nối bỏ qua chỉ đơn giản là nối tất cả các kênh ở lớp i với các kênh ở lớp n - i. Hình 1.9 bên trái minh họa cấu trúc encoder-decoder, bên phải minh họa cấu trúc U-Net.
1.4.1.3 Discriminator
Discriminator sẽ có đầu vào là hai ảnh: một của Generator và còn lại là ảnh đầu ra của Generator hoặc ảnh thật, (đầu vào của Generator, đầu ra của Generator) hoặc (đầu vào của generator, ảnh đầu ra thật). Điểm khác ở đây là input của Dis- criminator còn có cả ảnh đầu vào nữa. Vì mạng GAN thông thường đầu vào là nhiễu (noise z), còn pix2pix đầu vào là ảnh nên còn được gọi là condition GAN (cGAN), tức là ảnh đầu ra phụ thuộc vào ảnh đầu vào. Việc cho cả ảnh đầu vào vào giúp Discriminator dễ phân biệt hơn ảnh nào là Generator sinh ra và ảnh nào trong dataset.
PatchGAN
Ý tưởng Discriminator truyền thống đầu ra sẽ là một node và là bài toán binary classification. Còn ý tưởng patchGAN sẽ thực hiện binary classification trên từng vùng ảnh nhỏ (70*70) trên ảnh (224*224) thay vì làm toàn bộ trên ảnh. Hình 1.10 vùng khoanh 7*7 thể hiện các PatchGAN, kết quả là một ma trận 2*2.
Hình 1.10 PatchGan.
Hình trên ví dụ ảnh đầu vào kích thước 10*10, chúng ta muốn thực hiện patch trên từng vùng nhỏ 7*7 và muốn output là 2*2. Ta thấy các vùng 7*7 sẽ bị chồng lên nhau, nhưng nó không ảnh hưởng. Mục tiêu là mỗi ô ở output tương ứng với bài toán binary classification xem patch 7*7 ở đầu vào là ảnh thật hay ảnh giả.
PatchGAN Discriminator sẽ phân loại từng patch nhỏ một thay vì cả ảnh nên kết quả sẽ tốt hơn. Khi train Discriminator với ảnh thật ta mong muốn đầu ra của tất cả các patch là 1, còn với ảnh giả là 0. Ngược lại khi huấn luyện Generator ta mong muốn với ảnh giả tất cả các patch là 1.
1.4.1.4 Hàm mục tiêu
Mục tiêu của GAN có điều kiện có thể được thể hiện như sau:
(1) Công thức (1) thể hiện hàm mất mát của mô hình pix2pix, trong đó, x, y lần lượt là ảnh đầu vào và ảnh đầu ra tương ứng (x-y là một cặp); z là nhiễu (noise); D(x,y) là xác suất nhận biết x sinh ra đúng ảnh y (x được thêm vào để quan sát thêm); G(x,z) là ảnh giả; D(x, G(x,z)) là xác suất để phân biệt ảnh giả, tương tự x cũng được thêm vào để quan sát.
Hàm mất mát có điều kiện của mô hình pix2pix tương tự như hàm mất mát của cGAN bình thường. Khác biệt một chút so với cGAN thông thường là cGAN của pix2pix có Discriminator quan sát thêm ảnh đầu vào x.
Chúng ta có thể so sánh với hàm mất mát mà không quan sát x trong công thức (2)
(2) Ta thấy, G cố gắng tối thiểu hóa mục tiêu này chống lại một đối thủ D cố gắng tối đa hóa mục tiêu đó, tức là G* = arg minG maxD 𝓛cGAN(G, D).
Các cách tiếp cận trước đây đã thấy lợi ích khi trộn mục tiêu GAN với mất mát truyền thống, chẳng hạn như khoảng cách L2 [1]. Công việc của Discrimina- tor vẫn không thay đổi, nhưng Generator có nhiệm vụ không chỉ đánh lừa Dis- criminator mà còn ở gần đầu ra thật (ground truth) theo nghĩa L2. Pix2pix sử dụng khoảng cách L1 thay vì L2 vì L1 khuyến khích làm mờ ít hơn. Công thức (3) thể hiện hàm mất mát theo khoảng cách L1:
(3) Kết hợp (1) và (3) chúng ta có hàm mục tiêu cuối cùng của mô hình pix2pix thể hiện trong công thức 4 như sau:
(4) Không có z, mạng vẫn có thể học ánh xạ từ x đến y, nhưng sẽ tạo ra các đầu ra xác định và do đó không khớp với bất kỳ phân phối nào ngoài hàm delta.
Các GAN có điều kiện trong quá khứ đã thừa nhận điều này và cung cấp nhiễu Gaussian z làm đầu vào cho Generator, ngoài x.
1.4.1.5 Ứng dụng
Pix2pix có nhiều ứng dụng thực tế và thú vị trong xử lý ảnh. Dưới đây là một vài ứng dụng thực tế đã được áp dụng trong bài báo [13].
Ứng dụng dịch ảnh ảnh ban ngày sang ảnh ban đêm, đầu vào là một bức ảnh thành phố, đồi núi, sông, … vào ban ngày và đầu ra là một bức ảnh tương ứng
của khung cảnh đó vào ban đêm hoặc ngược lại. Hình 1.11 mô tả một vài ví dụ về ứng dụng chuyển đổi ngày-đêm, ảnh đầu vào là một khung cảnh ban ngày và ảnh đầu ra là khung cảnh ban đêm, “Ground truth” là bức ảnh thật vào ban đêm của khung cảnh ban ngày.
Hình 1.11 Ảnh ngày – đêm.
Ảnh phác thảo - ảnh tô màu, đầu vào của ứng dụng này là những bức ảnh mà ở đó sẽ chỉ có những bức hình được phác họa theo một khung, nó có thể là các đồ vật ngoài đời như túi xách, ba-lô, động vật, giày, dép, quần áo, … đầu ra tương ứng là những đồ vật sẽ được tô màu. Hình 1.12 minh họa ứng dụng chuyển đổi ảnh phác thao sang ảnh tô màu. Đầu vào là các loại túi xách được vẽ phác thảo và đầu ra là những chiếc túi được tô màu, “Ground truth” là những bức ảnh thật tương ứng của các hình phác thảo.
Hình 1.12 Ảnh phác thảo - tô màu.
Ảnh địa hình - ảnh vệ tinh, ứng dụng này có đầu vào là những bức ảnh địa hình (trên google map hoặc open street map) và đầu ra tương ứng là những bức
ảnh vệ tinh của bản đồ địa hình hoặc ngược lại. Hình 1.13 mô tả ứng dụng chuyển từ ảnh vệ tinh - ảnh địa hình. Ta thấy nó có thể dịch được vùng màu xanh lá cây ở ảnh địa thể hiện vùng có cây cối, còn vùng chứa hồ hoặc biển thể hiện màu xanh dương trên ảnh địa hình.
Hình 1.13 Ảnh bản đồ - vệ tinh.
1.4.2 Mô hình CLUT
Mô hình Contrastive Learning for Unpaired Image-to-Image Translation (CLUT) (chi tiết bài báo gốc tham khảo [14]) là mô hình không ghép cặp dịch hình ảnh sang hình ảnh. Ý tưởng chính của mô hinh này là tối đa hóa thông tin lẫn nhau giữa tập đầu vào và tập đầu ra. Mục này sẽ trình bày về học mâu thuẫn (Contras- tive learning), kiến trúc và hàm mục tiêu của mô hình.
1.4.2.1 Contrastive learning
Học mâu thuẫn là một kỹ thuật học máy mà ở đó mục tiêu là tìm những thứ tương tự và khác nhau trong một tập dữ liệu không có nhãn. Ví dụ, nó có thể được sử dụng trên cơ sở dữ liệu hình ảnh để tìm các hình ảnh giống nhau. Hình 1.14 minh họa kết quả của học mâu thuẫn, ta có thể thấy sự tương tự với học có giám sát (supervised learning) khi phân lớp các ảnh chó mèo.
Học mâu thuẫn thuộc dạng tự giám sát (self- supervised learning), tức tập dữ liệu chưa được gán nhãn, tác vụ gán nhãn sẽ được tự học trong quá trình huấn luyện dữ liệu. Tác vụ gán nhãn này sẽ cố gắng học những đặc trưng bất biến của ảnh gốc từ ảnh đã biến đổi trong khi vẫn phân biệt được với các ảnh khác trong tập dữ liệu.
Tác giả sử dụng mô hình A Simple Framework for Contrastive Learning of Visual Representations (SimCLR) (chi tiết bài báo gốc tham khảo [15]) để minh họa quy trình và các bước thực hiện trong học mâu thuẫn.
Hình 1.14 Mục đích học mâu thuẫn.
Hình 1.15 Mô hình SimCLR.
Hình 1.15 minh họa các bước trong xử lý của mạng SimCLR, các bước của SimCLR được mô tả như sau:
Bước 1, Data augmentation. Mỗi bức ảnh gốc (gọi là anchor) sẽ được thực hiện tinh chỉnh, chỉnh sửa để sinh thêm dữ liệu (Data augmentation). Các bức ảnh từ bức ảnh gốc khi sinh thêm dữ liệu được gọi là positive, các bức ảnh còn lại trong tập dữ liệu gọi là negative. Khái niệm positive/negative sẽ được gắn với từng ảnh, ví dụ Hình 1.15 minh họa nếu xét anchor là ảnh con chó thì những ảnh sinh ra từ con chó là positive, những ảnh khác như ảnh sinh ra từ chiếc ghế là negative; nếu xét anchor là ảnh chiếc ghế thì positive là những ảnh sinh ra từ chiếc ghế và negative là ảnh con chó và những bức ảnh khác.
Bước 2, Encoder. Sau khi sinh thêm dữ liệu các dữ liệu được cho qua một mô hình CNN, mục đích của mô hình CNN này tạo ra đặc trưng của ảnh đầu vào (một vector đặc trưng).
Bước 3, Project head. Mục đích chính của Project head, cụ thể trong SimCLR sử dụng multi-layer perceptron (MLP) một tầng ẩn là khuếch đại các đặc trưng của vector đặc trưng thu được từ Bước Encoder.
Bước 4, mục tiêu tối ưu. Sau khi thu được vector từ Bước Project head mục tiêu của SimCLR là nếu các positive thì khoảng cách vector đặc trung phải gần nhau, các negative càng khác nhau thì khoảng cách các vector đặc trưng càng xa nhau. Ví dụ, nếu là con chó thì các khoảng cách giữa các vector đặc trung của positive con chó phải gần nhau, khoảng cách của vector đặc trưng từ cái bàn sẽ phải xa hơn khoảng cách của vector đặc trưng từ con sói khi so với con chó (con sói có nhiều đặc điểm chung hơn cái bàn khi so sánh với con sói). Khái quát lại, cơ chế này còn chính là học tập mâu thuẫn có nghĩa là mô hình đã cố gắng tối thiểu hóa khoảng cách giữa các hình ảnh chứa cùng một đối tượng và tối đa hóa khoảng cách giữa các hình ảnh có chứa các đối tượng khác nhau rất lớn.
Mục tiêu của mô hình là cố gắng huấn luyện được mạng CNN trong Bước 2, Encoder sao cho có thể tạo ra được các vector đặc trưng có tính chất như đã nêu ở Bước 4, mục tiêu tối ưu.
1.4.2.2 Mô hình CUT, Fast-CUT
Trong dịch hình ảnh sang hình ảnh không ghép cặp, mỗi mảnh (patch) trong tập đầu ra nên phản ánh nội dung của mảnh tương ứng trong tập đầu vào và không phụ thuộc vào miền (domain). Các tác giả của mô hình mong muốn tìm một phương thức tối đa hóa thông tin lẫn nhau giữa đầu vào và đầu ra sử dụng một khung dựa trên Contrastive learning. Hình 1.16 mô tả tổng quan mô hình CLUT, các thành phần trong mạng bao gồm bộ Generator, Discriminator và thành phần Contrastive learning. Thành phần Generator và Discriminator trong bài báo tác giả sử dụng mạng GcGAN [4], thành phần Contrastive learning được thêm vào mô hình để tối đa hóa thông tin lẫn nhau giữa tập dữ liệu đầu vào và tập dữ liệu sinh bởi Generator. Thành phần Generator được tác giả chia làm hai thành phần Genc và Gdec, thành phần Genc được sử dụng làm bộ Encoder cho Contrastive learn- ing (Chi tiết về Contrastive learning xem Mục 1.4.2.1). Hình 1.16 mô tả chia ảnh thành các mảnh, mảnh màu xanh dương trên hình là tương đồng giữa ảnh đầu vào và đầu ra, ta xác định mảnh màu xanh dương là anchor và những mảnh ngẫu nhiên khác (màu vàng). Như vậy, những dữ liệu sinh ra từ mảnh xanh dương sẽ là pos- itive và những mảnh dữ liệu còn lại là negative. Việc sử dụng các mảnh như trên được tác giả đặt tên là “Patchwise”, toàn bộ quá trình học mâu thuẫn dựa trên các mảnh được đặt tên là “Patchwise contrastive learning”.
Hình 1.16 Tổng quan mô hình CLUT.
Mất mát mâu thuẫn của patchwise
Hình 1.16 đã mô tả tổng quan kiến trúc của mô hình CLUT tiếp theo là chi tiết khối “Patchwise Contrastive Learning”. Hình 1.17 mô tả chi tiết thành phần Patchwise Contrastive Learning theo đó các mảnh của cả dữ liệu đầu vào (x) và ảnh giả sinh ra từ Generator (ŷ) sẽ lấy vector đặc trưng. Trong đó x lấy tất cả bao gồm mảnh tương đồng màu xanh dương và những mảnh ngẫu nhiên, ŷ chỉ lấy mảnh màu xanh dương tương. Bộ Encoder chính là thành phần Genc của Generator, Project head là hai MLP. Sau đó, hai vector đặc trưng của x và ŷ sẽ được tính toán ở bước “Compute similarities to query” kết quả cho ra một ma trận thể hiện sự tương tự, cuối cùng được cho qua “Softmax cross-entropy” để tính khoảng cách.
Hình 1.17 Hàm mất mát mâu thuẫn patchwise.
Hàm mục tiêu
Chúng ta sẽ xem hàm mục tiêu mà các tác giả của bài báo đã xây dựng
L = (5)
Trong đó, G là Generator, D là Discriminator, X là tập dữ liệu đầu vào (miền X), Y là tập dữ liệu ánh xạ đích (miền Y), H là Project head trong Contras- tive, λX và λY là hai tham số hằng số tự định nghĩa.
Trong công thức (5), hàm mục tiêu của mô hình CLUT bao gồm 3 hàm mục tiêu: hàm mục tiêu của mô hình DcGAN; hàm mục tiêu của Contrastive learning của miền X (x và ŷ) thể hiện sự tương tác lẫn nhau giữa dữ liệu đầu vào và dữ liệu ảnh giả; và hàm mục tiêu của Contrastive learning của miền Y (y và ŷ) để ngăn Generator thực hiện những thay đổi không cần thiết.
1. Các tác giả của bài báo [14] đặt tên mô hình là Contrastive Unpaired Trans- lation (CUT) với tham số λX = λY = 1. Với bộ tham số λX = 10 và λY = 0 các tác giả đặt tên nó là Fast-CUT.
1.5 Độ đo Fréchet Inception Distance
Để đánh giá được một mô hình học máy có tốt hay không tốt chúng ta cần những độ đo để đánh giá chúng. Trong mô hình GAN việc đánh giá này cũng là một lĩnh vực lớn và vẫn còn đang được thảo luận nghiên cứu hiện này. Việc đánh giá, so sánh một bức ảnh này với một bức ảnh khác là một việc khó khăn, và phụ thuộc nhiều về cảm quan của con người. Có nhiều cách và nhiều độ đo để phục vụ cho công việc đánh giá này (xem chi tiết tại [20]), mỗi độ đo có ưu nhược điểm khác nhau. Tuy nhiên, hiện nay độ đo Fréchet Inception Distance (FID) là một trong những độ đo thường được sử dụng rộng rãi để đánh giá kết quả một mô hình GAN.
Trong luận văn này, tác sử dụng độ đo FID là một tiêu chí trong việc đánh giá kết quả của bài toán. Phần này của luận văn sẽ trình bày về độ đo FID.
Phân phối Gauss nhiều chiều
Phân phối Gauss nhiều chiều (Multivariate normal distribution - MND), là tổng quát hóa của phân phối chuẩn một chiều (còn gọi là phân phối Gauss) cho không gian nhiều chiều hơn. Giả sử ta có các điểm dữ liệu màu đỏ (2d), yêu cầu tìm một phân phối chuẩn sao cho khớp những điểm dữ liệu nhất, ta tìm được normal dis- tribution (mean = 0, std = 1).
Hình 1.18 minh họa một phân bố dữ liệu (điểm màu đỏ) và một phân phối chuẩn (phân phối Gauss) với độ lệch chuẩn 0 và phương sai khớp nhất với phân bố dữ liệu. Tổng quát hóa với không gian 3 chiều, nếu các điểm dữ liệu (3d) thì ta sẽ tìm được 2d MND. Hình 1.19 minh họa một phân phối chuẩn mà khớp với tập dữ liệu 3D.
Hình 1.18 Phân phối chuẩn cho dữ liệu 2-chiều.
Hình 1.19 Phân phối 2-chiều của các điểm dữ liệu 3-chiều.
Mạng Inception-v3
Inception-V3 (đọc thêm chi tiết trong [21]) của Google là phiên bản thứ ba trong một loạt các Kiến trúc mang tính học tập sâu. Inception V3 được đào tạo bằng cách sử dụng tập dữ liệu 1.000 lớp từ tập dữ liệu ImageNet gốc đã được đào tạo với hơn một triệu hình ảnh đào tạo. Bảng 1.4 mô tả chi tiết quy trình xử lý và kích thước dữ liệu đầu vào và dữ liệu đầu ra của bước xử lý.
Bảng 1.4 Chi tiết kích thước ma trận mạng Inception-V3
STT Kiểu Kernel /
Stride size Kích thước đầu vào
1 Conv 3×3/2 299×299×3
2 Conv 3×3/1 149×149×32
3 Conv padded 3×3/1 147×147×32
4 Pool 3×3/2 147×147×64
5 Conv 3×3/1 73×73×64
6 Conv 3×3/2 71×71×80
7 Conv 3×3/1 35×35×192
8 3 × Inception Module 1 35×35×288 9 5 × Inception Module 2 17×17×768 10 2 × Inception Module 3 8×8×1280
11 Pool 8 × 8 8 × 8 × 2048
12 Linear Logits 1 × 1 × 2048 13 Softmax Classifier 1 × 1 × 100
Độ đo Fréchet Inception Distance (FID) sử dụng Inception-V3 để trích xuất các đặc trưng của ảnh. Tuy nhiên, khác với mô hình Inception-V3 đầy đủ, FID sẽ
bỏ ba bước cuối trong mạng. Mỗi ảnh qua mạng Inception-v3 đầu ra là vector kích thước 2048 * 1 chứa các đặc trưng của ảnh.
Tất cả ảnh trong dataset, mỗi ảnh cho qua Inception-V3 sẽ được vector hóa thành một vector kích thước 2048 * 1, ta đi tìm hàm phân phối Gauss nhiều chiều sao cho khớp nhất tất cả vector này với mean = μx, std = Σx. Tương tự, tất cả ảnh sinh ra bởi generator, mỗi ảnh cho qua Inception-V3 sẽ được vector 2048 * 1, ta đi tìm phân phối Gauss nhiều chiều sao cho khớp nhất tất cả vector này với mean
= μg, std = Σg. Để các ảnh generator sinh ra giống các ảnh trong dataset thì ta kỳ vọng hai MND giống nhau, hay mean và variance gần nhau. Do đó ta định nghĩa khoảng cách của hai phân phối theo công thức (6) như sau:
FID = ∥μx − μg∥2
2 + Tr(Σx + Σg − 2(ΣxΣg))1/2 (6) Trong đó giá trị giá trị trace(Tr) được định nghĩa là với ma trận A vuông kích thước n*n giá trị trace sẽ bằng tổng đường chéo chính của ma trận, cụ thể được thể hiện trong công thức (7):
(7) Từ (6) và (7) ta thấy FID không âm và FID càng thấp thì hai distribution càng gần nhau, có nghĩa là ảnh sinh ra càng giống ảnh gốc trong dataset.
1.6 Tổng kết chương
Trong Chương 1 của luận văn đã trình bày về các kiến thức nền tảng về mộc bản, công nghệ số hóa 3D mộc bản và kiến thức liên quan về học máy được tác giả sử dụng phục vụ cho việc khôi phục depthmap từ bản in 2D mộc bản. Cụ thể tác giả đã trình bày tổng quan về mộc bản, hiện trạng lưu trữ các tấm mộc bản và quy trình khôi phục mộc bản. Kế tiếp, tác giả trình bày về công nghệ số hóa 3D các tấm mộc bản để lưu trữ trên các thiết bị máy tính cũng là dữ liệu đầu vào phục vụ cho quá trình khôi phục Deptmap. Tiếp theo, chương này trình bày tổng quan về depthmap và một số mô hình sinh khả dĩ có thể được áp dụng để khôi phục lại depthmap cho các tấm mộc bản như pix2pix, CLUT. Cuối cùng, tác giả trình bày về một độ đo được thường được sử dụng để định lượng và chấm điểm được kết quả của các mô hình sau khi khôi phục depthmap cho mộc bản.
CHƯƠNG 2. KHÔI PHỤC DEPTHMAP TỪ BẢN IN 2D MỘC BẢN Chương 2 của luận văn sẽ đề xuất về phương án xử lý dữ liệu cũng như xây dựng được tập dữ liệu cho mô hình học máy. Trong luận văn này, việc xử lý dữ liệu giới hạn ở mức ký tự. Có nghĩa tác giả sẽ giới hạn việc xây dựng mô hình học máy để có thể khôi phục các ký tự trong mộc bản, ngoài ký tự sẽ không thực hiện cho vào tập dữ liệu và cũng không thực hiện khôi phục chúng.
Hình 2.1 Toàn trình khôi phục Deptmap từ bản in 2D mộc bản.
Hình 2.1 mô tả toàn bộ các quy trình trong bài toán khôi phục depthmap từ bản in 2D mộc bản. Trong quy trình ở trên chúng ta có thể chia ra thành hai pha tách biệt, Pha huấn luyện bao gồm các bước của quy trình xử lý dữ liệu và thực hiện huấn luyện mô hình học máy; Pha khôi phục bao gồm các bước của quy trình sử dụng mô hình đã học được ở Pha huấn luyện để khôi phục lại depthmap từ bản in 2D mộc bản.
Bước 1 của quy trình là việc số hóa 3D tấm mộc bản và số hóa bản in của tấm mộc bản đó. Việc số hóa 3D tấm mộc bản đã được thực hiện bởi nhóm nghiên cứu tại HMI [10,11], còn với bản in việc số hóa đơn giản hơn rất nhiều, nó được số hóa đơn giản bằng cách scan chất lượng cao của bản in để cho ra bước ảnh với
độ phân giải cao để phục vụ cho các tác vụ xử lý ảnh. Đầu vào của quy trình số hóa 3D là tấm mộc bản, đầu ra là mô hình 3D được lưu dưới định dạng stl; đầu vào của quy trình số hóa bản in là bản in của tấm mộc bản, đầu ra là một ảnh định dạng png có độ phân giải cao. Dữ liệu đã được số hóa kể trên được mô tả bởi thành phần “Bộ dữ liệu mộc bản 3D/2D” trong quy trình.
Bước 2, sau khi đã số hóa thành công và có bộ dữ liệu mộc bản 3D/2D là xây dựng bộ dữ liệu huấn luyện từ bộ dữ liệu đó. Tùy thuộc vào từng mô hình học máy sẽ cần điều chỉnh bộ huấn luyện theo cách khác nhau. Đầu ra của bước này là thành phần “Dữ liệu huấn luyên” trong quy trình, nó một bộ dữ liệu hoàn chỉnh được có thể được sử dụng để huấn luyện mô hình.
Bước 3, sau khi đã có bộ dữ liệu là thực hiện huấn luyện mô hình. Đầu ra của bước này là thành phần “Mô hình học máy” trong quy trình. Thành phân này sẽ chứa các tham số sau khi huấn luyện và được sử dụng để sinh các ảnh depthmap từ bản in 2D.
Bước 4, sau khi huấn luyện, đã có mô hình chúng ta có thể khôi phục depth- map của một bản in mới. Đầu vào của quy trình là một bản in mới của một tấm mộc bản, cho đi qua mô hình thành phần “Mô hình học máy” và đồng thời thực hiện “khôi phục bề mặt 3D của mộc bản”; đầu ra của quy trình là một tấm mộc bản depthmap tương ứng của bản in đầu vào.
Bước 5, thực hiện “Xử lý hậu kỳ” tấm depthmap của mộc bản ở bước 4.
Trong Bước 4 chúng ta thu được 1 tấm mộc bản depthmap tuy nhiên sẽ không chứa phần ngoài của mộc bản. Ở bước 5, ta thực hiện thêm khung ngoài cho tấm mộc bản. Đầu ra của bước này sẽ là một tấm depthmap của mộc bản được khôi phục hoàn chỉnh từ bản in 2D.
Phần này đã mô tả tổng quan về các Pha và các bước tổng xử lý. Trong phần tiếp theo chúng ta sẽ mô tả chi tiết vào cách thức thực hiện các Pha, các bước đã được nên trong mục này.
2.1 Quy trình chuẩn bị tập dữ liệu huấn luyện
Trong phần này trình bày chi tiết Pha huấn luyện của quy trình khôi phục depth- map từ bản in 2D mộc bản. Như đã đề cập ở trên, Pha huấn luyện này bao gồm các công việc chuẩn bị dữ liệu, xây dựng bộ dữ liệu huấn luyện và huấn luyện mô hình đáp ứng được yêu cầu của bài toán.
Hình 2.2 Quy trình xử lý dữ liệu huấn luyện mộc bản.
Hình 2.2 mô tả chi tiết quy trình xử lý dữ liệu là đầu vào phục vụ cho việc huấn luyện mô hình học máy. Trong quy trình này chúng ta cũng có thể chia tập dữ liệu huấn luyện thành hai phần: tập A là tập dữ liệu nguồn tức tập dữ liệu chứa các ký tự 2D; tập B là tập dữ liệu đích tức tập dữ liệu chứa các ký tự depthmap.
Mục tiêu của chúng ta là chuẩn bị được tập dữ liệu huấn luyện để huấn luyện ảnh từ tập A sang tập B.
Chuẩn bị dữ liệu cho tập B chúng ta thực hiện theo các bước như sau: đầu tiên, ta xử lý trích xuất ký tự chữ từ mô hình 3D của mộc bản; đầu ra của bước này là các ký tự đã được trích xuất của từng chữ trong mô hình 3D của mộc bản.
Bước tiếp theo, chúng ta thực hiện phép chiếu theo trục z trong hệ tọa độ 3-chiều Oxyz để trích xuất ra depthmap của ký tự (chi tiết tham khảo Mục 2.1.3).
Chuẩn bị dữ liệu cho tập A đơn giản hơn việc xử lý chuẩn bị dữ liệu cho tập B rất nhiều, chúng ta chỉ cần thực hiện theo xử lý trích xuất ký tự chữ từ ảnh 2D. Đầu ra của bước này là các ảnh của từng chữ trong bản in 2D của mộc bản.
Dữ liệu chữ của tập A và tập B cần phải được đặt tên (encode) và so khớp tương ứng một-một giữa chữ trong mô hình 3D và chữ trong ảnh 2D của bản in mộc bản. Mục đích của việc đặt tên so khớp này để chúng ta có thể dễ quản lý; và một điều cực kỳ quan trọng là với mô hình dịch ảnh sang ảnh có ghép cặp chúng ta cần phải ghép cặp đôi một chữ ở tập A với chữ ở tập B, nếu chúng ta không thực hiện đặt tên theo quy tắc và ghép cặp với nhau sẽ rất khó để xử lý ghép cặp
chúng với nhau. Quy tắc mã hóa dựa vào tọa độ chữ trên mộc bản, mã mộc bản (có nhiều mộc bản mỗi mộc bản có mã duy nhất) và mã bản in của mộc bản (một mộc bản sẽ có năm bản in khác nhau theo các tiêu chí khác nhau như độ nghiêng, độ đậm mực). Hình 2.3 một cặp chữ được ghép cặp, trong đó bên trái là bản in 2D của chữ, bên phải tương tứng là thể hiện Deptmap của chính chữ bên trái.
Hình 2.3 Dữ liệu ký tự trong mộc bản ghép cặp.
Như vậy, công việc chính để chuẩn bị tập dữ liệu huấn luyện là trích xuất được các ký tự chữ trong tấm mộc bản. Trong luận văn này, tác giả đã áp dụng hai phương thức để trích xuất được các chữ trong tấm mộc bản đó là áp dụng phương pháp thủ công và phương pháp bán tự động để nhận biết và thực hiện trích xuất vùng có ký tự của mộc bản.
2.1.1 Xử lý dữ liệu thủ công
Bước đầu tiên của bài toán chính là việc xử lý trích xuất ký tự chữ (cho cả mô hình 3D và ảnh 2D của bản in mộc bản). Trong xử lý trích xuất ký tự chữ thủ công, việc xác định các vùng có chữ và cắt thành các chữ của mộc bản hoàn toàn do con người thao tác và thực hiện bởi sử dụng các công cụ xử lý ảnh.
Tiêu chí cho việc trích xuất ký tự chữ thủ công bao gồm: chọn vùng bao nhỏ nhất của chữ; bỏ qua vùng nền của mộc bản; đối với những vùng bị dính chữ, nhập nhằng trong việc xác định thì sử dụng đường trung bình và cảm quan để trích xuất ký tự chữ sao cho hợp lý.
Công cụ sử dụng để trích xuất ký tự như sau: đối với trích xuất ký tự chữ từ mô hình 3D mộc bản, chúng tôi sử dụng Blender; đối với trích xuất ký tự chữ từ bản in, nhóm chúng tôi sử dụng Paint-2D.
Sau khi thực hiện các bước ở trên, ta sẽ thu được tập ánh xạ các chữ depth- map và chữ bản in. Đây chính là dữ liệu thô đầu vào dùng cho mô hình học máy để sinh ảnh depthmap từ ảnh 2D mộc bản. Hình 2.4 bên trái là thể hiện Deptmap, bên phải là bản in của cùng một chữ trích xuất ra từ mộc bản.
Hình 2.4 Depthmap và bản in.
Mộc bản và bản in sẽ bị ngược nhau theo chiều ngang do giấy in được ép lên bề mặt mộc bản, đồng nghĩa chữ trong mô hình 3D và depthmap của mộc bản cũng sẽ bị ngược chiều ngang so với chữ ở bản bản in 2D mộc bản.
Như vậy, sau bước trích xuất ký tự chữ này chúng ta sẽ có được những vùng có chữ từ cả bản in 2D và bản 3D mộc bản. Tuy nhiên phương pháp trích xuất ký tự chữ thủ công có nhiều nhược điểm lớn: mất thời gian và tốn sức người cho công việc trích xuất ký tự chữ; dễ sai lầm khi thao tác và thực hiện mã hóa tên; khó đảm bảo độ chính xác khi thực hiện so khớp chữ của mô hình 3D mộc bản và chữ 2D của bản in mộc bản khi thao tác số lượng lớn. Do vậy tôi đã đề xuất và xây dựng một công cụ xử lý trích xuất ký tự chữ bán tự động nhằm giải quyết phần nào những nhược điểm kể trên.
2.1.2 Xử lý dữ liệu bán tự động
Mục tiêu của việc xây dựng công cụ này là có thể xác định một lưới cắt các vùng trên ảnh của in 2D sao cho có thể phân tách được các vùng có chữ và không có chữ (vùng nền).
Để áp dụng được phương pháp trích xuất ký tự chữ này, chúng ta cần giải thiết rằng tấm mộc bản và bản in là khớp nhau (stl và bản in khớp nhau), bỏ qua các trường hợp xấu như: tấm mộc bản bị cong, vênh; bản in bị xô lệch khi in; bản in bị mất (mờ) các đặc tính cần sử dụng như khung lề của sách; mộc bản quá xấu không theo hàng lối dẫn tới không thể khoanh được vùng để cắt chính xác.
Quy trình xử lý và đầu vào của công cụ trích xuất ký tự chữ bán tự động khác một chút so với quy trình xử lý thủ công. Thay vì cắt từng chữ từ mô hình 3D rồi lấy depthmap như trong mô tả, toàn bộ tấm mộc bản 3D sẽ được lấy depth- map. Đầu vào của công cụ trích xuất ký tự chữ là depthmap và bản in của toàn bộ mộc bản. Hai bản này sẽ được so khớp với nhau theo lề đóng khung của sách. Áp dụng thuật toán trích xuất ký tự chữ cho bản 2D, đầu ra là 1 lưới sử dụng để trích xuất ký tự. Cùng áp dụng lưới trích xuất ở trên cho cả bản in và bản depthmap để sinh ra các vùng cả có chữ và vùng nền.Hình 2.5 minh họa khung lề của sách chính là đường bao ngoài cùng của bản in, bên ngoài của lề khung sẽ không chứa chữ, bên trong của lề khung là nội dung của mộc bản.
Hình 2.5 Lề khung của sách.
Chi tiết của xử lý trích xuất ký tự chữ như sau:
Bước 1, ta thực hiện đảo chiều ảnh 2D theo chiều từ trái qua phải. Do dữ liệu từ depthmap và 2D là ngược nhau, do vậy cần đảo chiều lại để khớp cả hai dữ liệu với nhau.
Bước 2, ta xoay ảnh dựa theo khung lề của sách sao cho khung trên song song chiều ngang bức ảnh. Tức là xoay bức ảnh 1 góc α sao cho khung trên của sách và đường song song của ảnh trùng nhau. Bước xử lý này nhằm đảm bảo có thể sử dụng các ma trận ngang và dọc để cắt các vùng của ảnh. Chi tiết các bước thực hiện như sau: