Tải bản đầy đủ (.pdf) (70 trang)

TÔ MÀU ẢNH ĐEN TRẮNG SỬ DỤNG MẠNG NƠRON TÍCH CHẬP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.27 MB, 70 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
---------------------------------------------------------------

ĐỒ ÁN CHUN NGÀNH
NGÀNH: KHOA HỌC MÁY TÍNH
ĐỀ TÀI: TƠ MÀU ẢNH ĐEN TRẮNG SỬ DỤNG MẠNG
NƠRON TÍCH CHẬP
GVHD: TS. Nguyễn Mạnh Cường
Lớp: IT6052.2 - 20231IT6052002
Nhóm: 24
Thành viên: 1. Phạm Minh Quân - 2021600198
2. Nguyễn Hoàng Giang - 2020600429
3. Trần Minh Tuấn - 2021606916
Hà Nội - 2023


MỤC LỤC
MỤC LỤC............................................................................................................ 1
DANH MỤC HÌNH ẢNH.................................................................................... 3
LỜI CẢM ƠN....................................................................................................... 5
LỜI MỞ ĐẦU.......................................................................................................6
CHƯƠNG 1: BÀI TỐN TƠ MÀU ẢNH ĐEN TRẮNG.................................10
1.1. Giới thiệu chung về bài tốn tơ màu ảnh................................................ 10
1.2. Q trình phát triển của bài tốn.............................................................12
1.3. Những khó khăn của bài toán................................................................. 13
1.4. Mục tiêu của bài toán..............................................................................14
CHƯƠNG 2: CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN.............................16
2.1 Phương hướng tiếp cận bài toán.............................................................. 16
2.2 Một số kỹ thuật giải quyết bài toán......................................................... 16
2.2.1 K láng giềng gần nhất (K-Nearest Neighbor – K-NN)....................18


2.2.2 Máy vectơ hỗ trợ (Support Vector Machine - SVM).......................21
2.2.3 Bộ tự mã hóa (Autoencoder)........................................................... 26
2.2.4 Mạng đối nghịch tạo sinh (generative adversarial network - GANs)..
31
2.2.5 Mạng nơ ron tích chập (Convolutional neural network - CNN)...........35
2.3 Các nghiên cứu giải quyết bài toán tiêu biểu...........................................42
2.4 Đề xuất giải pháp chi bài tốn................................................................. 43
2.4.1 Mơ hình kết hợp VGG16.................................................................45
2.4.2 Mơ hình kết hợp ResNet18..............................................................46
2.4.3 Mơ hình kết hợp ResNet152............................................................47
CHƯƠNG 3: THỰC NGHIỆM.......................................................................... 49
1


3.1 Các thư viện dùng trong bài tốn tơ màu ảnh.......................................... 49
3.1.1 Thư viện OpenCV........................................................................... 49
3.1.2 Thư viện Numpy..............................................................................50
3.1.3 Thư viện Tensorflow........................................................................52
3.1.4 Thư viện Keras................................................................................ 53
3.1.5 Một số thư viện khác....................................................................... 54
3.2 Bộ dữ liệu thực nghiệm........................................................................... 55
3.3 Tiền xử lý dữ liệu.....................................................................................56
3.4 Huấn luyện mơ hình.................................................................................57
3.5 Kết quả huấn luyện.................................................................................. 59
3.6 Kết quả thực nghiệm................................................................................61
3.7 Demo chương trình.................................................................................. 64
3.7.1 Giới thiệu về framework sử dụng.................................................... 64
3.7.2 Biểu đồ Usecase...............................................................................65
3.7.3 Giao diện trang web.........................................................................66
KẾT LUẬN.........................................................................................................68

TÀI LIỆU THAM KHẢO.................................................................................. 69

2


DANH MỤC HÌNH ẢNH
Hình 1.1 Ảnh đen trắng sau khi tơ màu.............................................................. 14
Hình 2.1 Siêu phẳng h phân chia dữ liệu huấn luyện thành 2 lớp + và - với
khoảng cách biên lớn nhất. Các điểm gần h nhất là các vector hỗ trợ(Support
Vector - được khoanh trịn)................................................................................. 22
Hình 2.2 Mơ hình cơ bản của autoencoder......................................................... 27
Hình 2.3 Cách hoạt động của autoencoder......................................................... 30
Hình 2.4 Kiến trúc cơ bản của mạng GANS.......................................................33
Hình 2.5 Kiến trúc cơ bản của mạng nơ ron tích chập....................................... 35
Hình 2.6 Kiến trúc mạng AlexNet...................................................................... 36
Hình 2.7 Kiến trúc mạng VGG........................................................................... 38
Hình 2.8 Minh họa kiến trúc mạng ResNet........................................................ 39
Hình 2.9 Mơ hình mạng CNN trong bài tốn tơ màu ảnh...................................44
Hình 2.10 Mơ hình kết hợp VGG16................................................................... 45
Hình 2.11 Cấu trúc các basic residual block trong mơ hình ResNet18.............. 46
Hình 2.12 Mơ hình kết hợp ResNet18................................................................ 47
Hình 2.13 Mơ hình kết hợp ResNet152.............................................................. 48
Hình 3.1 Các ảnh màu trong bộ dữ liệu.............................................................. 55
Hình 3.2 Các ảnh đen trắng tương ứng trong bộ dữ liệu.................................... 56
Hình 3.3 Dữ liệu đầu vào sau khi được tiền xử lý.............................................. 57
Hình 3.4 Q trình huấn luyện mơ hình CNN trên các tập dữ liệu.................... 59
Hình 3.5 Biểu đồ hiển thị độ mất mát trong quá trình đào tạo........................... 60
Hình 3.5 Biểu đồ hiển thị độ chính xác trong q trình đào tạo......................... 61
Hình 3.6 Hình ảnh sau khi được tơ màu............................................................. 62
Hình 3.7 Hình ảnh sau khi được tơ màu............................................................. 64

