Một trong những ứng dụng nổi bật nhất của CNN là phân loại hình ảnh trên tập dữ liệu ImageNet, một trong những tập dữ liệu lớn và phong phú nhất hiện nay.. Trong những năm gần đây, các m
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
ĐỒ ÁN CƠ SỞ
ImageNet Classification with
Deep Convolutional Neuron Networks
Ngành: Công Nghệ Thông Tin
Giảng viên hướng dẫn : Huỳnh Quốc Bảo
22DTHG3 2280618752 Trần Thị Ánh Nguyên
22DTHG3 2280602926 Trần Thị Kim Thanh
22DTHG3 2280602731 Nguyễn Thị Hương Sen
TP Hồ Chí Minh, 2024
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
ĐỒ ÁN CƠ SỞ
ImageNet Classification with
Deep Convolutional Neuron Networks
Ngành: Công Nghệ Thông Tin
Giảng viên hướng dẫn : Huỳnh Quốc Bảo
22DTHG3 2280618752 Trần Thị Ánh Nguyên
22DTHG3 2280602926 Trần Thị Kim Thanh
22DTHG3 2280602731 Nguyễn Thị Hương Sen
TP Hồ Chí Minh, 2024
Trang 5Lời Cam Đoan Nhóm 3G3 xin cam đoan rằng nội dung của báo cáo là kết quả của quá trình nghiên cứu độc lập của nhóm chúng tôi Mọi thông tin và dữ liệu trong báo cáo đều đã được trích dẫn và ghi nguồn một cách chính xác, rõ ràng và đầy đủ Nhóm 3G3 không sử dụng bất kỳ công cụ, phần mềm hoặc dịch vụ nào để sao chép hoặc tái tạo lại nội dung của người khác mà không ghi nguồn Chúng tôi đã hiểu rõ yêu cầu của đề tài và cam kết thực hiện đúng tiến độ, hoàn thành đề tài "ImageNet Classification with Deep Convolutional Neural Networks" theo thời hạn đã quy định
Nhóm chúng tôi nhận thức rõ về tầm quan trọng của tính liêm chính trong học thuật và tác động nghiêm trọng của việc đạo văn Nếu vi phạm bất kỳ điều gì trong cam đoan này, nhóm 3G3 sẵn sàng chịu mọi hậu quả theo quy định của nhà trường
Trang 6LỜI CẢM ƠN Trước hết, tôi xin thay mặt nhóm 3G3 bày tỏ lòng biết ơn sâu sắc đến thầy Huỳnh Quốc Bảo , không chỉ là người hướng dẫn nhóm 3G3 trong quá trình nghiên cứu và thực hiện bài báo cáo về "ImageNet Classification with Deep Convolutional Neuron Networks" mà còn là nguồn động viên, hỗ trợ và góp ý quý báu
Tôi cũng muốn gửi lời cảm ơn tới các bạn bè trong nhóm, đã luôn ủng hộ, động viên
và chia sẻ những kiến thức, nguồn tài liệu tham khảo, đặc biệt là những nghiên cứu và
dữ liệu liên quan đến phòng chống bạo lực học đường, giúp nhóm trong quá trình nghiên cứu làm bài một cách thuận lợi
Cuối cùng, nhóm 3G3 xin gửi lời tri ân đến gia đình của mình, người đã luôn ở bên nhóm 3G3, cung cấp sự yên bình và động viên tinh thần giúp nhóm 3G3 vượt qua những khó khăn và áp lực trong quá trình thực hiện bài báo cáo
Nhóm 3G3 biết rằng lời cảm ơn này chỉ là một phần nhỏ để bày tỏ lòng biết ơn sâu sắc của mình, nhưng nhóm 3G3 mong rằng mọi người sẽ hiểu và cảm nhận được tình cảm chân thành từ trái tim nhóm 3G3
Chân thành cảm ơn!
Trang 7Mục lục
Trang 8Danh mục hình ảnh
Trang 10CHƯƠNG 1: TỔNG QUAN
1.1 Giới thiệu đề tài
Với sự phát triển vượt bậc của trí tuệ nhân tạo (AI) và học máy (Machine Learning), các mạng nơ-ron tích chập sâu (Deep Convolutional Neural Networks - CNN) đã trở thành công
cụ hiệu quả trong việc giải quyết các bài toán nhận dạng hình ảnh phức tạp Một trong những ứng dụng nổi bật nhất của CNN là phân loại hình ảnh trên tập dữ liệu ImageNet, một trong những tập dữ liệu lớn và phong phú nhất hiện nay ImageNet chứa hơn 14 triệu hình ảnh được phân loại vào hơn 20.000 danh mục, là cơ sở quan trọng cho việc phát triển các mô hình học sâu
Trong những năm gần đây, các mô hình CNN đã đạt được những tiến bộ vượt bậc trong việc phân loại hình ảnh trên ImageNet, đặc biệt là sau thành công của mô hình AlexNet (Krizhevsky et al., 2012), ResNet (He et al., 2016), và VGG (Simonyan & Zisserman, 2014) Các nghiên cứu này đã chứng minh hiệu quả vượt trội của CNN trong việc giảm sai số nhận dạng và cải thiện độ chính xác phân loại
1.2 Lý thuyết và nghiên cứu liên quan
Mạng CNN, một dạng mạng nơ-ron nhân tạo đặc biệt, hoạt động dựa trên cơ chế lọc (convolution) và tổng hợp đặc trưng từ các hình ảnh đầu vào Mô hình này được phát triển mạnh mẽ nhờ những bước tiến trong kỹ thuật tính toán như GPU và các thư viện mã nguồn
mở như TensorFlow, PyTorch Các lý thuyết và nghiên cứu cơ bản có liên quan đến CNN bao gồm lý thuyết về quá trình tích chập (LeCun et al., 1998), các phương pháp tối ưu hóa và kỹ thuật giảm thiểu overfitting như dropout (Srivastava et al., 2014) và batch normalization (Ioffe & Szegedy, 2015)
1.2.1 Quá trình tích chập (Convolution Process)
Quá trình tích chập là cốt lõi của CNN, cho phép mạng học các đặc trưng không gian từ hình ảnh đầu vào Mỗi lớp tích chập áp dụng một bộ lọc (kernel) lên hình ảnh để tạo ra các bản đồ đặc trưng (feature maps) Các bộ lọc này được học tự động trong quá trình huấn luyện, giúp mạng nhận diện các đặc trưng quan trọng như cạnh, góc, và hình dạng
1.2.2 Các kỹ thuật giảm thiểu overfitting
Overfitting là vấn đề phổ biến trong việc huấn luyện các mô hình học sâu, khi mô hình học quá kỹ các đặc trưng của dữ liệu huấn luyện dẫn đến hiệu suất kém trên dữ liệu mới Để giảm thiểu overfitting, các kỹ thuật như dropout và batch normalization được áp dụng Dropout ngẫu nhiên loại bỏ một số nơ-ron trong quá trình huấn luyện, giúp mô hình không phụ thuộc quá nhiều vào bất kỳ nơ-ron nào Batch normalization chuẩn hóa các đầu vào của mỗi lớp, giúp tăng tốc độ huấn luyện và ổn định quá trình học
1.3 Nhiệm vụ của đồ án
Tính cấp thiết của đề tài
Trong thời đại số hóa hiện nay, việc phân loại và nhận dạng hình ảnh có vai trò vô cùng quan trọng trong các lĩnh vực như nhận diện khuôn mặt, xe tự lái, y tế, và giám sát an ninh Việc phát triển và cải tiến các mô hình CNN để xử lý các tập dữ liệu lớn như ImageNet không chỉ mang lại giá trị khoa học mà còn có ý nghĩa thực tiễn sâu rộng
Ý nghĩa khoa học và thực tiễn
Đề tài "ImageNet Classification with Deep Convolutional Neural Networks" giúp nghiên cứu
và ứng dụng các mô hình CNN hiện đại nhằm nâng cao hiệu quả phân loại hình ảnh Việc hiểu rõ cách thức hoạt động của CNN và tối ưu hóa mô hình sẽ góp phần giải quyết các bài
Trang 11toán phức tạp trong nhiều lĩnh vực thực tiễn, từ đó nâng cao tính chính xác và hiệu suất của các hệ thống nhận dạng
Mục tiêu nghiên cứu
1 Phân tích các mô hình CNN hiện đại như AlexNet, ResNet, VGG, và các biến thể
khác trên tập dữ liệu ImageNet
2 Đánh giá hiệu quả của các kỹ thuật tối ưu hóa và cải tiến mô hình để nâng cao độ
chính xác phân loại hình ảnh
3 Ứng dụng các mô hình CNN vào bài toán phân loại hình ảnh trên ImageNet và so
sánh kết quả
Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Các mô hình CNN và tập dữ liệu ImageNet.
Phạm vi nghiên cứu: Phân tích, tối ưu hóa các mô hình CNN và áp dụng chúng vào
bài toán phân loại trên tập dữ liệu ImageNet
1.4 Cấu trúc đồ án
Chương 1: Tổng quan
Giới thiệu chung về đề tài, tóm tắt các lý thuyết và nghiên cứu liên quan đến mạng nơ-ron tích chập (CNN) và phân loại hình ảnh trên ImageNet Trình bày nhiệm vụ và cấu trúc của đồ án
Chương 2: Cơ sở lý thuyết
Trình bày các lý thuyết cơ bản về mạng CNN, cách thức hoạt động và cấu trúc của các mô hình CNN phổ biến Phân tích chi tiết các thành phần chính như lớp tích chập, lớp pooling, và lớp fully connected
Chương 3: Kết quả thực nghiệm
Mô tả kết quả thực nghiệm của mô hình CNN trên tập dữ liệu ImageNet Đánh giá và so sánh hiệu quả của các mô hình dựa trên các tiêu chí như độ chính xác và tốc độ huấn luyện
Chương 4: Kết luận và kiến nghị
Tổng kết các kết quả đạt được, những đóng góp của nghiên cứu, và đề xuất các hướng phát triển tiếp theo cho việc phân loại hình ảnh dựa trên CNN
Chương 5: Tài liệu tham khảo
Liệt kê các tài liệu tham khảo đã sử dụng trong quá trình nghiên cứu và viết báo cáo
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu về Mạng Nơ-ron Tích Chập (CNN)
Mạng Nơ-ron Tích Chập (Convolutional Neural Networks - CNN) là một kiến trúc mạng nơ-ron nhân tạo được thiết kế đặc biệt để xử lý dữ liệu có cấu trúc dạng lưới, chẳng hạn như hình ảnh CNN nổi bật với khả năng tự động trích xuất và học các đặc trưng quan trọng từ dữ liệu đầu vào thông qua các lớp tích chập (convolutional layers)
2.1.1 Lịch sử phát triển của CNN
CNN được giới thiệu lần đầu tiên bởi Yann LeCun và cộng sự vào năm 1989 với mô hình LeNet-5, được sử dụng để nhận dạng chữ số viết tay Từ đó, CNN đã trải qua nhiều giai đoạn phát triển, đặc biệt là sau sự xuất hiện của các mô hình sâu hơn như AlexNet, VGG, và ResNet, mở ra kỷ nguyên học sâu trong lĩnh vực thị giác máy tính
2.2 Các thành phần chính của CNN
2.2.1 Lớp Tích Chập (Convolutional Layer)
Trang 12Lớp tích chập là thành phần cốt lõi của CNN, thực hiện việc áp dụng các bộ lọc (kernels) lên
dữ liệu đầu vào để tạo ra các bản đồ đặc trưng (feature maps) Mỗi bộ lọc được học tự động trong quá trình huấn luyện, giúp mạng nhận diện các đặc trưng cơ bản như cạnh, góc, và hình dạng
Công thức tích chập:
Hình 2.1 Công thức tính tích chập
Trong đó, M×NM \times NM×N là kích thước của kernel
2.2.2 Lớp Pooling (Pooling Layer)
Lớp pooling giúp giảm kích thước không gian của các bản đồ đặc trưng, từ đó giảm số lượng tham số và tính toán cần thiết Hai kỹ thuật pooling phổ biến nhất là Max Pooling và Average Pooling
Max Pooling: Chọn giá trị lớn nhất trong mỗi vùng được chia nhỏ.
Average Pooling: Tính giá trị trung bình trong mỗi vùng được chia nhỏ.
2.2.3 Lớp Fully Connected (Fully Connected Layer)
Lớp fully connected kết nối tất cả các nơ-ron của lớp trước đó với tất cả các nơ-ron của lớp hiện tại Đây là lớp cuối cùng trong CNN, chịu trách nhiệm kết hợp các đặc trưng đã học được để đưa ra dự đoán cuối cùng
2.2.4 Các kỹ thuật hỗ trợ
Batch Normalization: Chuẩn hóa dữ liệu đầu vào của mỗi lớp để tăng tốc độ huấn
luyện và ổn định quá trình học (Ioffe & Szegedy, 2015)
Dropout: Ngăn ngừa overfitting bằng cách ngẫu nhiên loại bỏ một số nơ-ron trong
quá trình huấn luyện (Srivastava et al., 2014)
2.3 Các mô hình CNN nổi bật
2.3.1 AlexNet (Krizhevsky et al., 2012)
AlexNet là một trong những mô hình CNN đầu tiên đạt được thành công lớn trong cuộc thi ImageNet 2012, giành chiến thắng với độ chính xác cao hơn đáng kể so với các đối thủ khác AlexNet sử dụng các lớp tích chập sâu, ReLU activation, và kỹ thuật Dropout để ngăn ngừa overfitting
2.3.2 VGGNet (Simonyan & Zisserman, 2014)
VGGNet nổi bật với cấu trúc đơn giản nhưng hiệu quả, sử dụng các bộ lọc nhỏ (3x3) và tăng
số lượng lớp sâu hơn Mô hình này cho thấy rằng việc tăng số lượng lớp và chiều sâu mạng có thể cải thiện hiệu suất phân loại mà không cần tăng kích thước của các bộ lọc
2.3.3 ResNet (He et al., 2016)
ResNet giới thiệu cơ chế kết nối dư (Residual Connections) giúp giải quyết vấn đề suy giảm đạo hàm trong các mạng rất sâu Cơ chế này cho phép mô hình học các hàm dư thừa, giúp việc huấn luyện các mạng sâu hơn trở nên khả thi và hiệu quả hơn
2.4 Các kỹ thuật tối ưu hóa trong CNN
Trang 132.4.1 Gradient Descent và các biến thể
Gradient Descent là thuật toán tối ưu hóa cơ bản trong việc huấn luyện mạng nơ-ron Các biến thể như Stochastic Gradient Descent (SGD), Adam, và RMSprop được sử dụng để cải thiện tốc độ hội tụ và hiệu quả huấn luyện
2.4.2 Learning Rate Scheduling
Điều chỉnh learning rate theo thời gian giúp mô hình hội tụ nhanh hơn và tránh bị kẹt ở các điểm cực tiểu cục bộ Các chiến lược như giảm learning rate theo từng epoch hoặc dựa trên hiệu suất trên tập validation thường được áp dụng
2.4.3 Data Augmentation
Data Augmentation là kỹ thuật tăng cường dữ liệu bằng cách áp dụng các phép biến đổi như xoay, lật, thay đổi độ sáng, giúp tăng tính đa dạng của dữ liệu huấn luyện và cải thiện khả năng tổng quát hóa của mô hình
2.5 Ứng dụng CNN trong phân loại hình ảnh
CNN đã được ứng dụng rộng rãi trong nhiều lĩnh vực như nhận diện khuôn mặt, xe tự lái, y tế (chẩn đoán bệnh từ hình ảnh y khoa), và giám sát an ninh Đặc biệt, việc phân loại hình ảnh trên tập dữ liệu ImageNet đã trở thành tiêu chuẩn để đánh giá hiệu suất của các mô hình CNN
2.5.1 Nhận diện khuôn mặt
CNN được sử dụng để trích xuất các đặc trưng quan trọng từ ảnh khuôn mặt, giúp phân biệt
và nhận diện từng cá nhân với độ chính xác cao
2.5.2 Xe tự lái
Trong lĩnh vực xe tự lái, CNN giúp nhận diện và phân loại các đối tượng xung quanh như xe khác, người đi bộ, tín hiệu giao thông, từ đó hỗ trợ quyết định lái xe an toàn
2.5.3 Y tế
CNN được áp dụng trong chẩn đoán hình ảnh y khoa như MRI, CT scans để phát hiện các bất thường, bệnh lý một cách nhanh chóng và chính xác
2.5.4 Giám sát an ninh
CNN giúp phân loại và nhận diện các hoạt động bất thường trong hệ thống giám sát an ninh, nâng cao khả năng phản ứng kịp thời và hiệu quả
Trang 14CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM
3.1 Môi trường thực nghiệm
Để thực hiện các thí nghiệm liên quan đến phân loại hình ảnh trên tập dữ liệu ImageNet bằng
mô hình ResNet50, môi trường thực nghiệm được thiết lập với các thông số kỹ thuật và phần mềm như sau:
Phần cứng:
o CPU: AMD Ryzen
o GPU: NVIDIA GeForce GTX
o RAM: 16 GB
o Ổ cứng: SSD 1TB
Phần mềm:
o Hệ điều hành: Windows 11
o Ngôn ngữ lập trình: Python 3.8
o Thư viện: TensorFlow 2.11, Keras, NumPy, Matplotlib, Requests
3.2 Quy trình thực nghiệm
Quy trình thực nghiệm được thực hiện theo các bước chính như sau:
1 Chuẩn bị Dữ liệu:
o Lấy hình ảnh từ các URL được cung cấp
o Tiền xử lý hình ảnh bao gồm thay đổi kích thước về 224x224 pixels và chuẩn hóa dữ liệu theo yêu cầu của mô hình ResNet50
2 Tải và Sử dụng Mô hình ResNet50:
o Sử dụng mô hình ResNet50 đã được huấn luyện trước trên tập dữ liệu ImageNet
o Mô hình được tải từ thư viện Keras với trọng số đã được huấn luyện sẵn (weights='imagenet')
3 Dự đoán và Hiển thị Kết quả:
o Dự đoán lớp của hình ảnh sau khi đã tiền xử lý
o Hiển thị hình ảnh cùng với các dự đoán lớp và xác suất tương ứng
4 Đánh giá Hiệu suất:
o Ghi nhận các dự đoán và so sánh với nhãn thực tế (nếu có) để đánh giá độ chính xác của mô hình
3.3 Mã nguồn thực nghiệm
Dưới đây là mã nguồn Python được sử dụng để thực hiện quá trình phân loại hình ảnh bằng
mô hình ResNet50:
Trang 15- GitHub
Giải thích mã nguồn
- Các bước để hoàn thành chương trình :
Bước 1: Nhập các thư viện cần thiết
o TensorFlow và Keras: Dùng để xây dựng và sử dụng mô hình CNN.
o NumPy: Xử lý mảng dữ liệu.
o Matplotlib: Hiển thị hình ảnh và kết quả dự đoán.
o Requests: Tải hình ảnh từ các URL.
o BytesIO: Xử lý dữ liệu nhị phân từ các URL.
Bước 2: Tải mô hình ResNet50 đã được huấn luyện trước trên ImageNet
o Sử dụng mô hình ResNet50 với trọng số đã được huấn luyện sẵn trên tập dữ liệu ImageNet
Bước 3: Định nghĩa hàm để tải và tiền xử lý hình ảnh từ URL
o Hàm load_and_preprocess_image nhận vào một URL hình ảnh, tải về, thay đổi kích thước, chuyển đổi thành mảng NumPy, và tiền xử lý theo yêu cầu của ResNet50
Bước 4: Định nghĩa hàm để hiển thị hình ảnh và kết quả dự đoán
o Hàm display_prediction hiển thị hình ảnh và in ra các lớp dự đoán cùng xác suất tương ứng
Bước 5: Tải và dự đoán một hình ảnh từ URL
o Hàm predict_image_from_url sử dụng các hàm đã định nghĩa để tải, tiền xử lý, dự đoán, và hiển thị kết quả cho một hình ảnh từ URL
Bước 6: Sử dụng hàm để dự đoán hình ảnh từ URL
o Danh sách img_urls chứa các URL hình ảnh mẫu Mã nguồn sẽ lặp qua từng URL, thực hiện dự đoán và hiển thị kết quả
3.4 Kết quả thực nghiệm
Các thí nghiệm được thực hiện với bốn hình ảnh mẫu từ các URL khác nhau Dưới đây là bảng kết quả dự đoán của mô hình ResNet50:
URL Hình Ảnh Lớp Dự
Đoán 1
Xác Suất
1 (%)
Lớp Dự Đoán 2
Xác Suất
2 (%)
Lớp Dự Đoán 3
Xác Suất
3 (%)
Hình 3.1
Flat -coated_retri
ever
60.93
%
Curly -coated_retriev er
26.04
%
Labrador_retrie ver
11.06
%