Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
697,91 KB
Nội dung
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN – ĐIỆN TỬ BÁO CÁO LÝ THUYẾT NỘI DUNG: CẤU TRÚC VÀ ỨNG DỤNG MẠNG YOLO Học kỳ 2020-2021 Môn học: Cơ sở ứng dụng AI Sinh viên thực hiện: Vũ Huy Hoàng Võ Trần Chương 18161225 18161193 Link trình bày powerpoint: https://www.youtube.com/watch?v=ma90qQN6SfM Giới thiệu chung Object Detection (Nhận dạng vật thể) đề tài hot deep learning khả ứng dụng cao, liệu dễ chuẩn bị kết ứng dụng nhiều Các thuật toán object detection YOLO, có tốc độ nhanh độ xác cao nên giúp cho Object Detection thực tác vụ dường real time, chí nhanh so với người mà độ xác khơng giảm Chính tính ứng dụng cao, dễ chuẩn bị liệu huấn luyện mơ hình đơn giản nên nhóm giới thiệu tới thuật tốn object detection YOLO 1.1 Mạng YOLO gì? YOLO object detection có nghĩa “You only look once” Tức cần nhìn lần phát vật thể Về độ xác YOLO khơng phải thuật tốn tốt thuật tốn nhanh lớp mơ hình object detection Nó đạt tốc độ gần real time mà độ xác khơng q giảm Mục tiêu mơ hình khơng dự báo nhãn cho vật thể toán phân loại mà cịn xác định vị trí vật thể Do YOLO phát nhiều vật thể có nhãn khác ảnh thay phân loại nhãn cho ảnh 1.2 Lịch sử mạng YOLO Mơ hình YOLO mô tả lần Joseph Redmon, cộng viết năm 2015 có tiêu đề Bạn nhìn lần: Phát đối tượng theo thời gian thực - You Only Look Once: Unified, Real-Time Object Detection Trong cơng trình lần Ross Girshick, người phát triển mạng R-CNN, tác giả người đóng góp ơng chuyển qua Facebook AI Research Mơ hình YOLOv2 Joseph Redmon Ali Farhadi nhằm cải thiện hiệu suất báo năm 2016 có tựa đề là YOLO9000: Better, Faster, Stronger Mặc dù biến thể YOLO gọi YOLOv2, instance mơ hình theo mơ tả đào tạo hai liệu nhận dạng đối tượng, có khả dự đốn lên tới 9000 loại đối tượng khác nhau, đặt tên YOLO9000 Với số mơ hình tiến xa nhiều so với mơ hình trước số lượng loại đối tượng có khả phát YOLOv3 có số cải tiến gia tăng YOLOv2 DarkNet-53 với cách kết nối ngắn gọn, tính lấy mẫu phát đối tượng nguồn cấp liệu trực tiếp hình ảnh tốt hơn, triển khai cập nhật cách sử dụng thư viện học sâu Keras OpenCV 1.3 Yêu cầu mạng YOLO Chúng ta cần nắm vững lý thuyết: - Nguyên lý hoạt động mạng nơ ron tích chập (Convolutional Neural Network): Đây mạng nơ ron áp dụng layer Convolutional kết hợp với Maxpooling để giúp trích xuất đặc trưng ảnh tốt - Khái niệm bounding box, anchor box: Bounding box khung hình bao quanh vật thể Anchor box khung hình có kích thước xác định trước, có tác dụng dự đốn bounding box - Feature map: Là khối output mà ta chia thành lưới vng áp dụng tìm kiếm phát vật thể cell - Non-max suppression: Phương pháp giúp giảm thiểu nhiều bounding box overlap bounding box có xác suất lớn Cách hoạt động thuật toán YOLO Thuật toán YOLO hoạt động cách sử dụng ba kỹ thuật sau: - Residual blocks (Khối dư) - Bounding box regression (Hồi quy hộp giới hạn) - Intersection Over Union (IOU) 2.1 Residual blocks Đầu tiên, hình ảnh chia thành nhiều lưới khác Mỗi lưới có kích thước S x S Hình 2.1 cho thấy hình ảnh đầu vào chia thành lưới, có nhiều lưới có kích thước Mỗi lưới phát vật thể xuất bên chúng Ví dụ, tâm vật thể xuất ô cell định, ô chịu trách nhiệm phát Hình 2.1.Các lưới SxS 2.2 Bounding box regression Bounding box regression toán dự đốn output biến liên tục, Vì bounding box (x,y,w,h) bốn biến liên tục nên ta gọi tốn regression Mỗi Bounding box hình ảnh bao gồm thuộc tính sau: - Chiều rộng (bw) - Chiều cao (bh) - Các lớp (ví dụ: người, ô tô, đèn giao thông, v.v.) Được thể chữ c - Đường viền tâm hộp (bx, by) YOLO sử dụng Bounding box regression để dự đoán chiều cao, chiều rộng, tâm lớp đối tượng Hình 2.2 cho thấy ví dụ hộp giới hạn Bounding box regression thể đường viền màu vàng Hình 2.2 Bounding box regression 2.3 Intersection Over Union (IOU) IOU hàm đánh giá độ xác object detector tập liệu cụ thể Cơng thức tính IOU thể qua hình ảnh 2.3 đây: Hình 2.3 Bounding box regression Trong Area of Overlap diện tích phần giao predicted bounding box với grouth-truth bouding box , cịn Area of Union diện tích phần hợp predicted bounding box với grouth-truth bounding box Những bounding box đánh nhãn tay tập traing set test set Nếu IOU > 0.5 prediction đánh giá tốt Trong hình 2.4., có hai bounding box, box màu xanh box lại màu xanh lam Box màu xanh lam box dự đoán box màu xanh hộp thực YOLO đảm bảo hai bounding box Hình 2.4 Hai bounding box xanh lam, xanh 2.4 Kiến trúc mạng YOLO Hình 2.5 minh họa sơ đồ kiến trúc mạng YOLO sau Hình 2.5 Sơ đồ kiến trúc mạng YOLO Kiến trúc YOLO bao gồm: base network mạng convolution làm nhiệm vụ trích xuất đặc trưng Phần phía sau Extra Layers áp dụng để phát vật thể feature map base network Thành phần Darknet Architechture gọi base network có tác dụng trích suất đặc trưng Output base network feature map có kích thước 7x7x1024 sẽ sử dụng làm input cho extra layers có tác dụng dự đốn nhãn tọa độ bounding box vật thể Base network YOLO sử dụng chủ yếu convolutional layer Trong convolutional layers trích xuất feature ảnh, cịn full-connected layers dự đốn xác suất tọa độ đối tượng Các kiến trúc YOLO đa dạng tùy biến thành version cho nhiều input shape khác Output YOLO 3.1 Output Output mơ hình YOLO véc tơ bao gồm thành phần mơ tả qua hình 2.6 Hình 2.6 Cơng thức ngõ YOLO Trong đó: − p0 : xác suất dự báo vật thể xuất bounding box −¿ t x ,t y ,t w , t h >: giúp xác định bounding box Trong đó, t x ,t y tọa độ tâm t w ,t h độ rộng chiều cao bounding box −¿ p1 , p2 , … , p n> :là véc tơ phân phối xác suất dự báo n classes Việc hiểu output quan trọng để cấu hình tham số chuẩn xác huấn luyện model qua open source darknet Như output xác định theo số lượng classes theo cơng thức (n_class+5) Nếu huấn luyện 80 classes bạn có output 85 Trường hợp bạn áp dụng anchors/cell số lượng tham số output là: (n_class+5) x = 85 x = 255 Để minh họa dễ dàng hình 3.1 giới thiệu kiến trúc output model YOLO Hình 3.1 Kiến trúc output model YOLO Hình ảnh gốc feature map kích thước 13x13 Trên cell feature map lựa chọn anchor boxes với kích thước khác là box 1, box 2, box 3 sao cho tâm anchor boxes trùng với cell Khi output YOLO véc tơ concatenate (ghép lại) bounding boxes Với attributes (thuộc tính) tọa độ tâm, kích thước bounding box vec tơ phân phối xác suất dự báo classes 3.2 Dự báo nhiều feature map YOLOv3 dự báo nhiều feature map Những feature map ban đầu có kích thước nhỏ giúp dự báo object kích thước lớn Những feature map sau có kích thước lớn anchor box giữ cố định kích thước nên giúp dự báo vật thể kích thước nhỏ Hình 3.2 thể rõ feature máp mạng YOLOv3 Hình 3.2 Các feature maps mạng YOLOv3 Với input shape là 416x416, output feature maps có kích thước là 13x13, 26x26 và 52x52 Trên cell feature map áp dụng anchor box để dự đoán vật thể Như số lượng anchor box khác mơ hình YOLO (3 featue map x anchor box) Đồng thời feature map hình vng S x S, mơ hình YOLOv3 sinh số lượng anchor box là: S x S x Như số lượng anchor boxes ảnh là: (13×13+26×26+52×52)×3=10647 (anchor boxes) Anchor box Anchor box bounding box sở để xác định bounding box bao quanh vật thể dựa phép dịch tâm độ phóng đại kích thước chiều dài, rộng Để tìm bounding box cho vật thể, YOLO cần anchor box làm sở ước lượng Những anchor box xác định trước bao quanh vật thể cách tương đối xác Sau thuật tốn regression bounding box tinh chỉnh lại anchor box để tạo bounding box dự đốn cho vật thể Trong mơ hình YOLO: Mỗi vật thể hình ảnh huấn luyện phân bố anchor box Nếu trường hợp có từ anchor boxes trở lên bao quanh vật thể ta xác định anchor box mà có IoU với ground truth bounding box cao Hình 4.1 thể cách xác định anchor box cho vật thể Hình 4.1 Xác định anchor box cho vật thể Nhìn vào hình ta thấy, Từ Cell i ta xác định anchor boxes viền xanh hình Cả anchor boxes giao với bounding box vật thể. Tuy nhiên anchor box có đường viền dày màu xanh lựa chọn làm anchor box cho vật thể có IoU so với ground truth bounding box cao Như xác định vật thể ta cần xác định thành phần gắn liền với là (cell, anchor box) Khơng riêng mình cell hoặc mình anchor box Một số trường hợp vật thể bị trùng mid point, xảy ra, gặp trường hợp thuật tốn khó xác định class cho chúng Như hình 4.2 đây, ta thấy rõ xe người bị trùng mid point thuộc cell Hình 4.2 Chiếc xe người trùng mid point Khi vật thể người xe trùng mid point thuộc cell Thuật toán cần thêm lượt tiebreak để định đâu class cho cell 5.Hàm loss function Hàm loss function YOLO chia thành phần: Lloc (localization loss) đo lường sai số bounding box Lcls(confidence loss) đo lường sai số phân phối xác suất classes Hình 5.1 thể cơng thức hàm loss function YOLO Hình 5.1 Cơng thức hàm loss function Trong đó: −1obj i : Hàm indicator có giá trị 0,1 nhằm xác định xem cell i có chứa vật thể hay không Bằng chứa vật thể không chứa −1obj ij : Cho biết bounding box thứ j của cell i có phải bouding box vật thể dự đốn hay khơng −c ij: Điểm tin cậy ô i, P(contain object) * IoU (predict bbox, ground truth bbox) −ĉ ij : Điểm tự tin dự đoán - C: Tập hợp tất lớp - pi (c): Xác suất có điều kiện, có hay khơng ơ i có chứa đối tượng lớp c∈C - ^pi (c): Xác suất có điều kiện dự đoán 6.Bounding box Bounding box khung hình bao chứa vật thể xác định trình huấn luyện Để dự báo bounding box cho vật thể dựa phép biến đổi từ anchor box cell YOLOv2 YOLOv3 dự đoán bounding box cho khơng lệch khỏi vị trí trung tâm q nhiều Nếu bounding box dự đốn đặt vào phần hình ảnh, mạng regional proposal network, việc huấn luyện mơ hình trở nên khơng ổn định Hình 6.1 giúp hình dung cơng thức ước lượng bounding box từ anchor box Hình 6.1 Cơng thức ước lượng bounding box từ anchor box Nhìn vào hình ta thấy: anchor box có kích thước (pw,ph) tại cell nằm feature map với góc bên trái là (cx,cy), mơ hình dự đốn tham số (tx,ty,tw,th) trong tham số đầu độ lệch (offset) so với góc bên trái cell tham số sau tỷ lệ so với anchor box Và tham số giúp xác định bounding box dự đốn b có tâm (bx,by) và kích thước (bw,bh) thơng qua hàm sigmoid hàm exponential công thức bên cạnh Tọa độ bounding box xác định dựa đồng thời anchor box cell mà thuộc Điều giúp kiểm sốt vị trí bounding box dự đốn quanh vị trí cell bounding box mà không vượt xa bên ngồi giới hạn q trình huấn luyện ổn định nhiều Non-max suppression Non-max suppression phương pháp giúp giảm thiểu nhiều bounding box overlap bounding box có xác suất lớn Do thuật toán YOLO dự báo nhiều bounding box ảnh nên cell có vị trí gần nhau, khả khung hình bị overlap cao Trong trường hợp YOLO cần đến non-max suppression để giảm bớt số lượng khung hình sinh cách đáng kể Hình 7.1 thể trùng lặp khung hình trước sử dụng non-max suppression sau sử dụng non-max suppression Hình 7.1 Trước sau sử dung non-max suppression cho vật thể Các bước non-max suppression: - Bước 1: Đầu tiên tìm cách giảm bớt số lượng bounding box cách lọc bỏ tồn bounding box có xác suất chứa vật thể nhỏ ngưỡng threshold đó, thường 0,5 - Bước 2: Đối với bouding box giao nhau, non-max suppression lựa chọn bounding box có xác xuất chứa vật thể lớn Sau tính tốn số giao thoa IoU với bounding box lại Nếu số lớn ngưỡng threshold điều chứng tỏ bounding boxes overlap cao Ta xóa bounding có có xác xuất thấp giữ lại bouding box có xác xuất cao Cuối cùng, ta thu bounding box cho vật thể Kết luận Qua báo cáo cung cấp nhìn tổng quan thuật tốn YOLO cách sử dụng phát đối tượng Kỹ thuật cung cấp kết phát cải thiện so với kỹ thuật phát đối tượng khác Fast R-CNN RetinaNet Như báo cáo lý giải nguyên lý hoạt động mạng YOLO theo cách khái quát Đây thuật toán phức tạp bên có nhiều xử lý tính tốn mà khơng đơn giản để hiểu hết toàn chúng 1 ... thực YOLO đảm bảo hai bounding box Hình 2.4 Hai bounding box xanh lam, xanh 2.4 Kiến trúc mạng YOLO Hình 2.5 minh họa sơ đồ kiến trúc mạng YOLO sau Hình 2.5 Sơ đồ kiến trúc mạng YOLO Kiến trúc YOLO. .. sâu Keras OpenCV 1.3 Yêu cầu mạng YOLO Chúng ta cần nắm vững lý thuyết: - Nguyên lý hoạt động mạng nơ ron tích chập (Convolutional Neural Network): Đây mạng nơ ron áp dụng layer Convolutional kết... thuật tốn YOLO cách sử dụng phát đối tượng Kỹ thuật cung cấp kết phát cải thiện so với kỹ thuật phát đối tượng khác Fast R-CNN RetinaNet Như báo cáo lý giải nguyên lý hoạt động mạng YOLO theo