Chương 1: Tổng quan. Ở chương này chúng tôi giới thiệu về bài toán mà chúng tôi giải quyết, cùng các van đề liên quan như mục tiêu, phạm vi, thách thức và đóng góp của khóa luận. Chương 2: Cơ sở lý thuyết. Ở chương này chúng tôi trình bày các lý thuyết liên quan đến hai mô hình YOLO v4 và EfficientDet.
Chương 3: Áp dụng các phương pháp phát hiện vật thể cho bài toán phát hiện ô trống trên kệ. Ở chương này Trình bày chỉ tiết tập dữ liệu và các phương pháp được áp dụng cho bài toán. Chương 4: Thực nghiệm. Ở chương này chúng tôi trình bày về độ đo sử dụng dé đánh giá, kết quả thực nghiệm và phân tích các phương pháp đã thực hiện.
10 Chương 5: Chương trình minh họa. Ở chương này chúng tôi minh họa chương trình xây dựng cho bài toán. Chương 6: Kết luận. Ở chương này chúng tôi kết luận những gì đã làm được và đặt ra hướng phát triển trong tương lai.
CƠ SỞ LÝ THUYET Ở chương này, chúng tôi trình bày các nội dung lý thuyết liên quan đến hai mô hình YOLO v4, EfficientDet và các kỹ thuật learning rate scheduler. Mô hình phát hiện vật thể YOLO YOLO lần đầu tiên được giới thiệu bởi R. Đây là mô hình phát hiện đối tượng 1 bước (one-stage detector) đầu tiên trong kỷ nguyên học sâu. Phiên bản YOLO đầu tiên cho kết quả tốt trong thời gian rất nhanh: 155FPS trên bộ VOC2007 với 52.7% mAP, trong khi phiên bản nâng cấp khác tên Fast YOLO có thé chạy ở tốc độ 45FPS với 63.4% mAP trên bộ VOC2007 va 57.9% mAP trên bộ VOC2012.
Cụm từ YOLO là tên viết tắt của "You Only Look Once", cho thấy tác gia đã bỏ qua nguyên lý hoạt động của các phương pháp truyền thống lúc bấy giờ: "Đề xuất (proposal) và xác minh (verification)". Thay vào đó nguyên lý hoạt động của YOLO là sử dụng một neural network duy nhất cho toàn bộ bức ảnh. Mạng neural này sẽ chia bức ảnh ra thành nhiều vùng (regions) và dự đoán các vùng bao (bounding boxes) cũng như xác suất của chúng trên mỗi vùng. Việc cải tiến này mang lại cho YOLO những ưu điểm như sau : e Tốc độ: YOLO hoạt động rất nhanh dựa vào việc chỉ sử dụng một mô hình mạng tích chập (convolution network), và chi can xử lý trên toàn bộ bức ảnh đúng một lân.
e It bi nhiêu bởi ảnh nên: việc thực hiện phép tích chap (convolution) trên toàn bộ bức ảnh giúp YOLO dự đoán một cách toàn cục (globally) thay vì cục bộ (locally), từ đó giảm bớt những lỗi sai do cảnh nền gây ra. e Có tính tổng quát cao: nhờ khả năng học hình dạng tổng quát của một vật, YOLO có thê làm việc được trên những miền không gian khác nhau. Joseph đã liên tục cho ra đời các phiên bản cải tiến của YOLO, nhằm cải thiện độ chính xác khi phát hiện vật thể trong khi vẫn giữ được tốc độ tính toán nhanh chóng. Tuy nhiên, YOLO lại cho kết quả kém hơn các phương pháp two-stage ở bài toán định vị (localization), đặc biệt là cho các vật thể nhỏ.
Các phiên bản YOLO về sau đã bắt đầu được cải thiện cho van đề này. YOLO v1 Cơ chế hoạt động YOLO chia tam ảnh đầu vào ra thành SxS 6 (tác giả YOLO chọn S = 7). Nếu điểm trung tâm của vật thể rơi vào một ô, ô đó có nhiệm vụ phát hiện vật thé đó. Mỗi ô sẽ dự đoán B vùng bao (bounding boxes), trong bài báo gốc tác giả chọn B = 2, mỗi vùng bao lại có một giá trị tin cậy (confidence score) thể hiện độ tự tin và độ chính xác của mô hình về kết quả dự đoán.
YOLO sử dụng công thức. để tính giá tri nay. Nếu một 6 không tồn tại vật thé trong đó, mô hình được kỳ vọng sẽ trả về giá trị confidence score bằng 0. Ngược lại, ta mong muốn giá trị này bằng giá trị loU được tính giữa bounding box mô hình dự đoán được và bounding box được chuẩn bị trước (groundtruth).
Ty 3x 5 grid on input Final detections Class probability map Hình 2.1 Anh minh hoa cách thức hoạt động của mô hình YOLO v1 Với mỗi vùng bao, YOLO sẽ dự đoán ra 5 giá tri: x, y, w, h, va độ tin cậy. Trong đó, (x, y) là tỉ lệ khoảng cách, từ trung tâm vùng bao dự đoán được đến cạnh trên và cạnh trái cua vùng bao đó, so với kích thước của cell đó. Tương tự, w va h lân lượt là tỉ lệ chiêu rộng va cao của vùng bao so với kích thước của ảnh. Độ tin 13 cậy là giá trị loU được tính giữa bounding box mô hình dự đoán được và bounding box đúng được gán từ trước (the ground truth).
Ngoài độ tin cậy, ở mỗi grid cell, mô hình còn dự đoán các giá trị C, là giá tri xác suất có điều kiện Pr(Class i lObject) thé hiện xác suất của vật thé Object thuộc vào Class i. Ở mỗi bounding box, xác suất vật thể thuộc về một lớp Class 1 được tính theo công thức: truth truth Pr(Class;|Object) « Pr(Object) + IOUred = Pr(Class¿) + IOU pred Kết quả trả về YOLO là 1 tensor có chiều là S x S x (B * 5 + Classes). S % % SN Yay 1st - 5th 6th - 10th 11th - 30th Box #1 Box #2 Class Probabilities Hinh 2.2Anh minh hoa dau ra cua m6 hinh YOLO v1 Thiét ké mang Cấu trúc mang của YOLO có tông cộng 24 mang tích chập và 2 lớp fully connected. Chi tiết về các lớp này bao gồm: 14 448 112 56 448 28 H2 56 z 3 192 256 512 Conv.
Layer 7x7x64-s-2 3x3x192 1x1x128 113256 } x4 1x1x512 }x2 3x3x1024 Maxpool Layer Maoxpool Layer 3x3x256 3x3x512 3x3x1024 3x3x1024 2x2-s-2 2x2-s-2 1x1 x256 1x1x512 3x3x1024 3x3x512 3x3x1024 3x3x1024-s-2 Maxpool Layer Maxpool Layer 2x2--2 2x2+-2 Hình 2.3Ảnh minh họa cấu trúc của mô hình YOLO v1 e Nhiing lớp tích chập được pre-trained trên bộ ImageNet cho bài toán phân loại (classification) với ảnh đầu vào được giảm kích thước đi một nửa (224 x 224), và tiếp tục huấn luyện cho bài toán phát hiện vật thé với ảnh đầu vào nguyên vẹn (448 x 448). e Những lớp tích chập kích thước 1 x 1 được thêm vào dé giảm kích thước của vùng không gian đặc trưng (feature space) của lớp tích chập trước đó. e Lớp cuối cùng trong mạng được dùng dé dự đoán xác suất của các tập nhãn (classes) và các vùng bao (bounding boxes). Hàm độ lỗi 15 Àcoord > » 1 (ai —ữ ?+ (yi— oi)” 9 | ¡=0 j=0 + Acoord > » 13 (vn — i) + (v5 7 Vin) | i=0 7=0 sở B 2 tŠ ¡=0 7= 1ÿ (6=) + Ànoobj > S 1" (ci ~6:)" - i=0 7=0 +a? Y= (pi(e)—С(e))” @) ec €classes Hình 2.4Anh minh họa hàm độ lỗi của mô hình YOLO v1 Các phần liên quan đến (x, y, w, h) của hàm loss dùng để tính độ sai lệch về tọa độ (localization loss).
Các phần về C dùng dé tính độ sai lệch giá tri tin cậy khi dự đoán một vật thé (confidence loss). Và phần cuối của công thức dùng dé tính độ lỗi khi phân lớp (classification loss). Phân tích hàm loss của mô hình YOLO, có 2 điểm chính cần chú ý: Một là, Ham loss trên chỉ đánh giá độ lỗi phân lớp của những vùng bao có chứa vật thể trong đó. Hai là, Khi lây căn bậc hai chiều cao và chiều dài của vùng bao dự đoán được, hàm độ lỗi đã xem sự sai lệch khi dự đoán vật thé lớn và vật thé nhỏ là như nhau.
Điều này vô hình gây ra 1 điểm hạn chế của YOLO, khi mà độ sai lệch nhỏ trên vùng bao lớn có thé không đáng kẻ, tuy nhiên độ sai lệch ấy trên vùng bao nhỏ lại ảnh hưởng rất lớn khi tính IOU Hạn chế Những hạn chế tồn tại trong phiên bản đầu tiên của YOLO bao gồm: 16 e Trên môi phân vùng (grid cell) của ảnh, YOLO chỉ có thé dự đoán được 2 vùng bao (bounding boxes) va | lớp nhãn. Nếu một phân vùng chứa nhiều hơn một vật hay vật cần tìm có kích thước nhỏ, ví dụ một đàn chim đang bay từ xa, YOLO sẽ không thé phát hiện hết tat cả được. e_ YOLO không thé phát hiện ra các vật thé có tỉ lệ (rationn) khác thường so với tập dữ liệu được học. e Cuối cùng, hàm độ lỗi của YOLO sử dụng cùng một cách đánh giá hiệu qua của mô hình khi phát hiện vật thể nhỏ và vật thê lớn.
Độ sai lệch nhỏ trên vùng bao lớn có thể không đáng kể, tuy nhiên độ sai lệch ấy trên vùng bao nhỏ lại ảnh hưởng rất lớn khi tính IOU. Nguyên nhân sai lệch chính mà nhóm tác giả YOLO ghi nhận được là sai về tọa độ của vùng bao. YOLO v2 Với phiên ban YOLO đầu tiên, tác giả đã so sánh với mô hình Fast R-CNN và chỉ ra rằng, phiên bản YOLO đầu tiên gặp nhiều lỗi về tọa độ của vật thê dự đoán được (localization errors) và cho độ phủ thấp (recall). Vì thế ở phiên bản thứ 2, tác giả tập trung 2 van đề trên, trong khi van giữ độ ổn định khi phân lớp.
Bên cạnh đó, tác giả đề cập về việc các mô hình dự đoán lúc bấy giờ có xu hướng mở rộng hơn, sâu hơn, hoặc kết hợp nhiều mô hình lại với nhau để cải thiện kết quả. Tuy nhiên, với YOLO v2, tác giả đã đơn giản hóa mô hình hơn đề có thê có một mô hình cho kết quả nhanh và chính xác. Dé cải thiện kết quả so với phiên bản trước, tác giả đã thực hiện nhiều cải tiến cho phiên bản này. Đầu tiên, tác giả sử dụng Batch Normalization (BN), một phương pháp dùng dé chuẩn hóa đầu ra của các lớp ẩn (hidden layers).
Việc sử dụng BN giúp mô hình bỏ bước dropout trong khi vẫn tránh được tình trạng overfitting và cải thiện mAP thêm 2%. Ở phiên bản đầu tiên, tác giả sử dụng ảnh có kích thước 224 x 224 đề huấn luyện mạng phân lớp và ảnh có kích thước 448 x 448 cho mạng phát hiện vật thể. Điều này làm mô hình phải học trong bài toán phát hiện đối tượng, vừa phải điều chỉnh cho phù hợp với đầu vào có độ phân giải mới. Với YOLO v2, tác giả sử dụng ảnh có kích thước 448 x 448 và huấn luyện mạng phân lớp trong 10 epoches với tập ImageNet.
Nhờ vậy, mô hình sẽ có thêm thời giản để 17 điều chỉnh các bộ lọc (filters), giúp mô hình làm việc tốt hơn trên những ảnh có độ phân giải cao hơn. Với bước cải tiễn này, mô hình tăng thêm được 4% mAP. Ở phiên bản đầu tiên, YOLO dự đoán trực tiếp tọa độ các vùng bao (bounding boxes) thông qua các lớp fully connected.