e Ý tưởng:
Ý tưởng chính của SSD đến từ việc sử dụng các bounding box, bằng
việc khởi tạo sẵn các box tại mỗi vị trí trên ảnh, SSD sẽ tính toán và
19
đánh giá thông tin tại mỗi vi trí xem vi trí đó có vật thé hay không,
nêu có thì là vật thê nào, và dựa trên két quả của các vi trí gan nhau,
SSD sẽ tính toán được một box phù hợp nhất bao trọn vật thê.
Ngoài ra, bằng việc tính toán bounding box trên các feature map khác nhau, tại mỗi tầng feature map, một box sẽ ôm trọn một phần hình ảnh
với các kích thước khác nhau. Như trên ví dụ dưới đây (hình 11), con
mèo và con chó có thé được phát hiện ở hai tầng feature map khác
nhau, hai kích thước và tỉ lệ khác nhau. Thay vì sử dụng một box và
thay đổi kích thước box cho phù hợp với vật thé, thì SSD sử dụng nhiều box trên nhiều tầng, từ đó tổng hợp ra vị trí và kích thước box kết quả. Bằng việc loại trừ các region proposal, SDD có thê đạt được tốc tộ xử lí cao hơn Faster R-CNN.
lŸloc : A(cz, cụ, w, h)
conf : (ex, 21° ` Cụ)
e Kiến trúc của Single Shot Detector:
SSD sử dụng kiến trúc VGG16 — một kiến trúc mạng tích chập tiêu chuẩn thường được sử dụng cho việc detect ảnh có chất lượng cao — đóng vai trò như một kiến trúc cơ sở cho hệ thống để extract các feature map. Sau đó SSD thêm một số convolutional feature layers vào phía sau kiến trúc VGG16. SSD sử dụng các filter có kích thước 3
x 3 x p trên các layer dùng dé dự đoán thay vi dùng fully connected layer như trên YOLO. Bằng việc sử dụng các filter, kích thước của
20
các feature map sẽ giảm dân theo độ sâu của mang, hỗ trợ cho việc
phát hiện vật thé ở các kích thước và tỉ lệ khác nhau.
Trên một feature map kích cỡ m x n, tại mỗi vị trí cell hay tại mỗi pixel, khởi tạo các default bounding box, các box này có vai trò giống như các anchor của Faster R-CNN. Tuy nhiên, vì vị trí của mỗi cell cố định nên các box nảy cũng sẽ được cố định. Tại mỗi cell, giả sử khởi tạo k box, SSD phải tính toán phân loại c class và đồng thời tính toán xem hình dáng của box như thế nào, như tọa độ (cx, cy), dài và rộng (w, h). Vậy tổng số tính toán là (c+4) * k * m * n.
Extra Feature Layers
J
Classifier : Conv: 3x3x(6x(Classes+4))
Fa — \ `
Conv: 3x3x1024 Conv: 1x1x1024 Com:1xx296 Conv: 1x1xi28 Conv:1xixi28 Conv:1x1x128
Conv: 3x3x512-s2 Conv: 3x3x266-s2 Conv: 3x3x256-81 Conv: 3x3x256-s1
74.3mMAP
59FPS
Conv: 3x3x(4x(Classes+4)) Detections:8732 per Class
Hình 12. Kiến trúc của mô hình Single Shot Detector [12]
2.4.3. Training với mô hình Single Shot Detector
Việc training của Single Shot Detector yêu cầu được cung cap thông tin
về các groundtruth của vật thé bao gồm các thông tin về class và shape.
Vì vậy dé thực hiên training cho mô hình, chúng ta phải cần một tập dữ liệu chứa khung để xác định vị trí của mỗi đối tượng và được gán nhãn
tương ứng.
Khái niệm về Intersection Over Union (IoU):
e Là chỉ số đánh giá được sử dụng để đo độ chính xác của các Object
Detector trên tập dt liệu cu thé. Mọi thuật toán có khả năng dự đoán
ra các bounding box làm output đều có thê được đánh giá qua IoU.
21
e Để có thé áp dụng được IoU dé đánh giá một Object Detector bat ki
ta cần: những ground-truth bounding box (bounding box đúng của đối tượng, ví dụ như bounding box của đối tượng được khoanh vùng
và đánh nhãn bằng tay sử dụng trong tập test.) và Những predicted
bounding box được sinh ra từ model. Ví dụ như hình sau:
- Predicted bounding box
Hình 13. Ví du về Intersection Over Union
e Công thức tinh toán Inersection over Union có thé được định nghĩa
thông qua:
22
Area of Overlap loU =
Area of Union
Hình 14. Công thức tinh cua Intersection Over Union
Nhìn vào công thức này, ban sẽ thay IoU đơn giản là một tỉ lệ. O tử số
ta tính toán area of overlap - diện tính phần chồng lên nhau giữa predicted bounding box và ground-truth bounding box. Phần mẫu số là area of union - diện tích phần hợp - hay đơn giản hơn là diện tích mà hai bounding box này đang chiếm. Chia diện tích phần chồng (giao) cho diện tích phần hợp sẽ thu được giá trị mà ta mong muốn -
Intersection over Union (IoU).
Poor Excellent
Hình 15. Công thức tinh cua Intersection Over Union (tt)
23
2.4.4.
e Trong quá trình traning, ta tiến hành tìm các default box trên các
feature map phù hợp với ground-truth bounding box bằng cách tìm các box có loU cao. Thường các box được chọn sẽ có chỉ số loU > 0.5. Trong trường hợp có nhiều box có IoU lớn hơn 0.5 thì chương trình sẽ ưu tiên chọn các box có chỉ số IoU cao hơn.
Hàm loss của mô hình Single Shot Detector
Ham loss của mô hình Single Shot Detector được xây dựng bang hai hàm chính là localization loss để đánh giá việc phát hiện và
confidence loss dé đánh giá việc phân lớp đối tượng.
Đặt xi = {1,0} ứng với default box thứ i khớp với groundtruth thứ j
thuộc lớp p, ta có ham loss sau:
1 2.20
LG;e,L,8) = 7 Leon Gre) + luce bg) “ẾD
N ở đây là số lượng những default box phù hợp được tìm ở bước trên. Nếu N =0 thi Loss = 0. Ham Loss L„„„ được tính bằng Smooth L1
loss giữa box dự đoán (1) và ground-truth box (g). Với các tham số như điểm chính giữ (cx, cy) của default box (d) và chiều dài (w),
chiều rộng (h).
e Localization Loss:
N
Lục (%X, Lg) = ằ ằ xjsmooth,(" — Gj) (2.21)
i € Pos mE {cx,cy,w,h}
e Confidence Loss:
N
Leong (40) = — ằ xj, log(ờ”) — >, log(ờ7) (2.22)
¡€Pos ie€ Neg
24
Với
yy. 2)
' Yip exp (c;’)
2.4.5. Chon kích thước và tỉ lệ default box
Các feature map ở độ sâu khác nhau sẽ có kích thước khác nhau, vì
vậy, kích thước của các default box cũng được thay đổi theo độ sâu của feature map. Ví dụ với độ sâu là m (bao gồm m feature map tai
bước detect):
S — Smin
Sk = Smin aig = [1, mM], Smin = 0.2, Smax = 0.9
Giả sử với m = 3, ta lân lượt sẽ có s; = 0.2, sz = 0.55, s3 = 0.9.
Với tỉ lệ giữa chiêu dai va chiêu rộng cua box, sẽ tính được với a, €
{1,2,3,5, 311
Chiều dài và chiều rộng có thé tinh từ a, :
wt = Sự ay (2.23)
ht = s/o (2.24)
Với trường hop tỉ lệ bang 1, ta thêm 1 box nữa với kích thước là
Sự = VwSxS„ +1. Như vậy, trên một vi trí của feature map sẽ có
tổng cộng 6 bounding box. Tâm điểm của mỗi box sẽ được tính bằng:
25
i+05 J+05
lfw| ’ lfkl
( )
Với |ƒ„| là kích cỡ của feature map hình vuông i,j là vị trí của cell.
2.5. Phương pháp đánh giá một model Machine Learning"*!
Việc đánh giá sẽ được dựa vào những chỉ số như sau để đánh giá tính chính xác
và cũng đánh giá tính độ tin cậy của model.
Accuracy (độ chính xác): Day là cách đơn giản và được sử dụng nhiều nhất. tính
tỉ lệ giữa số điểm được dự đoán đúng va tổng số điểm trong tập dữ liệu kiểm thử. Cách đánh giá này đơn giản tính tỉ lệ giữa số điểm được dự đoán đúng và tong số điểm trong tập dữ liệu kiểm thử.
Confusion matrix: Chỉ ra được cu thé mỗi loại được phân loại như thế nào, lớp nào được phân loại đúng nhiều nhất, và đữ liệu thuộc lớp nào thường bị phân loại nhằm vào lớp khác. Về cơ bản, confusion matrix thể hiện có bao nhiêu điểm
dir liệu thực sự thuộc vào một class, và được dự đoán là rơi vào một class.
True/False Positive/Negative: thường được áp dụng cho các bài toán phân lớp
có hai lớp dữ liệu. Cụ thé hơn, trong hai lớp dữ liệu này có một lớp nghiêm trọng hơn lớp kia và cần được dự đoán chính xác. Ví dụ, trong bài toán xác định
có bệnh ung thư hay không thì việc không bị sót (miss) quan trọng hơn là việc
chân đoán nhằm âm tính thành dương tính. Trong bài toán xác định có mìn dưới lòng đất hay không thì việc bỏ sót nghiêm trọng hơn việc báo động nhằm rất nhiều. Hay trong bài toán lọc email rác thì việc cho nhằm email quan trọng vào
thùng rác nghiêm trọng hơn việc xác định một email rác là email thường.
Trong những bài toán này, thường định nghĩa lớp dữ liệu quan trọng hơn cần
được xác định đúng là lớp Positive (P-dương tính), lớp còn lại được gọi là Negative (N-âm tính). Ta định nghĩa True Positive (TP), False Positive (FP), True Negative (TN), False Negative (FN) dựa trên confusion matrix.
Precision va Recall: Với bài toán phan loại mà tap dữ liệu của các lớp là chênh
lệch nhau rất nhiều, có một phép đó hiệu quả thường được sử dụng là Precision-
Recall.
26
Với một cách xác định một lớp là positive, Precision được định nghĩa là tỉ lệ số điểm true positive trong số những điểm được phân loại là positive (TP + EP). Recall được định nghĩa là tỉ lệ số điểm true positive trong số những điểm thực
sự là positive (TP + FN).
Một cách toán hoc, Precison va Recall là hai phân số có tử số bằng nhau nhưng
mâu sô khác nhau:
TP (2.25)
Precision =
recision TP + FP
TP (2.26)
Recall = TP + FN
Precision cao đồng nghĩa với việc độ chính xác của các điểm tìm được là cao. Recall cao đồng nghĩa với việc True Positive Rate cao, tức tỉ lệ bỏ sót các điểm thực sự positive là thấp.
F1-score: là harmonic mean của precision va recall
2 _ 1 Ẫ 1 (2.27)
F1 precision recall
bò. 1 =2 precision * recall (2.28)
1 TT +
precision recall
precision + recall
Fl-score có giá trị nằm trong nửa khoảng (0, 1]. F1- score càng cao, bộ phan lớp càng tốt. Khi ca recall va precision đều bằng 1 (tốt nhất có thể), F, = 1.
2.6. Tìm hiểu về kit NVIDIA Jetson nano
2.6.1. Giới thiệu chung
NVIDIA Jetson Nano Developer Kit là một máy tính nhỏ nhưng rất mạnh mẽ cho phép bạn chạy song song nhiều neural network để có thể sử dụng cho nhiều loại ứng dụng như phân loại hình ảnh, phát hiện đối tượng, phân đoạn
27
và xử lý giọng nói. Tất cả trong cùng một nên tảng dễ sử dụng cũng như tiêu tốn ít hơn 5 wats.
Jetson Nano cũng cấp 472 GFLOPS để chạy các thuật toán AI hiện đại một
cách nhanh chóng, với một CPU quad-core 64-bit ARM, một NVIDIA GPU
128-core được tích hợp trên board mạch, cũng như bộ nhớ 4GB LPDDR4.
Có thể chạy song song nhiều mạng neural và xử lý đồng thời một số cảm biến có độ phân giải cao.
Chú thích: Thuật ngữ GFLOPS là một chỉ số đại diện cho tốc độ và khả năng
tính toán của GPU, tương đương với khả năng thực hiện 19.2 tỷ phép tính trên một giây.