Đề tài “Nhận diện động vật ứng dụng mô hình học sâu YOLO” không chỉ đáp ứng nhu cầu nghiên cứu trong lĩnh vực bảo tồn thiên nhiên, mà còn là một bước tiến quan trọng trong việc ứng d
Trang 1BỘ GIAO THÔNG VẬN TẢI HỌC VIỆN HÀNG KHÔNG VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN (ĐÁNH GIÁ LÀM VIỆC NHÓM)
XỬ LÝ ẢNH VÀ THỊ GIÁC MÁY TÍNH XÂY DỰNG CHƯƠNG TRÌNH NHẬN DIỆN ĐỘNG VẬT ỨNG
DỤNG MÔ HÌNH YOLOv5
Giảng viên hướng dẫn: TS Trần Nguyên Bảo
Sinh viên/ Nhóm sinh viên thực hiện: Nhóm 11
Mã số sinh viên:
Lớp: 010100086902
TP.Hồ Chí Minh, tháng 12 năm 2024
Trang 2BỘ GIAO THÔNG VẬN TẢI HỌC VIỆN HÀNG KHÔNG VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN (ĐÁNH GIÁ LÀM VIỆC NHÓM)
XỬ LÝ ẢNH VÀ THỊ GIÁC MÁY TÍNH XÂY DỰNG CHƯƠNG TRÌNH NHẬN DIỆN ĐỘNG VẬT ỨNG
DỤNG MÔ HÌNH HỌC YOLOv5
Giảng viên hướng dẫn: TS Trần Nguyên Bảo
Sinh viên/ Nhóm sinh viên thực hiện: Nhóm 11
Mã số sinh viên:
Lớp: 010100086902
Thành phố Hồ Chí Minh, tháng 12 năm 2024
Trang 3Danh sách Nhóm:
1 Phạm Hiếu Đồng 2254810189 22ĐHTT04 Nhóm Trưởng
2 Nguyễn Châu Lê Dũng 2254810201 22ĐHTT04 Thành viên
3 Nguyễn Trọng Anh 2254810106 22ĐHTT03 Thành viên
4 Nguyễn Quốc Anh 2231540324 22ĐHTT02 Thành viên
Trang 4i
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
YOLO You Only Look Once
AI Artificial Intelligence
Trang 5ii
DANH MỤC CÁC HÌNH ẢNH
Hình 2.1 - Hình ảnh từ Dataset Kaggle 5
Hình 2.2 - Kiến trúc mạng YOLO 6
Hình 2.3 - Các layer trong mạng darknet-53 7
Hình 2.4 - Cách hoạt động của mạng YOLO 8
Hình 2.5 - Các feature maps của mạng YOLO v3 với input shape là 416x416, output là 3 feature maps có kích thước lần lượt là 13x13, 26x26 và 52x52 9
Hình 2.6 - Hình ảnh minh hoạ ngôn ngữ Python 12
Hình 2.7 - Hình ảnh minh hoạ công cụ lập trình Pycharm 14
Hình 3.1 - Sơ đồ quá trình nhận diện động vật 15
Hình 3.2 - Giao diện nhận diện động vật 16
Hình 3.3 - Nhận diện động vật bằng hình ảnh 16
Hình 3.4 - Nhận diện động vật bằng video 17
Hình 3.5 - clone Yolov5 và cài đặt các dependencies 17
Hình 3.6 - Gắn kết Google Drive vào Google Colab 18
Hình 3.7 - Chuẩn bị cấu trúc thư mục và sao chép dữ liệu từ Google Drive vào Colab, huấn luyện mô hình YOLO 18
Hình 3.8 - Tạo và ghi tệp cấu hình dataset 18
Hình 3.9 - Huấn luyện mô hình 18
Hình 3.10 - Ma trận nhầm lẫn (confusion matrix) 19
Hình 3.11 - biểu đồ theo dõi quá trình huấn luyện và đánh giá mô hình YOLOv5 19 Hình 3.12 - Biểu đồ độ chính xác và độ tự tin (Precision-Confidence Curve) 20
Hình 3.13 - Biểu đồ ma trận tương quan nhãn (labels_correlation matrix) 21
Hình 3.14 - Đồ thị độ chính xác và độ thu hồi (Precision-Recall) 22
Hình 3.15 - Biểu đồ độ thu hồi và độ tự tin (Recall-Confidence) 23
Hình 3.16 - Kết quả từ quá trình huấn luyện 24
Hình 3.17 - Kết quả display sau khi đã train xong 25
Trang 6iii
Hình 3.18 - Quá trình test sau khi đã training 26
Trang 7iv
DANH MỤC CÁC BẢNG BIỂU
Bảng 3.1: Đánh giá độ chính xác của quá trình nhận diện 26
Trang 8v
MỤC LỤC
Trang
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT i
DANH MỤC CÁC HÌNH ẢNH ii
DANH MỤC CÁC BẢNG BIỂU iv
MỞ ĐẦU vii
CHƯƠNG 1 GIỚI THIỆU 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu đề tài 1
1.3 Phạm vi đề tài 1
1.4 Đối tượng nghiên cứu 2
1.5 Phương pháp nghiên cứu 2
1.6 Bố cục đề tài 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 DataSet 4
2.1.1 Lịch sử hình thành và phát triển của dataset 4
2.1.2 Khái niệm (định nghĩa) 4
2.1.3 Điểm mạnh của dataset 4
2.1.4 Điểm yếu của dataset 5
2.2 Mô hình YOLO 5
2.2.1 Kiến trúc mạng YOLO 6
2.2.2 Nguyên lý hoạt động của mạng YOLO 8
2.2.3 Dự báo trên nhiều feature map 8
2.2.4 Một số lưu ý khi huấn luyện YOLO 9
2.2.5 Hàm mất mát (Loss Function) 10
2.3 Ngôn ngữ Python 11
2.3.1 Lịch sử hình thành và phát triển 11
2.3.2 Khái niệm 11
Trang 9vi
2.3.3 Điểm mạnh của ngôn ngữ python 11
2.3.4 Điểm yếu của ngôn ngữ python 12
2.4 Phần mềm Pycharm 12
2.4.1 Định nghĩa 12
2.4.2 Các tính năng chính của phần mềm pycharm 13
2.4.3 Ưu điểm khi sử dụng pycharm 13
2.4.4 Nhược điểm khi sử dụng pycharm 13
CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG VÀ XÂY DỰNG SẢN PHẨM 15
3.1 Phân tích hệ thống 15
3.1.1 Sơ đồ nhận diện động vật 15
3.2 Xây dựng giao diện sản phẩm 15
3.2.1 Giao diện trạng thái ban đầu của nhận diện động vật 15
3.2.2 Nhận diện động vật bằng hình ảnh 16
3.2.3 Nhận diện động vật bằng video 16
3.2.4 Quá trình huấn luyện 17
3.2.5 Ma trận nhầm lẫn 18
3.2.6 Biểu đồ theo dõi quá trình huấn luyện 19
3.2.7 Biểu đồ Precision-Confidence 20
3.2.8 Biểu đồ labels_cerrelation matrix 20
3.2.9 Đồ thị Precision-Recall 21
3.2.10 Biểu đồ Recall-Confidence 22
3.2.11 Kết quả quá trình huấn luyện 23
3.2.12 Hoạt động của hệ thống 25
3.2.13 Độ chính xác 26
KẾT LUẬN 27
DANH MỤC TÀI LIỆU THAM KHẢO 28
Trang 10vii
MỞ ĐẦU
Nhận diện vật thể thông qua hệ thống camera giám sát, một ứng dụng cốt lõi của trí tuệ nhân tạo, ngày nay đã trở thành công cụ không thể thiếu Với sự phát triển vượt bậc của các thuật toán học sâu (deep learning), đặc biệt là các mô hình tiên tiến như YOLO (You Only Look Once), khả năng phát hiện và phân loại đối tượng trong ảnh hoặc video đã đạt được độ chính xác và tốc độ xử lý vượt trội Trong đó, YOLOv5 - một phiên bản cải tiến của mô hình YOLO - nổi bật với khả năng nhận diện nhanh chóng, linh hoạt, và chính xác cao, giúp phát hiện nhiều đối tượng cùng lúc trong thời gian thực Ứng dụng của các mô hình như YOLO đặc biệt hữu ích trong các hệ thống giám sát môi trường tự nhiên, nơi cần theo dõi sự di chuyển và phân bố của động vật trong môi trường sống của chúng
Dữ liệu hình ảnh và video thu thập từ camera giám sát chứa thông tin phong phú về môi trường không gian và thời gian, giúp lưu lại các hoạt động và vị trí của đối tượng động vật theo thời gian Để khai thác tốt các thông tin này, cần có những nghiên cứu chuyên sâu
về phân tích dữ liệu video, đánh giá thông tin và tối ưu hóa thuật toán xử lý, nhằm phục vụ cho việc nhận diện và theo dõi chính xác Tuy nhiên, thách thức lớn hiện nay là làm sao để
xử lý và phân tích hiệu quả từng khung hình, bởi video thực chất là một chuỗi các khung ảnh thay đổi liên tục theo thời gian và không gian
Đề tài “Nhận diện động vật ứng dụng mô hình học sâu YOLO” không chỉ đáp ứng nhu cầu nghiên cứu trong lĩnh vực bảo tồn thiên nhiên, mà còn là một bước tiến quan trọng trong việc ứng dụng AI và học sâu để giải quyết các bài toán nhận diện đối tượng trong môi trường phức tạp Việc xây dựng một hệ thống như vậy sẽ cung cấp giải pháp tự động hóa, giúp giảm thiểu chi phí và thời gian trong quá trình giám sát, đồng thời nâng cao hiệu quả bảo vệ và bảo tồn động vật
Chúng em chân thành cảm ơn Thầy
Trang 11CHƯƠNG 1 GIỚI THIỆU 1.1 Lý do chọn đề tài
Nhận diện động vật là một trong những ứng dụng quan trọng của thị giác máy tính,
có thể giúp giải quyết nhiều vấn đề thực tiễn, đặc biệt trong lĩnh vực bảo tồn động vật, nông nghiệp, và quản lý sinh thái Hiện nay, với tốc độ gia tăng biến đổi khí hậu và sự tác động của con người đến môi trường, việc giám sát và bảo vệ các loài động vật trở thành nhiệm
vụ cấp thiết, đặc biệt là với những loài có nguy cơ tuyệt chủng
Trong bối cảnh này, mô hình học sâu YOLO (You Only Look Once) nổi bật như một công cụ mạnh mẽ để thực hiện nhận diện đối tượng, với khả năng nhận diện nhanh chóng và hiệu quả cao, phù hợp cho các tác vụ giám sát động vật trong môi trường tự nhiên YOLO cho phép phát hiện và định vị đối tượng trong ảnh với độ chính xác cao mà vẫn duy trì được tốc độ xử lý, rất thích hợp cho các hệ thống giám sát thời gian thực
Vì vậy, đề tài “Nhận diện động vật ứng dụng mô hình học sâu YOLO” được lựa chọn nhằm mục đích phát triển một hệ thống có thể nhận diện chính xác các loài động vật trong ảnh hoặc video Thành công của đề tài không chỉ mang lại lợi ích cho công tác bảo tồn và nghiên cứu động vật mà còn mở ra cơ hội ứng dụng rộng rãi trong nhiều lĩnh vực khác, như giám sát nông nghiệp và phát hiện xâm nhập vào các khu bảo tồn
1.2 Mục tiêu đề tài
Mục tiêu chính của đề tài là xây dựng một hệ thống nhận diện động vật dựa trên mô hình học sâu YOLO, hỗ trợ cho các nhà nghiên cứu, nhân viên bảo tồn và các cơ quan quản lý môi trường trong việc giám sát động vật một cách hiệu quả và nhanh chóng Cụ thể:
Mục tiêu về hệ thống: Hệ thống cần đạt khả năng nhận diện và định vị chính xác các loài động vật từ ảnh và video, với tốc độ xử lý cao đủ để phục vụ cho các tác vụ thời gian thực
Mục tiêu về công nghệ: Ứng dụng và triển khai thành công mô hình YOLO, tối ưu hóa mô hình để tăng cường độ chính xác và hiệu suất Nghiên cứu và cải tiến các kỹ thuật tiền xử lý dữ liệu nhằm nâng cao chất lượng đầu vào của mô hình và hiệu quả nhận diện
1.3 Phạm vi đề tài
Phạm vi nghiên cứu của đề tài bao gồm:
Trang 12Không gian nghiên cứu: Nghiên cứu được thực hiện trên các tập dữ liệu hình ảnh và video chứa động vật trong tự nhiên, đặc biệt là các bộ dữ liệu đã có sẵn từ các hệ thống giám sát sinh thái hoặc các tổ chức bảo tồn Môi trường nhận diện chính là các cảnh quan
tự nhiên như rừng, đồng cỏ, và các khu vực bảo tồn
Thời gian nghiên cứu: Đề tài được thực hiện trong một học kỳ, với thời gian chia đều cho các giai đoạn thu thập dữ liệu, tiền xử lý, huấn luyện và đánh giá mô hình
Phạm vi về đối tượng: Tập trung nghiên cứu khả năng nhận diện các loài động vật phổ biến hoặc có giá trị bảo tồn cao, từ đó mở rộng đến các loài động vật có kích thước và hình thái khác nhau
1.4 Đối tượng nghiên cứu
Đề tài tập trung nghiên cứu vào các đối tượng sau:
Mô hình YOLO: Các phiên bản của mô hình YOLO và những cải tiến hiện có Nghiên cứu sẽ phân tích đặc điểm của YOLO, so sánh với các mô hình khác, và lựa chọn phiên bản phù hợp nhất cho bài toán nhận diện động vật
Dữ liệu động vật: Tìm hiểu và lựa chọn các tập dữ liệu có chứa động vật trong môi trường tự nhiên Các đối tượng động vật có thể thuộc nhiều loài khác nhau, từ động vật có vú đến chim, bò sát, với kích thước và hình thái đa dạng
Các kỹ thuật xử lý ảnh: Để đảm bảo chất lượng đầu vào của mô hình, nghiên cứu các phương pháp tiền xử lý hình ảnh như thay đổi độ sáng, độ tương phản, xoay, lật ảnh để tăng cường khả năng nhận diện trong các điều kiện môi trường phức tạp
1.5 Phương pháp nghiên cứu
Để đạt được mục tiêu đề ra, đề tài sẽ áp dụng các phương pháp nghiên cứu sau: Phương pháp thu thập thông tin: Tiến hành khảo sát các tài liệu khoa học về nhận diện động vật, tham khảo tài liệu hướng dẫn về mô hình YOLO, và thu thập dữ liệu hình ảnh, video có chứa động vật từ các nguồn sẵn có Ngoài ra, nghiên cứu các trường hợp thực
tế đã ứng dụng thành công YOLO trong nhận diện động vật
Phương pháp xử lý thông tin: Áp dụng các phương pháp định lượng và định tính trong quá trình xử lý dữ liệu Phân tích dữ liệu để tìm ra các yếu tố ảnh hưởng đến độ chính
Trang 131.6 Bố cục đề tài
Phần còn lại của báo cáo tiểu luận môn học này được tổ chức như sau
Chương 2: Tập trung vào Cơ sở lý thuyết của các công nghệ và công cụ được áp dụng Thu thập các nguồn dữ liệu của Dataset, ứng dụng mô hình học sâu YOLO và có sử dụng các thuật toán như là Mạng nơ-ron xoắn (Convolutional Neural Network - CNN), Thuật toán tổn thất (Loss function)
Chương 3: Tập trung vào phân tích hệ thống và xây dựng sản phẩm bao gồm các giai đoạn từ thu thập và tiền xử lý dữ liệu đến huấn luyện và triển khai mô hình YOLO Nội dung chương sẽ làm rõ các bước kỹ thuật, cách lựa chọn và xử lý dữ liệu, cũng như các kỹ thuật tối ưu hóa mô hình để đạt hiệu quả cao
Chương 4: Kết luận và hướng phát triển Ở chương này sẽ tập trung so sánh kết quả với mục tiêu đề ra và các sản phẩm tương tự, nhấn mạnh các thành tựu và đóng góp Đồng thời, đề xuất các công việc cần thiết để hoàn thiện và cải tiến hệ thống, bao gồm tối ưu hóa chức năng, cải thiện giao diện để có thể đem lại một trải nghiệm tốt nhất cho ứng dụng
Trang 14CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Để xây dựng một hệ thống nhận diện động vật hiệu quả, việc nghiên cứu và áp dụng các cơ sở lý thuyết về dữ liệu và mô hình học sâu là rất quan trọng Các cơ sở lý thuyết này giúp hệ thống có thể nhận dạng đối tượng với độ chính xác cao trong thời gian thực, từ đó đáp ứng yêu cầu của ứng dụng giám sát động vật Việc lựa chọn cơ sở lý thuyết phù hợp không chỉ đảm bảo hiệu quả về mặt kỹ thuật mà còn giúp tối ưu hóa chi phí và thời gian phát triển hệ thống Trong chương này, chúng ta sẽ tìm hiểu hai yếu tố cốt lõi cho đề tài: tập dữ liệu (dataset) được sử dụng và mô hình học sâu YOLO
2.1 DataSet
2.1.1 Lịch sử hình thành và phát triển của dataset
Các tập dữ liệu hình ảnh trong thị giác máy tính đã phát triển mạnh mẽ trong hai thập kỷ qua Các dataset như ImageNet, COCO, và PASCAL VOC được sử dụng rộng rãi, giúp huấn luyện các mô hình học sâu để phân loại và phát hiện đối tượng Trong lĩnh vực nhận diện động vật, các tập dữ liệu như Animals-10, iNaturalist, và Caltech Camera Traps
đã được phát triển nhằm cung cấp hình ảnh động vật trong nhiều môi trường khác nhau Các tập dữ liệu này đóng vai trò quan trọng trong việc nghiên cứu và triển khai các mô hình nhận diện động vật trong thực tế
2.1.2 Khái niệm (định nghĩa)
Dataset là tập hợp các dữ liệu có cấu trúc và không có cấu trúc, được sử dụng để huấn luyện và đánh giá mô hình AI Trong bối cảnh nhận diện động vật, dataset thường là tập hợp các hình ảnh hoặc video chứa các loài động vật khác nhau, bao gồm cả thông tin vị trí và nhãn phân loại đối tượng (ví dụ: tên loài, vị trí trong ảnh)
2.1.3 Điểm mạnh của dataset
Độ đa dạng cao: Một dataset phong phú sẽ chứa các hình ảnh với điều kiện ánh sáng, góc nhìn, kích thước và vị trí khác nhau của động vật, giúp mô hình học được nhiều đặc điểm phức tạp
Hỗ trợ gán nhãn dữ liệu: Dataset chuyên dụng cho nhận diện động vật có nhãn chính xác, giúp hệ thống xác định đúng loài động vật và cải thiện độ chính xác của mô hình
Trang 15Ứng dụng rộng rãi: Dataset với chất lượng cao có thể được sử dụng để huấn luyện
mô hình cho các ứng dụng khác như bảo tồn, quản lý sinh thái, hoặc giám sát nông nghiệp
2.1.4 Điểm yếu của dataset
Độ phức tạp: Các dataset động vật thường phức tạp và tốn thời gian trong quá trình
xử lý và gán nhãn
Khả năng generalize hạn chế: Dữ liệu từ một nguồn cụ thể có thể không phù hợp khi áp dụng cho các môi trường khác nhau
Chi phí lưu trữ: Dữ liệu ảnh và video chiếm dung lượng lưu trữ lớn, đòi hỏi thiết bị
và giải pháp lưu trữ phù hợp
Hình 2.1 - Hình ảnh từ Dataset Kaggle 2.2 Mô hình YOLO
YOLO (You only look once) là một mô hình mạng CNN cho việc phát hiện, nhận dạng,
phân loại đối tượng YOLO được tạo ra từ việc kết hợp giữa các convolutional layers và connected layers Trong đó các convolutional layers sẽ trích xuất ra các feature của ảnh, còn fully-connected layers sẽ dự đoán ra xác suất đó và tọa độ của đối tượng
YOLO có thể không phải là thuật toán tốt nhất nhưng nó là thuật toán nhanh nhất trong các lớp mô hình object detection Nó có thể đạt được tốc độ gần như real time mà độ chính xác không quá giảm so với các model thuộc top đầu
Trang 16YOLO là thuật toán object detection nên mục tiêu của mô hình không chỉ là dự báo nhãn cho vật thể như các bài toán classification mà nó còn xác định location của vật thể Do đó YOLO có thể phát hiện được nhiều vật thể có nhãn khác nhau trong một bức ảnh thay vì chỉ phân loại duy nhất một nhãn cho một bức ảnh
Một trong những ưu điểm mà YOLO đem lại đó là chỉ sử dụng thông tin toàn bộ bức ảnh một lần và dự đoán toàn bộ object box chứa các đối tượng, mô hình được xây dựng theo kiểu end-to-end nên được huấn luyện hoàn toàn bằng gradient descent
Tính đến thời điểm hiện tại YOLO đã có tổng cộng 5 phiên bản(v1,v2,v3,v4,v5) Trong
đó bản v5 là bản mới nhất, khác phục được các nhược điểm của các phiên bản trước như: lỗi về việc xác định vị trí của vật thể, các ràng buộc về không gian trên những bounding box, mỗi grid cell chỉ có thể predict rất ít bounding box,
2.2.1 Kiến trúc mạng YOLO
Kiến trúc YOLO bao gồm: Base network là các mạng convolution làm nhiệm vụ trích xuất đặc trưng Phần phía sau là những Extra Layers được áp dụng để phát hiện vật thể trên feature map của base network
Base network của YOLO sử dụng chủ yếu là các convolutional layer và các fully connected layer Các kiến trúc YOLO cũng khá đa dạng và có thể tùy biến thành các version cho nhiều input shape khác nhau.[1]
Hình 2.2 - Kiến trúc mạng YOLO
Thành phần Darknet Architecture được gọi là base network có tác dụng trích xuất đặc trưng Output của base network là một feature map có kích thước 7x7x1024 sẽ được sử
Trang 17Hình 2.3 - Các layer trong mạng darknet-53
Các bức ảnh khi được đưa vào mô hình sẽ được scale để về chung một kích thước phù hợp với input shape của mô hình và sau đó được gom lại thành batch đưa vào huấn luyện
Trang 18Hiện tại YOLO đang hỗ trợ 2 đầu vào chính là 416x416 và 608x608 Mỗi một đầu vào sẽ có một thiết kế các layers riêng phù hợp với shape của input Sau khi đi qua các layer convolutional thì shape giảm dần theo cấp số nhân là 2 Cuối cùng ta thu được một feature map có kích thước tương đối nhỏ để dự báo vật thể trên từng ô của feature map.[1]
Kích thước của feature map sẽ phụ thuộc vào đầu vào Đối với input 416x416 thì feature map có các kích thước là 13x13, 26x26 và 52x52 Và khi input là 608x608 sẽ tạo ra feature map 19x19, 38x38, 72x72
2.2.2 Nguyên lý hoạt động của mạng YOLO
Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh Ảnh đầu vào được chia thành SxS ô thường thì sẽ là 3x3,7x7,9x9… Việc chia ô có ảnh hưởng đến việc phát hiện đối tượng của mô hình.[1]
Hình 2.4 - Cách hoạt động của mạng YOLO
Với Input là 1 ảnh, đầu ra mô hình là một ma trận 3 chiều có kích thước SxSx (5 x
N + M) với số lượng tham số mỗi ô là (5 x N + M) với N và M lần lượt là số lượng Box và Class mà mỗi ô cần dự đoán Xét ví dụ ở hình trên chia thành 7x7 ô, mỗi ô cần dự đoán 2 bounding box và 3 objects: con chó, ô tô, xe đạp thì output sẽ là 7x7x13, mỗi ô sẽ có 13 tham số, cho kết quả trả về (7x7x2 =98) bounding box
2.2.3 Dự báo trên nhiều feature map
Trang 19Cũng tương tự như SSD, YOLO (cụ thể hơn là YOLOv3) dự báo trên nhiều feature map Những feature map ban đầu có kích thước nhỏ giúp dự báo được các object kích thước lớn Những feature map sau có kích thước lớn hơn trong khi anchor box được giữ cố định kích thước nên sẽ giúp dự báo các vật thể kích thước nhỏ.[1]
Hình 2.5 - Các feature maps của mạng YOLO v3 với input shape là 416x416, output
là 3 feature maps có kích thước lần lượt là 13x13, 26x26 và 52x52
Trên mỗi một cell của các feature map chúng ta sẽ áp dụng 3 anchor box để dự đoán vật thể Như vậy số lượng các anchor box khác nhau trong một mô hình YOLO sẽ là 9 (3 feature map x 3 anchor box)
Đồng thời trên một feature map hình vuông SxS, mô hình YOLOv3 sinh ra một số lượng anchor box là: SxSx3 Như vậy số lượng anchor boxes trên một bức ảnh sẽ là: (13x13+26+52x52)x3=10647( anchor box)
Đây là một số lượng rất lớn và là nguyên nhân khiến quá trình huấn luyện mô hình YOLO vô cùng chậm bởi chúng ta cần dự báo đồng thời nhãn và bounding box trên đồng thời 10647 bounding boxes
2.2.4 Một số lưu ý khi huấn luyện YOLO
Khi huấn luyện YOLO sẽ cần phải có RAM dung lượng lớn hơn để save được 10647 bounding boxes như trong kiến trúc này
Không thể thiết lập các batch_size quá lớn như trong các mô hình classification vì rất dễ Out of memory Package darknet của YOLO đã chia nhỏ một batch thành các subdivisions cho vừa với RAM