Thông tin chung: - Tên đề tài: 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.. - Tìm hiểu về phương pháp phát hiện đối tượng D2Det để ứng dụng
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ SINH VIÊN NĂM 2021
Tên đề tài tiếng Việt:
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
Tên đề tài tiếng Anh:
LEARNING TO USE D2DET FOR VEHICLE DETECTION IN AERIAL IMAGES
Khoa/ Bộ môn: Công nghệ phần mềm
Thời gian thực hiện: 06 tháng
Cán bộ hướng dẫn: Ths Võ Duy Nguyên
Tham gia thực hiện
TT Họ và tên, MSSV Chịu trách nhiệm Điện thoại Email
1 Phan Thị Hồng Cúc,
18520260
Chủ nhiệm 0868775576 18520260@gm.uit.edu.vn
Thành phố Hồ Chí Minh – Tháng 03/2022
Trang 2ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Ngày nhận hồ sơ
Mã số đề tài
(Do CQ quản lý ghi)
BÁO CÁO TỔNG KẾT
Tên đề tài tiếng Việt:
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
Tên đề tài tiếng Anh:
LEARNING TO USE D2DET FOR VEHICLE DETECTION IN AERIAL IMAGES
Trang 3THÔNG TIN KẾT QUẢ NGHIÊN CỨU
1 Thông tin chung:
- Tên đề tài: 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
- Chủ nhiệm: Phan Thị Hồng Cúc
- Thành viên tham gia: Không
- Cơ quan chủ trì: Trường Đại học Công nghệ Thông tin
- Thời gian thực hiện: 06 tháng
2 Mục tiêu:
Trong phạm vi đề tài, chúng tôi sẽ tập trung giải quyết các vấn đề sau:
- Tìm hiểu tổng quan bài toán phát hiện đối tượng
- Tìm hiểu tổng quan bộ dữ liệu UAVDT và tập trung vào bộ dữ liệu dành cho bài toán phát hiện đối tượng UAVDT-benchmark-M
- Tìm hiểu về phương pháp phát hiện đối tượng D2Det để ứng dụng vào bài toán phát hiện phương tiện giao thông trong không ảnh
- Huấn luyện mô hình D2Det trên bộ dữ liệu UAVDT-benchmark-M
- Đánh giá mô hình trên tập test và các ảnh thuộc trường hợp cụ thể: daylight, low-alt, bird-view của bộ dữ liệu UAVDT-benchmark-M
3 Tính mới và sáng tạo:
Dựa trên khảo sát ban đầu, chúng tôi lựa chọn 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 vì đây là một trong các phương pháp phát hiện đối tượng cho kết quả tốt trên bộ dữ liệu UAVDT – bộ
dữ liệu chứa các ảnh chụp phương tiện giao thông từ trên không Trong bài báo công bố D2Det, tác giả đã sử dụng mô hình D2Det được huấn luyện trên bộ dữ liệu COCO để đánh giá trên bộ dữ liệu UAVDT Vì vậy, trong đề tài này, chúng tôi huấn luyện mô hình trên tập train và đánh giá trên tập test và các ảnh thuộc trường hợp daylight, low-alt, bird-view của bộ dữ liệu UAVDT-benchmark-M Đây cũng chính là điểm mới của đề tài
4 Tóm tắt kết quả nghiên cứu:
- Báo cáo tổng quan về bài toán phát hiện đối tượng
- Báo cáo về bộ dữ liệu UAVDT và UAVDT-benchmark-M
- Báo cáo tổng hợp về phương pháp D2Det và các lý thuyết liên quan
Trang 4MỤC LỤC
DANH MỤC HÌNH
Hình 1-1: Tổng quan về Đầu ra (a) – Đầu vào (b) của bài toán Đầu vào của bài toán
là tài liệu ở dạng ảnh, đầu ra là vị trí của bảng có thể có trong ảnh - các hộp giới hạn
màu xanh lá cây Error! Bookmark not defined Hình 1-2: Một số ví dụ về sự đa dạng về hình dạng và kích thước của bảng Error! Bookmark not defined.
Hình 1-3: Một số ví dụ minh họa về sự giao thoa vị trí bảngError! Bookmark not defined.
Hình 2-1: Minh họa các phương pháp biến đổi hình ảnh tài liệu a) là ảnh gốc, b) là
ảnh giãn nở đã biến đổi và c) là ảnh bị nhòe đã biến đổiError! Bookmark not defined.
Hình 2-2: Ví dụ phân biệt các kỹ thuật trong Computer VisionError! Bookmark not defined.
Hình 2-3: Tổng quan về trích xuất đặc trưng HOG trong bài báo gốc [5] Error! Bookmark not defined.
Hình 2-4: Kiến trúc mạng nơ ron sâu.[6] Error! Bookmark not defined.
- Mô hình D2Det được huấn luyện trên bộ dữ liệu UAVDT-benchmark-M
- Báo cáo về kết quả chạy thực nghiệm mô hình trên tập test và các ảnh thuộc trường hợp cụ thể: daylight, low-alt, bird-view của bộ dữ liệu UAVDT- benchmark-M
5 Tên sản phẩm:
6 Hiệu quả, phương thức chuyển giao kết quả nghiên cứu và khả năng áp dụng:
Độ chính xác của mô hình huấn luyện chưa cao Tuy nhiên, đối với trường hợp low-alt và trường hợp có cả 3 thuộc tính daylight, low-alt, birdview thì mô hình cho kết quả tương đối tốt Do đó, mô hình có thể được triển khai thông qua API để dự đoán các ảnh thuộc trường hợp trên
7 Hình ảnh, sơ đồ minh họa chính
Cơ quan Chủ trì
(ký, họ và tên, đóng dấu)
Chủ nhiệm đề tài
(ký, họ và tên)
Trang 5MỤC LỤC
Chương 1 TỔNG QUAN ĐỀ TÀI 14
1.1 Động lực nghiên cứu 14
1.1.1 Giới thiệu chung 14
1.1.2 Tính khoa học 15
1.1.3 Tính ứng dụng 15
1.2 Phát biểu bài toán 16
1.3 Các thách thức 16
1.4 Mục tiêu và phạm vi đề tài 17
1.5 Đóng góp của đề tài 17
1.6 Cấu trúc báo cáo 18
Chương 2 CÁC NGHIÊN CỨU LIÊN QUAN 19
2.1 Computer Vision 19
2.1.1 Giới thiệu 19
2.1.2 Một số bài toán nổi bật 19
2.2 Object Detection 20
2.2.1 Giới thiệu 20
2.2.2 Phân loại 21
2.3 Neural Network 22
2.4 Convolutional Neural Network 24
2.4.1 Giới thiệu 24
2.4.2 Convolution Layer 24
2.4.3 Pooling Layer 28
2.4.4 Fully connected layer 28
Trang 62.5 ResNet 29
2.5.1 Giới thiệu 29
2.5.2 Vanishing Gradient 30
2.5.3 Kiến trúc mạng ResNet 30
2.6 RoI pooling 31
2.7 RoIAlign 34
2.8 Deformable RoI Pooling 36
2.9 Feature Pyramid Network 37
Chương 3 PHƯƠNG PHÁP PHÁT HIỆN ĐỐI TƯỢNG DỰA TRÊN HỌC SÂU 39
3.1 Phương pháp phát hiện đối tượng họ R-CNN 39
3.1.1 R-CNN (Region with CNN feature) 39
3.1.2 Fast R-CNN 40
3.1.3 Faster R-CNN 41
3.1.3.1 Tổng quan 42
3.1.3.2 RPN 43
3.1.3.3 Fast R-CNN 46
3.2 D2Det 47
3.2.1 Tổng quan 47
3.2.2 Dense local regression 48
3.2.3 Discriminative RoI pooling 49
3.2.4 Kết quả thực nghiệm 51
Chương 4 BỘ DỮ LIỆU UAVDT-BENCHMARK-M 53
4.1 Bộ dữ liệu UAVDT 53
Trang 74.2 Bộ dữ liệu UAVDT-Benchmark-M 54
4.2.1 Tổng quan 54
4.2.2 Annotation 55
Chương 5 THỰC NGHIỆM VÀ ĐÁNH GIÁ 58
5.1 Quá trình thực nghiệm 58
5.1.1 Dữ liệu thực nghiệm 58
5.1.1.1 Thay đổi cách tổ chức của bộ dữ liệu 58
5.1.1.2 Thay đổi định dạng annotation của bộ dữ liệu 59
5.1.2 Quá trình thực nghiệm 61
5.1.2.1 Cấu hình thực nghiệm 61
5.1.2.2 Mô tả quá trình thực nghiệm 61
5.2 Phương pháp đánh giá 62
5.2.1 Intersection over Union 62
5.2.2 Confusion matrix 63
5.2.3 Precision và Recall 64
5.2.4 AP 65
5.3 Kết quả 66
5.3.1 Kết quả thực nghiệm 66
5.3.1.1 Mô hình D2Det sử dụng backbone ResNet50 kết hợp với FPN 66
5.3.1.2 Mô hình D2Det sử dụng backbone ResNet101 kết hợp với FPN 67 5.3.2 Hình ảnh minh họa 67
5.3.2.1 Mô hình D2Det sử dụng backbone ResNet50 kết hợp với FPN 67
5.3.2.2 Mô hình D2Det sử dụng backbone ResNet101 kết hợp với FPN 68 5.3.3 Đánh giá kết quả 69
Trang 8Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71
6.1 Kết luận 71
6.2 Hạn chế 71
6.3 Hướng phát triển 71
TÀI LIỆU THAM KHẢO 72
Trang 9DANH MỤC HÌNH
Hình 1.1 Input – output của bài toán 16
Hình 1.2 Thách thức của bài toán 17
Hình 2.1 Ví dụ phân biệt 3 bài toán của Computer Vision 21
Hình 2.2 Nơ-ron sinh học 22
Hình 2.3 Kiến trúc Neural Network 23
Hình 2.4 Nơ-ron trong Neural Network 23
Hình 2.5 Convolutional Neural Network 24
Hình 2.6 Cấu trúc tổng quát của Convolution layer 25
Hình 2.7 Ví dụ đầu vào của Convolution layer 25
Hình 2.8 Ví dụ minh họa quá trình hoạt động của Convolution layer 26
Hình 2.9 Ví dụ minh họa Max Pooling 28
Hình 2.10 Fully connected layer 29
Hình 2.11 Residual block 30
Hình 2.12 Mạng CNN truyền thống và mạng ResNet 31
Hình 2.13 Feature map của ví dụ 32
Hình 2.14 Ví dụ minh họa sau khi ánh xạ proposal lên feature map 33
Hình 2.15 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 33
Hình 2.16 Kết quả thu được của ví dụ 34
Hình 2.17 Minh họa chia vùng của RoIAlign 34
Hình 2.18 Ví dụ minh họa chia vùng của RoIAlign 35
Hình 2.19 Ví dụ minh họa quá trình xác định 4 điểm mẫu của RoIAlign 35
Hình 2.20 Ví dụ minh họa kết quả sau khi max pooling của RoIAlign 36
Hình 2.21 Deformable RoI Pooling 36
Hình 2.22 Feature Pyramid Network 37
Hình 2.23 Minh họa đường đi theo bottom-up và top-down 38
Hình 3.1 Kiến trúc của R-CNN 39
Hình 3.2 Kiến trúc của Fast R-CNN 40
Trang 10Hình 3.3 Kiến trúc của Faster R-CNN 42
Hình 3.4 Kiến trúc của RPN 43
Hình 3.5 RPN trong bài báo gốc 44
Hình 3.6 Ví dụ minh họa về anchor ứng với một cửa sổ trượt 44
Hình 3.7 Score của anchor được classification layer dự đoán 45
Hình 3.8 Anchor được điều chỉnh bởi bounding-box regression layer 45
Hình 3.9 Sự khác biệt giữa Fast R-CNN và Faster R-CNN 46
Hình 3.10 Kiến trúc của D2Det 47
Hình 3.11 Dense local regression 48
Hình 3.12 Discriminative RoI Pooling 50
Hình 3.13 Adaptive Weighted Pooling 50
Hình 4.1 Một số ảnh của bộ dữ liệu UAVDT 53
Hình 5.1 Minh họa định dạng annotation mới 59
Hình 5.2 Quy trình thực nghiệm 62
Hình 5.3 Minh hoạ cách tính IoU 63
Hình 5.4 Mẫu confusion matrix với bài toán phân loại có 3 lớp 63
Hình 5.5 Cách tính Precision và Recall 64
Hình 5.6 Bảng quan sát giá trị Precision và Recall 65
Hình 5.7 Minh họa vùng mà công thức tính AP tính toán 65
Hình 5.8 Kết quả dự đoán của mô hình D2Det sử dụng ResNet50 kết hợp FPN 68
Hình 5.9 Kết quả dự đoán của mô hình D2Det sử dụng ResNet101 kết hợp FPN 69
Trang 11DANH MỤC BẢNG
Bảng 2.1 Một số bộ lọc phổ biến 28
Bảng 3.1 Kết quả trên bộ dữ liệu MS COCO test-dev 52
Bảng 3.2 Kết quả trên bộ dữ liệu UAVDT 52
Bảng 4.1 Tóm tắt các bộ dữ liệu liên quan 54
Bảng 4.2 Mô tả ý nghĩa định dạng annotation dành cho bài toán MOT 56
Bảng 4.3 Mô tả ý nghĩa định dạng annotation dành cho bài toán DET 57
Bảng 5.1 Mô tả ý nghĩa định dạng annotation mới 61
Bảng 5.2 Kết quả dự đoán của D2Det sử dụng ResNet50 kết hợp FPN 66
Bảng 5.3 Kết quả dự đoán của D2Det sử dụng ResNet101 kết hợp FPN 67
Trang 12DANH MỤC TỪ VIẾT TẮT
CNN Convolutional Neural Networks
Fast R-CNN Fast Region-based Convolutional Network
Faster R-CNN Faster Region-based Convolutional Network
ResNet Residual Network
RoI Region of Interest
RPN Region Proposal Network
UAVDT Unmanned Aerial Vehicle Benchmark Object Detection and
Tracking
Trang 13TÓ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 đề tài 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 14Chương 1 TỔNG QUAN ĐỀ TÀI
Nội dung chương này sẽ trình bày động lực nghiên cứu, phát biểu về bài toán, các thách thức gặp phải, mục tiêu – phạm vi và những đóng góp chính của đề tài
1.1 Động lực nghiên cứu
1.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 phương tiệ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…
Để nâng cao độ chính xác của bài toán, ta cần 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, các điều kiện ngoại cảnh (thời tiết, ánh sáng…) tác động đến chất lượng hình ảnh mà chỉ có thể 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í Song, cách giải quyết này vẫn 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 Chỉ với một hoặc một vài thiết bị bay không người lái, ta 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
Trang 151.1.2 Tính khoa học
Bài toán phát hiện phương tiện giao thô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 nhằm khuyến khích các nhà nghiên cứu tìm ra các phương pháp nâng cao độ hiệu quả cho bài toán
1.1.3 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
vấn đề 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 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 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 đú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ả
Trang 161.2 Phát biểu bài toán
Đề tài 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):
camera của thiết bị bay không người lái
có trong ảnh đầu vào gồm vị trí và nhãn của loại phương tiện quan tâm
Hình 1.1 Input – output của bài toán
1.3 Các thách thức
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à rút 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, trong thực tế việc phát hiện phương tiện giao thông phải đối mặt nhiều thách thức khi phụ thuộc vào các yếu tố kích thước, hình dạng phương tiện,
Trang 17thời tiết, ánh sáng Chẳng hạn như với các ảnh thu được ở góc quay cao hoặc trong điều kiện ánh sáng phức tạp như trời tối, sương mù sẽ khó phân biệt đối tượng
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.4 Mục tiêu và phạm vi đề tài
Trong phạm vi đề tài này, chúng tôi sẽ tập trung giải quyết các vấn đề sau:
− Tìm hiểu tổng quan bài toán phát hiện đối tượng
− Tìm hiểu tổng quan bộ dữ liệu UAVDT [2] và tập trung vào bộ dữ liệu dành cho bài toán phát hiện đối tượng UAVDT-benchmark-M
− Tìm hiểu về phương pháp phát hiện đối tượng D2Det [1] để ứng dụng vào bài toán phát hiện phương tiện giao thông trong không ảnh
− Huấn luyện mô hình D2Det trên bộ dữ liệu UAVDT-benchmark-M
− Đánh giá mô hình trên tập test và các ảnh thuộc trường hợp cụ thể: daylight, low-alt, bird-view của bộ dữ liệu UAVDT-benchmark-M
1.5 Đóng góp của đề tài
Các đóng góp của đề tài chúng tôi bao gồm:
− Hệ thống lại các kiến thức về bài toán phát hiện đối tượng
− Hệ thống lại các kiến thức Deep Learning liên quan gồm: NN, CNN, ResNet, Deformable RoI Pooling, Faster R-CNN, D2Det
− Huấn luyện mô hình D2Det trên bộ dữ liệu UAVDT-benchmark-M
− Đánh giá mô hình trên tập test và các ảnh thuộc trường hợp cụ thể: daylight, low-alt, bird-view của bộ dữ liệu UAVDT-benchmark-M
Trang 181.6 Cấu trúc báo cáo
Đề tài được trình bày trong 6 chương, nội dung chính được tóm tắt như sau:
− Chương 1: Tổng quan đề tài Giới thiệu về đề tài gồm: động lực nghiên cứu,
phát biểu bài toán, các thách thức, mục tiêu và phạm vi đề tài cũng như trình bày về các đóng góp chính của đề tài
− Chương 2: Các nghiên cứu liên quan Trình bày về các cơ sở lý thuyết,
nghiên cứu liên quan đến đề tài
− Chương 3: Phương pháp phát hiện đối tượng dựa trên học sâu Trình bày
về các phương pháp phát hiện đối tượng thuộc họ R-CNN – phương pháp tiêu biểu trong nhóm phương pháp sử dụng anchor và D2Det – phương pháp dựa trên nhóm phương pháp này
− Chương 4: Bộ dữ liệu UAVDT-Benchmark-M Trình bày tổng quan về bộ
dữ liệu UAVDT và chi tiết hơn về UAVDT-Benchmark-M dành cho bài toán
mà chúng tôi đề cập trong đề tài
− Chương 5: Thực nghiệm và đánh giá Trình bày tổng quát về quá trình thực
nghiệm, phương pháp đánh giá và kết quả
− Chương 6: Kết luận và hướng phát triển Tổng kết kết quả đạt được trong
đề tài cũng như hướng phát triển trong tương lai
Trang 19Chương 2 CÁC NGHIÊN CỨU LIÊN QUAN
Nội dung chương này sẽ trình bày về các nghiên cứu, lý thuyết liên quan đến đề tài của chúng tôi
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
Trang 20− Đị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 đối tượng
− 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, cụ thể là xác định vị trí, vẽ bounding box cho 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 đố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 đế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 và Định
vị đối tượng 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 ảnh với một đối tượng
o Output: Nhãn lớp của đối tượng
− Đị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 ả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 ảnh
o Input: Một ả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 21Hình 2.1 Ví dụ phân biệt 3 bài toán của Computer Vision 1
2.2.2 Phân loại
Các phương pháp giải quyết bài toán Phát hiện đối tượng được chia thành 2 nhóm chính:
− Phương pháp phát hiện đối tượng 1 giai đoạn (one-stage/single-stage object
detection/detector): Đây là phương pháp mà trong việc thiết kế mô hình không
có phần trích xuất các vùng có khả năng chứa đối tượng (RoI) như RPN của Faster-RCNN Các mô hình 1 giai đoạn xem việc định vị đối tượng như 1 bài toán regression (với 4 thông số, ví dụ như x, y, w, h) và cũng dựa trên các anchor để phát hiện đối tượng Các mô hình loại này thường nhanh nhưng độ chính xác lại kém hơn phương pháp 2 giai đoạn và thường được dùng để nhận dạng đối tượng Mô hình tiêu biểu: You Only Look Once (YOLO), Single Shot MultiBox Detector (SSD), RetinaNet…
− Phương pháp phát hiện đối tượng 2 giai đoạn (two-stage object
detection/detector): Đây là phương pháp mà mô hình 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 22toá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ả hoạt động của hệ thần kinh với các nơ-ron đượ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 23a) 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 khi làm việc, người
ta thường để 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 24tầ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)
(fully-2.4 Convolutional Neural Network
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 25Hì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 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 26Hì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 28− 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 29Hì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 convolution 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 chỉ 3.57% Không những thế, nó còn đứng đầu 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 các biến thể được đặt tên là ResNet theo sau là một số chỉ số lớp nhất định
Trang 302.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 huấn luyện Ý 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 các parameter của mạng đượ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à weight đượ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 huấn luyện sẽ lâu nếu số lượng vòng lặp quá lớn
Tuy nhiên, trong thực tế, Gradient 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 về weight của các layer đó, 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ó 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ư hình sau:
Hình 2.11 Residual block
Trang 31Trong 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]
2.6 RoI pooling
RoI pooling layer nhận đầu vào là feature map và cho ra kết quả là một ma trận có kích thước cố định được định nghĩa trước (do theo sau nó là fully connected layer mà các RoI lại có kích thước khá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
Trang 32− 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 × 8, kích thước output yêu cầu là 2 × 2
Hình 2.13 Feature map của ví dụ
− Ánh xạ proposal lên feature map
Trang 33Hình 2.14 Ví dụ minh họa sau khi ánh xạ proposal lên feature map
− Ta chia proposal này thành 2 × 2 vùng:
o Lưu ý: kích thước của proposal không cần thiết phải chia được chính xác cho kích thước của output
Hình 2.15 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
− Lấy giá trị lớn nhất của từng vùng, ta thu được kết quả như sau:
Trang 34Hình 2.16 Kết quả thu được của ví dụ
2.7 RoIAlign
RoIAlign [8] có cùng mục tiêu với RoI Pooling: lấy RoI thông qua các vùng
đề xuất nhưng RoIAlign có 2 bước khác với RoI Pooling:
− RoIAlign chia proposal thành số vùng bằng nhau tương ứng với kích thước output cho trước
o Điều này có nghĩa là sẽ không có một pixel xác định nào có thể được lấy từ feature map, vì các thông số tọa độ mới là số thực
Hình 2.17 Minh họa chia vùng của RoIAlign [8]
− Với mỗi vùng đã chia, RoIAlign sử dụng phép nội suy song tuyến (bilinear interpolation) để xác định 4 điểm mẫu
− Từ 4 điểm mẫu đã xác định của mỗi vùng đã chia, thực hiện max pooling hoặc average pooling để xác định giá trị lấy ra từ vùng đó
Trang 35Ví dụ:
− Chia proposal thành các vùng bằng nhau tương ứng với kích thước cho trước
Hình 2.18 Ví dụ minh họa chia vùng của RoIAlign 1
− Thực hiện phép nội suy song tuyến để xác định 4 điểm mẫu:
Hình 2.19 Ví dụ minh họa quá trình xác định 4 điểm mẫu của RoIAlign 1
− Từ 4 điểm mẫu đã xác định, thực hiện max pooling để thu kết quả cuối cùng
1 Nguồn: https://firiuza.medium.com/roi-pooling-vs-roi-align-65293ab741db
Trang 36Hình 2.20 Ví dụ minh họa kết quả sau khi max pooling của RoIAlign 1
2.8 Deformable RoI Pooling
Hình 2.21 Deformable RoI Pooling [9]
Deformable RoI Pooling [9] được thực hiện như sau:
− Đầu tiên, ở nhánh trên, ta vẫn cần sử dụng RoI Pooling (hoặc RoIAlign) để pool feature map thành ma trận có kích thước cố định cho trước
− Sau đó, một lớp fully connected tạo ra các thông số được chuẩn hóa ∆p̂ij và được biến đổi thành thông số ∆pij (phương trình dưới cùng của hình 2.21) tại
γ = 0.1
o Việc chuẩn hóa thông số là cần thiết cho việc học thông số là bất biến đối với kích thước của RoI
1 Nguồn: https://firiuza.medium.com/roi-pooling-vs-roi-align-65293ab741db
Trang 37− Cuối cùng, ở nhánh dưới, ta thực hiện Deformable RoI Pooling Feature map đầu ra sẽ được pool dựa trên các vùng với các thông số đã được tăng cường (augmented offsets)
2.9 Feature Pyramid Network
Feature Pyramid Network [10] (FPN) được giới thiệu bởi nhóm tác giả Facebook AI Research (FAIR) tại hội nghị CVPR năm 2017 FPN là mạng phát hiện đặc trưng tạo ra các feature map đa tỉ lệ, được dùng kết hợp với các mạng phát hiện đối tượng nhằm tăng khả năng phát hiện đối tượng trong ảnh Trong Faster R-CNN, FPN có thể kết hợp với mạng RPN để tăng khả năng dự đoán xác suất đối tượng xuất hiện trong proposal
Hình 2.22 Feature Pyramid Network [10]
− Bottom-Up Pathway: là bước feedforward ở backbone ConvNet, mỗi tầng tương ứng với 1 tầng trong “kim tự tháp”, đầu ra của lớp cuối cùng của mỗi tầng sẽ được Lateral Connection lấy tham khảo để nâng cao kết quả của Top-Down Pathway