TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
BÁO CÁO CHUYÊN MÔN
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Ngành: Công nghệ Thông tin
Chuyên ngành: Công nghệ phần mềm
NGHIÊN CỨU VỀ MẠNG NƠ-RON TÍCH CHẬP VÀ XÂY DỰNG ỨNG DỤNG NHẬN DIỆN BIỂN BÁO GIAO
THÔNG
Sinh viên thực hiện: Nguyễn Thiên Sơn – 1610A06
Giảng viên hướng dẫn: TS. Nguyễn Đức Tuấn
11/21/20
1/55
NỘI DUNG BÁO CÁO
1.
2.
3.
4.
5.
6.
11/21/20
Giới thiệu đề tài
Cơ sở lý thuyết
Phân tích và thiết kế hệ thống
Triển khai và kết quả
Kết luận
Tài liệu tham khảo
2/55
1. GIỚI THIỆU VỀ ĐỀ TÀI
Lý do chọn đề tài
•
Việc hiểu biết luật giao thông của một bộ phận người dân còn hạn chế, không tuân thủ tốt luật giao thông, điển hình là việc Không tuân thủ
biển báo giao thông
•
Những năm gần đây, trí thông minh nhân tạo, cụ thể hơn là Machine Learning và Deep Learning nổi lên như bằng chứng của cuộc cách
mạng công nghiệp lần thứ 4
Mục đích của đề tài
11/21/20
•
Ứng dụng được xây dựng giúp người dùng có một cách tiếp cận nhanh hơn về luật giao thông, cụ thể là công dụng của biển báo giao
thông.
•
Ứng dụng hoạt động như một trợ lý, chỉ cần bật ứng dụng và hướng camera về phía trước, ứng dụng sẽ nhắc tên biển báo. Giúp các tài xế
không bị bỏ lỡ mất biển báo và không bị phạm phải những lỗi không mong muốn
3/55
2. CƠ sở lý thuyết
•
•
•
11/21/20
Trí tuệ nhân tạo, Machine Learning và Deep Learning
Mạng nơ-ron tích chập
•
•
•
Các phép tích chập
Pooling
Các bài toán với mạng nơ-ron tích chập
Nhận diện vật thể với thuật toán Single Shot Multibox Detection
•
•
SSD với mạng VGG16
SSD-Lite với MobileNetV2
4/55
Single shot multibox detector
Hình 2.10. Kiến trúc mạng SSD với backbone là mạng VGG16 [4]
11/21/20
5/55
Hướng tiếp cận
Hình 2.11 Hướng tiếp cận của SSD
•
Ý tưởng chính của SSD [4][5] đến từ việc sử dụng các bounding box, bằng việc khởi tạo sẵn các default box tại mỗi vị trí trên feature map, SSD sẽ tính toán và đánh giá
thông tin tại mỗi vị trí xem vị trí đó có vật thể hay không, nếu có thì là vật thể nào
•
11/21/20
Bằng việc sử dụng các default box trên các feature map khác nhau, các box sẽ ôm trọn một phần hình ảnh với các kích thước khác nhau.
6/55
HUẤN LUYỆN MẠNG
•
Trong quá trình huấn luyện, ta tiến hành tìm các default box trên các feature maps
phù hợp với groundtruth (dữ liệu đã gán nhãn) bằng cách tìm các box có jaccard
overlap cao. Công thức tính jaccard overlap dựa trên tỉ lệ giữa diện tích vùng trùng
nhau giữa 2 tập và diện tích hợp lại của cả 2 tập
•
Đặt ra 1 ngưỡng, nếu jaccard overlap lớn hơn ngưỡng đó, thì đó chính là vật thể
Hình 2.12. Minh họa Jaccard Overlap
11/21/20
7/55
HUẤN LUYỆN MẠNG
Hàm mất mát
•
Localization Loss
Confidence Loss
Hàm mất mát của SSD được xây dựng bằng localization loss để đánh giá việc phát hiện và confidence loss để đánh giá việc phân lớp đối
tượng
•
Đặt
p
x ij
•
l là box dự đoán
= { 1, 0 } ứng với default box thứ i khớp với groundtruth thứ j thuộc lớp p, ta có hàm Loss sau:
Trong đó:
•
•
11/21/20
•
Trong đó N là số lượng các default boxes matching với ground truth boxes
•
SmoothL1 được tính toán như sau:
c là các confidence score: Độ tin cậy
•
l là predicted box: Các khung dự đoán
•
g là groundtruth: Các giá trị thật
g là box groundtruth
•
8/55
SINGLE SHOT Multibox detector với mobilenet v2
•
Cũng là thuật toán nhận diện vật thể SSD, nhưng sử dụng mạng mobilenet làm mạng cơ sở để trích xuất đặc trưng ảnh. Mạng
mobilenet giúp ta có thể triển khai các mô hình máy học trên các thiết bị có tài nguyên tính toán hạn chế như Raspberry PI, Jetson
Nano hoặc các thiết bị di động
11/21/20
Hình 2.13. Ứng dụng của mạng MobileNet trên thiết bị di động
9/55
SINGLE SHOT Multibox detector với mobilenet v2
•
Sử dụng kiến trúc của ResNet[6] để mạng có thể có rất nhiều layer nhưng không gặp hiện tượng Vanishing Gradient
•
MobileNetV2[7] sử dụng tích chập chiều sâu tách biệt để giảm số lượng tham số trong mạng. => Giảm số lượng tham số => Kích
thước mạng giảm => có thể chạy tốt trên các thiết bị hạn chế về tài nguyên tính toán
Hình 2.15. Khối bình thường
Hình 2.14. Hiện tượng Vanishing Gradient
11/21/20
và Khối dư trong mạng
10/55
3. Phân tích và thiết kế hệ thống
Ứng dụng đầu ra chạy trên mobile, gồm 2 nhóm chức năng
chính:
•
•
Tra cứu thông tin biển báo qua hình ảnh
Nhận diện biển báo theo thời gian thực
Hình 3.1. Sơ đồ phân rã chức năng
11/21/20
11/55
Phân tích chức năng
Hình 3.2. DFD mức khung cảnh
11/21/20
12/55
Phân tích chức năng
11/21/20
13/55
Hình 3.3. DFD mức đỉnh
Phân tích chức năng
Hình 3.4. DFD mức dưới đỉnh tiến trình “Tra cứu thông tin biển
báo”
11/21/20
Hình 3.5. DFD mức dưới đỉnh tiến trình
“Nhận diện biển báo theo thời gian thực”
14/55
Phân tích chức năng
Hình 3.6. DFD mức dưới đỉnh tiến trình “Quản trị model nhận diện biển báo”
11/21/20
15/55
Phân tích chức năng
Hình 3.7. DFD tiến trình “Tiền huấn luyện”
11/21/20
Hình 3.8. DFD tiến trình “Huấn luyện model”
16/55
Phân tích chức năng
11/21/20
Hình 3.9. DFD tiến trình “Hậu huấn luyện”
17/55
Phân tích dữ liệu
Bảng 3.1. Bảng dữ liệu “biển báo”
Ứng dụng cần lưu trữ các thông tin về biển báo
STT
Khóa chính
Tên trường
Kiểu dữ liệu
Diễn giải
1
X
Id
int
Mã biển báo
2
YNghia
Nvarchar(Max)
Ý nghĩa của biển báo
3
MoTaThem
Nvarchar(Max)
Mô tả thêm cho biển báo.
(nếu có)
4
HinhAnh
Nvarchar(Max)
Đường dẫn đến hình ảnh
đại diện cho biển báo
11/21/20
18/55
Thiết kế giao diện ứng dụng
11/21/20
19/55
Hình 3.10. Giao diện Menu
Hình 3.11. Màn hình cài đặt
Thiết kế giao diện ứng dụng
•
Giao diện chức năng Tra cứu thông tin biển báo
qua hình ảnh
•
Khi bấm vào biển báo dưới listView của màn
hình thì hiển thị dialog như hình bên phải: Chứa
thông tin và ý nghĩa của biển báo
11/21/20
Hình 3.12. Giao diện chức năng Tra cứu thông tin biển báo qua hình ảnh
20/55
Thiết kế giao diện ứng dụng
•
Giao diện camera màn hình chức năng nhận diện biển báo theo thời gian
thực
•
11/21/20
Khi ứng dụng nhận diện được biển báo, ứng dụng sẽ đọc lên tên biển báo
Hình 3.13. Giao diện chức năng Nhận diện biển báo
21/55theo thời gian
thực
4. TRIỂN KHAI VÀ KẾT QUẢ
•
11/21/20
Theo QCVN41:2019/BGTVT [9]. Có 5 nhóm biển báo giao thông chính
•
Nhóm biển báo cấm
•
Nhóm biển cảnh báo nguy hiểm
•
Nhóm biển hiệu lệnh
•
Nhóm biển chỉ dẫn
•
Nhóm biển báo phụ
Hình 4.1. Các nhóm biển báo và biển báo giao thông đường bộ tại Việt Nam
22/55
Thu thập dữ liệu
•
•
•
•
•
Dữ liệu thu được để phục vụ huấn luyện được thu thập từ các nguồn:
Các hình ảnh trên Internet(Facebook, Google)
Hình ảnh được cắt ra từ các video trên youtube
Hình ảnh được chụp bằng điện thoại trên các tuyến đường tại Hà Nội
Hiện tại, số lượng ảnh đã lên đến 7078 ảnh với 114 loại biển báo thu thập được. Tổng số biển báo trong tập dữ liệu trên là 12958
biển.
•
11/21/20
Việc gán nhãn dữ liệu được thực hiện bằng công cụ LabelImg
23/55
Thu thập dữ liệu
•
Thu thập dữ liệu
24/55
11/21/20
Hình 4.2. Công cụ LabelImg trong việc gán nhãn dữ liệu
Thu thập dữ liệu
•
Về độ đa dạng của dữ liệu huấn luyện: Các hình ảnh trong tập dữ liệu được chụp bằng nhiều thiết bị khác nhau: Camera
hành trình, điện thoại, hình ảnh trên Internet…; kích thước, góc chụp và ánh sáng biển báo trong ảnh là khác nhau(to, nhỏ,
nghiêng, ngược sáng, xuôi sáng…) và điều kiện thời tiết cũng như thời gian, địa điểm chụp là khác nhau
11/21/20
25/55