Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin và học sâu (Deep Learning) phát triển nhanh chóng cùng sự gia tăng mạnh mẽ của năng lực tính toán phần cứng, các mô hình sinh dữ liệu (Generative Models) ngày càng được quan tâm và ứng dụng rộng rãi. Tuy nhiên, việc thiết kế và huấn luyện các mô hình tạo sinh từ đầu đòi hỏi khối lượng tài nguyên tính toán rất lớn cùng thời gian thực thi kéo dài. Nhằm khắc phục rào cản này, hướng tiếp cận tận dụng các mô hình học sâu đã được huấn luyện sẵn (pre-trained models) kết hợp với kỹ thuật học chuyển đổi (Transfer Learning) đang trở thành giải pháp tối ưu hóa tài nguyên hiệu quả trong nghiên cứu thị giác máy tính.
Song song với yếu tố kỹ thuật, nhu cầu xử lý và sáng tạo nghệ thuật hình ảnh của người dùng trong đời sống thực tiễn không ngừng gia tăng. Người dùng thường xuyên có nhu cầu tùy biến, tinh chỉnh các thông số hình ảnh như độ sáng, hệ màu, độ tương phản, độ mờ đục hoặc chuyển đổi phong cách hình ảnh theo sở thích cá nhân. Xuất phát từ hai yếu tố thực tiễn và công nghệ nêu trên, đề tài đồ án chuyên ngành ngành Công nghệ Thông tin, chuyên ngành Công nghệ Phần mềm tại Trường Đại học Công nghệ TP. HCM (HUTECH) năm 2022 đã được thực hiện với tên gọi: "Ứng dụng học chuyển đổi cho mạng đối sinh" (thực hiện bởi sinh viên Đoàn Nguyễn Chí Thiện, dưới sự hướng dẫn của ThS. Dương Thành Phết).
Mục tiêu và nhiệm vụ nghiên cứu của đồ án được xác định rõ ràng qua các công đoạn:
- Nghiên cứu cơ sở lý thuyết về mạng nơ-ron tích chập (CNN), mạng đối nghịch tạo sinh (GAN), mô hình chuyển đổi ảnh không theo cặp (CycleGAN) và kỹ thuật học chuyển đổi (Transfer Learning / Fine-tuning).
- Tìm kiếm, thu thập, lọc và thực hiện tiền xử lý – hậu xử lý dữ liệu hình ảnh.
- Thiết kế kiến trúc mô hình tạo sinh dựa trên mạng U-Net, tích hợp các mô hình tích chập huấn luyện sẵn gồm VGG19, ResNet-50 và DenseNet121 vào nhánh trích xuất đặc trưng (Contracting path).
- Huấn luyện, đánh giá mô hình trên nền tảng điện toán đám mây.
- Xây dựng phần mềm demo hoàn chỉnh với giao diện người dùng để thực thi tác vụ chuyển đổi ảnh thực tế.
Đối tượng nghiên cứu của đề tài là các kiến trúc mạng nơ-ron học sâu phục vụ tác vụ sinh và chuyển đổi ảnh (Image-to-Image Translation), trọng tâm là mô hình CycleGAN kết hợp Transfer Learning. Phạm vi thực nghiệm tập trung vào xử lý ảnh màu kích thước 256x256 pixel và xây dựng ứng dụng máy tính trên ngôn ngữ Python.
Cơ sở lý thuyết và phương pháp
Đồ án xây dựng trên nền tảng lý thuyết toàn diện của học sâu và thị giác máy tính, bao gồm các khái niệm, kiến trúc mạng và kỹ thuật tối ưu hóa sau:
Khung lý thuyết và mô hình nền tảng
- Mạng nơ-ron tích chập (Convolutional Neural Network - CNN): Mô hình tận dụng ba đặc trưng cốt lõi gồm trường tiếp nhận cục bộ (local receptive field), trọng số chia sẻ (shared weights) và lớp tổng hợp (pooling), giúp mạng đạt được tính bất biến với các phép biến đổi hình học (dịch chuyển, xoay, co giãn) và tính kết hợp phân tầng đặc trưng từ mức thấp (đường nét, biên) đến mức cao (hình thái phức tạp).
- Các kỹ thuật chuẩn hóa (Normalization): Đồ án phân tích chuyên sâu các phương pháp chuẩn hóa nhằm giảm hiện tượng trôi dạt hiệp biến nội bộ (Internal Covariate Shift - ICS), làm mịn bề mặt hàm mất mát và ổn định gradient:
- Batch Normalization: Chuẩn hóa trung bình và phương sai trên từng mini-batch.
- Weight Normalization: Tách độ dài của vector trọng số ra khỏi hướng nhằm tăng tốc hội tụ cho thuật toán tối ưu.
- Layer Normalization: Chuẩn hóa trên toàn bộ các nơ-ron trong cùng một lớp ẩn độc lập với kích thước lô.
- Instance Normalization: Chuẩn hóa trên từng kênh đặc trưng của từng mẫu ảnh riêng biệt, đặc biệt hiệu quả trong các bài toán chuyển đổi phong cách hình ảnh.
- Group Normalization: Chia các kênh thành nhiều nhóm để tính toán trung bình và phương sai, độc lập với kích thước lô huấn luyện.
- Hàm kích hoạt (Activation Function): So sánh giữa Sigmoid, Tanh, ReLU (khắc phục bão hòa gradient, tăng tốc hội tụ gấp 6 lần so với Tanh) và Leaky ReLU (loại bỏ hiện tượng "Dying ReLU" bằng cách duy trì độ dốc nhỏ $\alpha$ cho miền giá trị âm).
- Mạng nơ-ron đối nghịch (Generative Adversarial Network - GAN): Vận hành dựa trên trò chơi hai người giữa Mạng sinh (Generator - $G$) cố gắng tạo ra dữ liệu giả giống thật và Mạng phân biệt (Discriminator - $D$) cố gắng phân loại dữ liệu thật/giả. Quá trình tối ưu đạt trạng thái cân bằng Nash thông qua hàm mục tiêu Minimax Loss.
- Mô hình CycleGAN: Giải quyết bài toán chuyển đổi ảnh sang ảnh không theo cặp (unpaired image-to-image translation) giữa hai miền $X$ và $Y$. Mô hình gồm 2 mạng Generator ($G: X \to Y$, $F: Y \to X$) và 2 mạng Discriminator ($D_Y$, $D_X$). Hàm mục tiêu tổng thể kết hợp Adversarial Loss và Cycle Consistency Loss ($L_{cycle}$) với hệ số siêu tham số $\lambda = 10$:
$$L = L_{adv}(G, D_Y, X, Y) + L_{adv}(F, D_X, Y, X) + \lambda L_{cycle}(G, F)$$
- Học chuyển đổi và tinh chỉnh (Transfer Learning & Fine-tuning): Áp dụng tri thức từ miền nguồn ($D_S$) và tác vụ nguồn ($T_S$) sang miền đích ($D_T$) và tác vụ đích ($T_T$). Tác giả phân tích 4 chiến lược tinh chỉnh tùy thuộc vào quy mô dữ liệu và mức độ tương đồng giữa tập dữ liệu nguồn và đích.
Phương pháp nghiên cứu thực tế
Tác giả sử dụng phương pháp nghiên cứu thực nghiệm kỹ thuật phần mềm kết hợp học máy, bao gồm:
- Phân tích cấu trúc các mạng tích chập tiền huấn luyện trên tập dữ liệu ImageNet (hơn 14 triệu ảnh thuộc 20.000 phân lớp) gồm VGG19 (16 khối tích chập), ResNet-50 (50 khối tích chập, sử dụng kết nối tắt - skip connection, khoảng 26 triệu tham số) và DenseNet121 (121 khối tích chập kết nối dày đặc qua concatenation).
- Tái cấu trúc kiến trúc U-Net: Thay thế nhánh thu hẹp bằng các phần trích xuất đặc trưng của pre-trained model và đóng băng (freeze) các tầng sâu phù hợp để bảo toàn đặc trưng tổng quát.
- Phát triển phần mềm ứng dụng hoàn chỉnh bằng ngôn ngữ lập trình Python và thư viện giao diện PyQt.
Thiết kế và triển khai
Kiến trúc mạng Generator tùy biến
Tác giả thiết kế mạng Generator dựa trên biến thể của kiến trúc U-Net gồm hai nhánh chính:
| Thành phần kiến trúc |
Quy cách thiết kế và cơ chế triển khai |
| Đầu vào (Input) |
Ảnh màu không gian RGB kích thước chuẩn $256 \times 256 \times 3$. |
| Nhánh co rút (Contracting Path) |
Sử dụng các mạng nơ-ron huấn luyện sẵn làm bộ trích xuất đặc trưng, chia thành 5 mức kích thước đầu ra ($128\times 128$, $64\times 64$, $32\times 32$, $16\times 16$, $8\times 8$). |
| Nhánh mở rộng (Expansive Path) |
Gồm chuỗi các khối tích chập chuyển vị (deconvolution) kết hợp kỹ thuật Up-sampling (nearest neighbor) để phóng to ảnh qua từng mức kích thước. |
| Kết nối tắt (Skip Connections) |
Nối trực tiếp các bản đồ đặc trưng có kích thước tương ứng từ nhánh Contracting sang nhánh Expansive nhằm bảo toàn thông tin không gian cục bộ. |
| Đầu ra (Output) |
Khối deconvolution cuối cùng sử dụng 3 bộ lọc để tái tạo ảnh kích thước chuẩn $256 \times 256 \times 3$. |
Chiến lược đóng băng trọng số cho các mô hình tiền huấn luyện được tác giả thiết lập cụ thể:
- Mô hình Đồ án cơ sở (U-Net gốc): Loại bỏ nhánh Expansive cũ, giữ lại Contracting path với 5 đầu ra kích thước tương ứng.
- Mô hình VGG19: Loại bỏ các lớp kết nối đầy đủ (Fully Connected layers), thiết lập 5 đầu ra đặc trưng ($128\times 128\times 64$, $64\times 64\times 128$, $32\times 32\times 256$, $16\times 16\times 512$, $8\times 8\times 512$) và đóng băng trọng số các khối tích chập từ khối 1 đến khối 10.
- Mô hình ResNet-50: Loại bỏ các lớp Fully Connected, trích xuất 5 đầu ra tương đương và đóng băng các khối tích chập từ khối 38 đến khối 50.
- Mô hình DenseNet121: Loại bỏ Fully Connected, trích xuất 5 đầu ra và đóng băng các khối tích chập từ khối 70 đến khối 121.
Kiến trúc mạng Discriminator
Mạng Discriminator sử dụng kiến trúc PatchGAN (kế thừa từ mô hình pix2pix) gồm 10 khối tích chập. Thay vì đưa ra một giá trị vô hướng đơn lẻ cho toàn bộ bức ảnh, PatchGAN chia ảnh đầu vào thành lưới $N \times N$ và dự đoán ma trận kích thước $N \times N \times 1$, đánh giá xác suất thật/giả trên từng vùng cục bộ của bức ảnh.
Hệ thống công nghệ và môi trường thực nghiệm
- Ngôn ngữ lập trình: Python (ngôn ngữ bậc cao, cú pháp linh hoạt, hỗ trợ mạnh mẽ các thư viện khoa học dữ liệu).
- Thư viện học sâu: TensorFlow (tận dụng kiến trúc đồ thị luồng dữ liệu - Dataflow Graph, cấu trúc Tensor đa chiều, cơ chế Eager Execution và công cụ giám sát trực quan TensorBoard).
- Thư viện xử lý ảnh: OpenCV (Open Source Computer Vision Library với hơn 2.500 thuật toán tối ưu hóa cho xử lý thị giác thời gian thực).
- Thư viện giao diện: PyQt / Qt framework (xây dựng giao diện đồ họa người dùng đa nền tảng).
- Môi trường phần cứng: Google Colaboratory (Google Colab) hỗ trợ tăng tốc phần cứng thông qua các dòng GPU Nvidia K80, T4, P4 hoặc P100 với thời gian phiên làm việc tối đa 12 giờ.
Nội dung chính theo từng chương
Chương 1: TỔNG QUAN
Chương mở đầu trình bày bối cảnh ra đời của đề tài, lý do lựa chọn nghiên cứu học chuyển đổi kết hợp mạng đối sinh nhằm tiết kiệm tài nguyên tính toán và đáp ứng nhu cầu chỉnh sửa nghệ thuật hình ảnh trong thực tế. Tác giả cũng khái quát cấu trúc toàn bộ báo cáo gồm 4 chương chính.
Chương 2: CƠ SỞ LÝ THUYẾT – CÔNG NGHỆ SỬ DỤNG
Chương 2 cung cấp nền tảng học thuật chi tiết:
- Giới thiệu tổng quan về Deep Learning, cơ chế hoạt động trích xuất đặc trưng qua các lớp ẩn và các ứng dụng tiêu biểu trong hệ thống gợi ý (Facebook, Tiki, Lazada), nhận diện khuôn mặt (AlchemyVision) và chẩn đoán y khoa (hệ thống IBM Watson phát hiện bệnh bạch cầu hiếm gặp qua phân tích 20 triệu hồ sơ bệnh án).
- Trình bày chi tiết kiến trúc mạng tích chập (CNN), cơ chế cửa sổ trượt, kỹ thuật đệm (padding), bước trượt (stride), các hàm kích hoạt (Sigmoid, Tanh, ReLU, Leaky ReLU) và 5 phương pháp chuẩn hóa dữ liệu (Batch, Weight, Layer, Instance, Group Normalization).
- Phân tích cấu trúc các pre-trained models: VGG19, ResNet-50 (áp dụng skip connection, khối Conv block và Identity block), DenseNet121 (kỹ thuật ghép kênh đặc trưng và tầng chuyển tiếp translation layer).
- Lý thuyết mạng GAN, hàm mất mát Minimax, mô hình CycleGAN xử lý dữ liệu không theo cặp và lý thuyết học chuyển đổi (Transfer Learning, Fine-tuning).
- Giới thiệu hệ sinh thái công nghệ gồm Python, TensorFlow, OpenCV, Qt/PyQt và hạ tầng Google Colab.
Chương 3: THỰC NGHIỆM VÀ KẾT QUẢ
Chương 3 đi sâu vào quá trình triển khai kỹ thuật:
- Thiết lập chi tiết kiến trúc mạng Generator dựa trên khung U-Net, tích hợp và tinh chỉnh các mô hình VGG19, ResNet-50, DenseNet121 tại nhánh co rút (Contracting path) cùng chiến lược đóng băng tầng tương ứng.
- Cấu hình nhánh mở rộng (Expansive path) và mạng Discriminator dạng PatchGAN.
- Đặc tả các chức năng phần mềm ứng dụng đã hoàn thiện: màn hình chính, chức năng chọn ảnh từ thiết bị, chức năng chuyển đổi ảnh, chức năng xóa ảnh, chức năng xem chi tiết một ảnh bất kỳ và chức năng lưu ảnh sau khi xử lý về bộ nhớ thiết bị.
Chương 4: KẾT LUẬN VÀ KIẾN NGHỊ
Tổng kết các ưu điểm và hạn chế trong quá trình xây dựng mô hình, đồng thời đề xuất các hướng phát triển nâng cao cho đề tài trong tương lai.
Kết quả và đóng góp
- Về mặt mô hình hóa: Đồ án đã thiết kế thành công kiến trúc mạng chuyển đổi hình ảnh kết hợp giữa CycleGAN và kỹ thuật Transfer Learning. Việc tích hợp các bộ trích xuất đặc trưng huấn luyện sẵn (VGG19, ResNet-50, DenseNet121) vào mạng U-Net đã giúp giảm tải thời gian huấn luyện từ đầu và tận dụng tối đa tri thức hình ảnh từ tập dữ liệu ImageNet.
- Về mặt ứng dụng thực tiễn: Tác giả đã hoàn thiện một phần mềm ứng dụng desktop bằng Python và PyQt với đầy đủ 6 khối chức năng phục vụ người dùng cuối:
- Giao diện màn hình chính trực quan.
- Tải ảnh đầu vào từ bộ nhớ máy tính.
- Thực thi chuyển đổi phong cách hình ảnh bằng mô hình học sâu.
- Xóa ảnh khỏi danh sách xử lý.
- Xem chi tiết phóng to từng hình ảnh.
- Xuất và lưu trữ hình ảnh sau chuyển đổi về thiết bị.
- Đóng góp học thuật: Hệ thống hóa chi tiết các phương pháp chuẩn hóa trong mạng sâu (Batch, Weight, Layer, Instance, Group Normalization) và xác định rõ chiến lược phân bổ tầng đóng băng/huấn luyện khi fine-tuning trên các kiến trúc CNN phức tạp.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Tài nguyên tính toán thực nghiệm còn phụ thuộc vào nền tảng đám mây miễn phí (Google Colab giới hạn 12 giờ hoạt động liên tục và cấp phát GPU ngẫu nhiên).
- Mô hình đối sinh tiềm ẩn nguy cơ mất cân bằng giữa Generator và Discriminator hoặc gặp hiện tượng sụp đổ mô hình (model collapse) nếu quá trình tinh chỉnh siêu tham số không đạt trạng thái cân bằng Nash tối ưu.
- Hướng nghiên cứu tiếp:
- Tiếp tục tối ưu hóa trọng số mô hình để tăng tốc độ suy diễn (inference time).
- Thử nghiệm thêm các kiến trúc mạng mới và mở rộng tập dữ liệu chuyển đổi sang nhiều phong cách nghệ thuật đa dạng hơn.
Giá trị tham khảo
Báo cáo đồ án là tài liệu tham khảo thiết thực cho:
- Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm hoặc Khoa học dữ liệu đang làm đồ án cơ sở, đồ án chuyên ngành hoặc khóa luận tốt nghiệp liên quan đến Thị giác máy tính (Computer Vision) và Generative AI.
- Người nghiên cứu muốn tìm hiểu cách cấu hình chi tiết mạng U-Net kết hợp backbone huấn luyện sẵn (VGG19, ResNet-50, DenseNet121) trong bài toán Image-to-Image Translation.
- Lập trình viên muốn tham khảo quy trình đóng gói mô hình học sâu (TensorFlow/OpenCV) thành một ứng dụng desktop hoàn chỉnh sử dụng PyQt.
Câu hỏi thường gặp
1. Đồ án sử dụng những mô hình tiền huấn luyện nào để tích hợp vào mạng Generator?
Tác giả sử dụng 4 nguồn mô hình cho nhánh Contracting path của mạng Generator: mô hình U-Net từ Đồ án cơ sở, VGG19, ResNet-50 và DenseNet121 (đều được huấn luyện sẵn trên tập dữ liệu ImageNet).
2. Chiến lược đóng băng trọng số (freeze layers) cho mô hình VGG19 và ResNet-50 được thiết lập như thế nào?
Đối với VGG19, tác giả loại bỏ các tầng Fully Connected, thiết lập 5 cổng ra đặc trưng và đóng băng các khối tích chập từ khối 1 đến khối 10. Đối với ResNet-50, tác giả loại bỏ Fully Connected và đóng băng các khối tích chập từ khối 38 đến khối 50.
3. Tại sao mạng CycleGAN lại cần đến Cycle Consistency Loss bên cạnh Adversarial Loss thông thường?
Nếu chỉ dùng Adversarial Loss, Generator có xu hướng tạo ra một ảnh bất kỳ thuộc miền đích để đánh lừa Discriminator mà không giữ lại các đặc trưng cấu trúc của ảnh gốc. Cycle Consistency Loss ($L_{cycle}$) bắt buộc quá trình chuyển đổi qua lại ($x \to G(x) \to F(G(x)) \approx x$) phải khôi phục lại ảnh ban đầu, đảm bảo tính nhất quán về mặt nội dung.
4. Ứng dụng phần mềm xây dựng trong đồ án bao gồm các chức năng chính nào?
Phần mềm gồm 6 chức năng: Màn hình chính, Chọn ảnh từ thiết bị, Chuyển đổi ảnh, Xóa ảnh, Xem chi tiết 1 ảnh bất kỳ, và Lưu ảnh sau khi chuyển đổi về thiết bị.
5. Hạ tầng phần cứng và thư viện chính được sử dụng để huấn luyện và phát triển đồ án là gì?
Đồ án được lập trình bằng Python, sử dụng thư viện học sâu TensorFlow, thư viện xử lý ảnh OpenCV, giao diện PyQt, và được huấn luyện trên nền tảng Google Colab (sử dụng các dòng GPU Nvidia K80, T4, P4 hoặc P100).
Kết luận
Đồ án chuyên ngành của tác giả Đoàn Nguyễn Chí Thiện đã nghiên cứu toàn diện việc ứng dụng học chuyển đổi vào mô hình mạng đối nghịch tạo sinh CycleGAN phục vụ tác vụ chuyển đổi hình ảnh. Bằng cách tái cấu trúc mạng U-Net kết hợp với các bộ trích xuất đặc trưng tiền huấn luyện mạnh mẽ như VGG19, ResNet-50 và DenseNet121, đề tài đã đưa ra giải pháp hiệu quả giúp tiết kiệm tài nguyên và nâng cao chất lượng sinh dữ liệu. Đồ án đã hoàn thành trọn vẹn mục tiêu từ cơ sở lý thuyết, thiết kế thực nghiệm cho đến đóng gói sản phẩm phần mềm desktop ứng dụng thực tế.