Thông tin đề tài - Tên của đề tài: THIẾT KẾ HỆ THỐNG PHÁT HIỆN VÀ NHẬN DIỆN SẢN PHẨM CHO QUẦY BÁN HÀNG TỰ ĐỘNG SỬ DỤNG PHƯƠNG PHÁP HỌC THÍCH ỨNG MIỀN - Đơn vị quản lý: Bộ môn Điện Công n
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
SVTH:
Tp Hồ Chí Minh, tháng 6/2023
ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN - ĐIỆN TỬ
THIẾT KẾ HỆ THỐNG PHÁT HIỆN VÀ NHẬN DIỆN SẢN PHẨM CHO QUẦY BÁN HÀNG TỰ ĐỘNG SỬ DỤNG
PHƯƠNG PHÁP HỌC THÍCH ỨNG MIỀN
GVHD: TS TRẦN VŨ HOÀNG ĐẶNG CÔNG TY
S K L 0 1 2 0 1 0
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN - ĐIỆN TỬ
Trang 3THÔNG TIN KHÓA LUẬN TỐT NGHIỆP
1 Thông tin sinh viên
Họ và tên sinh viên: Đặng Công Ty MSSV: 19142415
Email: 19142415@student.hcmute.edu.vn Điện thoại: 0792546076
2 Thông tin đề tài
- Tên của đề tài: THIẾT KẾ HỆ THỐNG PHÁT HIỆN VÀ NHẬN DIỆN SẢN PHẨM
CHO QUẦY BÁN HÀNG TỰ ĐỘNG SỬ DỤNG PHƯƠNG PHÁP HỌC THÍCH ỨNG MIỀN
- Đơn vị quản lý: Bộ môn Điện Công nghiệp, Khoa Điện - Điện Tử, Trường Đại Học
Sư Phạm Kỹ Thuật Tp Hồ Chí Minh
- Thời gian thực hiện: Từ ngày 14/02/2023 đến ngày 30/06/2023
3 Lời cam đoan của sinh viên
Chúng tôi – cam đoan Khóa Luận Tốt Nghiệp là công trình nghiên cứu của chúng tôi dưới sự hướng dẫn của TS Trần Vũ Hoàng Kết quả công bố trong Khóa Luận Tốt Nghiệp là trung thực và không sao chép từ bất kỳ công trình nào khác
Tp HCM, ngày 01 tháng 07 năm 2023
Nhóm sinh viên thực hiện đồ án
_
Trang 4ii
ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN: ĐIỆN CÔNG NGHIỆP
BẢNG NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
I TÓM TẮT NỘI DUNG CHÍNH
Thiết kế hệ thống phát hiện và nhận dạng sản phẩm được sử dụng tại các cửa hàng bán hàng tự động khi chỉ sử dụng dữ liệu tổng hợp để huấn luyện
II MÔ TẢ ĐỀ TÀI
Đề tài đề xuất áp dụng kỹ thuật học thích ứng miền (Domain Adaptation) bằng cách kết hợp kỹ thuật học đối nghịch (Adversarial Learning) vào quá trình huấn luyện mô hình YOLOv8 nhằm giảm sự khác biệt trên miền đặc trưng giữa dữ liệu tổng hợp và dữ liệu thực tế Từ đó, hệ thống phát hiện và nhận dạng sản phẩm được huấn luyện trên các dữ liệu tổng hợp vẫn có thể hoạt động tốt trên dữ liệu thực tế
II.1 Tính cần thiết
Việc kết hợp kỹ thuật học thích ứng miền sẽ giúp tiết kiệm thời gian và công sức thu thập một lượng dữ liệu lớn cho việc huấn luyện
II.2 Bài toán đặt ra (Nội dung cần giải quyết)
Chỉ sử dụng tập dữ liệu tổng hợp đến để huấn luyện nhưng sẽ đánh giá trên tập dữ liệu thực tế
II.3 Kỹ thuật – Phương pháp sử dụng để giải quyết vấn đề
Đề tài đề xuất huấn luyện mô hình YOLOv8 với phương pháp học thích ứng miền sử dụng việc học đối nghịch Để có một mô hình học đối nghịch phù hợp với YOLOv8, đề tài đề xuất sử dụng nhiều Critic tương ứng với các Head của YOLOv8 Và trong bản thân mỗi Critic, đề tài cũng đề xuất một mô hình Critic mới có tên là Critic đa tác vụ nhằm giúp việc học đối nghịch phù hợp hơn với bài toán nhận diện và phát hiện đối tượng
II.4 Kết quả đạt được
Kết quả cuối cùng cho thấy hệ thống đề xuất có độ chính xác tăng 6.7%, độ phản hồi tăng 7.1%, và mAP tăng 10.3% khi so với YOLOv8 gốc Tốc độ xử lý vẫn không thay đổi, đạt được 127 FPS trên RTX 3090
Trang 5iii
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
LUẬN, LUẬN VĂN, LUẬN ÁN)
I Thông tin chung
1 Tên sản phẩm học thuật: THIẾT KẾ HỆ THỐNG PHÁT HIỆN VÀ NHẬN DIỆN SẢN PHẨM CHO QUẦY BÁN HÀNG TỰ ĐỘNG SỬ DỤNG PHƯƠNG PHÁP HỌC THÍCH ỨNG MIỀN
2 Loại hình sản phẩm học thuật: khóa luận tốt nghiệp
Khoa: Điện – Điện tử
II Kết quả kiểm tra đạo văn
Ngày nộp sản phẩm Ngày kiểm tra đạo
văn
% trùng lặp toàn nội
dung
% trùng lặp cao nhất từ 1 nguồn
Lưu ý: % trùng lặp nêu ở bảng trên không tính % trùng lặp của danh mục tài liệu tham khảo
III Cam kết
Nhóm tác giả sản phẩm học thuật và giảng viên hướng dẫn cam kết rằng:
1 Nội dung trong sản phẩm học thuật nêu trên không vi phạm đạo đức và liêm chính khoa học
2 Kết quả % trùng lặp nêu tại mục II là hoàn toàn chính xác và trung thực
3 Bằng việc ký xác nhận vào mẫu này, nhóm tác giả và giảng viên hướng dẫn cam kết chịu hoàn toàn trách nhiệm có liên quan đến sản phẩm học thuật nói trên
Xác nhận của đại diện nhóm tác giả Xác nhận của giảng viên hướng dẫn
(ký ghi rõ họ và tên) (ký ghi rõ họ và tên)
Mẫu 1
(Kèm theo QĐ số 1047/QĐ-ĐHSPKT ngày 14 tháng 3 năm 2022)
Trang 6iv
LỜI CẢM ƠN
Đầu tiên em xin được bày tỏ lòng biết ơn đến gia đình, quý thầy cô và bạn bè trong trường đã tạo điều kiện cũng như hỗ trợ và giúp đỡ em trong suốt quá trình học tập, nghiên cứu Đồ án tốt nghiệp
Và đặc biệt em xin gửi lời cảm ơn sâu sắc nhất đến TS Trần Vũ Hoàng, giảng viên Khoa Điện - Điện tử, trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, người đã tận tình hướng dẫn, góp ý cho em trong suốt quá trình làm Đồ án tốt nghiệp Một lần nữa em xin cảm ơn đến gia đình, quý thầy cô giáo của trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh nói chung, các thầy cô trong Bộ môn Điện Công Nghiệp nói riêng đã tạo điều kiện giúp đỡ và truyền tải cho chúng em những kiến thức từ cơ sở đến chuyên ngành từ đó giúp chúng em có được cơ sở lý thuyết vững vàng
Trong quá trình nghiên cứu, tìm hiểu và thực hiện đề tài sẽ không tránh khỏi những sai sót Em rất mong nhận được những sự góp ý từ quý Thầy Cô để đề tài được hoàn thiện hơn và có thể ứng dụng trên thực tế
Em xin chân thành cảm ơn!
Trang 7v
TÓM TẮT
Hiện nay, một số cửa hàng bán lẻ truyền thống vẫn thanh toán bằng cách nhớ giá trị của từng mặt hàng và tự tính tổng số tiền khách hàng cần trả Điều này rất tốn thời gian và có thể có nhiều sai sót trong lúc tính toán Đối với các cửa hàng lớn và hiện đại hơn thì tất cả sản phẩm đều được xác định giá trên máy chủ và nhân viên của cửa hàng
sẽ quét mã QR trên sản phẩm để thanh toán nên việc thanh toán sẽ nhanh và chính xác hơn Tuy nhiên, mã QR trên sản phẩm có thể bị mờ hoặc bị méo dạng do va đập và ma sát trong quá trình vận chuyển và lưu trữ hàng hóa, dẫn tới máy đọc không thể quét được
mã Khi những trường hợp này xảy ra, nhân viên thường phải nhập mã bằng tay hoặc kiếm một sản phẩm tương tự để quét mã Việc này mang lại những bất tiện nhất định cho cả nhân viên và những khách hàng Do đó, công nghệ trí tuệ nhân tạo (AI) đã được
sử dụng trong các cửa hàng bán lẻ tự động để giải quyết các vấn đề của các cửa hàng truyền thống Các cửa hàng này sử dụng camera và các thuật toán xử lý ảnh để nhận diện các sản phẩm điều này giúp giải quyết được vấn đề của mã QR nhưng số loại sản phẩm ngày càng lớn và các sản phẩm khá giống nhau dẫn đến các thuật toán xử lý ảnh không còn giải quyết được hết tất cả trường hợp được nữa Do đó, trong nghiên cứu này, người nghiên cứu đề xuất sử dụng mô hình học sâu YOLOv8 để phát hiện và nhận diện các sản phẩm trong cửa hàng Để tiết kiệm thời gian và công sức thu thập một lượng dữ liệu lớn cho việc huấn luyện, người nghiên cứu đề xuất sử dụng dữ liệu tổng hợp – dữ liệu được tạo ra một cách nhân tạo từ việc ghép hình chiếu 3D của sản phẩm ở các mặt khác nhau vào nền thực tế Với dữ liệu tổng hợp, chúng ta có thể tạo ra một số lượng bất kì với các góc độ khác nhau tùy thích của các sản phẩm đáp ứng được việc huấn luyện mô hình học sâu Tuy nhiên, đây là dữ liệu nhân tạo, nên dữ liệu này cũng sẽ có đôi chút khác so với dữ liệu thực tế, việc mô hình có thể hoạt động trên các dữ liệu này không đảm bảo rằng chúng có thể hoạt động được trên các dữ liệu thực tế Để giải quyết vấn đề này, người nghiên cứu đề xuất áp dụng kỹ thuật học thích ứng miền (Domain Adaptation) bằng cách kết hợp kỹ thuật học đối nghịch (Adversarial Learning) vào quá trình huấn luyện mô hình YOLOv8 nhằm giảm sự khác biệt trên miền đặc trưng giữa dữ liệu tổng hợp và dữ liệu thực tế Kết quả thực nghiệm trên tập dữ liệu AI City Challenge
22 cho thấy độ chính xác tăng 6.7%, độ phản hồi tăng 7.1%, và mAP tăng 10.3% khi so
Trang 8vi sánh với việc chỉ huấn luyện trên mô hình YOLOv8 gốc Bên cạnh đó, tốc độ của mô hình không đổi so với YOLOv8 trên phần cứng RTX 3090
Trang 9vii
MỤC LỤC
THÔNG TIN KHÓA LUẬN TỐT NGHIỆP i
LỜI CẢM ƠN iv
TÓM TẮT v
MỤC LỤC vii
DANH MỤC CÁC TỪ VIẾT TẮT ix
DANH MỤC CÁC BẢNG BIỂU x
DANH MỤC HÌNH ẢNH xi
Chương 1 MỞ ĐẦU 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu nghiên cứu 1
1.3 Nhiệm vụ nghiên cứu 2
1.4 Giới hạn đề tài 2
1.5 Phương pháp nghiên cứu 2
1.6 Bố cục của Đồ án 2
Chương 2: CƠ SỞ LÝ THUYẾT 4
2.1 Convolution Neuron Network 4
2.2 Convolution Layer 5
2.3 Pooling Layer 6
2.4 Fully Connected Layer 6
2.5 Activation Function 6
2.6 Object Detection 7
2.6.1 YOLOv1 8
2.6.2 YOLOv4 9
2.6.2.1 Backbone 9
2.6.2.2 Neck 11
2.6.2.3 Head 13
2.6.3 Scaled-YOLOv4 14
2.6.4 YOLOv8 14
2.6.4.1 Neck 15
2.6.4.2 Head 16
2.7 GAN – Generative Adversarial Networks 16
2.7.1 DCGAN 17
2.7.2 WGAN 18
2.7.3 Ứng dụng của GAN vào Domain Adaptation 19
2.8 Data Synthetic 20
Trang 10viii
Chương 3: THIẾT KẾ HỆ THỐNG 22
3.1 Yêu cầu thiết kế 22
3.2 Tổng quan hệ thống 22
3.3 Bộ dữ liệu huấn luyện 23
3.4 Khối phát hiện đối tượng với nhiều bộ Critic (Multi-Critic) dựa trên kỹ thuật học đối nghịch 24
3.4.1 YOLOlosses 26
3.4.2 Advloss 28
3.5 Khối đánh giá đa nhiệm Critic (Multi-task Critic) 28
3.6 Quá trình suy luận của mô hình YOLOv8 (Inference phase) 30
Chương 4: KẾT QUẢ THỰC NGHIỆM 31
4.1 Thiết lập môi trường mô phỏng để đánh giá kết quả thực nghiệm 31
4.1.1 Phần cứng và phần mềm 31
4.1.2 Bộ dữ liệu 31
4.2 Phương pháp đánh giá 32
4.3 Kết quả thực nghiệm của hệ thống 32
Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 36
5.1 Kết luận 36
5.2 Hạn chế của đề tài 36
5.3 Hướng phát triển 36
TÀI LIỆU THAM KHẢO 37
PHỤ LỤC 41
Trang 11ix
DANH MỤC CÁC TỪ VIẾT TẮT
YOLO: You Only Look Once
CNN: Convolutional Neural Network
FC: Fully Connected
SPP: Spatial Pyramid Pooling
CSPNet: Cross Stage Partial Network
PANet: Path Aggregation Network
GAN: Generative Adversarial Network
DCGAN: Deep Convolutional Generative Adversarial Network WGAN: Wasserstein Generative Adversarial Network
ROI: Region of Interest
FPS: Frame per Second
Trang 12x
DANH MỤC CÁC BẢNG BIỂU
Bảng 3.1 Bảng so sánh các mô hình Object Detection trên tập dữ liệu COCO 25Bảng 4.1 Bảng so sánh kết quả khi dùng phương pháp học thích ứng miền và khi không dùng phương pháp học thích ứng miền 33Bảng 4.2 Bảng so sánh kết quả khi sử dụng phương pháp học bán giám sát 34
Trang 13xi
DANH MỤC HÌNH ẢNH
Hình 1.1 Sự khác nhau giữa môi trường cách ly và môi trường thực tế 1
Hình 2.1 Ví dụ về kiến trúc cơ bản của CNN.[6] 4
Hình 2.2 Ví dụ về lớp tích chập [6] 5
Hình 2.3 Ví dụ về lớp tích chập với Stride là 1 và Stride là 2 5
Hình 2.4 Ví dụ về Max Pooling và Average Pooling 6
Hình 2.5 Ví dụ về Fully Connected Layer 6
Hình 2.6 Ví dụ về một số hàm kích hoạt 7
Hình 2.7 Ví dụ về YOLOv1 8
Hình 2.8 Kiến trúc mạng YOLOv1 9
Hình 2.9 Kiến trúc mạng YOLOv4 9
Hình 2.10 Khối CSP 10
Hình 2.11 Bảng so sánh kiến trúc của Darknet-19 và Darknet-53 11
Hình 2.12 Sự khác nhau của kiến trúc khi sử dụng và không sử dụng SPP 12
Hình 2.13 Sơ đồ của khối SPP [25] 12
Hình 2.14 Kiến trúc của PANet 13
Hình 2.15 Head ở YOLOv4 14
Hình 2.16 CSP Neck 14
Hình 2.17 Kiến trúc của YOLOv8 15
Hình 2.18 Khối C2f (trái) và Khối BottleNeck (phải) 15
Hình 2.19 Coupled Head và Decoupled Head 16
Hình 2.20 Kiến trúc của DCGAN 18
Hình 2.21 Kiến trúc của WGAN 19
Hình 2.22 Ví dụ về biến đổi không gian ảnh từ miền nguồn sang miền đích 20
Hình 2.23 Ví dụ về áp dụng học đối nghịch để giảm khoảng cách từ miền nguồn sang miền đích 20
Hình 2.24 Ví dụ về dữ liệu thật (trái) và dữ liệu tổng hợp (phải) 21
Hình 3.1 Tổng quan kiến trúc hệ thống 23
Hình 3.2 Region of Interest (ROI) 23
Hình 3.3 Dữ liệu và mặt nạ (mask) của tập dữ liệu AIC22 24
Hình 3.4 Một số mẫu trong bộ dữ liệu mới, dữ liệu chưa được cân bằng sáng (trái) và dữ liệu đã được cân bằng sáng (phải) 24
Hình 3.5 Ảnh minh họa rời rạc hóa giá trị từ tâm đến các cạnh của Bounding Box 27
Hình 3.6 Chi tiết mô hình đánh giá Critic 30
Hình 4.1 Bộ dữ liệu AIC22(trái) và bộ dữ liệu được tạo ra để huấn luyện(phải) 31
Hình 4.2 Ảnh được lấy ra từ những video thực tế của tập dữ liệu AIC22 32
Hình 4.3 Điểm số của đặc trưng ảnh tổng hợp (trái) và điểm số của đặc trưng ảnh thật (giữa) khi đưa qua mô hình Critic Khoảng cách giữa 2 đặc trưng thật và tổng hợp (phải) 34
Hình 4.4 So sánh kết quả giữa YOLOv8 gốc (hàng đầu tiên) và hệ thống đề xuất (hàng thứ 2) 35
Hình 4.5 Một số trường hợp phát hiện sai của hệ thống đề xuất 35
Trang 141
Chương 1 MỞ ĐẦU 1.1 Lý do chọn đề tài
Hệ thống tính tiền tại cái quầy bán hàng trong các siêu thị chủ yếu là dùng máy quét
mã vạch hoặc máy quét mã QR để xác định giá của sản phẩm Những phương thức này tốn khá nhiều thời gian và chi phí ban đầu Thêm vào đó, khi mã vạch hoặc mã QR trên sản phẩm bị mờ hay mất một phần thì rất khó để nhận diện Để khắc phục những vấn đề này, rất nhiều ứng dụng về AI và Computer Vision được sử dụng trong các cửa hàng Tuy nhiên, phương pháp truyền thống là xử lý ảnh thuần thì cần môi trường cách ly, không có bất kỳ ảnh hưởng của môi trường như ánh sáng, tay người, [1] Và phương pháp này chỉ phát hiện được một sản phẩm trong một thời điểm được thể hiện ở Hình 1.1(a) Do đó, mô hình học sâu được ứng dụng để giải quyết vấn đề của phương pháp
xử lý ảnh thuần, nhưng cách tiếp cận này gặp những vấn đề khác như là cần thu thập bộ
dữ liệu lớn và được đánh nhãn, điều này rất tốn thời gian, vì thế, phương pháp sinh dữ liệu tổng hợp từ việc quét 3D trên máy tính được ra mắt [2] Tuy nhiên, độ chính xác khi dùng dữ liệu tổng hợp này để huấn luyện và chạy trên thực tế giảm đi đáng kể, bởi
vì rất khó để tạo ra dữ liệu giống thực tế hoàn toàn Vì thế, luận văn này sẽ tập trung vào phần phát hiện sản phẩm bằng phương pháp học thích ứng miền bằng việc kết hợp GAN [3], [4] vào YOLOv8 [5] nhằm tăng độ chính xác khi sử dụng dữ liệu tổng hợp để huấn luyện
Hình 1.1 Sự khác nhau giữa môi trường cách ly và môi trường thực tế
1.2 Mục tiêu nghiên cứu
Thiết kế hệ thống phát hiện và nhận dạng sản phẩm được sử dụng tại các cửa hàng bán hàng tự động được thể hiện ở Hình 1.1 (b), khi chỉ sử dụng dữ liệu tổng hợp để huấn
Trang 152
luyện Hệ thống sẽ phát hiện sản phẩm bằng việc sử dụng mô hình YOLOv8 kết hợp với GAN để cải thiện độ chính xác
1.3 Nhiệm vụ nghiên cứu
- Nhiệm vụ 1: Phân tích các thử thách của đề tài
- Nhiệm vụ 2: Khảo sát mô hình và tham khảo tài liệu
- Nhiệm vụ 3: Đề xuất mô hình và tóm tắt toàn bộ hệ thống
- Nhiệm vụ 4: Tiền xử lý dữ liệu
- Nhiệm vụ 5: Thay đổi trong mô hình YOLOv8 (thay đổi thuật toán huấn luyện
và kết hợp mô hình GAN vào mô hình)
- Nhiệm vụ 6: Đánh giá kết quả
- Nhiệm vụ 7: Viết luận văn báo cáo đồ án tốt nghiệp
1.4 Giới hạn đề tài
- Dữ liệu sử dụng trong đồ án còn hạn chế nên chỉ phân biệt được 116 sản phẩm
từ bộ dữ liệu AIC22
- Chưa đưa hệ thống lên phần cứng
1.5 Phương pháp nghiên cứu
Các phương pháp được sử dụng trong đồ án bao gồm:
- Phương pháp nghiên cứu tài liệu: Thu thập và nghiên cứu các bài báo liên
quan đến đề tài
- Phương pháp thực nghiệm: Huấn luyện và xây dựng mô hình phát hiện sản
phẩm với nhiều thông số khác nhau
1.6 Bố cục của Đồ án
- Chương 1: Giới thiệu Chương này sẽ giới thiệu tổng quan tình hình nghiên
cứu trước đây của các hệ thống tự động bán hàng để từ đó rút ra các hạn chế
và đề xuất hướng giải quyết phù hợp Cuối cùng là phần trình bày tổng quan
bố cục đồ án
- Chương 2: Cơ sở lý thuyết Giới thiệu các thuật toán, các phương pháp như
CNN, Object Detection, GAN, Domain Adaptation, Data Synthetic
- Chương 3: Thiết kế hệ thống Chương này mô tả các bước để tìm ra giải pháp
cho vấn đề và đặt yêu cầu cho hệ thống đề xuất Phương pháp được mô tả từ tổng quan đến chi tiết của các thuật toán bên trong
Trang 163
- Chương 4: Kết quả thực nghiệm Đưa ra các kết quả thực nghiệm để từ đó
đánh giá và lựa chọn thuật toán phù hợp nhất
- Chương 5: Kết luận và hướng phát triển Chương tổng kết hoạt động và các
giới hạn của hệ thống Từ đó, đưa ra các hướng phát triển
Trang 174
Chương 2: CƠ SỞ LÝ THUYẾT
Chương 2 giới thiệu về định nghĩa của Convolution Neuron Network (CNN), lý
thuyết về Object Detection, đặc biệt là các mạng YOLO, GAN (Generative Adversarial
Network) và học thích ứng miền cũng được giới thiệu ở chương này
2.1 Convolution Neuron Network
Trước đây, do mô hình chỉ có các lớp kết nối đầy đủ (Fully Connected layers) nên
mô hình neural không thể học sâu được Bởi vì khi mạng càng sâu, số lượng tham số
của mô hình sẽ tăng lên rất nhanh, ví dụ, đầu vào của mô hình là ảnh RGB có kích 28x28 thì lớp đầu vào sẽ có 2.352 nút (28*28*3=2.352) Giả sử số lượng nút ở lớp ẩn
đầu tiên là 100 nút thì số lượng tham số giữa lớp đầu vào và lớp ẩn là 2.352 * 100 =
235.200 Tuy nhiên, đó mới chỉ có một lớp ẩn, nếu mô hình có số lớp ẩn nhiều hơn,
chẳng hạn như 4, 5 thì số lượng tham số sẽ tăng lên rất nhiều Điều này khiến mô hình
mạng rất nặng và cần rất nhiều dữ liệu để huấn luyện cũng như thời gian tính toán lâu
Thêm vào đó, các điểm ảnh của hình ảnh không độc lập nhau mà có liên hệ với các điểm
ảnh lân cận, vì thế, nếu đưa các điểm ảnh một cách độc lập vào mô hình sẽ không hợp
lý Do đó, mạng neural tích chập (CNN) [6] ra đời để giải quyết các vấn đề trên Kiến
trúc của mạng tích chập phổ biến được thể hiện ở Hình 2.1 Ảnh đầu vào đi qua các lớp
tích chập (Convolution Layers) và các lớp gộp (Pooling Layers) để trích xuất các đặc
trưng, sau đó các đặc trưng được tổng hợp trước đó sẽ được gửi qua lớp kết nối đầy đủ
(Fully Connected Layers) để đưa ra đầu ra dự đoán Chi tiết về các lớp này sẽ được
trình bày chi tiết ở các mục tiếp theo
Hình 2.1 Ví dụ về kiến trúc cơ bản của CNN.[6]
Trang 18tự nếu Stride là N thì mỗi lần bộ lọc sẽ di chuyển qua N pixel Giá trị của Stride càng lớn thì đầu ra sẽ càng nhỏ được thể hiện qua Hình 2.3
(a) Không có Padding (b) Có Padding
Hình 2.2 Ví dụ về lớp tích chập [6]
Hình 2.3 Ví dụ về lớp tích chập với Stride là 1 và Stride là 2
Trang 196
2.3 Pooling Layer
Pooling layer thường được dùng giữa các Convolutional layer, để giảm chiều không gian của dữ liệu nhưng vẫn giữ được các thuộc tính quan trọng Có nghĩa là, sau khi đầu vào đi qua các Convolution layer thì tiếp đến Pooling layer để lược bớt các thông tin không cần thiết Trong quá trình này, quy tắc về Stride và Padding áp dụng như phép tính Convolution trên ảnh Thông thường, có hai dạng Pooling chính là Max Pooling và Average Pooling Trong đó, Max Pooling chọn giá trị lớn nhất làm giá trị đầu ra còn Average Pooling thì chọn giá trị trung bình cộng Trong Hình 2.4 cho thấy ví dụ về hai loại Pooling với kích thước bộ lọc là 2×2 và stride=2
2.4 Fully Connected Layer
Sau khi ảnh được truyền qua nhiều Convolutional layer và Pooling layer thì đầu ra của lớp cuối cùng sẽ được làm phẳng thành vector và đưa vào Fully Connected layer như một mạng nơ-ron Cuối cùng sử dụng Softmax hoặc Sigmoid để phân loại đầu ra Hình 2.5 mô tả một khối Fully Connected layer cơ bản
2.5 Activation Function
Dữ liệu hiện nay đều ở dạng không tuyến tính, vì thế nên khi đầu ra của mạng ron tuyến tính thì mô hình sẽ rất khó để phát hiện ra các mối quan hệ phức tạp trong dữ
nơ-Hình 2.4 Ví dụ về Max Pooling và Average Pooling
Hình 2.5 Ví dụ về Fully Connected Layer
Trang 20Object Detection là một trong những bài toán đang rất được quan tâm hiện nay Nó
có rất nhiều ứng dụng, như phát hiện khuôn mặt, phát hiện xe và được sử dụng trong hệ thống xe tự hành Mô hình Object Detection sẽ xác định vị trí của các đối tượng trong hình ảnh, đánh dấu chúng bằng Bounding Box và gán nhãn cho từng Bounding Box tương ứng Để phát hiện được đối tượng, có rất nhiều phương pháp được sử dụng, nhưng chúng có thể được nhóm thành hai loại chính: Two-Stage Approach và One-Stage Approach Nhóm đầu tiên, Two-Stage Approach, sử dụng hai mô hình riêng biệt để phát hiện và phân loại đối tượng Mô hình đầu tiên sẽ làm nhiệm vụ phát hiện vùng chứa các đối tượng (Region of Interest) trong hình ảnh, sau đó, mô hình thứ hai sẽ phân loại và định vị các đối tượng đó Phương pháp này cho ra độ chính xác cao, nhưng lại có tốc độ thấp và không phù hợp với những bài toán cần chạy trên thời gian thực Một số mô hình Two-Stage phổ biến là R-CNN [7], Fast-RCNN [8] và Faster-RCNN [9] Nhóm thứ hai, One-Stage Approach, thực hiện cả hai nhiệm vụ phát hiện và phân loại đối tượng cùng một lúc Do thực hiện cả hai nhiệm vụ trong một mô hình, cách tiếp cận này có tốc độ nhanh hơn các mô hình Two-Stage, trong khi độ chính xác vẫn không thấp hơn Mô hình One-Stage nổi tiếng như SSD [10] (Single Shot Detection) và họ YOLO [11] [12] [13] [14] [15] [16] [17] [5](You Only Look Once)
Hình 2.6 Ví dụ về một số hàm kích hoạt
Trang 218
2.6.1 YOLOv1
YOLO [11] (You Only Look Once) là một mô hình phát hiện đối tượng đột phá được giới thiệu vào năm 2016 bởi Joseph Redmon Với tốc độ xử lý đáng kinh ngạc, YOLO vượt trội hơn các mô hình phát hiện đối tượng trước đó và có khả năng hoạt động trong thời gian thực Ý tưởng chính của YOLO là chia ảnh thành lưới SxS, trong đó mỗi
ô lưới chịu trách nhiệm phát hiện một đối tượng và tạo ra nhiều Bounding Box với các kích thước khác nhau Ví dụ, trong YOLOv1 được minh họa trong Hình 2.7, một ảnh được chia thành lưới 7x7, và mô hình bắt đầu phát hiện đối tượng trong từng ô Nếu có đối tượng trong ô, mô hình sẽ tạo ra hai Bounding Box cho ô đó Mỗi Bounding Box dự đoán vị trí trung tâm (x, y), kích thước (w, h) và điểm đánh giá (confidence) cho biết xác suất đối tượng nằm trong ô đó Nhìn chung, mỗi Bounding Box được YOLO dự đoán bao gồm năm giá trị: (x, y, w, h, confidence), tất cả đều được chuẩn hóa để nằm trong khoảng từ 0 đến 1 Hình 2.8 cho thấy kiến trúc của mạng YOLOv1, được thiết kế
để phát hiện 20 loại đối tượng, với đầu vào mạng là ảnh RGB (Red-Green- Blue) có kích thước là (448, 448, 3), và đầu ra là mảng có chiều là (S, S, Bx5+C) = (7, 7, 2x5+20)
= (7, 7, 30) Mô hình bao gồm 24 lớp Convolution làm nhiệm vụ trích xuất đặc trưng ảnh, theo sau là 2 lớp Fully Connected chịu trách nhiệm dự đoán tọa độ và điểm đánh giá Tuy nhiên, kiến trúc YOLOv1 có một số hạn chế là rất khó để phát hiện vật thể nhỏ bên cạnh đó mỗi ô lưới chỉ phát hiện được một đối tượng dẫn đến việc các đối tượng bị chồng lấn nhau sẽ không được phát hiện
Hình 2.7 Ví dụ về YOLOv1
Trang 22mô hình gồm 3 khối chính: Backbone, Neck, Heads Chi tiết của các khối sẽ được đề cập chi tiết ở các phần tiếp theo
2.6.2.1 Backbone
Backbone của mô hình YOLOv4 thường sử dụng các mô hình đã được huấn luyện trước trên các tập dữ liệu rất lớn như ImageNet [19], có nhiệm vụ trích xuất đặc trưng của ảnh đầu vào Có nhiều loại Backbones như VGG16 [20], CSPResNet50 [21],
Hình 2.9 Kiến trúc mạng YOLOv4
Trang 2310
CSPDarknet53 [21], và EfficentNet [22] Tuy nhiên, CSPDarkNet53 được chọn làm Backbone cho mô hình YOLOv4 do độ chính xác mà nó mang lại CSPDarkNet53 là sự kết hợp của các khối CSP vào mạng DarkNet53 [13]
a) Khối CSP (Cross Stage Partial)
Khối CSP dựa trên kiến trúc DenseNet [23] có tác dụng làm giảm số lượng tính toán cũng như tăng khả năng học của mô hình Đầu vào của khối được chia thành 2 nhánh, nhánh đầu tiên sẽ đi qua khối tích chập và nhánh còn lại sẽ kết hợp trực tiếp với đầu ra của nhánh thứ nhất được mô tả ở Hình 2.10 Do đó, khối CSP sẽ biết được những đặc trưng nào không cần trích xuất, và đặc trưng nào cần trích xuất, dẫn đến mô hình sẽ
có tốc độ nhanh hơn và độ chính xác cũng được cải thiện Bên cạnh đó, việc kết nối trực tiếp sẽ giúp mô hình tránh được vấn đề Vanishing Gradient
Trang 24a) SPP – Spatial Pyramid Pooling
CNN thường được sử dụng để trích xuất đặc trưng hình ảnh với đầu vào cố định
để tạo ra đầu ra cố định Do đó, các hình ảnh có kích thước không đúng phải được thay đổi Việc này gây ra vấn đề là hình ảnh bị méo và bị giảm độ phân giải Do đó, SPP đã được tạo ra Một lớp SPP được thêm vào tại lớp tích chập cuối cùng để kết hợp các đặc trưng và tạo ra một đầu ra với kích thước nhất định, sau đó đưa nó vào các lớp kết nối đầy đủ Việc này tránh việc cắt và làm méo hình ảnh Hình 2.12 mô tả sự thay đổi trong kiến trúc mạng khi thêm SPP Đầu tiên, khối cắt, thay đổi kích thước ảnh đầu vào đã bị
Trang 2512
loại bỏ Sau đó, kích thước của feature map được điều chỉnh sau khi đã được đi qua tất
cả các lớp Convolution bằng một khối Spatial Pyramid Pooling (SPP) đằng sau lớp Convolution cuối cùng Trong YOLOv4, thuật toán SPP có một số khác biệt, nó không còn chia feature map thành các khối rồi ghép chúng lại thành vector 1 chiều, mà áp dụng Max Pooling với các kernel có kích thước khác nhau (Multi-scale Maxpooling) Kích thước của feature map đầu vào sẽ được giữ nguyên, và các feature map thu được từ việc
sử dụng Max Pooling (với các kernel kích thước khác nhau) sẽ được ghép lại như được thể hiện trong Hình 2.13
Hình 2.13 Sơ đồ của khối SPP [25]
b) PAN – Path Aggregation Network
Trước đây FPN (Feature Pyramid Network) [26], thể hiện trong khối (a) của Hình 2.14, được sử dụng để trích xuất và kết hợp đặc trưng ngữ nghĩa và đặc trưng không
Hình 2.12 Sự khác nhau của kiến trúc khi sử dụng và không sử dụng SPP
Trang 2613
gian thông qua phương pháp Bottom-up và Top-down Tuy nhiên, đối với các đối tượng lớn, kỹ thuật này rất tốn thời gian để trích xuất các đặc trưng về không gian vì đầu vào cần được đưa qua hàng trăm lớp của mạng Để giải quyết vấn đề này, PAN, mô tả ở khối (a) và (b) của Hình 2.14, được tạo ra với việc thêm một khối Bottom-up vào sau khối FPN Điều này rút ngắn đường đi bằng cách sử dụng các kết nối bên từ các lớp thấp đến các lớp cao, giúp cho việc trích xuất đặc trưng hiệu quả hơn
2.6.2.3 Head
Sau khi ảnh đầu vào được đưa qua Backbone và Neck để trích xuất đặc trưng thì YOLOv4 lấy ra các đặc trưng ở Neck với các kích thước khác nhau để đưa vào khối Head được thể hiện ở Hình 2.15 Head được cấu tạo bởi các lớp Convolution và các lớp Fully Connected Đầu ra ở mỗi Head sẽ có chiều NxNx[3*(4+1+K)] với NxN là kích thước của đặc trưng được lấy ra từ Neck, và tại mỗi Head sẽ dự đoán 3 Bounding Boxes với 4 tọa độ, 1 confidence score và K classes Do YOLOv4 sử dụng 3 đặc trưng từ 3 giai đoạn khác nhau của Neck để đưa ra dự đoán khiến cho mô hình có khả năng dự đoán được các đối tượng với kích thước khác nhau, làm tăng độ chính xác của mô hình
Hình 2.14 Kiến trúc của PANet
Trang 27mô hình, các tác giả của Scaled-YOLOv4 dựa trên nguyên tắc chính rằng khi kích thước
mô hình tăng, chi phí tính toán tăng ít nhất có thể và ngược lại Do đó, ý tưởng chính trong mô hình này là kết hợp CSP vào Backbone và Neck để giảm số lượng tham số Kiến trúc này xử lý chỉ một nửa của feature map đầu vào và một nửa này trước khi được kết hợp với nửa còn lại sẽ đi qua các lớp Convolution Vì một phần của feature map được bảo tồn nên thông tin đi qua các giai đoạn sẽ đa dạng hơn Tiếp theo, CSP Neck cũng được thêm vào để giảm số lượng tham số của SPP được sử dụng trong mô hình như được mô tả ở Hình 2.16 Thiết kế này còn giảm tính toán của Neck khi phải tổng hợp rất nhiều thông tin Ngoài ra, nó còn tạo ra các kết nối tắt giữa các khối để tránh Vanishing Gradients
Hình 2.16 CSP Neck
2.6.4 YOLOv8
Sau rất nhiều phiên bản của YOLO thì YOLOv8 [5] được ra mắt với rất cải thiện trong kiến trúc giúp tăng độ chính xác lẫn tốc độ xử lý Tổng quan kiến trúc của mô hình