Thực tế cho thấy, việc nhận diện màu sắc không chỉ là vấn đề riêng của con người, mà còn đang được ứng dụng mạnh mẽ trong lĩnh vực xử lý hình ảnh thông qua việc sử dụng mạng neural tích
Trang 1B Ộ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
-
ĐỒ ÁN MẠNG NEURAL NHÂN TẠO
Ngành Điện tử viễn thông
Thi ết kế mô hình mạng Neural nhân tạo
nh ận diện màu sắc.
Gi ảng viên: TS Nguyễn Thị Thu
Nhóm 3
Hà Nội, năm 2023
Trang 2B Ộ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
-
ĐỒ ÁN MẠNG NEURAL NHÂN TẠO
Thi ết kế mô hình mạng Neural nhân tạo
nh ận diện màu sắc.
Gi ảng viên: TS Nguyễn Thị Thu
H ọc viên: Nhóm 3
Hà Nội, năm 2023
Trang 3M ỤC LỤC
M ỤC LỤC 3
DANH M ỤC CÁC KÝ HIỆU, CÁC CHỮ CÁI VIẾT TẮT 5
DANH M ỤC CÁC HÌNH ẢNH 6
L ỜI NÓI ĐẦU 8
CHƯƠNG I: T ỔNG QUAN VỀ ĐỀ TÀI 9
1.1 Lý do chọn đề tài 9
1.1.1 Giới thiệu chung về nhận diện màu sắc 9
1.1.2 Lý do lựa chọn đề tài 9
1.2 Mạng neural nhân tạo (ANN) 10
1.2.1 Giới thiệu chung về ANN 10
1.2.2 Các thành phần của ANN 10
1.2.3 Các ứng dụng của ANN 11
1.2.4 ANN trong học máy 12
1.3 Màu sắc và các đặc tính của màu sắc 13
1.3.1 Màu sắc là gì? 13
1.3.2 Đặc tính của màu sắc 13
1.3.3 Xử lý dữ liệu màu sắc với Python 14
CHƯƠNG II: THI ẾT KẾ MÔ HÌNH MẠNG NEURAL NHÂN TẠO NH ẬN DIỆN MÀU SẮC 16
2.1 Bài toán nhận dạng màu sắc 16
2.2 Các bước giải quyết bài toán 16
2.2.1 Xây dựng mô hình 16
2.2.2 Thuật toán huấn luyện 17
2.2.3 Huấn luyện mô hình 18
2.2.4 Thực hiện quá trình kiểm thử code 29
CHƯƠNG III: K ẾT QUẢ CHƯƠNG TRÌNH THỬ NGHIỆM 35
3.1 Môi trường thử nghiệm 35
3.1.1 Ngôn ngữ lập trình Python 35
Trang 43.1.2 Visual Studio Code 35
3.2 Thực nghiệm 37
3.2.1 Thực nghiệm phân tích giá trị một số tham số đầu vào 37
3.2.2 Thực nghiệm huấn luyện mạng 37
3.2.3 Thực nghiệm nhận diện màu sắc 38
CHƯƠNG IV: K ẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 42
4.1 Kết luận 42
4.2 Hướng phát triển của đề tài 43
TÀI LI ỆU THAM KHẢO 44
Trang 5DANH M ỤC CÁC KÝ HIỆU, CÁC CHỮ CÁI VIẾT TẮT
Trang 6DANH M ỤC CÁC HÌNH ẢNH
Hình ảnh 1.2.1 Mô hình ANN 11
Hình ảnh 2.2.1 Mô hình nhận diện màu sắc cơ bản 16
Hình ảnh 2.2.2 Mô hình nhận diện màu sắc chi tiết 17
Hình ảnh 2.2.3 Bộ lọc tích chập trên ma trận điểm ảnh 20
Hình ảnh 2.2.4 Hình ảnh sau khi đi qua bộ lọc 20
Hình ảnh 2.2.5 Phương thức Avarage Pooling và Max Pooling 21
Hình ảnh 2.2.6 Mô hình kết nối Fully-Connected 22
Hình ảnh 2.2.7 Kiến trúc CNN đặc trưng 22
Hình ảnh 2.2.8 Mối quan hệ giữa thuật toán Adam và GD 23
Hình ảnh 2.2.9 Quá trình huấn luyện CNN 25
Hình ảnh 2.2.10 Ví dụ về một trường cục bộ 5x5 26
Hình ảnh 2.2.11 Tạo neural ẩn đầu tiên trong lớp ẩn thứ nhất 26
Hình ảnh 2.2.12 Tạo neural ẩn thứ hai trong lớp ẩn thứ nhất 26
Hình ảnh 2.2.13 Feature map được tạo ra 27
Hình ảnh 2.2.14 Neural được tạo ra sau sau khi qua lớp max pooling 28
Hình ảnh 2.2.15 Một CNN với đầu ra gồm các neural 28
Hình ảnh 2.2.16 Import các thư viện 29
Hình ảnh 2.2.17 Dữ liệu huấn luyện 29
Hình ảnh 2.2.18 Dữ liệu kiểm tra 30
Hình ảnh 2.2.19 Các classes của mô hình 30
Hình ảnh 2.2.20 Mô hình mạng Neural 31
Hình ảnh 2.2.21 Thuật toán adam sử dụng trong mô hình 31
Hình ảnh 2.2.22 Huấn luyện mô hình bằng hàm Fit 31
Hình ảnh 2.2.23 Vòng lặp dự đoán và hiển thị kết quả 32
Hình ảnh 2.2.24 Kết thúc chương trình 32
Hình ảnh 2.2.25 Thuật toán Adam 33
Hình ảnh 2.2.26 Mô hình CNN 33
Hình ảnh 2.2.27 Kết quả huấn luyện mô hình 34
Trang 7Hình ảnh 3.1.1 Phần mềm Visual Studio Code 36
Hình ảnh 3.2.1 Hiển thị kết quả nhập dữ liệu 38
Hình ảnh 3.2.2 Nhận diện thành công màu đỏ 38
Hình ảnh 3.2.3 Nhận diện thành công màu lục 38
Hình ảnh 3.2.4 Nhận diện thành công màu lam 39
Hình ảnh 3.2.5 Nhận diện màu đỏ có sự pha lẫn 39
Hình ảnh 3.2.6 Nhận diện màu lục có sự pha lẫn 39
Hình ảnh 3.2.7 Nhận diện màu lam có sự pha lẫn 40
Hình ảnh 3.2.8 Nhận dạng ảnh màu đỏ từ định dạng JPEG 40
Hình ảnh 3.2.9 Nhận dạng ảnh màu lục từ định dạng JPG 40
Hình ảnh 3.2.10 Nhận dạng hình ảnh màu lam từ định dạng PNG 41
Trang 8L ỜI NÓI ĐẦU
Hẳn ai trong chúng ta cũng từng trải qua những trải nghiệm thú vị khi nhận
diện và tận hưởng vẻ đẹp của các sắc màu xung quanh Cảm giác ấm áp của
mặt trời buổi sáng, bức tranh màu mè của thiên nhiên, hay những sắc thái đa
dạng trên các tác phẩm nghệ thuật – tất cả đều là những khung cảnh mà màu
sắc tạo nên Thực tế cho thấy, việc nhận diện màu sắc không chỉ là vấn đề riêng
của con người, mà còn đang được ứng dụng mạnh mẽ trong lĩnh vực xử lý hình ảnh thông qua việc sử dụng mạng neural tích chập (CNN)
CNN đã khẳng định vị thế của mình trong thế giới xử lý hình ảnh bằng
khả năng nắm bắt cấu trúc không gian trong dữ liệu ảnh Nhờ cách mạng này, chúng ta có thể dễ dàng học được các đặc trưng phức tạp trong ảnh, đặc biệt là đối với việc nhận diện màu sắc CNN học cách kết hợp các đặc trưng cục bộ từ các kênh màu, tạo ra mô hình phân loại màu sắc đáng tin cậy
s ắc”, chúng ta sẽ tiếp cận thế giới thú vị của việc nhận diện màu sắc thông qua
CNN Chúng ta sẽ tìm hiểu cụ thể cách mạng này hoạt động, từ việc tiền xử lý
dữ liệu đến cách thức huấn luyện mạng và đánh giá hiệu suất của mô hình Đồng thời, chúng ta sẽ thấy rõ ảnh hưởng to lớn của CNN trong việc giúp máy tính nhận diện màu sắc một cách nhanh chóng và chính xác
Qua đây, chúng ta không chỉ hiểu rõ hơn về cách mà CNN có thể ứng
dụng trong xử lý hình ảnh, mà còn thấy rõ giá trị thực sự của nó trong việc tạo nên những khả năng mới cho thị giác máy tính và nhiều lĩnh vực ứng dụng khác Đồ án này chắc chắn sẽ giúp chúng ta mở rộng tầm hiểu biết và tận hưởng
sự thú vị của việc làm quen với màu sắc thông qua góc nhìn nghiên cứu
Trang 9CHƯƠNG I: T ỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý do chọn đề tài
1.1.1 Gi ới thiệu chung về nhận diện màu sắc
Màu sắc là một khía cạnh quan trọng trong cuộc sống và thị giác của con người Nó tạo ra sự đa dạng và thú vị trong thế giới xung quanh chúng ta và có vai trò quan trọng trong nhiều lĩnh vực, bao gồm ngành nghệ thuật, thiết kế, thị giác máy tính và khoa học
T ầm quan trọng của màu sắc trong cuộc sống:
Màu sắc không chỉ đóng vai trò thẩm mỹ, mà còn có ảnh hưởng đến tâm
trạng và cảm xúc của con người Mỗi màu sắc có thể gợi lên những cảm xúc và
ý nghĩa riêng biệt
Ví dụ: Màu đỏ thường liên quan đến sự nổi loạn hoặc đam mê, màu xanh
biểu thị sự yên bình và sự trung tính, màu vàng thể hiện niềm vui và sự sáng
sủa
Tính đa dạng của màu sắc:
Màu sắc là một phạm vi rộng lớn của sự tổng hợp màu sắc cơ bản: đỏ, lục
và lam Từ ba màu cơ bản này, chúng ta có thể tạo ra vô số các màu sắc phức
tạp khác thông qua việc kết hợp chúng với nhau hoặc thêm màu trắng và đen
1.1.2 Lý do l ựa chọn đề tài
Tính ứng dụng rộng rãi:
Nhận diện màu sắc là một nhiệm vụ quan trọng trong thị giác máy tính và
có nhiều ứng dụng thực tế hữu ích
Ví dụ: Trong ngành công nghiệp, việc phân loại và nhận diện màu sắc có
thể được sử dụng để kiểm tra chất lượng sản phẩm trong quá trình sản xuất,
đánh giá chất lượng thực phẩm, xử lý hình ảnh và nhiều ứng dụng khác
S ự phát triển của trí tuệ nhân tạo và thị giác máy tính:
Trí tuệ nhân tạo và thị giác máy tính đã phát triển rất nhanh trong những năm gần đây Các mô hình mạng neural nhân tạo (ANN) như CNN đã chứng
Trang 10tỏ hiệu quả cao trong việc nhận diện màu sắc và các đối tượng trong hình ảnh
Điều này làm cho đề tài hấp dẫn và đáng để nghiên cứu
Ti ềm năng nghiên cứu và đóng góp:
Nghiên cứu về việc sử dụng ANN để nhận diện màu sắc có thể đóng góp vào việc cải thiện hiệu suất của các hệ thống nhận diện màu sắc hiện có và mở
ra những tiềm năng ứng dụng mới trong các lĩnh vực khác nhau Việc áp dụng trí tuệ nhân tạo vào nhận diện màu sắc có thể giúp tiết kiệm thời gian, tăng hiệu suất và giảm thiểu sai sót
S ự quan tâm và nhu cầu nghiên cứu:
Hiện nay, màu sắc đang thu hút sự quan tâm của nhiều ngành công nghiệp
và các nhà nghiên cứu trong lĩnh vực trí tuệ nhân tạo Việc nghiên cứu về việc
nhận diện màu sắc có thể giúp đáp ứng nhu cầu thực tế của xã hội và góp phần phát triển lĩnh vực này
1.2 Mạng neural nhân tạo (ANN)
1.2.1 Gi ới thiệu chung về ANN
ANN là một phương thức trong lĩnh vực trí tuệ nhân tạo, được sử dụng để dạy máy tính xử lý dữ liệu theo cách được lấy cảm hứng từ bộ não con người Đây là một loại quy trình máy học, được gọi là Deep learning (DL), sử dụng các nút hoặc neural liên kết với nhau trong một cấu trúc phân lớp tương tự như
bộ não con người Phương thức này tạo ra một hệ thống thích ứng được máy tính sử dụng để học hỏi từ sai lầm của chúng và liên tục cải thiện Vì vậy, ANN
nhắm tới giải quyết các vấn đề phức tạp, chẳng hạn như tóm tắt tài liệu hoặc
nhận diện khuôn mặt, với độ chính xác cao hơn
1.2.2 Các thành ph ần của ANN
Một ANN cơ bản bao gồm các neural nhân tạo liên kết theo 3 lớp:
Trang 11Dữ liệu đi vào lớp ẩn đến từ lớp đầu vào hoặc các lớp ẩn khác ANN có
thể có một số lượng lớn lớp ẩn Mỗi lớp ẩn phân tích dữ liệu đầu ra từ lớp trước,
xử lý dữ liệu đó sâu hơn và rồi chuyển dữ liệu sang lớp tiếp theo
L ớp đầu ra:
Lớp đầu ra cho ra kết quả cuối cùng của tất cả các dữ liệu được xử lý bởi ANN Lớp này có thể có một hoặc nhiều nút
1.2.3 Các ứng dụng của ANN
ANN được sử dụng trong nhiều trường hợp trải dài khắp các lĩnh vực
chẳng hạn: Y tế, tiếp thị, tài chính, … Ở đây chúng ta chỉ tìm hiểu 4 ứng dụng quan trọng nhất của ANN
Th ị giác máy tính:
Là khả năng trích xuất dữ liệu, thông tin từ hình ảnh, video của máy tính
Với ANN, máy tính có thể phân biệt và nhận diện hình ảnh như con nguời Thị giác máy tính được sử dụng trong:
Nhận diện khuôn mặt
Trang 12 Kiểm duyệt nội dung
Dán nhãn hình ảnh
Nh ận dạng giọng nói:
ANN phân tích giọng nói của con người: mẫu giọng, cao độ, tông, ngôn
ngữ, vùng miền Nhận dạng giọng nói có thể thực hiện các công việc như:
Tạo phụ đề cho các video, bản ghi âm
Chuyển đổi âm thanh thành văn bản
Phân loại nội dung
K ỹ thuật xử lý ngôn ngữ tự nhiên:
Là khả năng xử lý văn bản tự nhiên do con nguời tạo ra ANN giúp máy tính thu thập thông tin từ văn bản và tài liệu Kỹ thuật xử lý ngôn ngữ tự nhiên được ứng dụng trong:
đề xuất sẽ thay họ làm điều đó
1.2.4 ANN trong h ọc máy
Trong lĩnh vực học máy, ANN đã trở thành một công cụ mạnh mẽ và phổ
biến trong việc giải quyết nhiều bài toán phức tạp Mô hình này lấy cảm hứng
từ cấu trúc và hoạt động của hệ thống neural trong não người, cho phép nó tự động học từ dữ liệu và cải thiện hiệu suất trong việc phân loại, dự đoán, và ghi
nhớ thông tin
ANN trong học máy có khả năng học từ các tập dữ liệu lớn, từ đó tạo ra các quy tắc và mô hình phức tạp, mang tính tổng quát cao Các kiến trúc đa lớp như Perceptron đa lớp (MLP), mạng neural sâu (Deep Neural Network - DNN)
Trang 13đã xuất hiện, cho phép xử lý các bài toán phức tạp và mang tính đòi hỏi cao trong thế giới thực
Không chỉ là công cụ xử lý dữ liệu và giải quyết các bài toán, ANN trong
học máy còn góp phần nâng cao hiệu suất của nhiều ứng dụng thực tiễn Chẳng
hạn, trong xử lý ngôn ngữ tự nhiên, ANN đã đạt được những thành tựu ấn tượng, giúp tạo ra các chatbot thông minh và các hệ thống dịch thuật tự động Tuy nhiên, vẫn còn nhiều thách thức trong việc sử dụng ANN trong học máy Như overfitting (quá khớp), thiếu dữ liệu, thời gian huấn luyện dài đều là những vấn đề cần được giải quyết để tăng cường hiệu quả của mạng neural trong ứng dụng thực tế Bên cạnh đó, việc nghiên cứu và phát triển các kiến trúc và thuật toán mới vẫn tiếp tục là hướng đi quan trọng để nâng cao khả năng
của ANN và học máy nói chung
1.3 Màu sắc và các đặc tính của màu sắc
1.3.1 Màu s ắc là gì?
Màu sắc là một khái niệm về hiện tượng thị giác, được tạo ra bởi sự khác nhau trong bước sóng ánh sáng và cách mắt con người cảm nhận chúng Trong không gian màu sắc, có một loạt các màu đơn sắc và màu phức tạp hơn được
tạo thành từ sự kết hợp của các màu đơn sắc
1.3.2 Đặc tính của màu sắc
Các đặc tính của màu sắc bao gồm:
S ắc thái (Hue):
Đây là thuộc tính chính xác nhất của màu sắc, cho biết màu cụ thể của vật
thể Ví dụ: màu đỏ, màu lục, màu vàng là các sắc thái khác nhau
Độ sáng (Brightness):
Độ sáng liên quan đến mức độ chiếu sáng hoặc bóng tối của màu sắc Nó
thể hiện mức độ sáng hay tối của màu, từ đen (màu tối nhất) đến trắng (màu sáng nhất)
Độ bão hòa (Saturation):
Trang 14Độ bão hòa chỉ đến mức độ mạnh yếu của màu sắc Màu sắc có độ bão hòa cao sẽ trông tươi sáng và sặc sỡ, trong khi độ bão hòa thấp sẽ làm màu nhạt
đi
Tương phản (Contrast):
Là sự khác biệt giữa các màu sắc trong một cách thị giác Tương phản giúp phân biệt rõ ràng giữa các đối tượng và màu sắc xung quanh chúng
Tính ch ất tâm lý của màu sắc:
Màu sắc có thể tạo ra ảnh hưởng tâm lý và tạo ra cảm xúc khác nhau Ví
dụ, màu đỏ thường được liên kết với sự nhiệt tình và sức mạnh, trong khi màu
lục có thể gợi lên sự yên bình và sự tự nhiên
S ự thay đổi của màu sắc theo ánh sáng:
Màu sắc có thể thay đổi khi ánh sáng thay đổi Điều này được gọi là hiện
tượng "metamerism."
Những đặc tính này cùng nhau tạo nên một loạt các màu sắc đa dạng và đẹp mắt, được sử dụng rộng rãi trong nghệ thuật, thiết kế, thị giác và nhiều lĩnh
vực khác
1.3.3 X ử lý dữ liệu màu sắc với Python
Nhận diện màu sắc là quá trình xác định màu sắc Quá trình này thu được
bằng cách so sánh với mẫu chuẩn đã được học, lưu từ trước Nội suy là phán đoán trên cơ sở nhận diện Ví dụ: Từ 3 màu sắc chính là đỏ, lam, lục có thể tạo
ra các màu khác bằng cách kết hợp lại với nhau Có nhiều cách để phân biệt được màu sắc, ở đây chúng ta dùng ngôn ngữ Python và chia thành các kỹ thuật
nhận diện sau:
Chuy ển ảnh màu sang Grayscale:
Về cơ bản thì Grayscale (hình trắng đen) là loại ảnh mà tất cả pixels chỉ mang thông tin về độ sáng, hay chỉ thể hiện sắc thái của màu xám (Luminance mode) Trong không gian màu RGB, màu xám là màu mà sắc tố đỏ, lam, lục
có giá trị bằng nhau Ví dụ màu đỏ trong không gian RGB có giá trị (255, 0, 0)
Trang 15Nếu muốn chuyển sang màu xám thì lấy giá trị trung bình của 3 sub-pixels và
tạo thành 1 pixel mới có giá trị RGB (85, 85, 85)
Thay đổi độ tương phản (Contrast):
Là quá trình điều chỉnh mức độ khác biệt giữa các giá trị màu trong một hình ảnh hoặc trong một khu vực cụ thể của hình ảnh Tương phản màu sắc đo lường sự khác biệt giữa các giá trị màu, chẳng hạn như độ sáng hoặc độ tối,
giữa các điểm trong hình ảnh Ví dụ: Bạn có thể sử dụng bộ lọc “Enhance” (tăng cường) hoặc “Contrast” (tương phản) để làm tăng hoặc giảm độ tương phản
Thay đổi độ sáng (Brightness):
Là quá trình điều chỉnh mức độ sáng của hình ảnh hoặc một khu vực cụ
thể trong hình ảnh làm tăng hoặc giảm độ sáng của màu sắc Kỹ thuật này cho phép điều chỉnh mức độ sáng tổng thể của hình ảnh hoặc làm tăng sáng các màu sắc cụ thể trong hình ảnh Để thay đổi độ sáng của pixels bằng cách thủ công, ta chỉ cần tăng hay giảm giá trị của từng pixel là được, chỉ cần lưu ý giá
trị đó sao cho nằm trong khoảng 0-255 là được
Làm m ờ (Gausian blur):
Là quá trình thay đổi hình ảnh hoặc khu vực cụ thể trong hình ảnh để làm cho nó trở nên mờ đi Kỹ thuật này làm giảm độ chi tiết và độ rõ nét trong hình ảnh, giúp tạo ra hiệu ứng mờ hoặc tập trung vào một phần của hình ảnh, trong khi giữ lại phần còn lại một cách rõ ràng
Ví dụ: Bộ lọc “Gaussian Blur” sẽ làm mờ hình ảnh bằng cách áp dụng
hiệu ứng mờ dựa trên phân phối Gausian Bạn có thể điều chỉnh mức độ mờ
bằng cách thay đổi thông số của bộ lọc này
Trang 16CHƯƠNG II: THI ẾT KẾ MÔ HÌNH MẠNG NEURAL NHÂN TẠO
NH ẬN DIỆN MÀU SẮC 2.1 Bài toán nhận dạng màu sắc
Bài toán nhận dạng màu sắc là một phần của lĩnh vực thị giác máy tính và
xử lý ảnh Đây là một phần quan trọng của ứng dụng như phát hiện đối tượng, phân loại ảnh hoặc điều chỉnh màu sắc tự động
Ở đây bài toán được đặt ra là để cho ANN phân biệt màu sắc của các hình ảnh Cụ thể, mô hình được huấn luyện để phân loại các hình ảnh thành ba lớp màu sắc khác nhau bao gồm:
“Mau_Do” (Red): Lớp màu sắc đại diện cho các hình ảnh có màu đỏ
“Mau_Luc” (Green): Lớp màu sắc đại diện cho các hình ảnh có màu lục
“Mau_Lam” (Blue): Lớp màu sắc đại diện cho các hình ảnh có màu lam
Mô hình sử dụng CNN (Convolutional Neural Network) để học các đặc trưng từ các hình ảnh và phân loại chúng thành các lớp màu sắc trên Để làm được điều này, CNN được huấn luyện trên một tập dữ liệu chứa các hình ảnh
đã được gán nhãn cho từng lớp màu sắc Sau đó, mô hình có thể được sử dụng
để dự đoán màu sắc của các hình ảnh mới mà nó chưa thấy trước đó
2.2 Các bước giải quyết bài toán
2.2.1 Xây d ựng mô hình
trình có chức năng nhận dạng màu sắc cho 3 loại màu cơ bản Mô hình sẽ nhận ảnh từ đường dẫn đã nhập vào và tiến hành nhận diện thời gian thực Sơ đồ
khối của sản phẩm được thể hiện như sau:
Hình ảnh 2.2.1 Mô hình nhận diện màu sắc cơ bản
Trang 17Ảnh từ Input sẽ được resize và cho qua 2 lớp convolution, giữa 2 lớp sẽ là
lớp max pooling trước khi qua max pooling 1 lần nữa và qua 1 lớp flatten, cuối cùng là 6 lớp fully connected
Hình ảnh 2.2.2 Mô hình nhận diện màu sắc chi tiết
2.2.2 Thu ật toán huấn luyện
Là một loại thuật toán trong lĩnh vực xử lý ảnh và trí tuệ nhân tạo mà sử
dụng các kỹ thuật khoa học máy để hiểu và điều chỉnh màu sắc trong ảnh và video Cụ thể, các thuật toán học màu sắc thường là các mô hình học máy được
huấn luyện trên tập dữ liệu ảnh có gắn nhãn màu sắc Quá trình huấn luyện này giúp mô hình “học” cách phân loại các màu sắc khác nhau và hiểu cách tương tác giữa chúng
Thuật toán huấn luyện màu sắc trong bài toán nhận dạng màu sắc thực
hiện thông qua các bước sau đây:
Chu ẩn bị dữ liệu huấn luyện: Thu thập và chuẩn bị dữ liệu ảnh chứa các
mẫu màu sắc cần nhận dạng Dữ liệu được chia sẻ thành 2 phần tập huấn luyện (Training set) và tập kiểm tra (Test set)
Ti ền xử lý dữ liệu: Chuẩn hóa và làm sạch dữ liệu ảnh Các bước tiền xử
lý có thể bao gồm chuyển đổi không gian màu, cắt cụm màu, hoặc chuyển đổi
Trang 18kích thước hình ảnh để đảm bảo dữ liệu đầu vào đồng nhất và thích hợp cho
huấn luyện mô hình
Xây d ựng mô hình máy học: Chọn một mô hình phù hợp để nhận dạng
màu sắc Trong trường hợp này sử dụng mạng neural tích chập (CNN) cho các bài toán liên quan đến thị giác máy tính, vì nó có khả năng học các đặc trưng
phức tạp từ dữ liệu ảnh
Định nghĩa hàm mất mát (loss function): Hàm mất mát sẽ đánh giá sai
khác giữa đầu ra dự đón của mô hình và nhãn thực tế Trong bài toán phân loại màu sắc, thường sử dụng hàm cross-entropy để đo lường sự sai khác giữa phân
phối xác suất dự đoán và nhãn thực tế
T ối ưu hóa mô hình: Chọn một thuật toán tối ưu hóa (ví dụ: Adam, SGD,
RMSprop) để điều chỉnh các trọng số của mô hình dựa trên đạo hàm của hàm
mất mát
Hu ấn luyện mô hình: Đưa dữ liệu huấn luyện vào mô hình và thực hiện
quá trình huấn luyện để tối ưu hóa các tham số của mô hình Mô hình sẽ điều
chỉnh các trọng số sao cho hàm mất mát giảm dần
Ki ểm tra và đánh giá mô hình: Sau khi huấn luyện xong, sử dụng tập
kiểm tra để kiểm tra hiệu suất của mô hình Đánh giá mô hình dựa trên các độ
đo như độ chính xác, độ phủ, precision, recall, F1-score và confusion matrix để đánh giá độ chính xác và hiệu suất của mô hình
D ự đoán màu sắc: Khi mô hình đã được huấn luyện và đánh giá, chúng
ta có thể sử dụng mô hình để dự đoán màu sắc từ các ảnh mới
Quá trình huấn luyện mô hình là một quá trình tối đa hóa hàm mất mát và
tối ưu hóa các tham số của mô hình để có thể nhận dạng màu sắc một cách chính xác từ dữ liệu hình ảnh
2.2.3 Hu ấn luyện mô hình
2.2.3.1 Mô hình CNN
Định nghĩa CNN
Trang 19Convolutional Neural Network (CNN – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến 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
Các l ớp cơ bản của CNN
Một CNN bao gồm ba lớp cơ bản:
Lớp tích chập: Convolutional (CONV)
Lớp Pooling: Pooling layer (POOL)
Lớp kết nối đầy đủ: Fully-connected (FC)
L ớp tích chập (CONV): Đây là phần quan trọng nhất của CNN, nó có
nhiê ̣m vu ̣ thực thi các tính toán Các yếu tố quan trọng trong lớp CONV là: padding, stride, activation function, feature map và filter map
CNN sử dụng filter để áp dụng vào các vùng của ma trâ ̣n hình ảnh Các filter map là các ma trâ ̣n 3 chiều, bên trong đó là những tham số và
chúng được gọi là parameters
Stride: di ̣ch chuyển filter map theo từng pixel dựa vào các giá tri ̣ từ trái qua phải
Padding: giá tri ̣ viền xung quanh của ma trâ ̣n hình ảnh sẽ được gán các
giá tri ̣ 0 để có thể tiến hành nhân tích châ ̣p mà không làm giảm kích thước ma trâ ̣n ảnh ban đầu
Activation function: hàm kích hoạt (thường sử dụng hàm ReLu) được xây dựng với ý nghĩa đảm bảo tính phi tuyến của mô hình huấn luyện sau khi đã thực hiện một loạt các phép tính toán tuyến tính qua các lớp tích chập
Feature map: biểu diễn kết quả sau mỗi lần feature map quét qua ma
trâ ̣n ảnh đầu vào Sau mỗi lần quét thì lớp CONV sẽ tiến hành tính
toán
Trang 20Hình ảnh 2.2.3 Bộ lọc tích chập trên ma trận điểm ảnh
Trong ví dụ, ta thấy bộ lọc được sử dụng là một ma trận có kích thước 3x3 Bộ lọc này được dịch chuyển lần lượt qua từng vùng ảnh đến khi hoàn thành quét toàn bộ bức ảnh, tạo ra một bức ảnh mới có kích thước nhỏ hơn hoặc
bằng với kích thước ảnh đầu vào Kích thước này sau khi qua bộ lọc được tính theo công thức (1):
Trong đó:
o: kích thước ảnh đầu ra
i: kích thước ảnh đầu vào
p: kích thước khoảng trắng phía ngoài viền của ảnh gốc
k: kích thước bộ lọc
s: bước trượt của bộ lọc
Trang 21Như vậy, sau khi đưa một bức ảnh đầu vào cho lớp CONV ta nhận được
kết quả đầu ra là một loạt ảnh tương ứng với các bộ lọc đã được sử dụng để
thực hiện phép tích chập Các trọng số của các bộ lọc này được khởi tạo ngẫu nhiên trong lần đầu tiên và sẽ được cải thiện dần xuyên suốt quá trình huấn luyện
L ớp Pooling (POOL):
Là lớp được sử dụng sau lớp CONV để làm giảm kích thước ảnh đầu vào, tăng tốc độ tính toán và hiệu năng trong việc phát hiện các đặc trưng Có nhiều hướng Pooling được sử dụng trong đó phổ biến nhất là POOL theo giá trị cực đại (max pooling) và POOL theo giá trị trung bình (Avarage Pooling) được thể
hiện như hình dưới đây:
Hình ảnh 2.2.5 Phương thức Avarage Pooling và Max Pooling
Max Pooling là lấy điểm ảnh lớn nhất khi bộ lọc trượt qua
Avarage Pooling là lấy trung bình cộng tất cả các điểm ảnh được bộ
lọc trượt qua
Như vậy, với mỗi ảnh đầu vào được đưa qua lấy mẫu ta thu được một ảnh đầu ra tương ứng, có kích thước giảm xuống đáng kể nhưng vẫn giữ được các đặc trưng cần thiết cho quá trình tính toán sau này
Trang 22L ớp kết nối đầy đủ (FC):
Được sử dụng sau lớp POOL Lớp FC được thiết kế hoàn toàn tương tự như trong ANN truyền thống, tức là tất cả các điểm ảnh được kết nối đầy đủ
với node trong lớp tiếp theo như hình dưới
Hình ảnh 2.2.6 Mô hình kết nối Fully-Connected
So với ANN truyền thống, các ảnh đầu vào của lớp này đã có kích thước được giảm bớt rất nhiều, đồng thời vẫn đảm bảo các thông tin quan trọng cho
việc nhận dạng Do vậy, việc tính toán nhận dạng sử dụng mô hình truyền thẳng
đã không còn phức tạp và tốn nhiều thời gian như trong mạng nơron truyền
thống
C ấu trúc của CNN
CNN là một trong những tập hợp của lớp CONV được chồng lên nhau CNN còn sử dụng các hàm nonlinear activation (như ReLU và tanh) nhằm kích
hoạt trọng số trong node Khi đã thông qua hàm, lớp này sẽ thu được trọng số
trong các node và tạo ra nhiều thông tin trừu tượng hơn cho các lớp tiếp theo