Trước đây đã từng có những cố gắng trong việc giải bài toán phát hiện 6 trốngtrên kệ hàng như sử dụng các đặc trưng cấp thấp low level handcrafted features délọc ra các vùng trống trên k
Một số thách thức của bài toán và phương pháp giải quyết đã biét
Thách thức -SĂkS+k SE ST HH HH 6 1.2.2 Cac phương pháp giải quyết đã có -¿ -¿©5c+cscccxccceez 7 1.3 Mục tiờu, phạm vi va đúng gúp của khúa luận - -ô<++-s+2 9 1.3.1 Mục tiÊU ĂẶSẶQSẶ SH HH HH HH HH nh nh 9 1.3.2 Ixi024/ 6
Trong quá trình thực hiện khóa luận, nhóm đã gặp phải những thách thức:
Chưa có bộ dữ liệu hình ảnh nào liên quan đến bài toán phát hiện ô trống trên kệ được công khai rộng rãi cho đến hiện tại Đa số các bộ dữ liệu lớn hiện tại như Open Images Dataset V6 hay ImageNet đều chỉ gán nhãn sản phẩm hoặc kệ hang chứ không gan nhãn vùng trồng trên kệ.
Các phương pháp trước đã cũ va cho kết quả không tốt, do không có khả năng phân biệt được đâu là vùng trống cần tìm.
Xây dựng chương trình minh họa thân thiện dễ sử dụng không phải là việc dễ dàng, giao diện chương trình cần phải gọn gàng và thuận tiện cho người dùng Ngoài ra chương trình cũng cần phải xuất kết quả trong thời gian ngắn.
1.2.2 Các phương pháp giải quyết đã có e Su dụng các đặc trưng cấp thấp kết hợp với bộ phân lớp SVM
Tac giả dé xuât ý tưởng là sử dụng các phương pháp phát hiện góc lên ảnh, từ đó chọn những vùng trống có hình dạng chữ nhật là các đối tượng có khả năng là vùng trống cần tìm Sau đó sử dụng bộ phân lớp SVM dựa trên các yếu tố hình dạng, màu sắc và họa tiết để xác định xem đó có phải là vùng trống cần tìm hay không Nhược điểm của phương pháp này là không phân biệt được vùng trống dùng dé chứa hàng và các vùng không liên quan.
Corner Detection eS 421-1411 1 ằ 13 (vn — i) + (v5 7 Vin) | i=0 7=0 sở B 2 tŠ 1ÿ (6=) ¡=0 7=
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
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 V3
YOLO VẢ HH HH HH TH TH HH HH gà 23 2.2 Mô hình phát hiện vật thé EfficientDet . -¿©z+cs+cxe+se+e 26 2.2.1 FPN vic
Phần lớn các phương pháp phát hiện vật thể hiện đại đều yêu cầu một lượng lớn tài nguyên GPUs cho quá trình huấn luyện, YOLO v4 đã giải quyết van đề này bằng cách kết hợp một loạt các tính năng khác nhau (bảng ) nhằm tạo ra một mô hình có khả năng huấn luyện và chạy trên một GPUs duy nhất, nhưng van đảm bảo được tốc độ và sự chính xác Cụ thể, mô hình YOLO v4 đạt độ chính xác 43.5% AP trên bộ dữ liệu COCO với tốc độ 65 FPS khi sử dụng GPU Tesla V100.
Bag of Freebies (BoF) CutMix
Multiple anchors for a single ground truth
Bag of Specials (BoS) Mish activation
Cross-stage partial connections (CSP)
Multi-input weighted residual connections
Mô hình chung của các phương pháp phát hiện vật thé một tang (one-stage) thường có các thành phần sau (ảnh ) Các thành phần tương ứng trong YOLO v4 bao gôm:
24 cho phiên bản sử dụng GPU.
Neck: Spatial Pyramid Pooling (SPP) và phiên bản tùy biến của Path
Với việc kết hợp những tính năng giúp cải thiện kết quả mô hình, YOLO v4 ghi nhận kết quả tương đương những mô hình phát hiện vật thể tốt nhất, đồng thời thé hiện khả năng chạy thời gian thực tuyệt vời.
MS COCO Object Detection MS COCO Object Detection
YOLOv4 (ours) ore km AF a >—^
NT wat a á- T | , JỀ rt APS)
Lj PS (Maxweit FPS (Maxwell)
MS COCO Object Detection MS COCO Object Detection
“ ut NHI ai? \sart | * Ì apper ——Y010%4(su
: ` YOLOv4 (ours) ă % YOLOv4 (ours) + EFGRNet
MS COCO Object Detection MS COCO Object Detection
| YOLOv4 (ours) ô ` ` | x \ + YOLOv4 (ours) : , A WA : —
Se SA NI Lư \ vi +-ASIF
” ` ` pe \ RDS x eo Center Mask = ` ằ Am 2 MO â o W m 9 10 * ee
Hình 2.11 Ảnh so sánh mAP giữa YOLO v4 và các mô hình khác 2.2 Mô hình phát hiện vật thé EfficientDet
FPN[9] là mô hình rút trích đặc trưng được xây dựng với mục tiêu là tốc độ và chính xác cho pyramid concept FPN tạo ra nhiều lớp feature maps thay thế các extractor của detector thông thường với chất lượng thông tin tốt hơn FPN bao gồm
2 thành phần chính là Bottom-up pathway và Top-down pathway.
Hình 2.12Anh minh họa mô hình FPN Phần Bottom up được xây dựng lên từ ResNet bao gồm nhiều conv module Với mỗi stage đi lên, spatial dimension giảm di 1 nửa so với stage dưới Kết quả của layer cuối của từng stage được đặt là Ci và được sử dụng lại trong Top-down pathway Đối với phần Top-down, càng đi xuống các pyramid level, các feature dc upsampling lên 2 lần theo kỹ thuật nearest neighbor và được tăng cường bởi các
27 feature map output cùng size từ bottom up đã qua 1x1 convo để giảm số chiều channel Feature map từ top-down va bottom-up được kết hợp bằng cách cộng ma trận Cuối cùng áp dung conv 3x3 lên các feature map từ kết qua kết hợp dé ra các feature map cuối cùng được gọi là P2 tới P5 tương ứng với C2 tới C5 P1 không được tính vì số chiều của C1 là quá lớn và sẽ làm chậm tốc độ tính toán
BiFPN[6] được cải tiến từ FPN với giữ được các phần ưu điểm của FPN và cải tiến các nhược điểm của nó Các khía cạnh chính của BiFPN được diễn đặt thông qua ba phần:
- Multi-scale Feature Fusion: Mang FPN thông thường tổng hợp những đặc trưng ở các tầng kích thước khác nhau với phương pháp top-down với Resize thường là upsampling hoặc downsmapling op để cho ra cùng một độ phân giải và ham convolution chỉ là convolutional op cho xử lý feature ma information flows chỉ đi một chiều Dé cải tiền điều nay, PANnet va NAS_FPN hoạt động theo một cách khác nhưng lại tốn kém hơn về chi phí tính toán. repeated blocks repeated blocks a8 ae i
Hình 2.13Kién trúc các mô hình trích xuất đặc trưng
- Efficient bi-directional Cross Scale: Dựa vào hiệu suất và độ chính xác của các cấu trúc FPN, PAN net và NAS_FPN với NAS_FPN dat được độ chính xác cao nhất bù cho thêm nhiều tham số và chi phí tính toán, phương pháp tối ưu hóa cho cross scale connection được sử dụng cho mô hình: o Bỏ các node chỉ có một cạnh input, vì một cạnh input ko có kết hợp feature thì sẽ có ít đóng góp cho mạng đặc trưng nhăm vào sự kết hợp của nhiều feature khác nhau o Nối thêm | cạnh từ input gốc cùng level để hợp nhiều feature mà không tăng nhiều chỉ phí tính toán.
28 o Xem các bi-directional path (top-down va bottom-up) như một feature network layer va lặp lại nhiều lần dé có được thêm high-level feature fusion Số layer được định bằng phương pháp compound scaling cho các resource constraint khác nhau.
- Weighted Feature Fusion: việc két hop nhiéu feature bang cach resize vé cing một resolution rồi cộng ma trận là một phương pháp phô biến và có thé tạo ra sự bat cân bằng giữa các feature Vì vậy, weighted feature fusion được dé xuất bằng cách thêm weight cho các input khi kết hợp feature và làm cho các weight học được để mạng hiểu được tầm quan trọng của từng input feature.
Có ba cách chính: i o Unbound Fusion: wi la trong số học được có thé coi là scalar(cho mỗi đặc trưng), vector (cho mỗi channel), hoặc tensor đa chiều (cho mỗi pixel) Tuy phương pháp này có thé đạt được sự chính xác so sánh được với các phương pháp khác với chi phí tính toán tối thiểu, nhưng vì scalar weight không bị ràng buộc nên có thé tạo sự bất ôn trong lúc train o Softmax-based Fusion:
Nếu các trọng số không bị ràng buộc giá trị, bị ràng buộc trong khoảng 0 tới
1 thì một trong những phương pháp tốt nhất là áp dụng sofmax cho từng trọng số dé normalise các trọng số Tuy nhiên phương pháp nay lại có chi phí tính toán cao va làm chậm tôc độ của mạng o Fast Normalized Fusion:
Bằng cách áp dụng ReLU, ta có thé dam bảo w_i >= 0 Normalised các giá trị nhận được để giới hạn lớn nhất là 1 để đảm bảo các weight trong khoảng 0-1. Đây là phương pháp đơn giản và hiệu quả hơn so với phương pháp áp dụng Softmax.
Cuối cùng, BiFPN sử dụng bi directional cross scale va fast normalized fusion:
W, +W;ạ +e wi Pi” + w¿ PE + wi Resize(Po“)
Công thức biéu diễn kết hợp feature ở lớp 6 với P6 td là feature trung gian ở phan top-down và P6 out là output feature của phần bottom-up Để tăng thêm hiệu quả, mô hình sử dụng depthwise separable convolution cho kết hợp các feature, và thêm batch normalization và hàm activation sau mỗi convolution.
N00
BiFPN, độ phân giải của hình dau vào phải chia het được cho 2^7 = 218 nên ta tăng tuyên tính độ phân giải băng công thức:
Sử dung các công thức trên và các giá trị khác nhau, ta có thé scale mô hình theo Efficient-D0 (® = 0) đến Efficient-D6(® = 6) Với = 7, mô hình quá lớn dé phủ hợp với bộ nhớ trừ khi thay đổi batch size hoặc thay đổi cài đặt khác Vì thế nên từ D6 lên D7 chỉ có tăng size đầu vào và giữ nguyên các chiều của các mạng khác như D6 dé có thé sử dụng chung training setting cho tat cả mô hình.
Input Backbone BiFPN Box/class size Network #channels #layers #layers
Rinput Wohi fpn Ti fpn Deiase
Một số kỹ thuật liên quan -¿ ¿-++2++2+++£x2rxezxrerxesrxesrxees 37 1 Learning rate scheduler - -s++ss s3 *vEEseeeeseeerserere 37 Chương3 | AP DUNG CÁC PHƯƠNG PHÁP PHÁT HIỆN VAT THÊ CHO BÀI TOÁN PHAT HIỆN Ô TRÓNG TREN KỆ . -¿-©5ccccccvccsrxveesre 39 3.1 _ Tập dữ liệu UIT-OOS . SĂ LH TH TH TH HH HH rưy 39 3.1.1 Tổng quan . s-©cc+c++EkeEktEEEEEEEEEEEerkrrrkerkerkrres 39 3.1.2 _ Chi tiết bộ dữ liệu 2¿©22©2++2xc2ESEESEEErkrrkrerkerrerkrree 40 3.1.3 Xây dựng bộ dữ lIỆu .- 5s SH gi, 4I 3.1.3.1 Quy ước gan nhãn - - 5 ô+ 1x vn ngư 41 3.1.4 Những trường hop không gan nhãn .- -=<++<++sx++ 46 3.2 Áp dụng các mô hình phát hiện vật thê . -¿ ¿ +-s+5-s++ 48 3.2.1 Lựa chọn các mô hình ¿+ << + + +22 113 ‡+2£#E++seekeseeeeszxe 48 3.2.2 _ Huấn luyện mô hình YOLO v4 2-2-2 2+s+E+£E+£xerzrszzs 48 3 Huấn luyện mô hình EfficientDet 2-2 2 52 s£x+£+£zes 50 3.3 Áp dụng Learning Rate Scheduler vào quá trình huấn luyện
Việc sử dung learning rate phù hợp trong quá trình huấn luyện sẽ giúp cho thời gian học của mô hình được rút gọn đáng kể Trong khóa luận này, chúng tôi thử nghiệm hai phương pháp pho biến điều chỉnh learning rate trong quá trình huấn luyện là Stochastic Gradient Descent with Restarts va Steps.
Sử dụng một mức learning rate trong 1000 iterations đầu tiên, sau đó tại mỗi mức iterations định trước, learning rate sẽ được tính theo công thức như anh: steps00,9000,12000 -if policy=steps - at these numbers of iterations the learning rate will be multiplied by scales factor © scales=.1,.1,.1 -if policy=steps - Í.e if steps00,9000,12000, scales=.1,.1,.1 and the current iteration number is 10006 then current_learning_rate = learning_rate * scales[9] * scales[1] = 0.001 * 0.1 * 0.1 =
SGD giúp mô hình hội tụ nhanh hơn khi learning rate được đảm bảo giảm trong quá trình huấn luyện Dé thoát khỏi local minimum, bước “restart” sẽ reset learning rate khi độ lỗi bão hòa trong số lượng iter nhất định.
Set the learning rate of each parameter group using a cosine annealing schedule, where 7)maz is set to the initial Ir, Tour is the number of epochs since the last restart and T; is the number of epochs between two warm restarts in SGDR:
1 Tour he = Nmin ar =(Nmax Nmin ) 1+ cos T 7
When Toye = ẽ¿, set ?}; — Mmin When Toy, = 0 after restart, set 7 = Nmaz -
Chương 3 AP DỤNG CÁC PHƯƠNG PHAP PHÁT HIỆN VAT THE
CHO BÀI TOÁN PHÁT HIỆN Ô TRÓNG TRÊN KỆ
Chương này chúng tôi giới thiệu tập dữ liệu mà chúng tôi đã xây dựng
UIT-OOS và các thiết lập khi huấn luyện hai mô hình YOLO v4 và
3.1 Tập dữ liệu huấn luyện
Bộ dữ liệu SKU-110K bao gồm 11762 ảnh chụp kệ hàng từ nhiều góc độ khác nhau được chia ra thành 3 tập nhỏ test, train và val Để xây dựng tập huấn luyện, chúng tôi thực hiện gán nhãn các 6 trông trên kệ hàng từ tập dữ liệu SKU, đồng thời chúng tôi cũng chụp ảnh thực tế tại các quầy hàng trong siêu thị Việt Nam dé xây dựng bộ ảnh test.
Hình 3.1 Tập anh test xây dựng dựa trên tập dữ liệu SKU-110K
Hình 3.2 Tập ảnh test nhóm chúng tôi tự chụp tại siêu thị Việt Nam
Cụ thể, bộ dit liệu huấn luyện bao gồm 3000 ảnh train, 430 anh test tại cửa hàng nước ngoài và 143 ảnh test tại siêu thị Việt Nam Các ảnh có trong bộ dữ liệu đều là các ảnh có góc chụp trực diện Bộ dữ liệu này được xây dung nhằm mục đích huấn luyện cho mô hình phát hiện được các ô trống trên kệ, đồng thời đây cũng là bộ dit liệu hình ảnh đầu tiên về kệ hàng trong.
3.1.2 Chỉ tiết bộ dữ liệu
Bộ dit liệu huấn luyện được chúng tôi xây dựng có tổng cộng 3000 ảnh train,
430 ảnh test tại cửa hàng nước ngoài và 143 ảnh test tại siêu thị Việt Nam Đề giới hạn bài toán, chúng tôi chỉ gán nhãn các bức ảnh có góc chụp chính diện Trong đó, số lượng các nhãn thuộc tập huấn luyện và đánh giá là:
Norma! 008 Bo Small Obscured 005 am
Hình 3.3Tổng số lượng từng class trong tập train
No Shelf OOS il Ea
Hình 3.4Tổng số lượng từng class trong tập test
3.1.3 Xây dựng bộ dữ liệu
Nhằm mục đích huấn luyện mô hình có thé phát hiện được nhiều loại vùng trống trên kệ (OOS), chúng tôi đã phân chia ra thành 6 loại vùng trống khác nhau:
Gan vùng trống kèm 1 phần thành kệ, để mô hình có thé phân biệt được vùng trong trên kệ với những vùng trồng không dùng dé đựng hàng.
Hình 3.5 Normal OOS: Ô hàng trống hoàn toàn, chỉ nhìn được vùng kệ hàng hoặc một phân của hàng hóa bên cạnh
Hình 3.7 Patterned OOS: Phần thành kệ phía sau không phẳng hoàn toàn mà xen lẫn họa tiết.
3.1.4 Những trường hợp không gan nhãn
Trong quá trình gán nhãn, chúng tôi đã loại ra những trường hợp có thể làm ảnh hưởng đến quá trình học của mô hình Các trường hợp đó bao gồm:
Hình 3.10 Kệ hàng vẫn còn hàng bên trong chứ không hết hàng hoàn toàn.
Trường hợp này thuộc về ít hàng (Low-of-Stock) khác với bài toán mà nhóm muôn giải quyết (Out-of-stock).
Hình 3.11 Ảnh bị hỏng, những ảnh này sẽ được loại bỏ trong quá trình tiền xử lý dữ liệu
3.2 Áp dụng các mô hình phát hiện vật thể
3.2.1 Lựa chọn các mô hình
Vào thời điểm nhóm chúng tôi bắt đầu tìm hiểu, EfficientDet là mô hình state-of-the-art trên bộ dữ liệu COCO cho bài toán phát hiện vật thể Bên cạnh đó, YOLO v4 là phiên bản mới nhất của họ YOLO được giới thiệu cách đây không lâu, đồng thời YOLO v4 cũng đạt state-of-the-art khi đánh giá trên thời gian thực
(~62FPS) với độ chính xác trung bình đạt 43.5% (65.7% trên AP50) Chúng tôi thực hiện huấn luyện hai mô hình này nhằm tìm ra mô hình phù hợp cho bài toán phát hiện 6 trống trên kệ hàng Ở mỗi lần huấn luyện, với mỗi mô hình, chúng tôi huấn luyện song song hai phiên bản của mô hình để so sánh, một phiên bản sử dụng
Steps Learning Rate Scheduler và phiên bản còn lại sử dụng SGDR.
3.2.2 Huấn luyện mô hình YOLO v4
Trong quá trình thực hiện khóa luận, chúng tôi thực hiện huấn luyện mô hình sau mỗi 1000 ảnh được gán nhãn và thực hiện đánh giá theo từng chặng Sau mỗi chặng, chúng tôi sử dụng mô hình dé dự đoán bounding boxes cho 1000 anh cần gán nhãn tiếp theo, từ đó giúp giảm thời gian xử lý dữ liệu.
Loss s.o HEE eer eer | err el Seer Rep ree
0 800 1600 2400 3200 4000 4800 5600 6400 7200 80 current avg loss = 1.1585 iteration = 8000 approx time left = 0.35 hours
Press 's' to save : chart.png — Saved Iteration number in efg max_batches00
Với hai phương pháp giảm learning rates là Steps và SGDR, chúng tôi thiết lập các thông sô như sau:
Steps SGDR steps00,9000,12000 // Tại epoch| sgdr_cycle00 // Số lượng vòng lặp thứ steps[i], learning rate sẽ được nhân | trước khi SGDR thiết lập lại learning thêm một lượng scales[1] rate ban đầu. scales=0.1, 0.1, 0.1 // Gia tri scales sử sgdr_mult=2 // Sau khi hoan thanh 1
49 dụng dé xác định learning rate cycle, cycle mới sẽ được nhân thêm một lượng bằng sgdr_mult
3.2.3 Huấn luyện mô hình EfficientDet
Do tài nguyên sử dụng hạn chế nên chúng tôi chỉ có thể sử dụng phiên bản EfficientDet-D0 Đây là phiên bản có thời gian huấn luyện và cấu hình yêu cầu thấp nhất trong 8 phiên bản EfficientDet (D0 — D7).
3.3 Ap dung Learning Rate Scheduler vào quá trình huấn luyện
Chuong4 THỰC NGHIỆM Ở chương này chúng tôi tiến hành thực nghiệm 2 mô hình YOLO v4 và EfficientDet cho bài toán phát hiện ô trống trên kệ hàng, huấn luyện trên bộ dữ liệu tự xây dựng UIT-OOS, đồng thời đánh giá và so sánh 2 mô hình này với nhau.
Các thí nghiệm được nhóm thực hiện trên máy ảo của Google Colab. Câu hình của máy ảo như sau:
Hệ điều hành Ubuntu 18.04.3 LTS
CPU Intel® Xeon® CPU 2.20GHz 2 cores
RAM & Disk Space 12 GB RAM & 60 GB HDD
4.2 Độ đo phố biến trong bài toán phát hiện đối tượng
THỰC NGHIỆM .- 22 2S EEvEEtrtrtrrsrrrsrererrree 51 4.1 — Tài nguyÊn HH TH HH nh 51 4.2 Độ đo phô biến trong bài toán phát hiện đối tượng
Interpolated PreCISIOII .- 5 (<1 Sky 33
Interpolated Precision là Precision cao nhất tại các mức Recall thường được chia thành 11 mức với bước nhảy 0.1 từ 0 tới 1.
Hình 4.3 Hình vi dụ cho Interpolated Precision 4.2.5 AP
AP (Average Precision) cua một class là trung bình của Interpolated Precision của class đó và mAP được tinh bằng cách lay trung bình của tat cả các class. Độ đo AP của COCO được định nghĩa như mAP Sử dụng Interpolated AP với 101 mức khác với 11 mức mặc định.
Các thuật ngữ trong COCO AP:
- AP: AP tại ngưỡng loU=.50:.05:.95 (độ đo chính của COCO) Độ đo được tính bằng trung bình của AP tại các ngưỡng IoU từ 50 đến 95 với bước nhảy
- AP lIou=.50 : AP tại ngưỡng loU=.50 (tương tự như độ đo của PASCAL
- AP JoU=.75 : AP tại ngưỡng loU=.75
- _ AP small : AP cho những đối tượng nhỏ: diện tích < 322
- AP medium: AP cho những đối tượng vừa: 322 < diện tích < 962
- AP large: AP cho những đối tượng lớn: diện tích > 962
- AR max=l: AR cho ảnh chỉ có một detection
- AR max: AR cho ảnh có nhiều nhất 10 detection
- AR max0: AR cho anh có nhiều nhất 100 detection
- _ AR small: AR cho những đối tượng nhỏ: diện tích < 322
- AR medium: AR cho những đối tượng vừa: 322 < diện tích < 962
- AR large: AR cho những đối tượng lớn: diện tích > 962
Trong khuôn khổ của khóa luận, chúng tôi sử dụng độ đo mAP dé đánh giá hai mô hình.
4.3.1 Huấn luyện YOLO v4 và EfficientDet e Kết quả mAP@0.5 khi kết hợp phương pháp Learning Rate Scheduler
Bảng 4.1 Kêt qua mAP@0.5 khi kêt hop phương pháp Learning Rate Scheduler trên mô hình YOLOv4 YOLO v4 1000 anh 2000 anh 3000 anh
Bảng 4.2 Kết quả mAP@0.5 khi kết hop phương pháp Learning Rate Scheduler trên mô hình EfficientDet EfficientDet 1000 anh 2000 anh 3000 anh
Bang 4.3 Kết quả mAP@0.5 cho từng class trên mô hình YOLOV4 sử dụng
SGDR YOLO v4 1000 ảnh 2000 ảnh 3000 ảnh
Bảng 4.4 Kết quả mAP@0.5 cho từng class trên mô hình EfficientDet sử dụng
EfficientDet-DO 1000 anh 2000 anh 3000 anh
4.4 Các trường hợp khó của bài toán
Các trường hợp khó của bài toán mà chúng tôi tổng hợp được:
Hình 4.5 Ô trống nằm trong tủ kính, hình ảnh bị phản chiếu
Hình 4.6 Sản phẩm được đặt nằm ngang, gây nhằm lẫn với class Small Obscured
Hình 4.8 Sàn nhà trong ảnh bị nhằm lẫn thành vùng trống.
Qua các thí nghiệm và kết quả thu về, chúng tôi đi đến kết luận:
+ Mô hình YOLO v4 sẽ cho kết quả tương đương EfficientDet-D0 khi sử dung cùng một cấu hình miễn phí của Google Colab (Bang ).
+ Sử dụng các kỹ thuật learning rate scheduler giúp cho mô hình hội tụ nhanh hơn.
Chương 5 ỨNG DỤNG MINH HỌA Ở chương này, chúng tôi tiến hành xây dựng chương trình minh họa dựa trên mô hình mạng YOLO v4.
Chương trình minh họa là trang web sử dụng mô hình YOLO v4 đã được huấn luyện dé giải quyết bài toán phát hiện OOS.
Chương trình sử dụng thư viện Gradio dé làm giao diện chính cho trang web. Gradio là thư viện hỗ trợ tạo các thành phần giao diện dễ dàng không cần thông qua các ngôn ngữ thiết kế giao diện khác như HTML, Javascript, CSS, đồng thời cũng tạo server để host trang web tạm thời tại trang web chính của Gradio bằng cách gọi interface function gồm 3 thành phan chính: e fn: hàm dự đoán được gọi khi người dùng tương tác với giao diện dé dự đoán kêt quả khi có input. e inputs: các loại input ở trên giao diện sử dung đê tạo ra các dự đoán e outputs: các output được trả vê từ hàm dự đoán.
Chương trình gồm các API chính:
API nhận input là hình kệ hàng chứa các sản phẩm do người dùng cung cấp hoặc từ các ví dụ cho san.
API cho phép edit hình ảnh được cung cấp sẵn bởi giao diện Gradio bao gồm crop, flip, rotate, draw, color filter, add text.
API trả về hình ảnh có khoanh vùng vi trí và số lượng các 6 trống.
Run All Load Previous (CTRL+—) Load Next (CTRL ++) Examples
Hình 5.1Giao diện khởi tao của chương trình Ô IMAGE nhận input từ người dùng bằng cách đăng ảnh bang cách kéo thả hoặc ấn vào ô đề chọn hình từ máy, ngoài ra còn có thể sử dụng các hình mẫu có san được cho ở dưới.
Run All Load Previous (CTRL+—) —_ Load Next (CTRL +—) Examples œ›: đê sử dụng chương trình
Run All Load Previous (CTRL +) Load Next (CTRL +—)
Hình 5.3Hoặc sử dụng các anh demo có san.
Người dùng khi sử dụng phiên bản web trên nền tảng PC còn có thể sử dụng được tính năng chỉnh sửa anh, bao gôm cắt, xoay, lật anh,
Sau khi chọn ảnh thì ấn SUBMIT để tiến hành dự đoán Chương trình sẽ xuất ra hình anh có các vùng OOS được khoanh ở 6 OUTPUT va số lượng OOS ở ô
Run All Load Previous (CTRL+