GIỚI THIỆU VỀ MẠNG LƯỚI CNN Hình 2.1 cho thấy kiến trúc mạng CNN, các lớp cơ bản trong mạng CNN baogồm: Lớp tích chập; Lớp kích hoạt phi tuyến tính ReLU Rectified Linear Unit;Lớp gộp; Lớ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
BÀI TẬP LỚN TRÍ TUỆ NHÂN TẠO PHÂN LOẠI MÈO VÀ CHÓ SỬ DỤNG MÔ HÌNH CNN
NGÀNH: CÔNG CÔNG THÔNG TIN CHUYÊN NGÀNH: KỸ THUẬT PHẦN MỀM
SINH VIÊN: NGUYỄN VĂN ĐẠT
VŨ ĐỨC BÌNH
BÙI MẠNH CƯỜNG
ĐẶNG VIỆT HÀ
MÃ LỚP: 125214 HƯỚNG DẪN : CÔ NGUYỄN HOÀNG ĐIỆP
HƯNG YÊN – 20 24
Trang 2NHẬN XÉT Nhận hướng dẫn của người đánh giá:
Trang 3
GIẢNG VIÊN HƯỚNG DẪN
(Ký và ghi rõ tên họ)
Trang 4LỜI CAM ĐOAN
Em xin cam đoan bài tập lớn “Phân loại chó mèo bằng mô hình CNN” là kếtquả thực hiện của nhóm em dưới sự hướng dẫn của cô Nguyễn Hoàng Điệp
Phần sử dụng tài liệu tham khảo trong sơ đồ đã được nêu rõ trong phần tài liệutham khảo Kết quả được trình bày trong sơ đồ và chương trình xây dựng đã đượchoàn thành là kết quả thực hiện của bản thân
Nếu vi phạm lời cam này, em xin chịu hoàn toàn trách nhiệm trước khoa và nhàtrường
Hưng Yên, ngày … tháng … năm…
SINH VIÊN
………
Trang 5LỜI CẢM ƠN
Để có thể hoàn thành bài tập lớn này, lời đầu tiên xin phép gửi lời cảm ơn tới bộmôn Công nghệ phần mềm, Khoa Công nghệ thông tin – Trường Đại học Sư phạm Kỹthuật Hưng Yên đã tạo điều kiện thuận lợi cho thực hiện đồ án môn học này
Đặc biệt em xin chân thành cảm ơn thầy cô Nguyễn Hoàng Điệp đã rất tận dụngtình hướng dẫn, chỉ bảo em trong suốt thời gian thực hiện đồ án vừa qua
Em cũng xin chân thành cảm ơn tất cả các Thầy, các Cô trong Trường đã tậndụng tình giảng dạy, trang được cho em những kiến thức cần thiết, kho báu quý giágiúp đỡ để thực hiện được sơ đồ này
Mặc dù chúng tôi đã cố gắng hết sức, nhưng với chế độ còn hạn chế, trong quátrình thực hiện, tài khoản không tránh được những thiếu sót Em hy vọng sẽ nhận đượcnhững ý kiến nhận xét, lời khuyên của các Thầy giáo, Cô giáo về những kết quả pháttriển trong bản đồ án
Em xin trân trọng cảm ơn!
Trang 6DANH MỤC HÌNH
Hình 2.1 Kiến trúc cơ bản của mạng CNN 3
Hình 2.2 Bộ lọc nhanh được sử dụng trên ma trận ảnh 4
Hình 2.3 Phương thức gộp trung bình và gộp tối đa 5
Hình 2.4 Cấu hình cơ bản của OpenCV 7
8 bộ huấn luyện
Hình 2.6 Trong thư mục của “os” đã có sẵn bộ huấn luyện Error: Reference source not found Hình 3.1 Sơ đồ quy trình của mô hình nhận dạng khuôn mặt 8
Hình 3.2 Chuyển về hình ảnh xám Error: Reference source not found Hình 3.3 Tầm nhìn của máy tính khi chạy đặc biệt Error: Reference source not found Hình 3.4 Tạo khung mặt Error: Reference source not found Hình 3.5 Các Haar cụ thể đánh dấu những nơi có thể là khuôn mặt Error: Reference source not found Hình 3.6 Bức ảnh được xác định khuôn mặt Error: Reference source not found Hình 3.7 Bức ảnh cần được nhận diện trong chương trình Error: Reference source not found Hình 3.8 Sau khi phát hiện khuôn mặt Error: Reference source not found Hình 3.9 Dữ liệu được lưu Error: Reference source not found Hình 3.10 Kiến trúc dạng khối của mô hình CNN Error: Reference source not found Hình 3.11 Một ảnh đầu kích thước 100x100x1 (đa cấp xám) 14
Hình 3.12 Hình ảnh sau khi xử lý khối B2 Error: Reference source not found Hình 3.13 Hình xử lý kết quả sau B4 và B6 Error: Reference source not found Hình 3.14 Phân lớp dữ liệu của mô hình CNN Error: Reference source not found Hình 3.15 Dữ liệu tính toán Error: Reference source not found Hình 4.1 Hơn 20 triệu triệu được huấn luyện viên 17
Trang 7Hình 4.3 Hình ảnh trước khi nhận dạng 20
Hình 4.4 Hình ảnh sau khi nhận diện (Trường Giang) 20
Hình 4.5 Hình ảnh trước khi nhận dạng 5 người 21
Hình 4.6 Hình ảnh sau khi nhận dạng 5 người 21
Error: Reference source not found
CÁC TỪ VIẾT TẮT
ReLu Đơn vị tuyến tính chỉnh lưu CNN Mạng nơ-ron tích chập MởCV Tầm nhìn máy tính nguồn mở
Sơ yếu lý lịch Tầm nhìn máy tính
MLL Thư viện học máy CHUYỂN ĐỔI Tích chập
Trang 8CHƯƠNG 1: GIỚI THIỆU
1.1 GIỚI THIỆU
Mạng nơ-ron tích chập (CNN) hiện là một trong những mô hình học sâuđược sử dụng rộng rãi nhất, nổi tiếng với khả năng nhận dạng và phân loại hìnhảnh với độ chính xác đáng kinh ngạc, đôi khi thậm chí còn vượt trội hơn hiệusuất của con người trong một số trường hợp cụ thể Các mô hình CNN đã đượcphát triển và tích hợp vào các hệ thống xử lý hình ảnh quy mô lớn bởi các công
ty như Facebook, Google và Amazon cho nhiều mục đích khác nhau, chẳng hạnnhư thuật toán gắn thẻ tự động, tìm kiếm hình ảnh hoặc hệ thống đề xuất sảnphẩm cho người tiêu dùng
Không giống như mạng nơ-ron truyền thẳng truyền thống, CNN có kiến trúcchuyên biệt cho phép chúng tạo kết nối chỉ bằng một phần cục bộ của hình ảnhcho các nút ở lớp tiếp theo, thay vì sử dụng toàn bộ hình ảnh
Với những tiến bộ trong công nghệ CNN, chúng tôi có nền tảng để thực hiện
dự án “Phân loại chó và mèo bằng AI”.
Trang 91.4 PHƯƠNG PHÁP NGHIÊN CỨU
Trong phần này, chúng tôi thiết kế mô hình phân loại hình ảnh dựa trênCNN Các phương pháp nghiên cứu chính bao gồm:
Phương pháp phân tích
Đánh giá tài liệu
Tổng hợp lý thuyết các tác phẩm liên quan
1.5 ĐỐI TƯỢNG NGHIÊN CỨU VÀ PHẠM VI
Các chủ đề nghiên cứu và phạm vi sẽ giúp giải quyết dự án như sau:
Các chủ đề nghiên cứu : Trí tuệ nhân tạo, Lập trình Python
Phạm vi : Kiến trúc CNN và các mô-đun Python như OpenCV, NumPy,
os, TensorFlow và các thư viện xử lý hình ảnh
Trang 10CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU VỀ MẠNG LƯỚI CNN
Hình 2.1 cho thấy kiến trúc mạng CNN, các lớp cơ bản trong mạng CNN baogồm: Lớp tích chập; Lớp kích hoạt phi tuyến tính ReLU (Rectified Linear Unit);Lớp gộp; Lớp kết nối đầy đủ được thay đổi về số lượng và cách sắp xếp để tạo racác mô hình đào tạo phù hợp cho từng bài toán khác nhau Lớp tích chập, lớpkích hoạt phi tuyến tính ReLU và lớp kết nối đầy đủ Pooling Phân loại Hình 1.Kiến trúc cơ bản của mạng CNN
Lớp tích chập: đây là thành phần quan trọng nhất trong mạng CNN, biểu diễncác kết nối cục bộ thay vì kết nối tất cả các pixel Các kết nối cục bộ được tínhtoán bằng cách tích chập giữa các giá trị pixel trong một vùng ảnh cục bộ với các
bộ lọc có kích thước nhỏ
Hình 2.1 Kiến trúc cơ bản của CNN
Lớp tích chập: đây là thành phần quan trọng nhất trong CNN, biểu diễn cáckết nối cục bộ thay vì kết nối tất cả các pixel Các kết nối cục bộ được tính toánbằng cách tích chập giữa các giá trị pixel trong một vùng ảnh cục bộ với các bộlọc có kích thước nhỏ
Trang 11Hình 2 1 Bộ lọc tích chập được sử dụng trên ma trận điểm ảnh
Bộ lọc tích chập được sử dụng trên ma trận điểm ảnh Trong Hình 2.2, bộ lọc được sử dụng là ma trận 3x3, di chuyển qua từng vùng của hình ảnh theo lượt cho đến khi hoàn tất quá trình quét toàn bộ hình ảnh, tạo ra một hình ảnh mới nhỏ hơn hoặc bằng kích thước của hình ảnh đầu vào Kích thước này được xác định bởi kích thước của các khoảng trắng được thêm vào các cạnh của hình ảnh gốc và được tính theo công thức sau:
O=i +2∗ p −k
s +1(2.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 ngoài ảnh gốc; k: kích thước bộ lọc; s: bước lọc Như vậy, sau khi đưa một ảnh đầu vào cho lớp tích chập, kết quả đầu ra là một chuỗi các ảnh tương ứng với các bộ lọc được sử dụng để thực hiện 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 lần đầu và sẽ được cập nhật trong quá trình huấn luyện - Lớp kích hoạt phi tuyến tính ReLU: được xây dựng để đảm bảo tính phi tuyến tính của mô hình huấn luyện sau khi thực hiện một chuỗi các phép tính tuyến tính thông qua các lớp tích chập Lớp kích hoạt phi tuyến tính sử dụng các hàm kích hoạt phi tuyến tính như ReLU hoặc sigmoid, tanh để giới
Trang 12hạn phạm vi biên độ cho phép của giá trị đầu ra Trong số các hàm kích hoạt này,hàm ReLU được lựa chọn do cài đặt đơn giản, tốc độ xử lý nhanh mà vẫn đảm bảo tính toán hiệu quả Quá trình tính toán của hàm ReLU chỉ đơn giản là chuyểnđổi tất cả các giá trị âm thành 0 Lớp ReLU được áp dụng ngay sau lớp tích chập,với đầu ra là một hình ảnh mới có cùng kích thước với hình ảnh đầu vào, với các giá trị pixel hoàn toàn giống nhau, ngoại trừ các giá trị âm đã bị loại bỏ.
𝑓 ( 𝑥 ) = 𝑚𝑎𝑥 (0, 𝑥 ) (2.2)
Lớp lấy mẫu con: được đặt sau lớp tích chập và lớp ReLU để giảm kích thước của ảnh đầu ra trong khi vẫn giữ lại thông tin quan trọng của ảnh đầu vào Việc giảm kích thước dữ liệu có tác dụng giảm số lượng tham số cũng như tăng hiệu quả tính toán Lớp lấy mẫu cũng sử dụng một cửa sổ trượt để quét tất cả các vùngtrong ảnh giống như lớp tích chập và thực hiện lấy mẫu thay vì tích chập, chọn lưu một giá trị duy nhất biểu diễn tất cả thông tin của vùng ảnh đó
Hình 3 cho thấy các phương pháp lấy mẫu được sử dụng phổ biến nhất hiện nay,
đó là Max Pooling (lấy giá trị pixel lớn nhất) và Avarage Pooling (lấy giá trị trung bình của các pixel trong một vùng ảnh cục bộ)
Hình 2 3 Phương pháp gộp trung bình và gộp tối đa
Trang 152.
Trang 16
1.
Trang 17
Trang 19
Trang 224 3
1
2
Trang 251.7
4 5
4 6
Trang 264 7
4 8