3


Hình 3.8 Biểu đồ usecase....................................................................................65
Hình 3.9 Giao diện web khi mới truy cập...........................................................66
Hình 3.10 Giao diện web sau khi tơ màu ảnh..................................................... 67

4


LỜI CẢM ƠN
Để bài tập lớn kết thúc môn học được thực hiện thành công, chúng em
xin cảm ơn giảng viên hướng dẫn, Tiến Sĩ Nguyễn Mạnh Cường đã hướng dẫn
tận tình, chia sẻ những kiến thức, tài liệu và kinh nghiệm quý báu trong suốt quá
trình thực hiện đề tài để chúng em có thể hồn thành bài tập lớn một cách tốt
nhất. Đồng cảm ơn Khoa Công nghệ thông tin Trường Đại học Công Nghiệp Hà
Nội đã tạo điều kiện thuận lợi trong học tập và nghiên cứu.
Sau khi nghiên cứu đề tài và kết thúc môn học, chúng em đã học hỏi và
tích lũy được rất nhiều kiến thức và kinh nghiệm để hoàn thiện và phát triển bản
thân. Bên cạnh đó, đây cũng là cơ hội để chúng em trau dồi thêm các kỹ năng
cần thiết chuẩn bị cho quá trình học tập và làm việc sau này.
Trong quá trình làm đồ án, cũng như là trong q trình làm bài báo cáo,
khó tránh khỏi sai sót. Chúng em rất mong nhận được những ý kiến đóng góp từ
thầy và các giảng viên cũng như những người quan tâm đến đề tài này để đề tài
được hồn thiện tốt hơn.
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện
Phạm Minh Quân
Nguyễn Hoàng Giang
Trần Minh Tuấn


5


LỜI MỞ ĐẦU
Trí tuệ Nhân tạo (AI) là một lĩnh vực nghiên cứu và phát triển các hệ
thống máy tính có khả năng thực hiện các tác vụ địi hỏi sự hiểu biết, quyết định
và học hỏi tương tự như con người. AI liên quan đến việc phân tích và mơ
phỏng các khả năng trí tuệ, như nhận diện hình ảnh, ngôn ngữ tự nhiên và quyết
định dựa trên dữ liệu.
Trong lĩnh vực này, Deep Learning đóng vai trị quan trọng. Đây là một
thuật toán dựa trên nhiều nguyên tắc được lấy cảm hứng từ cách hoạt động của
não bộ, cho phép tiếp thu thông tin từ nhiều tầng biểu đạt khác nhau, từ cụ thể
đến trừu tượng, từ đó giúp làm rõ nghĩa của các loại dữ liệu. Điều này cho phép
Deep Learning đi sâu vào các khái niệm phức tạp và tạo ra các mơ hình mạng
nơ-ron sâu có khả năng học và nhận diện các đặc trưng phức tạp của dữ liệu.
Hiện nay rất nhiều các bài toán nhận dạng sử dụng deep learning để giải quyết
do deep learning có thể giải quyết các bài tốn với số lượng lớn, kích thước đầu
vào lớn với hiệu năng cùng như độ chính xác vượt trội so với các phương pháp
phân lớp truyền thống.
Sau nhiều thập kỷ chấp hành chính sách đổi mới, Việt Nam đã ghi nhận
sự phát triển mạnh mẽ, trở thành một nền kinh tế hội nhập, năng động và hấp
dẫn đầu tư trong khu vực. Sự tăng trưởng của đất nước này nằm trong hàng ngũ
hàng đầu trên thế giới, điều này càng thêm phần thúc đẩy sự phát triển và tích
hợp quốc tế. Đồng thời, trong bối cảnh cuộc cách mạng công nghiệp 4.0 đang
diễn ra mạnh mẽ, Việt Nam đã xác định rõ mục tiêu tập trung vào việc phát triển
cơng nghệ trí tuệ nhân tạo (AI), được dự báo là một trong những ngành công
nghệ đột phá nhất trong thập kỷ tới.
Tại Việt Nam, ứng dụng của cơng nghệ trí tuệ nhân tạo (AI) đã và đang
lan rộ mạnh mẽ vào nhiều lĩnh vực như y tế, giáo dục, nông nghiệp, giao thông,

thương mại điện tử... Điều này không chỉ đem lại lợi ích to lớn cho nền kinh tế
6


