TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG Trà Văn Đồng tgk SO SÁNH THUẬT TOÁN SSD VÀ YOLO TRONG PHÁT HIỆN ĐỐI TƯỢNG COMPARE SSD ALGORITHM AND YOLO IN OBJECT DETECTION TRÀ VĂN ĐỒNG, NGUYỄN THU NGUYỆT MINH(**) HUỲNH CHÍ NHÂN TĨM TẮT: Phát đối tượng chia thành hai nhóm là: 1) Phát đối tượng cụ thể 2) Phát chủng loại đối tượng Hầu hết phương pháp dựa họ R-CNN (Regions with Convolutional Neural Network Family) R-CNN, Fast R-CNN [4], Faster R-CNN [2], Mask R-CNN,… gồm chuỗi tiến trình nhiều lớp xen kẽ phức tạp chi phí cao Năm 2016, Joseph Redmon đồng đề xuất phương pháp phát đối tượng YOLO (You Only Look Once) [1] Wei Liu đồng đề xuất phương pháp phát đối tượng SSD (Single Shot Detector) [3] dựa cách tiếp cận khác Từ khóa: phát đối tượng; deep learning; mạng neuron tích chập CNN; YOLO; SSD ABSTRACT: Object detection can be divided into two groups: 1) detecting a specific object, and 2) detecting categories of the object Most of methods based on R-CNN family (Regions with Convolutional Neural Network Family) such as R-CNN, Fast R-CNN, Faster R-CNN, Mask RCNN,… it comprises of a sequence of processing of alternated layers which is very complex and expensive In 2016, Joseph Redmon et al proposed a method of object detection named YOLO (You Only Look Once), and Wei Liu et al proposed a method of object detection named SDD (Single Shot Detector) based on a different approach Key words: object detection; deep learning; convolutional neural network; YOLO; SSD phương pháp học hữu hiệu đặc trưng rút trích trực tiếp từ liệu Khi muốn phát object ảnh, sau đánh nhãn cho object đó, phương pháp cũ chậm để phục vụ real-time, đòi hỏi thiết bị phải mạnh YOLO SSD đời, có khả gán nhãn cho tồn object khung hình với operation mơ hình sử dụng mạng neural Có thể nói YOLO, SSD xây dựng hướng tiếp cận giúp đưa Object detection thực khả thi sống Trong viết này, xin trình bày hai thuật tốn nói để làm rõ vấn đề tìm kiếm đối tượng ĐẶT VẤN ĐỀ Thuật tốn SSD YOLO thuộc nhóm single shot detectors Cả hai sử dụng convolution layer để rút trích đặc trưng convolution filter để đưa định dùng feature map có độ phân giải thấp (low resolution feature map) để dị tìm đối tượng, phát đối tượng có kích thước lớn Phát đối tượng với mục tiêu phát đối tượng có hay khơng nhiều ảnh, định vị đối tượng ảnh, toán thử thách thị giác máy tính Các kỹ thuật deep learning [8] phát triển gần xem ThS Trường Đại học Văn Lang, dong.tv@vlu.edu.vn ThS Trường Đại học Văn Lang, Mã số: TCKH22-10-2020 62 TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG Số 23, Tháng – 2020 có nghĩa Pr(Object) = đối tượng khơng có box Pr(Object) = đối tượng có box Chỉ số conf phản ánh có hay khơng đối tượng thuộc chủng loại (lớp) box.IOU tỷ lệ diện tích vùng giao diện tích vùng hợp box, thơng thường IOU > 50% xem box dự đốn có đối tượng Trường hợp muốn dự đoán xác xuất đối tượng thuộc chủng loại sử dụng thêm xác xuất có điều kiện Pr(Class(i) | Object) 2.1.2 Mạng neuron tích chập YOLO xây dựng mạng CNN để dự đoán tensor kích thước (7,7,30) Mạng CNN có tác dụng làm giảm kích thước khơng gian vị trí thành x với 1024 kênh đầu Hình minh họa kiến trúc mạng YOLO Kiến trúc mạng CNN YOLO có 24 lớp tích chập kết hợp với lớp max pooling lớp fully connected Lần lượt lớp tích chập giảm kích thước khơng gian đặc trưng từ lớp trước NỘI DUNG 2.1 Thuật toán YOLO [5] YOLO 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 tạo từ việc kết hợp convolutional layers connected layers Trong đó, convolutional layers trích xuất feature ảnh; fullconnected layers dự đoán xác suất tọa độ đối tượng YOLO đề xuất từ ý tưởng người phát định vị đối tượng nhìn qua lần Do kiến trúc hệ thống phát đối tượng YOLO tương đối đơn giản minh họa hình Hình Hệ thống phát đối tượng YOLO đơn giản Ghi chú: 1) Ảnh điều chỉnh thành ảnh có kích thước phù hợp (chẳng hạn 448x448); 2) Chạy mạng tích chập đề rút trích đặc trưng; 3) Kết phát dựa ngưỡng rút từ độ tin cậy mơ hình, xử lý phát đối tượng 45 frames/s với độ xác cao 2.1.1 Vector dự đoán (The Predictions Vector) Đây vector đầu YOLO Ảnh đầu vào chia thành lưới gồm SxS ô Với đối tượng ô, ô lưới xem ứng viên để dự đốn đối tượng Mỗi dự đốn cho B bounding box (gọi tắt box) C xác xuất cho lớp đối tượng Mỗi box có thành phần: (x,y,w,h,conf) Trong (x,y) tọa độ tương đối tâm box so với ô (điều có nghĩa tâm box khơng rơi vào khơng xem ô ứng viên) Các tọa độ chuẩn hóa [0,1] (w,h) chiều rộng chiều dài tương đối box chuẩn hóa [0,1] Thành phần conf gọi độ tin cậy box conf tính sau: Hình Kiến trúc mạng CNN YOLO Bảng Liệt kê lớp mạng CNN (gọi mạng CNN đầy đủ - full CNN) hệ thống YOLO Tên Conv Max Pool Conv Max Pool Conv 15 Bộ lọc x x 64, stride=2 x 2, stride=2 x x 192 x 2, stride=2 x x 512 Kích thước đầu 224 x 224 x 64 112 x 112 x 64 112 x 112 x 192 56 x 56 x 192 28 x 28 x 512 Một mạng CNN hệ thống YOLO không thiết phải đầy đủ 24 lớp mà tùy đối tượng điều chỉnh giảm số lớp cho phù hợp số lớp ít, tốc độ YOLO nhanh 𝑐𝑜𝑛𝑓 = 𝑃𝑟(𝑂𝑏𝑗𝑒𝑐𝑡) ∗ 𝐼𝑂𝑈(𝑝𝑟𝑒𝑑, 𝑡𝑟𝑢𝑡ℎ) (1.1) Trong đó: IOU số IOU [7] (Intersect Over Union) Nếu đối tượng khơng có box conf = 0, ngược lại conf = IOU(pred, truth) Điều 63 TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG Trà Văn Đồng tgk Lớp cuối sử dụng hàm kích hoạt tuyến tính, lớp khác sử dụng hàm leaky RELU: 𝑥 𝜃(𝑥) = { 0.1𝑥 Hình Ảnh đầu vào cho YOLO Hệ thống thực chia ảnh đầu vào thành lưới, để đơn giản chẳng hạn 3x3 𝑛ế𝑢 𝑥 > (1.2) 𝑛𝑔ượ𝑐 𝑙ạ𝑖 2.1.3 Hàm chi phí (Loss function) Hàm chi phí dùng để tối ưu hóa q trình huấn luyện có cơng thức 𝑜𝑏𝑗 𝜆𝑐𝑜𝑜𝑟𝑑 ∑𝑆𝑖=0 ∑𝐵𝑗=0 𝟙𝑖𝑗 (𝑥𝑖 − 𝑥̂𝑖 )2 + (𝑦𝑖 − 𝑦̂𝑖 )2 (1.3) Trong đó: coord số cho trước (x,y) tọa độ tương đối box 𝟙obj định nghĩa sau; 1, đối tượng có thứ i box thứ j, mà box box ứng viên 0, trường hợp khác 2.1.4 Quy trình phát đối tượng Quá trình phát đối tượng hệ thống YOLO tóm lược bước sau: YOLO nhận ảnh đầu vào, chẳng hạn hình Hình Hệ thống lưới YOLO chia cho ảnh đầu vào Phân lớp định vị ảnh thực cho ô lưới Khi YOLO dự đốn box xác suất thuộc chủng loại cho đối tượng (nếu có) Dữ liệu gán nhãn đưa vào mô hình để huấn luyện Trong hình hệ thống chia ảnh đầu vào thành ma trận x 3, giả sử hệ thống có lớp người bộ, xe xe máy Do ô lưới, nhãn y vector chiều Bảng Bảng thể nhãn y phát không phát đối tượng y pc y y bx ? bx by ? by bh ? bh bw ? bw c1 ? c2 ? c3 Vector chiều ? Khi không phát đối tượng Trong đó: pc: xác định đối tượng có hay khơng (xác suất); bx, by, bw, bh: số box; c1, c2, c3: tượng trưng cho lớp Nếu đối tượng xe c2=1, c1=c3=0 Khi có đối tượng Xét ví dụ trên: Vì khơng có đối tượng này, pc=0 nhãn y là: Dấu? hàm ý giá trị bx, by, bw, by… khơng có ý nghĩa khơng có đối tượng 64 TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG Số 23, Tháng – 2020 Xét có đối tượng xe đó: Nhãn y là: Như với ô có vector chiều đầu Đầu ma trận có dạng x x tương đối đơn giản chứa nhiều đối tượng việc tính số box phức tạp Do phát sinh khái niệm anchor box Xét hình sau đây: Hình Mơ hình huấn luyện YOLO Tính tốn số cho box: YOLO tọa độ tương đối đối tượng ô loại bớt box phương pháp Non-max Suppression Trường hợp đối tượng nằm nhiều Các YOLO khơng dự đốn đối tượng có cách độc lập mà có liên kết khơng sử dụng liệu có mà cịn sử dụng liệu ô lân cận mạng CNN Anchor box: trường hợp có đối tượng việc tính tốn số box Hình Ví dụ anchor box Hình Hai loại anchor box Bảng Nhãn y thể có anchor box pc bx by bh bw c1 c2 c3 pc bx by bw c1 c2 c3 y YOLO lấy tâm đối tượng dựa vị trí tâm gán đối tượng thuộc ô Trong ví dụ tâm đối tượng nằm chung ô Trường hợp YOLO tính số box cho đối tượng sau: YOLO định nghĩa loại anchor box minh họa Hình Khi nhãn y có dạng sau: dòng thuộc anchor box 1, dòng thuộc anchor box Đối tượng gán cho anchor box dựa tính tương đồng hình dáng anchor box với box (bounding box) Một cách tổng quát số anchor box với số đối tượng có 2.2 THUẬT TỐN SSD [3] Tương tự YOLO, việc phát đối tượng nhiều đối tượng ảnh cần lướt qua ảnh lần, SSD phát đối tượng nhanh so với cách tiếp cận dựa họ R-CNN Hoạt động SDD gồm giai đoạn: Rút trích ánh xạ đặc trưng; Sử dụng lọc tích chập để phát đối tượng 2.2.1 Rút trích đặc trưng SSD sử dụng mạng tích chập để rút trích đặc trưng, cụ thể sử dụng lớp Conv4_3 Hình trực quan hóa kết rút trích lớp Conv4_3 ma trận 8x8 (thực tế 38x38) Với vị trí có đối tượng dự đốn Hình Ảnh trái: ảnh gốc Ảnh phải: bounding box dùng dự đoán điểm 65 TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG Trà Văn Đồng tgk hình, cơng thức (2.1a) (2.1b) tính chiều dài w chiều cao h box mặc định w= tỷ lệ scale √tỷ lệ khung hình (2.1a) ℎ= Hình SSD sử dụng ma trận nhỏ để phát đối tượng ma trận lớn 𝑡ỷ 𝑙ệ 𝑠𝑐𝑎𝑙𝑒 √𝑡ỷ 𝑙ệ 𝑘ℎ𝑢𝑛𝑔 ℎì𝑛ℎ (2.1b) 2.2.5 Phát đối tượng Các dự đoán SSD phân loại so khớp dương so khớp âm SSD sử dụng so khớp dương để tính tốn chi phí định vị Nếu số IoU lớn 0.5, so khớp dương, ngược lại âm Hình minh họa tỷ lệ IOU bounding box với box mặc định bounding box chọn cho đối tượng 2.2.6 Box mặc định ma trận đặc trưng nhiều tỷ lệ Hình minh họa cách SSD kết hợp ma trận đặc trưng theo nhiều tỷ lệ với bounding box mặc định để phát đối tượng theo nhiều tỷ lệ Điều chứng tỏ lớp ma trận đặc trưng có độ phân giải cao phù hợp cho việc phát đối tượng có kích thước nhỏ 2.2.2 Bộ dự đốn tích chập dùng dự đốn đối tượng SSD tính số cho vị trí lớp cách sử dụng lọc tích chập Sau có ma trận đặc trưng, SSD sử dụng lọc tích chập 3x3 để dự đoán Các lọc thực dự đoán tương tự lọc CNN Mỗi lọc cho 25 kênh đầu bao gồm: 21 số cho lớp bounding box cho vị trí 2.2.3 Sử dụng nhiều tỷ lệ cho ánh xạ đặc trưng để phát đối tượng SSD sử dụng lớp có độ phân giải thấp để phát đối tượng có tỷ lệ lớn Việc sử dụng ma trận đặc trưng nhiều tỷ lệ cải thiện đáng kể độ xác thuật tốn Bounding box mặc định; 2.2.4 Lựa chọn box mặc định Các box mặc định chọn thủ cơng, sau SSD định nghĩa giá trị tỷ lệ ảnh (scale) cho lớp đặc trưng Đi từ trái sang, lớp Conv4_3 bắt đầu phát đối tượng từ tỷ lệ nhỏ 0.2 (đôi 0.1) tăng tuyến tính lớp tận bên phải đạt tỷ lệ 0.9 Kết hợp giá trị tỷ lệ scale với tỷ lệ khung Hình 10 Các ma trận tỷ lệ khác dùng phát đối tượng khác 2.2.7 Kiến trúc mạng SSD Hình 11 Kiến trúc mạng SSD 66 TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG Số 23, Tháng – 2020 Để việc thực xác, lớp ánh xạ đặc trưng khác phải qua lớp tích chập 3x3, sử dụng để phát đối tượng Như bounding box có (c+4) đầu Khi qua lọc 3x3 lớp Conv4_3 có 38x38x4x(21+4) = 144.400 đầu Nếu tính riêng bounding box, số lượng bounding box 38x38x4 = 5776 Tương tự cho lớp khác: Lớp Conv7: 19x19x6 = 2166 bounding box (6 box cho vị trí) Lớp Conv8_2: 10x10x6 = 600 bounding box (6 box cho vị trí) Lớp Conv9_2: 5x5x6 = 150 bounding box (6 box cho vị trí) Lớp Conv10_2: 3x3x4 = 36 bounding box (4 box cho vị trí) Lớp Conv11_2: 1x1x4 = bounding box (4 box cho vị trí) Nếu cộng lại có tất cả: 5776 + 2166 + 600 + 150 + 36 +4 = 8732 bounding box 2.2.8 Hàm chi phí (Loss Function) Hàm chi phí SSD có cơng thức sau: 𝐿(𝑥, 𝑐, 𝑙, 𝑔) = 𝑁 2.2.9 Tỷ lệ co giản tỷ lệ khung hình box mặc định Tỷ lệ co giản box mặc định tính sau: 𝑠𝑘 = 𝑠𝑚𝑖𝑛 + Trong đó: 𝑔̂𝑗𝑤 = 𝑐𝑦 𝑔𝑗𝑤 𝑙𝑜𝑔 ( 𝑤 ) 𝑑𝑖 𝑐𝑦 𝑔̂𝑗 = 𝑐𝑦 𝑔𝑗 − 𝑑𝑖 𝑑𝑖ℎ 𝑔𝑗ℎ 𝑣à 𝑔̂𝑗ℎ = 𝑙𝑜𝑔 ( ℎ ) 𝑑𝑖 Các tham số (cx, cy) tọa độ tâm bounding box, w h chiều rộng chiều cao bounding box Lconf chi phí cho độ tin cậy hàm softmax c lớp (α = trường hợp kiểm tra chéo) 𝑝 𝑝 𝐿𝑐𝑜𝑛𝑓 (𝑥, 𝑐) = − ∑𝑁 𝑖∈𝑃𝑜𝑠 𝑥𝑖𝑗 log(𝑐̂𝑖 ) − ∑𝑖∈𝑁 𝑙𝑜𝑔 (𝑐̂𝑖 )(2.4) 𝑝 exp(𝑐𝑖 ) Trong đó: 𝑐̂𝑖𝑝 = ∑ 𝑝 𝑠𝑘 √𝑎𝑟 ) (2.6) Bảng So sánh số AP thuật toán YOLO SSD 𝑝 𝑝 exp(𝑐𝑖 ) 𝑥𝑖𝑗 = {1,0} 1 Do tính tối đa bounding box với tỷ lệ khung khác Đối với lớp có bounding box, SSD bỏ tỷ lệ 1/3 2.3 SO SÁNH YOLO VÀ SSD 2.3.1 Về phương pháp Cả SSD YOLO chung ý tưởng dự đoán đối tượng cần qua lần quét ảnh, dựa mạng CNN deep learning để rút trích đặc trưng ảnh, chia ảnh thành lưới gồm nhiều ma trận tỷ lệ khác Sự khác thuật tốn cách thức xây dựng box để định vị xác định vùng biên đối tượng ảnh (2.2) Nếu YOLO sử dụng anchor box(2.2) SSD sử dụng box mặc định Cách thức dị tìm khác nhau, YOLO xét tương quan vùng ảnh cách gán nhãn SSD sử dụng box với nhiều tỷ lệ khác tỷ lệ khung ảnh cho đối tượng có box hình dạng Kết SSD tỏ YOLO việc phát đối tượng có kích thước nhỏ ảnh có độ phân giải 2.3.2 Về thực nghiệm Thực nghiệm so sánh thực cho thuật toán: YOLO, SSD [3], máy Jupyter Notebook chạy Google Cloud có GPU Nvidia Tesla K80 14Gb Chỉ số đánh giá sử dụng AP (Average Precision) liệu COCO 𝑘 𝑚 𝐿𝑙𝑜𝑐 (𝑥, 𝑙, 𝑔) = ∑𝑁 ̂𝑗𝑚 )(2.3) 𝑖∈𝑃𝑜𝑠 ∑𝑚∈{𝑐𝑥,𝑐𝑦,𝑤,ℎ} 𝑥𝑖𝑗 𝑠𝑚𝑜𝑜𝑡ℎ𝐿1 (𝑙𝑖 − 𝑔 𝑣à (𝑘 − 1), 𝑘 ∈ [1, 𝑚](2.5) 𝑎𝑟 ∈ {1,2,3, , } (𝑤𝑘𝑎 = 𝑠𝑘 √𝑎𝑟 ) (ℎ𝑘𝑎 = (𝐿𝑐𝑜𝑛𝑓 (𝑥, 𝑐) + 𝛼𝐿𝑙𝑜𝑐 (𝑥, 𝑙, 𝑔)) (22) 𝑔𝑗𝑐𝑥 − 𝑑𝑖𝑐𝑥 𝑑𝑖𝑤 𝑚−1 Giả sử có m ánh xạ đặc trưng để dự đoán, sk dùng để tính cho đặc trưng k Smin Smax 0.2 0.9, nghĩa tỷ lệ co giản tối thiểu 0.2 tối đa 0.9 Với tỷ lệ co giản sk, có tỷ lệ khung: Như hàm chi phí SSD gồm yếu tố Lconf Lloc, N số box mặc định dùng để so khớp Lloc box mặc định khớp chi phí định vị cho hàm smoothL1 để box dự đoán (l) với box mặc định (g) gần trùng khớp 𝑔̂𝑗𝑐𝑥 = 𝑠𝑚𝑎𝑥 −𝑠𝑚𝑖𝑛 YOLO 33 yếu tố thị khớp hay không box mặc định thứ i box thực tế thứ j lớp p 67 SSD 31.2 TẠP CHÍ KHOA HỌC ĐẠI HỌC VĂN LANG Trà Văn Đồng tgk So sánh thời gian phát đối tượng ảnh đương nhau, tốc độ chênh lệch không đáng kể Giữa YOLO SSD tốc độ nhanh gần tương đương YOLO tỏ vượt trội SSD đối tượng phát ảnh đối tượng có tỷ lệ nhỏ KẾT LUẬN Mặc dù có hạn chế độ xác so với Faster RCNN trường hợp cần phát tương đối đối tượng cách tức thời (theo thời gian thực) số đối tượng cần phát tương đối ít, YOLO SSD thực thuật toán đáng sử dụng Bảng So sánh thời gian phát đối tượng thuật toán YOLO SSD YOLO SSD 0:00:02.204303 0:00:03.170221 Qua thực nghiệm nhận thấy số AP thuật toán YOLO SSD tương TÀI LIỆU THAM KHẢO [1] Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi (2016), You Only Look Once: Unified, Real-Time Object Detection, Computer Vision and Pattern Recognition, arXiv:1506.02640 [2] Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun (2016), Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks, Computer Vision and Pattern Recognition, arXiv:1506.01497v3 [cs.CV] [3] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C Berg (2016), SSD: Single Shot MultiBox Detector Computer Vision and Pattern Recognition, arXiv:1512.02325v5 [4] Ross Girshick (2015), Fast R-CNN, Computer Vision and Pattern Recognition, arXiv:1504.08083v2 [5] https://www.analyticsvidhya.com/blog/2018/12/practical-guide-object-detection-yolo-framewor-python/, ngày truy cập: 06-12-2018 [6] https://github.com/topics/tensorflow-yolo, ngày truy cập: 29-8-2019 [7] https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/, ngày truy cập: 07-11-2016 [8] https://nttuan8.com/bai-10-cac-ky-thuat-co-ban-trong-deep-learning/ Ngày nhận bài: 06-01-2020 Ngày biên tập xong: 30-6-2020 Duyệt đăng: 24-9-2020 68 ... thời (theo thời gian thực) số đối tượng cần phát tương đối ít, YOLO SSD thực thuật toán đáng sử dụng Bảng So sánh thời gian phát đối tượng thuật toán YOLO SSD YOLO SSD 0:00:02.204303 0:00:03.170221... tọa độ đối tượng YOLO đề xuất từ ý tưởng người phát định vị đối tượng nhìn qua lần Do kiến trúc hệ thống phát đối tượng YOLO tương đối đơn giản minh họa hình Hình Hệ thống phát đối tượng YOLO đơn... Giữa YOLO SSD tốc độ nhanh gần tương đương YOLO tỏ vượt trội SSD đối tượng phát ảnh đối tượng có tỷ lệ nhỏ KẾT LUẬN Mặc dù có hạn chế độ xác so với Faster RCNN trường hợp cần phát tương đối đối tượng