TÓM TẮT Phát hiện phương tiện giao thông trong không ảnh là một bài toán thuộc bài toán Phát hiện đối tượng Object Detection trong lĩnh vực Thị giác máy tính Computer Vision..
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
PHAN THỊ HỒNG CÚC
HUỲNH BÙI KHÁNH VY
BÁO CÁO ĐỒ ÁN 1 TÌM HIỂU PHƯƠNG PHÁP D2DET CHO BÀI TOÁN PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG TRONG
KHÔNG ẢNH
Learning to use D2Det for Vehicle Detection in Aerial Images
KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM
TP HỒ CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
PHAN THỊ HỒNG CÚC – 18520260
HUỲNH BÙI KHÁNH VY – 18520402
BÁO CÁO ĐỒ ÁN 1
TÌM HIỂU PHƯƠNG PHÁP D2DET CHO BÀI TOÁN PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG TRONG
KHÔNG ẢNH
Learning to use D2Det for Vehicle Detection in Aerial Images
KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM
TP HỒ CHÍ MINH, 2021
Trang 3LỜI CẢM ƠN
Đầu tiên, chúng tôi xin chân thành cảm ơn đến thầy TS Nguyễn Tấn Trần Minh Khang – giảng viên hướng dẫn của chúng tôi trong môn đồ án 1 này Thầy đã luôn quan tâm, hỗ trợ, tạo điều kiện cho chúng tôi thực hiện đồ án
Chúng tôi cũng xin gửi lời cảm ơn đến thầy ThS Võ Duy Nguyên đã luôn quan tâm giúp đỡ, hướng dẫn tận tình và đóng góp nhiều ý kiến giúp chúng tôi hoàn thành đồ án
Ngoài ra, chúng tôi xin gửi lời cảm ơn đến các em, các bạn, các anh chị trong nhóm nghiên cứu đã luôn đồng hành, giúp đỡ chúng tôi trong suốt quá trình chúng tôi thực hiện đồ án này
Chúng tôi xin chân thành cảm ơn!
Sinh viên thực hiện Phan Thị Hồng Cúc
TP.Hồ Chí Minh, ngày 30 tháng 06 năm 2021
Trang 4MỤC LỤC
TÓM TẮT 11
Chương 1 TỔNG QUAN 12
1.1 Giới thiệu chung 12
1.2 Động lực nghiên cứu 12
1.2.1 Tính khoa học 12
1.2.2 Tính ứng dụng 13
1.3 Phát biểu bài toán 13
1.4 Phạm vi bài toán 14
1.5 Thách thức bài toán 14
1.6 Nội dung thực hiện 15
1.7 Kết quả của đề tài 15
1.8 Cấu trúc báo cáo đề tài 16
Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN 17
2.1 Computer Vision 17
2.1.1 Giới thiệu 17
2.1.2 Một số bài toán nổi bật 17
2.2 Object Detection 18
2.2.1 Giới thiệu 18
2.2.2 Phân loại 19
2.3 Neural Network 20
2.4 Convolutional Neural Network 22
2.4.1 Giới thiệu 22
2.4.2 Convolution Layer 22
Trang 52.4.3 Pooling Layer 26
2.4.4 Fully connected layer 26
2.5 ResNet 27
2.5.1 Giới thiệu 27
2.5.2 Vanishing Gradient 28
2.5.3 Kiến trúc mạng ResNet 28
2.6 Faster R-CNN 30
2.6.1 Tổng quan 30
2.6.2 RPN 31
2.6.3 Fast R-CNN 32
2.6.4 RoI pooling 32
2.7 RoIAlign 35
2.8 Deformable RoI Pooling 37
2.9 Feature Pyramid Networks 38
2.10 D2Det 40
2.10.1 Tổng quan 40
2.10.2 Dense local regression 40
2.10.3 Discriminative RoI pooling 42
2.10.4 Kết quả thực nghiệm 44
Chương 3 THỰC NGHIỆM VÀ ĐÁNH GIÁ 45
3.1 Bộ dữ liệu UAVDT 45
3.2 Quá trình thực nghiệm 47
3.2.1 Xử lý dữ liệu 47
3.2.2 Chạy thực nghiệm D2Det 55
Trang 63.3 Phương pháp đánh giá 56
3.3.1 Intersection over Union 56
3.3.2 Confusion matrix 57
3.3.3 Precision và Recall 58
3.3.4 AP và mAP 60
3.4 Kết quả 61
3.4.1 Kết quả 61
3.4.2 Hình ảnh minh họa 61
3.4.3 Đánh giá mô hình 62
Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63
4.1 Kết quả đạt được 63
4.2 Hạn chế 63
4.3 Hướng phát triển 63
TÀI LIỆU THAM KHẢO 64
Trang 7DANH MỤC HÌNH
Hình 1.1 Input – output của bài toán 14
Hình 1.2 Thách thức của bài toán 15
Hình 2.1 Ví dụ phân biệt 3 bài toán của Computer Vision 19
Hình 2.2 Nơ-ron sinh học 20
Hình 2.3 Kiến trúc Neural Network 21
Hình 2.4 Nơ-ron trong Neural Network 21
Hình 2.5 Convolutional Neural Network 22
Hình 2.6 Cấu trúc tổng quát của Convolution layer 23
Hình 2.7 Ví dụ đầu vào của Convolution layer 23
Hình 2.8 Ví dụ minh họa quá trình hoạt động của Convolution layer 24
Hình 2.9 Ví dụ minh họa Max Pooling 26
Hình 2.10 Fully connected layer 27
Hình 2.11 Residual block 28
Hình 2.12 Mạng CNN truyền thống và mạng ResNet 29
Hình 2.13 Kiến trúc của Faster R-CNN 30
Hình 2.14 Kiến trúc của RPN 31
Hình 2.15 Fast R-CNN trong Faster R-CNN 32
Hình 2.16 Feature map của ví dụ 33
Hình 2.17 Ví dụ minh họa sau khi ánh xạ proposal lên feature map 34
Hình 2.18 Ví dụ minh họa chia proposal thành các vùng tương ứng với kích thước của output cho trước 34
Hình 2.19 Kết quả thu được của ví dụ 35
Hình 2.20 Minh họa chia vùng của RoIAlign 35
Hình 2.21 Ví dụ minh họa chia vùng của RoIAlign 36
Hình 2.22 Ví dụ minh họa quá trình xác định 4 điểm mẫu 36
Hình 2.23 Ví dụ minh họa kết quả sau khi max pooling của RoIAlign 37
Hình 2.24 Deformable RoI Pooling 37
Hình 2.25 Feature Pyramid Network 38
Trang 8Hình 2.26 Minh họa đường đi theo bottom-up và top-down 39
Hình 2.27 Kiến trúc của D2Det 40
Hình 2.28 Dense local regression 41
Hình 2.29 Discriminative RoI Pooling 42
Hình 2.30 Adaptive Weighted Pooling 43
Hình 3.1 Một số ảnh của bộ dữ liệu UAVDT 45
Hình 3.2 Minh họa cách tổ chức theo thư mục của bộ dữ liệu 47
Hình 3.3 Thư mục M1401 của bộ dữ liệu 48
Hình 3.4 Thư mục M_attr của bộ dữ liệu 48
Hình 3.5 Thư mục train trong M_attr 49
Hình 3.6 Thư mục test trong M_attr 49
Hình 3.7 Thư mục train 50
Hình 3.8 Thư mục val 50
Hình 3.9 Thư mục test 51
Hình 3.10 Định dạng annotation ban đầu 51
Hình 3.11 Minh họa nội dung annotation 52
Hình 3.12 Minh họa định dạng annotation sau khi thay đổi 53
Hình 3.13 Minh hoạ cách tính IoU 57
Hình 3.14 Mẫu confusion matrix với bài toán phân loại có 3 lớp 58
Hình 3.15 Cách tính Precision và Recall 59
Hình 3.16 Bảng quan sát giá trị Precision và Recall 60
Hình 3.17 Trường hợp được mô hình dự đoán khá tốt 62
Hình 3.18 Trường hợp được mô hình dự đoán chưa tốt 62
Trang 9DANH MỤC BẢNG
Bảng 2.1 Một số bộ lọc phổ biến 26
Bảng 2.2 Kết quả trên bộ dữ liệu MS COCO test-dev 44
Bảng 2.3 Kết quả trên bộ dữ liệu UAVDT 44
Bảng 3.1 Tóm tắt các bộ dữ liệu liên quan 46
Bảng 3.2 Kết quả dự đoán của D2Det trên bộ dữ liệu UAVDT-benchmark-M 61
Trang 10DANH MỤC TỪ VIẾT TẮT
AP Average Precision
mAP Mean Average Precision
CNN Convolutional Neural Networks
Fast R-CNN Fast Region-based Convolutional Network
Faster R-CNN Faster Region-based Convolutional Network
UAVDT Unmanned Aerial Vehicle Benchmark Object Detection and
Tracking RoI Region of Interest
ResNet Residual Network
Trang 11TÓM TẮT
Phát hiện phương tiện giao thông trong không ảnh là một bài toán thuộc bài toán Phát hiện đối tượng (Object Detection) trong lĩnh vực Thị giác máy tính (Computer Vision)
Trong đồ án này, chúng tôi tập trung vào việc nghiên cứu và thực nghiệm phương pháp D2Det [1] với bộ dữ liệu UAVDT-Benchmark-M Bộ dữ liệu gồm 40,735 frame ảnh từ 50 video trong số 100 video của bộ dữ liệu UAVDT [2] với 3 nhãn: car, truck, bus Phương pháp D2Det mà chúng tôi sử dụng thực nghiệm cho bài toàn là phiên bản sử dụng mmdetetection 2.1.0
Trang 12Chương 1 TỔNG QUAN
1.1 Giới thiệu chung
Với sự phát triển mạnh mẽ của công nghệ, nhiều dự án xây dựng thành phố thông minh đã và đang được nghiên cứu rộng rãi Một trong những yếu tố góp phần hiện thực điều ấy là việc xây dựng nên hệ thống quản lý hoạt động giao thông thông minh Trong đó, việc phát hiện giao thông trong ảnh là một phần không thể thiếu bởi
nó giúp ta giám sát, phân tích hành vi của người tham gia giao thông, cải thiện tình trạng ùn tắc, tính toán lưu lượng giao thông phục vụ cho các lĩnh vực liên quan,…
Để thực hiện được việc đó đòi hỏi ta phải có một lượng lớn dữ liệu hình ảnh
mà cách thức thu thập phổ biến nhất hiện tại là sử dụng hệ thống camera giám sát Tuy nhiên, việc lắp đặt hệ thống camera giám sát cố định dẫn đến các hạn chế về địa điểm, tầm nhìn, góc quay,… đồng thời các điều kiện ngoại cảnh (thời tiết, ánh sáng) cũng ảnh hưởng đến chất lượng hình ảnh mà việc cải thiện bằng cách lắp đặt hệ thống camera giám sát phức tạp tại nhiều vị trí vẫn phải phụ thuộc vào các công trình xây dựng của khu vực đó Chính vì vậy, phát hiện phương tiện giao thông trong không ảnh – hình ảnh thu từ trên không bằng các thiết bị bay không người lái (UAV) đang ngày càng được nhiều nhà nghiên cứu quan tâm và phát triển Bởi chỉ với một số lượng ít các thiết bị bay không người lái, ta vẫn có thể dễ dàng cho camera bay qua nhiều địa điểm, thu thập được lượng lớn hình ảnh từ các độ cao, góc quay, điều kiện ngoại cảnh khác nhau, từ đó giúp giảm chi phí lắp đặt cũng như thời gian thực hiện
1.2 Động lực nghiên cứu
1.2.1 Tính khoa học
Bài toán phát hiện đối tượng trong không ảnh đang ngày càng phổ biến trong giới nghiên cứu khoa học Nhiều bộ dữ liệu đã được công bố như: VEDAI [3] (2016), UAVDT [2] (ECCV 2018), VisDrone [4] (2018) và các cuộc thi như ODAI [5] (ICPR 2018), VisDrone Challenge,… được tổ chức để khuyến khích các nhà nghiên cứu tìm ra các phương pháp nhằm nâng cao sự chính xác, độ hiệu quả cho bài toán
Trang 131.2.2 Tính ứng dụng
Phát hiện phương tiện giao thông trong không ảnh có thể được áp dụng vào nhiều lĩnh vực trong cuộc sống:
− Giám sát giao thông
o Phát hiện và theo dõi phương tiện giao thông
o Tính toán lưu lượng phương tiện để đưa ra các phương pháp cải thiện
tình trạng giao thông như ùn tắc, tai nạn,
o Phát hiện sự bất thường của các phương tiện giao thông như đi sai làn
đường, đi vào đường cấm,
− Quân sự
o Phát hiện các phương tiện lạ vào khu vực trọng điểm, bí mật của quân
đội
o Phát hiện các phương tiện chiến đấu trên chiến trường
o Hỗ trợ dự đoán hướng di chuyển của phương tiện để xây dựng phòng
tuyến
− Ngoài ra, việc tính toán lưu lượng giao thông giúp
o Các doanh nghiệp lựa chọn được vị trí đặt bảng quảng cáo phù hợp để
tiếp cận được đúng khách hàng mục tiêu
o Các chủ cửa hàng, nhà hàng, khách sạn, lựa chọn được vị trí xây dựng
cửa hàng hiệu quả
1.3 Phát biểu bài toán
Đồ án trình bày nội dung liên quan đến lĩnh vực thị giác máy tính và đô thị thông minh trong tương lai:
− Bài toán phát hiện phương tiện giao thông trong không ảnh (Vehicle
detection in aerial images)
o Đầu vào (input): Ảnh chụp giao thông đường bộ với định dạng (.jpg,
.png) được trích xuất từ camera của thiết bị bay không người lái (UAV)
Trang 14o Đầu ra (output): Các thông tin cơ bản tương ứng với từng phương tiện
giao thông có trong ảnh đầu vào: vị trí, tên của một trong 3 loại phương
tiện quan tâm (car, truck, bus)
Hình 1.1 Input – output của bài toán
1.4 Phạm vi bài toán
Trong phạm vi đề tài này, chúng tôi tập trung thực nghiệm phương pháp đã được công bố (D2Det [1]) trên bộ dữ liệu UAVDT [2] cho bài toán phát hiện phương tiện giao thông trong không ảnh Loại hình giao thông được đề cập trong nghiên cứu
là giao thông đường bộ Các phương tiện giao thông bao gồm: xe ô tô, xe tải, xe buýt
1.5 Thách thức bài toán
Về dữ liệu, một số ảnh của bộ dữ liệu UAVDT [2] có mật độ đối tượng cao, đối tượng nhỏ, đối tượng bị mờ do sự chuyển động nhanh của thiết bị bay, đòi hỏi cần có kỹ thuật tiền xử lý ảnh và trích đặc trưng phù hợp
Về phương pháp, hiện nay có rất nhiều công bố sử dụng các kiến trúc mạng CNN khác nhau (LeNet, AlexNet, VGG, ResNet,…) hoặc các mạng được tùy chỉnh, tính chính xác trên mỗi mạng là khác nhau và cần phải nghiên cứu, tùy chỉnh để đạt được kết quả cao nhất Điều này đòi hỏi cần nghiên cứu sâu và kỹ để tìm ra phương pháp mang lại kết quả cao nhất
Về tính ứng dụng thực tiễn, trong thực tế việc phát hiện phương tiện giao thông đối diện nhiều khó khăn khi phụ thuộc thêm các yếu tố kích thước, hình dạng phương tiện, thời gian, thời tiết, ánh sáng, Chẳng hạn như với các ảnh thu được ở góc quay
Trang 15cao hoặc trong điều kiện đặc biệt như trời tối, sương mù, sẽ khó phân biệt với các đối tượng khác
a) Góc quay cao b) Trời tối c) Sương mù
Hình 1.2 Thách thức của bài toán
1.6 Nội dung thực hiện
Nội dung thực hiện của đề tài gồm:
− Tìm hiểu bài toán phát hiện phương tiện giao thông trong không ảnh
− Tìm hiểu bộ dữ liệu UAVDT [2]
− Thống kê các phương pháp phát hiện đối tượng thực nghiệm với bộ dữ liệu UAVDT [2] Trong đó, chúng tôi đã lựa chọn tìm hiểu phương pháp phát hiện đối tượng D2Det [1] – Phương pháp được công bố vào năm 2020 cho kết quả khá tốt trên bộ dữ liệu UAVDT [2] (56.92 theo độ đo PASCAL VOC AP với IoU = 0.7)
− Thực nghiệm phương pháp phát hiện đối tượng D2Det [1] cho bài toán phát hiện phương tiện giao thông trong không ảnh
1.7 Kết quả của đề tài
Từ những nghiên cứu, chúng tôi đã thu được các kết quả như sau:
− Báo cáo về bộ dữ liệu UAVDT
− Báo cáo về phương pháp D2Det
− Báo cáo về kết quả thực nghiệm phương pháp D2Det trên bộ dữ liệu UAVDT
Trang 161.8 Cấu trúc báo cáo đề tài
Khóa luận này được trình bày trong 4 chương, nội dung chính được tóm tắt như dưới đây:
− Chương 1: Giới thiệu chung về đồ án, động lực nghiên cứu, mục tiêu, xác định bài toán, phạm vi tương ứng cũng như trình bày về nội dung thực hiện và kết quả của đồ án
− Chương 2: Trình bày các cơ sở lý thuyết, nghiên cứu liên quan đến bài toán phát hiện phương tiện giao thông trong không ảnh được đề cập trong đồ án mà chúng tôi đã thực hiện
− Chương 3: Trình bày quá trình, kết quả thực nghiệm và đánh giá
− Chương 4: Tổng kết kết quả đạt được trong đề tài, những hạn chế cũng như hướng phát triển trong tương lai
Trang 17Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN
2.1 Computer Vision
2.1.1 Giới thiệu
Thị giác máy tính (Computer Vision) là một lĩnh vực cho phép máy tính lấy được thông tin có nghĩa từ hình ảnh, video,… và thực hiện hành động hoặc đưa ra đề xuất dựa trên thông tin đó Nếu như Trí tuệ nhân tạo (Artificial Intelligence – AI) cho phép máy tính suy nghĩ thì Thị giác máy tính cho phép chúng nhìn, quan sát và hiểu
Thị giác máy tính hoạt động giống như thị giác của con người Thị giác của con người có lợi thế về thời gian tồn tại để huấn luyện cách phân biệt các vật thể, chúng ở khoảng cách bao xa, chúng có đang chuyển động hay không và liệu có điều gì đó sai trong ảnh hay không Thị giác máy tính huấn luyện máy móc thực hiện những chức năng này nhưng nó phải làm điều đó trong thời gian ngắn hơn võng mạc, dây thần kinh thị giác và vỏ não thị giác bằng dữ liệu và thuật toán bởi một hệ thống được huấn luyện để kiểm tra sản phẩm hoặc theo dõi dây chuyền sản xuất có thể phân tích hàng nghìn sản phẩm hoặc quy trình mỗi phút, nhận thấy các lỗi hoặc vấn đề không thể nhìn thấy, nó có thể nhanh chóng vượt qua khả năng của con người
Thị giác máy tính được ứng dụng trong nhiều ngành công nghiệp từ các ngành năng lượng và tiện ích cho đến các ngành sản xuất chế tạo Thị trường của lĩnh vực này vẫn đang tiếp tục phát triển, dự kiến sẽ đạt đến 48.6 tỷ đô vào năm 2022
2.1.2 Một số bài toán nổi bật
Một số bài toán phổ biến trong lĩnh vực Computer Vision:
− Phân loại ảnh (Image classification): là một bài toán với mục đích dự đoán
lớp của đối tượng trong ảnh
− Định vị đối tượng (Object localization): là một bài toán với mục đích xác định
vị trí của một hoặc nhiều đối tượng trong ảnh và vẽ bounding box xung quanh chúng
Trang 18− Phát hiện đối tượng (Object detection): là một bài toán kết hợp giữa phân loại
ảnh và định vị đối tượng – định vị vị trí, vẽ bounding box của một hoặc nhiều đối tượng trong ảnh và cho biết chúng thuộc lớp nào
− Truy vết dối tượng (Video object tracking): là một bài toán với mục đích xác
định vị trí của một hoặc nhiều đối tượng trong mỗi khung hình của video
2.2 Object Detection
2.2.1 Giới thiệu
Phát hiện đối tượng (Object detection) là một thuật ngữ chung để mô tả một tập hợp các nhiệm vụ thị giác máy tính có liên quan liên quan đến việc xác định các đối tượng trong ảnh kỹ thuật số Phát hiện đối tượng kết hợp hai bài toán Phân loại ảnh (Image classification) và Định vị đối tượng (Object localization) và thực hiện cho một hoặc nhiều đối tượng trong ảnh Ta có thể phân biệt 3 bài toán trên thông qua đầu vào (input) và đầu ra (output) của chúng như sau:
− Phân loại ảnh (Image classification): dự đoán lớp của đối tượng trong ảnh
o Input: Một hình ảnh với một đối tượng
o Output: Nhãn lớp (Ví dụ: một hoặc nhiều số nguyên được ánh xạ tới nhãn lớp)
− Định vị đối tượng (Object localization): Xác định vị trí hiện diện của các đối
tượng trong ảnh và cho biết vị trí của chúng bằng bounding box
o Input: Một hình ảnh có một hoặc nhiều đối tượng
o Output: Một hoặc nhiều bounding box được xác định bởi tọa độ tâm, chiều rộng và chiều cao
− Phát hiện đối tượng (Object detection): Xác định vị trí hiện diện của các đối
tượng bằng bounding box và cho biết nhãn của các đối tượng trong một ảnh
o Input: Một hình ảnh có một hoặc nhiều đối tượng
o Output: Một hoặc nhiều bounding box và nhãn của mỗi bounding box
Trang 19Hình 2.1 Ví dụ phân biệt 3 bài toán của Computer Vision 1
− Phương pháp phát hiện đối tượng 2 giai đoạn (two-stage object detection/detector): Gọi là two-stage vì model sẽ thực hiện 2 phần gồm trích
xuất các vùng trên ảnh có khả năng chứa đối tượng dựa vào các anchor box, sau đó sẽ thực hiện tiếp phân loại đối tượng và xác định vị trí nhờ vào việc chia làm 2 nhánh tại phần cuối của mô hình (Object Classification và Bounding Box Regression) Các mô hình này được dùng để giải quyết các bài
1 Nguồn: http://tutorials.aiclub.cs.uit.edu.vn/index.php/2020/04/28/phan-biet-bai-toan-trong-cv/
Trang 20toán định vị và nhận diện vật thể tĩnh (hình ảnh) do yêu cầu cao về độ chính xác nhưng không yêu cầu quá cao về tốc độ Mô hình tiêu biểu: Region-Based Convolutional Neural Networks (Các mô hình thuộc họ R-CNN)
2.3 Neural Network
Mạng nơ-ron nhân tạo (Artificial neural network – ANN) hay còn gọi là Neural network (NN) là một mô hình lấy cảm hứng từ mạng nơ-ron thần kinh, hoạt động theo hướng mô tả lại cách hoạt động của hệ thần kinh với các neuron được kết nối với nhau
Hình 2.2 Nơ-ron sinh học 1Một mạng NN gồm 3 tầng:
− Tầng vào (input layer): Là tầng bên trái cùng của mạng thể hiện cho các đầu
vào của mạng
− Tầng ra (output layer): Là tầng bên phải cùng của mạng thể hiện cho các đầu
ra của mạng
− Tầng ẩn (hidden layer): Là tầng nằm giữa tầng vào và tầng ra thể hiện cho
việc suy luận logic của mạng
1 Nguồn: https://cs231n.github.io/neural-networks-1/
Trang 21a) Mạng NN với 1 tầng ẩn b) Mạng NN với 2 tầng ẩn
Hình 2.3 Kiến trúc Neural Network 1
Hình 2.4 Nơ-ron trong Neural Network 1Trong mạng NN, mỗi nút là một sigmoid nơ-ron nhưng hàm kích hoạt của chúng có thể khác nhau Tuy nhiên trong thực tế người ta thường để chúng cùng dạng với nhau để tính toán cho thuận lợi Ở mỗi tầng, số lượng các nút mạng (nơ-ron) có thể khác nhau tuỳ thuộc vào bài toán và cách giải quyết Nhưng thường khi làm việc người ta để các tầng ẩn có số lượng nơ-ron bằng nhau Ngoài ra, các nơ-ron ở các
1 Nguồn: https://cs231n.github.io/neural-networks-1/
Trang 22tầng thường được liên kết đôi một với nhau tạo thành mạng kết nối đầy đủ connected network)
(full-2.4 Convolutional Neural Network
2.4.1 Giới thiệu
Mạng nơ-ron tích chập (Convolutional neural network – CNN) là một trong những mô hình học sâu (Deep learning) tiên tiến Mỗi ảnh đầu vào của mạng CNN sẽ được truyền qua các lớp Convolution với các bộ lọc (Kernals), lớp Pooling, các lớp được kết nối đầy đủ (fully connected layers – FC) và áp dụng hàm Softmax để phân loại đối tượng với xác suất trong khoảng từ 0 đến 1
Hình 2.5 Convolutional Neural Network
2.4.2 Convolution Layer
Lớp tích chập là lớp đầu tiên trích xuất các đặc trưng từ ảnh đầu vào Lớp tích chập duy trì mối quan hệ giữa các pixel thông qua việc học các đặc trưng của ảnh bằng cách sử dụng các ô vuông nhỏ của dữ liệu đầu vào Nó là 1 phép toán có 2 đầu vào là ma trận ảnh và 1 bộ lọc hoặc kernel
Trang 23Hình 2.6 Cấu trúc tổng quát của Convolution layer
Xét 1 ma trận 5 × 5 có giá trị pixel là 0 và 1 và ma trận bộ lọc 3 × 3 như hình bên dưới
Hình 2.7 Ví dụ đầu vào của Convolution layer Quá trình tích chập của ma trận hình ảnh 5 × 5 với ma trận bộ lọc 3 × 3 được thể hiện ở hình bên dưới Ma trận thu được từ quá trình này được gọi là Feature Map
Trang 24Hình 2.8 Ví dụ minh họa quá trình hoạt động của Convolution layer
Tích chập một ảnh với nhiều loại bộ lọc khác nhau có thể thực hiện nhiều hoạt động như phát hiện cạnh (edge detection), làm mờ (blur), làm sắc nét (sharpen),…
Operation Filter Convolved Image
Trang 26− Max Pooling: Lấy giá trị lớn nhất từ mỗi mẫu con của feature map
− Average Pooling: Lấy giá trị trung bình từ mỗi mẫu con của feature map
− Sum Pooling: Lấy tổng của các giá trị trong mỗi mẫu con của feature map
Hình 2.9 Ví dụ minh họa Max Pooling
2.4.4 Fully connected layer
Fully connected là cách kết nối phổ biến trong ANN mà lớp phía sau kết nối đầy đủ với lớp phía trước của nó Trong CNN, Fully connected layer thực hiện duỗi
ma trận đầu ra của các lớp trước đó thành vector đặc trưng
Trang 27Hình 2.10 Fully connected layer
Trong hình trên, các feature map sẽ được duỗi thành các vector đặc trưng (x1, x2, x3, x4) Với các lớp fully connected, ta kết hợp các đặc trưng này tạo thành một
mô hình Cuối cùng, ta có một hàm kích hoạt như softmax hoặc sigmoid để phân loại đầu ra
2.5 ResNet
2.5.1 Giới thiệu
Khi xây dựng mạng CNN với nhiều lớp chập sẽ xảy ra hiện tượng Vanishing Gradient dẫn tới kết quả học không tốt và ResNet (Residual Network) [6] đã được phát triển để giải quyết vấn đề đó
ResNet đã giành vị trí thứ nhất trong cuộc thi ILSVRC 2015 với tỉ lệ lỗi top 5 chỉ 3.57% Không những thế nó còn đứng vị trí đầu tiên trong cuộc thi ILSVRC and COCO 2015 với ImageNet Detection, ImageNet localization, Coco detection và Coco segmentation Hiện tại, có rất nhiều biến thể của kiến trúc ResNet với số lớp khác nhau như ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152, Với tên là ResNet theo sau là một số chỉ kiến trúc ResNet với số lớp nhất định
Trang 282.5.2 Vanishing Gradient
Backpropagation Algorithm (lan truyền ngược) là một kỹ thuật thường được
sử dụng trong quá trình training Ý tưởng chung của thuật toán này là sẽ đi từ output layer đến input layer và tính toán gradient của cost function tương ứng cho từng parameter (weight) của mạng Gradient Descent sau đó được sử dụng để cập nhật các parameter đó Toàn bộ quá trình trên sẽ được lặp đi lặp lại cho tới khi mà các parameter của network được hội tụ Thông thường chúng ta sẽ có một hyperparameter (số Epoch – số lần mà training set được duyệt qua một lần và weights được cập nhật) định nghĩa cho số lượng vòng lặp để thực hiện quá trình này Nếu số lượng vòng lặp quá nhỏ thì ta gặp phải trường hợp mạng có thể sẽ không cho ra kết quả tốt, ngược lại, thời gian training sẽ lâu nếu số lượng vòng lặp quá lớn
Tuy nhiên, trong thực tế Gradients thường sẽ có giá trị nhỏ dần khi đi xuống các layer thấp hơn Dẫn đến kết quả là các cập nhật thực hiện bởi Gradients Descent không làm thay đổi nhiều weights của các layer đó và làm chúng không thể hội tụ và mạng sẽ không thu được kết quả tốt Hiện tượng như vậy gọi là Vanishing Gradients
2.5.3 Kiến trúc mạng ResNet
Tương tự với các mạng CNN truyền thống, ResNet gồm có các convolution, pooling, fully connected layer Song, để khắc phục Vanishing Gradient, giải pháp mà ResNet đưa ra là sử dụng kết nối "tắt" đồng nhất để xuyên qua một hay nhiều lớp Một khối như vậy được gọi là một Residual Block, như trong hình sau :
Hình 2.11 Residual block
Trang 29Trong hình 2.11 xuất hiện một mũi tên cong xuất phát từ đầu và kết thúc tại cuối Residual block nghĩa là sẽ bổ sung đầu vào X vào đầu ra của layer (dấu cộng mà
ta thấy trong hình), việc này sẽ chống lại việc đạo hàm bằng 0, do vẫn còn cộng thêm
X Giả sử ta có đầu vào của Residual block là x, H(x) là hàm phân phối thực và F(x)
là hàm biểu diễn sự khác biệt giữa đầu ra và đầu vào Ta có: F(x) = Output - Input = H(x) - x Từ đó, ta có: H(x) = F(x) + x
Hình 2.12 Mạng CNN truyền thống và mạng ResNet [6]
Trang 302.6 Faster R-CNN
2.6.1 Tổng quan
Hình 2.13 Kiến trúc của Faster R-CNN [7]
− Faster R-CNN [7] là phương pháp phát hiện đối tượng 2 giai đoạn:
o Giai đoạn 1: Sử dụng region proposal network (RPN) để thu được các
vùng đề xuất có khả năng chứa đối tượng (Region proposal)
o Giai đoạn 2: Sử dụng Fast R-CNN với các proposal thu được từ RPN
Trang 312.6.2 RPN
Hình 2.14 Kiến trúc của RPN 1
− Đầu tiên, ảnh đầu vào được feed qua mạng CNN để thu được các feature map
− Để tạo ra các proposal, một cửa sổ trượt với kích thước 𝑛 × 𝑛 trượt trên feature map thu được từ mạng CNN Mỗi cửa sổ trượt được ánh xạ thành vector đặc
trưng với số lượng chiều ít hơn
− Vector đặc trưng này được feed qua 2 fully-connected layer riêng biệt:
regression layer (reg) và classification layer (cls)
− Tại mỗi vị trí của cửa sổ trượt, ta dự đoán nhiều proposal, với 𝑘 là số lượng proposal có thể có tương ứng với mỗi vị trí của cửa sổ trượt Như vậy, reg layer có đầu ra là 4𝑘 tương ứng với 4 hệ số tọa độ của 𝑘 proposal, cls layer có
đầu ra là 2𝑘 score ước lượng xác suất các proposal chứa object
1 Nguồn:
https://towardsdatascience.com/faster-r-cnn-for-object-detection-a-technical-summary-474c5b857b46
Trang 322.6.3 Fast R-CNN
Hình 2.15 Fast R-CNN trong Faster R-CNN 1
− Đầu tiên, ảnh đầu vào được feed qua mạng CNN để thu được các feature map
− Sau đó, proposal từ RPN sẽ được sử dụng để pool feature từ feature map thu
được từ mạng CNN Việc này được thực hiện tại RoI pooling layer
− Đầu ra của RoI pooling layer sau khi được truyền qua 2 fully-conntected layer
sẽ được feed cho 2 nhánh classification và regression:
o Nhánh classification: có C unit cho C class của bài toán phát hiện đối tượng (bao gồm cả class background) Các vector đặc trưng được truyền qua một softmax layer để lấy classification score – cho biết xác
suất proposal thuộc về mỗi class
o Nhánh regression: Đầu ra dùng để cải thiện độ chính xác cho các
bounding box thu được từ RPN
Trang 33khác nhau nên ta cần pool chúng thành các ma trận có kích thước giống nhau) RoI Pooling được thực hiện như sau:
− Xác định vùng tương ứng với proposal trên feature map
− Chia proposal trên feature map thành các vùng với số lượng cố định (Số lượng
vùng phụ thuộc vào kích thước của output)
− Thực hiện max-pooling trên các cửa sổ con này để thu được đầu ra có kích thước cố định:
o Tìm giá trị lớn nhất của mỗi vùng
o Output sẽ là ma trận với các giá trị là các giá trị lớn nhất của mỗi vùng Ví dụ:
− Giả sử ta có 1 proposal, feature map 8 x 8, kích thước output yêu cầu là 2 x 2
Hình 2.16 Feature map của ví dụ
− Ánh xạ proposal lên feature map