và xã hội, mà cịn góp phần làm nên sự tiến bộ của Việt Nam trong thời gian
gần đây. Đặc biệt, Convolutional Neural Network (CNNs – Mạng nơ-ron tích
chập) là một trong những mơ hình Deep Learning tiên tiến giúp cho chúng ta
xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay.
Chúng em đã quyết định chọn đề tài "Tô màu ảnh đen trắng bằng mạng CNN"
với hy vọng tận dụng sức mạnh của công nghệ này để mang lại trải nghiệm tốt
hơn và đồng thời cung cấp một cơng cụ hữu ích cho việc khôi phục màu sắc cho
các ảnh cổ điển và ảnh cũ. Bài báo cáo này sẽ đi vào nghiên cứu về mạng neural
cũng như mạng Convolution(tích chập), cũng như ý tưởng của mơ hình CNNs
trong phân lớp ảnh (Image Classification), và áp dụng trong việc xây dựng hệ
thống tô màu ảnh đen trắng.
Mục tiêu của đồ án này không chỉ đơn thuần là tạo ra một ứng dụng tô
màu ảnh, mà còn là nghiên cứu sâu về ứng dụng của mạng CNN trong việc xử
lý ảnh đen trắng. với mong muốn phát triển một hệ thống tự động, đáng tin cậy
và dễ sử dụng, giúp người dùng khôi phục màu sắc của các bức ảnh cổ điển một
cách hiệu quả và chân thực. Ngoài ra, bài báo cáo cũng đặt ra mục tiêu tối ưu
hóa hiệu suất của mơ hình để đảm bảo kết quả tơ màu đạt được độ chính xác và
thẩm mỹ cao nhất.
Đối tượng chính của nghiên cứu này là các bức ảnh đen trắng chưa được
tô màu, bao gồm cả ảnh cổ điển và ảnh cũ. Điều quan trọng là phạm vi nghiên
cứu của bài báo cáo sẽ tập trung vào việc áp dụng kỹ thuật mạng nơ-ron tích
chập (CNN) để tơ màu tự động cho các loại ảnh này. Đồng thời cũng sẽ tối ưu
hóa và cải thiện hiệu suất của mơ hình thơng qua các kỹ thuật tiên tiến để đảm
bảo kết quả tơ màu đạt được độ chính xác và thẩm mỹ cao nhất.
Để đạt được mục tiêu đã đề ra, chúng em sẽ tiến hành các bước nghiên
cứu sau cùng với việc áp dụng các kỹ thuật tiên tiến. Bước đầu tiên là thu thập

và tiền xử lý dữ liệu. Một tập dữ liệu đa dạng các ảnh đen trắng sẽ được thu thập
7


và tiến hành các bước tiền xử lý nhằm chuẩn bị dữ liệu đầu vào cho mơ hình
CNN. Bước tiếp theo là thiết kế và huấn luyện mơ hình CNN: tạo ra một kiến
trúc mơ hình CNN phù hợp, sau đó sử dụng dữ liệu đã tiền xử lý để huấn luyện
mơ hình. Q trình này sẽ u cầu kiểm sốt và tối ưu hóa các tham số của mơ
hình. Cuối cùng là đánh giá và tối ưu hóa mơ hình, mơ hình sẽ đánh giá hiệu
suất thơng qua các tiêu chí thẩm mỹ và chất lượng hình ảnh, từ đó tiến hành các
bước tối ưu hóa để cải thiện kết quả tô màu.
Nội dung quyển báo cáo sẽ bao gồm các chương như sau:
Chương 1: Bài tốn tơ màu ảnh đen trắng
Trong chương 1, nhóm sẽ giới thiệu tổng quan về bài tốn tơ màu ảnh đen
trắng, bao gồm lý do vì sao bài tốn này quan trọng và ứng dụng của nó trong
lĩnh vực xử lý hình ảnh. Nó cũng bao gồm một phần lịch sử ngắn về cách tiếp
cận vấn đề này, những thách thức chính và cơ sở lý thuyết về việc chuyển đổi
ảnh đen trắng thành ảnh màu.
Chương 2: Các kỹ thuật giải quyết bài tốn
Tại chương 2 này sẽ tập trung vào việc trình bày và phân tích các kỹ thuật
khác nhau được sử dụng để giải quyết bài tốn tơ màu ảnh đen trắng. Bao gồm
một số phương pháp cơ bản như phân đoạn theo ngưỡng, phân cụm, kết hợp
mạng Neural Networks và các phương pháp học sâu như GANs, CNN và
autoencoders. Mỗi kỹ thuật sẽ được mô tả chi tiết cùng với ưu và nhược điểm.
Chương 3: Thực nghiệm
Chương này trình bày về quá trình thực hiện các thử nghiệm để đánh giá
và so sánh hiệu suất của các phương pháp đã được đề xuất trong Chương 2. Nó
bao gồm mơ tả về các tập dữ liệu sử dụng, phương pháp đánh giá hiệu suất, các
kết quả thực nghiệm và phân tích so sánh giữa các kỹ thuật, đồng thời tập trung


8


vào việc trình bày quá trình xây dựng và triển khai một sản phẩm demo thực tế,
có khả năng tơ màu ảnh đen trắng dựa trên kỹ thuật tốt nhất được chọn sau quá
trình thử nghiệm
Phần kết luận
Tổng kết lại những gì đã đạt được trong bài báo cáo, rút ra bài học kinh
nghiệm và kiến thực đã tiếp thu được trong quá trình nghiên cứu thực hiện đề
tài.

9


CHƯƠNG 1: BÀI TỐN TƠ MÀU ẢNH ĐEN TRẮNG
1.1. Giới thiệu chung về bài tốn tơ màu ảnh
Tơ màu cho ảnh đen trắng có ý nghĩa quan trọng trong việc phục hồi màu
sắc cho các phim, ảnh xưa, giúp tăng cường chất lượng hình ảnh, cũng như tăng
độ sinh động. Tơ màu là một bài tốn khơng mới với những nhà mỹ thuật,
nhưng lại là một bài toán mới trong lĩnh vực khoa học kĩ thuật. Một phương
pháp tô màu được xem như một người thợ sơn, giúp bức ảnh xám có màu sắc
phù hợp và tự nhiên.
Trước đây, việc tơ màu cho một vùng R nào đó trong một ảnh xám
thường được thực hiện bằng cách tìm trong cơ sở dữ liệu vùng S tương tự với R;
màu sắc của vùng S này sẽ được dùng để tô cho vùng R trong ảnh xám. Phương
pháp này khá rõ ràng, tuy nhiên chất lượng thường không như mong đợi bởi hai
yếu tố. Thứ nhất, cần phải có một phương pháp phân vùng hiệu quả, tuy nhiên
đây lại là vấn đề chưa được giải quyết tốt. Thứ hai, việc chọn ra miền tương tự
với miền đã cho cũng không phải dễ dàng, bởi rất khó để định lượng sự tương
tự hay tương đồng, đồng thời có thể có nhiều màu phù hợp với một vùng cho

