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
lOMoARcPSD|39474592 BỘ 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 Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 2 BỘ 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 Học viên: Nhóm 3 1 Trịnh Bá Thao MSV: 2020600041 2 Ngô Tuấn Anh MSV: 2020600625 3 Xuân Quang Duy MSV: 2020601023 4 Đỗ Khắc Sơn MSV: 2020608332 5 Vũ Quang Tiến MSV: 2020600938 Hà Nội, năm 2023 Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 3 MỤ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 Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 4 3.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 Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 5 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ CÁI VIẾT TẮT ADAM Adaptive Moment Estimation ANN Artificial Neural Network CNN Convolutional Neural Network CONV Convolutional DNN Deep Neural Network FC Fully-Connected GD Gradient Descent IDE Integrated Development Environment JPEG Joint Photographic Experts Group JPG Joint Photographic Group ML Machine Learning MLP Multi Layer Perceptron PNG Portable Network Graphics POOL Pooling Layer ReLU Rectified Linear Unit RGB Red, Green, Blue RMSprop Root Mean Square Propagation SGD Stochastic Gradient Descent VS Code Visual Studio Code Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 6 DANH 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 Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 7 Hì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 Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 8 LỜ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 Qua đề tài “Thiết kế mô hình mạng Neural nhân tạo nhận diện màu 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 Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 9 CHƯƠ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 Downloaded by nhim nhim (nhimbien3@gmail.com) lOMoARcPSD|39474592 10 tỏ 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: Downloaded by nhim nhim (nhimbien3@gmail.com)