trước.
Gần đây, sau nhiều thành công nổi bật trong các lĩnh vực nhận dạng hình
ảnh, tiếng nói, hay xử lý ngơn ngữ , phương pháp học sâu (Deep Learning) cũng
mang đến cách tiếp cận mới cho bài tốn tơ màu ảnh xám. Cụ thể, sau khi được
huấn luyện, một mơ hình mạng nơ-ron nhiều lớp sẽ sinh ra một ảnh màu từ một
ảnh xám ở đầu vào. Tức là, nếu so sánh với phương pháp cũ trên đây thì tất cả
các bước như phân vùng, chọn màu được thực hiện một cách tự động bởi mạng
nơ-ron.
Nhìn chung, với phương pháp học sâu, mơ hình giải quyết bài tốn tơ
màu cho ảnh xám là một mạng nơ-ron tích chập CNN (Convolutional Neural
10


Network), với các lớp nối tiếp nhau như tích chập, kích hoạt phi tuyến, chuẩn
hóa, kết hợp với việc lấy mẫu xuống (sub-sampling) và lấy mẫu lên
(up-sampling) để đảm bảo ảnh đầu ra cùng kích thước với ảnh đầu vào. Theo
nghiên cứu [1], để tăng chất lượng của việc tô màu, người ta đã kết hợp bài tốn
tơ màu - sử dụng mạng CNN như trên - với bài toán phân loại ảnh, dù mục đích
chính vẫn là tơ màu. Việc phân loại ảnh, được thực hiện đồng thời, sẽ giúp mơ
hình lấy được thơng tin tồn cục về ảnh đầu vào, và từ đó giúp việc tơ màu
chính xác hơn. Ở nghiên cứu [2], việc tô màu được thực hiện trên từng pixel,
thông qua việc xử lý một vùng nhỏ xung quanh pixel đó (patch-based).
Một vấn đề quan trọng trong cách tiếp cận sử dụng phương pháp học sâu
là sự lựa chọn hàm tổn hao. Nghiên cứu [1] sử dụng tiêu chí MSE (mean square
error) kết hợp với hàm tổn hao đối với việc phân loại, ví dụ hàm cross entropy.
Các tác giả ở [3] lại cho rằng, MSE không phản ánh được sự phân bố màu của
pixel, và đề xuất dùng hàm tổn hao như là sự khác biệt về histogram màu. Trong
khi đó, bài báo [2] dùng cả MSE và histogram.
Một biến thể khác của các phương pháp trên đây là kết hợp chúng với
những chỉ dẫn (hint) được cung cấp từ bên ngồi, khi đó ta có mơ hình tương

tác với người dùng. Bài báo ở [4] sử dụng những chỉ dẫn từ người dùng, như
màu sắc và vị trí, để q trình huấn luyện trở nên thuận lợi hơn và màu sắc thu
được tự nhiên hơn.
Các mơ hình học sâu trên đây đều nhận ở đầu vào là một ảnh xám và đưa
ra hai lớp ứng với hai thành phần màu (thường là a và b trong hệ màu Lab); hai
lớp này kết hợp với ảnh xám ban đầu để tạo ra ảnh màu hoàn chỉnh.
Nhìn chung, các mơ hình trên cho kết quả tương đối tốt, nhưng phần lớn
được huấn luyện với một bộ cơ sở dữ liệu, và chưa đánh giá mức độ ảnh hưởng
của đặc trưng của dữ liệu đến kết quả tô màu.

11


1.2. Q trình phát triển của bài tốn
Bài tốn tơ màu ảnh là một trong những thách thức quan trọng và hấp dẫn
trong lĩnh vực xử lý ảnh và trí tuệ nhân tạo. Được tiếp cận và phát triển qua
nhiều giai đoạn, bài toán này đã trở thành một lĩnh vực nghiên cứu độc đáo và
đầy tiềm năng. Hãy cùng điểm qua q trình phát triển của bài tốn tơ màu ảnh
qua các giai đoạn khác nhau.
Trong những năm đầu của nghiên cứu và phát triển, bài tốn tơ màu ảnh
được tiếp cận với các phương pháp thống kê và học máy cơ bản. Các thuật toán
như k-Nearest Neighbors và clustering được áp dụng để tìm cách gán màu cho
các điểm ảnh dựa trên các đặc trưng lân cận. Tuy nhiên, việc tạo ra kết quả tô
màu chân thực và chất lượng cao trong giai đoạn này thường còn hạn chế.
Giai đoạn tiếp theo, từ năm 2010 đến 2015, chứng kiến sự bùng nổ của
deep learning và đặc biệt là Convolutional Neural Networks (CNNs). Các mơ
hình sử dụng CNNs bắt đầu nổi lên và cung cấp các kết quả ấn tượng. Điều này
đồng nghĩa với việc mở ra một cách tiếp cận hiệu quả hơn để học cách tô màu
từ dữ liệu huấn luyện.
Năm 2014, Generative Adversarial Networks (GANs) được giới thiệu,

đánh dấu một bước tiến lớn trong giải quyết bài tốn tơ màu ảnh. GANs cung
cấp một phương pháp tiếp cận mới, trong đó một mơ hình "Người tạo" và một
mơ hình "Người phân biệt" cạnh tranh với nhau để tạo ra các kết quả tô màu
chân thực và sắc nét hơn. Sự cạnh tranh giữa hai mơ hình này đã tạo ra sự tiến
bộ liên tục trong quá trình tơ màu.
Từ năm 2016 đến nay, sự kết hợp của CNNs và GANs, cùng với sự phát
triển của các kiến trúc mạng nâng cao, đã mang lại những kết quả tơ màu đáng
kinh ngạc. Các mơ hình như Pix2Pix và CycleGAN trở thành các công cụ phổ

12


biến để tô màu ảnh. Sự kết hợp của các kỹ thuật này đã cung cấp những kết quả
tô màu có độ phân giải cao và chất lượng ấn tượng.
Tất cả những cơng trình nghiên cứu và phát triển trong lĩnh vực tô màu
ảnh đen trắng đã mang lại những đóng góp vơ cùng quan trọng. Các nhà nghiên
cứu và các nhóm phát triển đã khơng ngừng tìm kiếm cách tiếp cận và kỹ thuật
mới, từ việc áp dụng mô hình học sâu đến việc kết hợp các kiến thức về thống
kê và xử lý ảnh truyền thống. Điều này đã giúp tạo ra những giải pháp tô màu
ảnh ngày càng tiên tiến và sáng tạo hơn, mang lại lợi ích rõ ràng cho nhiều lĩnh
vực ứng dụng khác nhau như nghệ thuật, y học, thiết kế và nhiều lĩnh vực khác.
1.3. Những khó khăn của bài tốn
Bài tốn tơ màu ảnh đen trắng, mặc dù mang lại nhiều tiềm năng, cũng
đối mặt với nhiều thách thức đáng kể. Quá trình biến đổi các hình ảnh từ trắng
đen thành màu đòi hỏi sự đánh giá kỹ lưỡng và nghiên cứu sâu về xử lý ảnh và
trí tuệ nhân tạo. Dưới đây là những điểm quan trọng về các thách thức mà bài
tốn tơ màu ảnh phải đối diện:
Một trong những thách thức lớn là độ phân giải thấp của ảnh đen trắng.
Thường thì, ảnh đen trắng có độ phân giải thấp hơn so với ảnh màu, điều này có
thể dẫn đến việc tơ màu khơng chính xác hoặc mất đi sự chi tiết quan trọng. Sự

hạn chế về độ phân giải địi hỏi mơ hình phải nhạy bén và hiểu biết sâu về các
đặc trưng trong ảnh.
Cùng với đó, thơng tin màu gốc của ảnh thường bị mất đi trong quá trình
chuyển đổi thành ảnh xám. Điều này tạo ra thách thức trong việc khơi phục lại
màu sắc chính xác. Các mơ hình tơ màu cần phải học cách tái tạo màu sắc một
cách chính xác và tự nhiên từ thơng tin hạn chế của ảnh xám.
Cịn về mặt ngữ cảnh và sự liên kết màu, tơ màu địi hỏi sự hiểu biết vượt
trội về màu sắc tự nhiên và ngữ cảnh của ảnh. Sự thay đổi màu sắc của các đối
13


tượng có thể phụ thuộc vào điều kiện ánh sáng và môi trường xung quanh. Đây
là một thách thức lớn đối với mơ hình tơ màu trong việc đưa ra các quyết định
màu hợp lý và hợp thời.
Ngoài ra, việc phục hồi màu từ hình ảnh mất mát hoặc bị hỏng cũng là
một vấn đề đáng kể. Trong nhiều trường hợp, ảnh đen trắng có thể chứa phần
thơng tin bị mất hoặc bị hỏng, việc khôi phục lại màu sắc chính xác từ dữ liệu
đã mất mát trở thành một thách thức lớn đối với các mơ hình tơ màu.
Một thách thức khác đó là thiếu tiêu chuẩn hóa trong dữ liệu huấn luyện.
Dữ liệu khơng chuẩn hóa đúng cách hoặc khơng đủ đại diện có thể dẫn đến các
mơ hình tơ màu khơng thể áp dụng rộng rãi cho các loại ảnh khác nhau.
Cuối cùng, hiệu suất tính tốn cũng là một thách thức. Một số mơ hình tơ
màu u cầu tài ngun tính tốn lớn, đặc biệt đối với các ứng dụng thời gian
thực hoặc trên các thiết bị có tài nguyên hạn chế.
1.4. Mục tiêu của bài tốn

Hình 1.1 Ảnh đen trắng sau khi tơ màu
14



Xem xét các bức ảnh đen trắng trong Hình 1, lần đầu tiên nhìn, việc
tưởng tượng ra màu cho chúng dường như khó khăn, vì một phần lớn thơng tin
(hai trong ba chiều) đã bị mất đi. Tuy nhiên, nếu nhìn kỹ hơn, chúng ta sẽ nhận
thấy rằng trong nhiều trường hợp, ngữ cảnh và cấu trúc bề mặt cung cấp đủ dấu
hiệu cho nhiều khu vực trong mỗi hình ảnh: cỏ thường có màu xanh, bầu trời
thường có màu xanh dương, và con bọ rùa thì chắc chắn là màu đỏ. Tất nhiên,
dựa vào ngữ cảnh như vậy không phải lúc nào cũng chính xác, ví dụ, các quả
cầu trên cỏ có thể khơng phải là màu đỏ, màu vàng và màu tím (mặc dù đây là
một dự đốn khá chính xác). Tuy nhiên, việc phục hồi chính xác màu sắc thực tế
của các bức ảnh là rất khó khăn, nên mục tiêu của chúng em là tạo ra một q
trình tơ màu đáng tin cậy có thể khiến người quan sát tin tưởng. Do đó, nhiệm
vụ của chúng em trở nên dễ thực hiện hơn: mơ hình hóa các phụ thuộc được
thống kê giữa ngữ nghĩa và cấu trúc bề mặt của các hình ảnh đen trắng và phiên
bản màu của chúng để tạo ra kết quả thuyết phục từ mặt hình thị giác.

15


CHƯƠNG 2: CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN
2.1 Phương hướng tiếp cận bài tốn
Việc tơ màu ảnh đen trắng thơng qua deep learning địi hỏi một quy trình
chặt chẽ từ chuẩn bị dữ liệu đến triển khai mơ hình. Đầu tiên, chúng ta cần
chuẩn bị một tập dữ liệu ảnh đen trắng cùng với phiên bản màu tương ứng. Sau
đó, tiến hành tiền xử lý dữ liệu để đảm bảo chúng có kích thước và định dạng
phù hợp cho mơ hình. Tiếp theo, xây dựng một mạng neural phù hợp, có thể là
GAN hoặc CNN, bằng việc lựa chọn kiến trúc mạng và xác định các lớp như
convolutional, normalization và activation layers. Tiến trình huấn luyện mơ hình
sẽ sử dụng tập dữ liệu đã chuẩn bị, sau đó kiểm tra hiệu suất của mơ hình trên
tập kiểm tra để điều chỉnh tham số và kiến trúc mạng khi cần thiết. Cuối cùng,
khi mơ hình đã được huấn luyện, áp dụng nó để dự đốn màu sắc cho các ảnh

đen trắng mới. Đánh giá kết quả và hiển thị hoặc lưu trữ ảnh đã được tô màu. Sử
dụng Python cùng các thư viện như TensorFlow, PyTorch cho việc xây dựng
mạng neural và OpenCV hoặc PIL để xử lý ảnh và hiển thị kết quả.
2.2 Một số kỹ thuật giải quyết bài tốn
Tơ màu ảnh đen trắng có thể được thực hiện thông qua nhiều kỹ thuật
khác nhau, mỗi kỹ thuật sẽ có cách tiếp cận và cơ chế hoạt động khác nhau. Hãy
xem xét mô tả chi tiết cho mỗi kỹ thuật:
1. Phân đoạn theo ngưỡng (Threshold Segmentation):
● Ngưỡng độ sáng (Brightness Thresholding): Kỹ thuật này chia ảnh
thành hai phần vùng dựa trên một ngưỡng cố định của độ sáng.
Mỗi pixel sẽ được gán màu trắng hoặc đen tùy thuộc vào giá trị độ
sáng của nó so với ngưỡng được chọn trước đó.

16


● Ngưỡng độ sáng tối (Otsu's Method): Đây là một phương pháp tự
động chọn ngưỡng tối ưu dựa trên phân phối độ sáng của ảnh. Nó
tìm cách chọn ngưỡng sao cho phương sai giữa hai lớp pixel (đen
và trắng) là nhỏ nhất.
2. Phân cụm (Clustering):
● K-means Clustering: K-means là một phương pháp phân cụm dựa
trên việc gom nhóm các điểm dữ liệu vào k nhóm sao cho mỗi
điểm dữ liệu thuộc về nhóm có trọng tâm gần nhất. Trong tơ màu
ảnh đen trắng, có thể sử dụng K-means để phân nhóm các pixel
dựa trên đặc trưng màu sắc hoặc độ sáng của chúng.
● Mean-Shift Clustering: Phương pháp này di chuyển các điểm dữ
liệu tới vùng có mật độ cao nhất trên khơng gian dữ liệu. Nó có thể
được sử dụng để phân cụm các pixel dựa trên đặc tính khơng gian
màu sắc hoặc độ sáng.

3. Mạng Nơ-ron (Neural Networks):
● Mạng Unet: Unet là một kiến trúc mạng nơ-ron được sử dụng phổ
biến trong xử lý ảnh y khoa và xử lý hình ảnh. Nó kết hợp cả quỹ
đạo lớn và nhỏ trong một mơ hình để dự đốn các pixel màu dựa
trên thông tin từ các vùng lớn và nhỏ trong ảnh gốc.
4. Học sâu (Deep Learning):
● GANs (Generative Adversarial Networks): GANs bao gồm hai
mạng nơ-ron: một mạng tạo sinh dữ liệu mới và một mạng phân
biệt để phân biệt dữ liệu tạo ra từ dữ liệu thực. Trong tô màu ảnh
đen trắng, GANs có thể học cách tạo ra ảnh màu từ ảnh đen trắng
thơng qua q trình huấn luyện.
17


● Mạng CNN (Convolutional Neural Network): Mơ hình CNN sử
dụng các lớp convolutional để trích xuất các đặc trưng ảnh và các
lớp fully connected để tạo ra đầu ra dự đoán. CNN được huấn
luyện để học ánh xạ từ ảnh đen trắng sang ảnh màu. Các thông tin
từ ảnh đen trắng được truyền qua mơ hình để dự đốn giá trị màu
cho từng pixel. Có thể sử dụng các mơ hình CNN đã được huấn
luyện trước trên các tập dữ liệu lớn hoặc kỹ thuật transfer learning
để tái sử dụng kiến thức đã học được.
2.2.1 K láng giềng gần nhất (K-Nearest Neighbor – K-NN)
K-NN là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận
thống kê đã được nghiên cứu trong nhiều năm qua. K-NN được đánh giá là một
trong những phương pháp tốt nhất được sử dụng từ những thời kỳ đầu trong
nghiên cứu về phân loại văn bản.
Ý tưởng của phương pháp này đó là khi cần phân loại một văn bản mới,
thuật toán sẽ xác định khoảng cách (có thể áp dụng các cơng thức về khoảng
cách như Euclide, Cosine, Manhattan, …) của tất cả các văn bản trong tập huấn

luyện đến văn bản này để tìm ra k văn bản gần nhất, gọi là k nearest neighbor –
k láng giềng gần nhất, sau đó dùng các khoảng cách này đánh trọng số cho tất
cả các chủ đề. Khi đó, trọng số của một chủ đề chính là tổng tất cả các khoảng
cách ở trên của các văn bản trong k láng giềng có cùng chủ đề, chủ đề nào
không xuất hiện trong k láng giềng sẽ có trọng số bằng 0. Sau đó các chủ đề sẽ
được sắp xếp theo giá trị trọng số giảm dần và các chủ đề có trọng số cao sẽ
được chọn làm chủ đề của văn bản cần phân loại. Trọng số của chủ đề cj đối với
văn bản x được tính như sau :

18


Trong đó :
● y (𝑑𝑖 , c) thuộc {0,1}, với:
○ y = 0: văn bản di không thuộc về chủ đề 𝑐𝑗
○ y = 1: văn bản di thuộc về chủ đề 𝑐𝑗
● sim (x, d): độ giống nhau giữa văn bản cần phân loại x và
văn bản d. Chúng ta có thể sử dụng độ đo cosine để tính
khoảng cách:

𝑏𝑗 là ngưỡng phân loại của chủ đề cj được tự động học sử dụng một tập
văn bản hợp lệ được chọn ra từ tập huấn luyện.
Để chọn được tham số k tốt nhất cho thao tác phân loại, thuật toán cần
được chạy thử nghiệm trên nhiều giá trị k khác nhau, giá trị k càng lớn thì thuật
tốn càng ổn định và sai sót càng thấp.
Ưu và nhược điểm của K-NN trong bài tốn tơ màu ảnh
● Ưu điểm:

19



○ Đơn Giản và Dễ Hiểu: K-NN là một thuật tốn đơn giản và dễ
hiểu. Nó dựa trên việc so sánh các điểm dữ liệu gần nhau trong
không gian đặc trưng.
○ Áp Dụng Tốt Trên Dữ Liệu Nhỏ: K-NN hoạt động tốt trên các tập
dữ liệu nhỏ và có thể cho kết quả khá tốt nếu không gian đặc trưng
không quá lớn.
○ Khả Năng Tùy Chỉnh Kích Thước Lân Cận (Neighbor Size): Khả
năng điều chỉnh kích thước của lân cận (k) cho phép kiểm sốt mức
độ phức tạp của mơ hình, ảnh hưởng đến việc tìm ra các kết quả tốt
hơn.
● Nhược điểm:
○ Nhạy Cảm Với Nhiễu và Điểm Dữ Liệu Có Ảnh Hưởng Lớn:
K-NN dễ bị ảnh hưởng bởi nhiễu và điểm dữ liệu có ảnh hưởng lớn
(outliers) do phụ thuộc vào việc xác định các điểm lân cận gần
nhất.
○ Yêu Cầu Lượng Dữ Liệu Huấn Luyện Lớn: Việc lựa chọn kết quả
phụ thuộc lớn vào lượng dữ liệu huấn luyện. Đôi khi cần một lượng
lớn dữ liệu đa dạng để mơ hình hoạt động tốt.
○ Tốn Chi Phí Tính Tốn Khi Số Lượng Điểm Dữ Liệu Lớn: K-NN
có thể trở nên tốn kém về mặt tính tốn khi số lượng điểm dữ liệu
lớn, đặc biệt trong việc tìm kiếm các điểm lân cận.
○ Khó Khăn Khi Dữ Liệu Có Số Chiều Cao: Khi số chiều dữ liệu
tăng cao, hiệu suất của K-NN có thể giảm do hiệu ứng "curse of
dimensionality".

20


2.2.2 Máy vectơ hỗ trợ (Support Vector Machine - SVM)

SVM là phương pháp phân lớp rất hiệu quả được Vapnik giới thiệu vào
năm 1995 để giải quyết nhận dạng mẫu hai lớp sử dụng nguyên lý Cực tiểu hoá
Rủi ro Cấu trúc (Structural Risk Minimization).
Ý tưởng chính của thuật tốn này là cho trước một tập huấn luyện được
biểu diễn trong khơng gian vector trong đó mỗi tài liệu là một điểm, phương
pháp này tìm ra một mặt phẳng h quyết định tốt nhất có thể chia các điểm trên
khơng gian này thành hai lớp riêng biệt tương ứng lớp + và lớp -. Chất lượng
của siêu mặt phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm
dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng cách biên càng lớn thì
mặt phẳng quyết định càng tốt đồng thời việc phân loại càng chính xác. Mục
đích thuật tốn SVM tìm ra được khoảng cách biên lớn nhất để tạo kết quả phân
lớp tốt. Hình 2.1 minh họa cho thuật toán này:

21


Hình 2.1 Siêu phẳng h phân chia dữ liệu huấn luyện thành 2 lớp + và với khoảng cách biên lớn nhất. Các điểm gần h nhất là các vector hỗ
trợ(Support Vector - được khoanh trịn)
SVM sử dụng thuật tốn học nhằm xây dựng một siêu phẳng làm cực tiểu
hóa độ phân lớp sai của một đối tượng dữ liệu mới. Độ phân lớp sai của một
siêu phẳng được đặc trưng bởi khoảng cách bé nhất tới siêu phẳng đấy. SVM có
khả năng rất lớn cho các ứng dụng được thành cơng trong bài tốn phân lớp văn
bản.
Như đã biết, phân lớp văn bản là một cách tiếp cận mới để tạo ra tập phân
lớp văn bản từ các mẫu cho trước. Cách tiếp cận này phối hợp với sự thực thi ở
mức độ cao và hiệu suất cùng với những am hiểu về mặt lý thuyết, tính chất thơ
ngày càng được hồn thiện. Thơng thường, hiệu quả ở mức độ cao khơng có các
thành phần suy nghiệm. Phương pháp SVM có khả năng tính tốn sẵn sàng và
phân lớp, nó trở thành lý thuyết học mà có thể chỉ dẫn những ứng dụng thực tế
trên toàn cầu.

Đặc trưng cơ bản quyết định khả năng phân lớp là khả năng phân lớp
những dữ liệu mới dựa vào những tri thức đã tích lũy được trong q trình huấn
luyện. Sau q trình huấn luyện nếu hiệu suất tổng qt hố của bộ phân lớp cao
thì thuật tốn huấn luyện được đánh giá là tốt. Hiệu suất tổng quát hoá phụ
thuộc vào hai tham số là sai số huấn luyện hay và năng lực của máy học. Trong
đó sai số huấn luyện là tỷ lệ lỗi phân lớp trên tập dữ liệu huấn luyện. Còn năng
lực của máy học được xác định bằng kích thước Vapnik-Chervonenkis (kích
thước VC). Kích thước VC là một khái niệm quan trọng đối với một họ hàm
phân tách (hay là tập phân lớp). Đại lượng này được xác định bằng số điểm cực
đại mà họ hàm có thể phân tách hồn tồn trong khơng gian đối tượng. Một tập
phân lớp tốt là tập phân lớp có năng lực thấp nhất (có nghĩa là đơn giản nhất) và
đảm bảo sai số huấn luyện nhỏ.
22


Xét bài toán phân lớp đơn giản nhất – phân lớp hai lớp với tập dữ liệu
mẫu:
{(𝑥𝑖 , 𝑦𝑖 ) i = 1, 2,…, N, xi ∈ Rm }
Trong đó mẫu là các vector đối tượng được phân lớp thành các mẫu
dương và mẫu âm như trong hình trên:
- Các mẫu dương là các mẫu 𝑥𝑖 thuộc lĩnh vực quan tâm và được gán nhãn
𝑦𝑖 = 1.
-

Các mẫu âm là các mẫu 𝑥𝑖 không thuộc lĩnh vực quan tâm và được gán
𝑦𝑖 = - 1.
Thực chất phương pháp này là một bài tốn tối ưu, mục tiêu là tìm ra một

không gian H và siêu mặt phẳng quyết định h trên H sao cho sai số phân lớp là
thấp nhất.

Trong trường hợp này, tập phân lớp SVM là mặt siêu phẳng phân tách
các mẫu dương khỏi các mẫu âm với độ chênh lệch cực đại, trong đó độ chênh
lệch – còn gọi là Lề (margin) xác định bằng khoảng cách giữa các mẫu dương
và các mẫu âm gần mặt siêu phẳng nhất. Mặt siêu phẳng này được gọi là mặt
siêu phẳng lề tối ưu.
Các mặt siêu phẳng trong không gian đối tượng có phương trình là:
C +𝑤1 𝑥1 + 𝑤2 𝑥2 + … + 𝑤𝑛 𝑥𝑛 = 0
Tương đương với công thức:

C + ∑𝑤𝑖 𝑥𝑖 = 0
i=1,…,n

23


Với w = 𝑤1 + 𝑤2 + …+ 𝑤𝑛 là bộ hệ số siêu phẳng hay là vector trọng số,
C là độ dịch, khi thay đổi w và C thì hướng và khoảng cách từ gốc toạ độ đến
mặt siêu phẳng thay đổi.
Tập phân lớp SVM được định nghĩa như sau:
f(x) = sign(C + ∑𝑤𝑖 𝑥𝑖 )
Trong đó
- sign(z) = +1 nếu z ≥ 0,
- sign(z) = -1 nếu z < 0.
Nếu f(x) = +1 thì x thuộc về lớp dương (lĩnh vực được quan tâm), và
ngược lại, nếu f(x) = -1 thì x thuộc về lớp âm (các lĩnh vực khác).
Máy học SVM là một học các siêu phẳng phụ thuộc vào tham số vector
trọng số w và độ dịch C. Mục tiêu của phương pháp SVM là ước lượng w và C
để cực đại hoá lề giữa các lớp dữ liệu dương và âm. Các giá trị khác nhau của lề
cho ta các họ siêu mặt phẳng khác nhau, và lề càng lớn thì năng lực của máy
học càng giảm. Như vậy, cực đại hoá lề thực chất là việc tìm một máy học có

năng lực nhỏ nhất. Quá trình phân lớp là tối ưu khi sai số phân lớp là cực tiểu.
Ta phải giải phương trình sau:

24


×