TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TINBÁO CÁO CHUYÊN MÔN ĐỒ Á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
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN MÔN
ĐỒ Á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
Trang 2NỘI DUNG BÁO CÁO
1 Giới thiệu đề tài
Trang 31 GIỚI THIỆU VỀ ĐỀ TÀI
Trang 4• 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
Trang 5SINGLE SHOT MULTIBOX DETECTOR
Hình 2.10 Kiến trúc mạng SSD với backbone là mạng VGG16 [4]
Trang 6HƯỚNG TIẾP CẬN
• Ý 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
• 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
Hình 2.11 Hướng tiếp cận của SSD
Trang 7HUẤ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
Jaccard Overlap
Trang 8HUẤN LUYỆN MẠNG
Hàm mất mát
• 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 xp
ij = { 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 đó N là số lượng các default boxes matching với ground truth boxes
• c là các confidence score: Độ tin cậy
• l là predicted box: Các khung dự đoán
Trang 9SINGLE 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
Hình 2.13 Ứng dụng của mạng MobileNet trên thiết bị di động
Trang 10SINGLE 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
Trang 113 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
Trang 12PHÂN TÍCH CHỨC NĂNG
Hình 3.2 DFD mức khung cảnh
Trang 13PHÂN TÍCH CHỨC NĂNG
Hình 3.3 DFD mức đỉnh
Trang 14PHÂ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” 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”
Trang 15PHÂN TÍCH CHỨC NĂNG
06/18/2024 Hình 3.6 DFD mức dưới đỉnh tiến trình “Quản trị 15/55
model nhận diện biển báo”
Trang 16PHÂN TÍCH CHỨC NĂNG
Hình 3.7 DFD tiến trình “Tiền huấn luyện” Hình 3.8 DFD tiến trình “Huấn luyện model”
Trang 17PHÂN TÍCH CHỨC NĂNG
06/18/2024 Hình 3.9 DFD tiến trình “Hậu huấn luyện” 17/55
Trang 18PHÂN TÍCH DỮ LIỆU
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
Ứng dụng cần lưu trữ các thông tin
về biển báo
Bảng 3.1 Bảng dữ liệu “biển báo”
Trang 19THIẾT KẾ GIAO DIỆN ỨNG DỤNG
Hình 3.11 Màn hình cài đặt Hình 3.10 Giao diện Menu
Trang 20THIẾ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
Trang 21THIẾT KẾ GIAO DIỆN ỨNG DỤNG
Trang 224 TRIỂN KHAI VÀ KẾT QUẢ
• Theo QCVN41:2019/BGTVT [9] Có 5 nhóm biển báo giao thông chính
Trang 23THU 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
• Việc gán nhãn dữ liệu được thực hiện bằng công cụ LabelImg
Trang 24THU THẬP DỮ LIỆU
• Thu thập dữ liệu
Trang 26THU THẬP DỮ LIỆU
Trang 27THU THẬP DỮ LIỆU
Hình 4.4 Biển báo trong điều kiện ánh sáng ban ngày
Trang 28THU THẬP DỮ LIỆU
Trang 29THU THẬP DỮ LIỆU
• Thu thập dữ liệu
• Số lượng: 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
Bảng 4.1 Biển báo và số lượng biển báo thu thập được
Trang 30THU THẬP DỮ LIỆU
Dữ liệu huấn luyện:
• Do mô hình học máy học dựa vào dữ
liệu, do đó có càng nhiều dữ liệu càng tốt
• Để đảm bảo model hoạt động tốt,
Thực hiện lấy các biển báo có số lượng trên 100 trong tập dữ liệu để huấn luyện model Các biển báo còn lại được gộp lại như ý trên Được tập dữ liệu có các loại biển báo và số lượng như sau
Bảng 4.2 Biển báo và số lượng biển báo huấn luyện
Trang 31CÔNG NGHỆ SỬ DỤNG
• Model nhận diện biển báo: Ngôn
ngữ python, framework pytorch
• Server web: Flask
• Ứng dụng Mobile: JavaAndroid,
TorchScript
Hình 4.5 Kiến trúc ứng dụng
Trang 32HUẤN LUYỆN MODEL
Kết quả huấn luyện, việc đánh giá
được thực hiện trên tập dữ liệu kiểm
Trang 33HUẤN LUYỆN MODEL
Hình 4.8 Biểu đồ hàm Regression Loss của mạng VGG và Mobilenet Hình 4.9 Biểu đồ hàm Classification Loss của mạng VGG và Mobilenet
Trang 34KIỂM THỬ MODEL
• Average Precision [10] là độ đo về độ chính xác của
các mô hình nhận diện vật thể (object-detection) như
SSD, Faster-RCNN,…
• Nhận xét: Theo như các biểu đồ về hàm Loss bên
trên, và bảng so sánh về độ chính xác của 2 mạng
theo độ đo Average Precision, có thể thấy được rằng
Mạng VGG16-SSD có độ chính xác cao hơn nhiều so
với MobileNetV2 Nhưng có một nhược điểm là mạng
VGG16-SSD được tính toán và xử lý trên server, điều
này dẫn đến tình trạng nếu kết nối mạng giữa ứng
dụng và server không tốt, thì việc nhận diện sẽ có độ
trễ rất lớn Do đó cần phải tiếp tục huấn luyện mạng
MobileNetV2 để tăng độ chính xác cho mô hình mạng
MobileNetV2, hoặc phải có sự thay đổi trong kiến trúc
mạng Đây cũng sẽ là hướng nghiên cứu tiếp theo, để
việc xử lý tính toán, nhận diện biển báo không còn
phụ thuộc vào server.
Bảng 4.3 Độ chính xác của model trên trên tập dữ liệu huấn
luyện và kiểm thử
VGG16 - SSD MobileNetV2 SSD
Dữ liệu huấn luyện 0.78049555 0.52104798
Dữ liệu kiểm thử 0.6894157 0.47277347
Trang 3506/18/2024 35/55
KIỂM THỬ MODEL
Hình 4.12 VGG16-SSD trên Gooogle Colab
Hình 4.13 VGG16-SSD trên máy tính cá nhân
Hình 4.14 MobiletNetV2 SSD Lite trên Gooogle Colab
Hình 4.15 MobiletNetV2 SSD Lite trên máy tính cá nhân
Google Colab: GPU NVIDIA TESLA T4 Máy tính cá nhân: CPU Intel Core I5 5200U
Trang 3606/18/2024 36/55
• Chạy thử model
KIỂM THỬ MODEL
Trang 3706/18/2024 37/55
• Chức năng “Nhận diện biển báo theo thời
gian thực”
• Bằng việc sử dụng mạng MobileNetV2
trên thiết bị di động, ứng dụng nhận diện
ổn định khoảng 4 khung hình/giây Còn
khi sử dụng server để nhận diện, ứng
dụng đạt độ chính xác cao hơn, và tốc
độ khung hình thì tùy thuộc vào sức
mạnh của server cũng như tốc độ mạng
KIỂM THỬ MODEL
Hình 4.11 Chạy thử tính năng nhận diện realtime
Trang 38XÂY DỰNG ỨNG DỤNG
Hình 4.16 Giao diện menu ứng dụng
Trang 39XÂY DỰNG ỨNG DỤNG
Trang 40XÂY DỰNG ỨNG DỤNG
Hình 4.18 Chức năng tra cứu thông tin biển báo bằng hình ảnh
Trang 41XÂY DỰNG ỨNG DỤNG
báo theo thời gian thực
Trang 42KẾT LUẬN
1 Kết quả đã đạt được
• Đã tìm hiểu về mạng nơ-ron tích chập và xây dựng được model SSD dựa trên mạng cơ sở
là VGG16 và MobileNetV2 để nhận diện biển báo giao thông
• Model SSD MobileNetV2 có thể chạy được trực tiếp trên thiết bị di động.
• Đã xây dựng được ứng dụng nhận diện biển báo giao thông trên mobile với đầy đủ các chức năng đề ra
2 Những điểm hạn chế
• Dữ liệu thu thập vẫn còn ít, chưa đầy đủ các loại biển báo có tại Việt Nam.
• Độ chính xác của model chưa được cao.
• Khả năng nhận diện của model còn phụ thuộc vào góc chụp của biển báo, kích thước biển báo trong khung hình.
3 Hướng phát triển tiếp theo
• Tiếp tục thu thập thêm dữ liệu, huấn luyện tiếp model.
• Thực hiện việc tinh chỉnh kiến trúc mạng để model nhận diện tốt hơn hoặc có thể sẽ sử dụng các mô hình mạng khác.
• Phát triển sản phẩm thành module phần cứng, có khả năng tương thích với thiết bị camera hành trình.
• Nghiên cứu theo hướng tích hợp vào một hệ thống tự hành như: xe tự lái.
Trang 4306/18/2024 43/55
TÀI LIỆU THAM KHẢO
[1] Lý thuyết mạng Nơron, "kdientu.duytan.edu.vn," [Online] Available: neural.pdf
http://kdientu.duytan.edu.vn/media/50176/ly-thuyet-mang-[2] nttuan8, "nttuan8.com," 30 3 2019 [Online] Available: https://nttuan8.com/bai-6-convolutional-neural-network/
[3] "Wikipedia," [Online] Available: https://en.wikipedia.org/wiki/Kernel_(image_processing)
[4] W Liu, D.Anguelov, D.Ehan, C.Y.Fu, "reasearchGate," 10 2016 [Online] Available:
https://www.researchgate.net/publication/308278279_SSD_Single_Shot_MultiBox_Detector
[5] P Trong, "nerophung.github.io," 15 06 2019 [Online] Available:
https://nerophung.github.io/2019/06/15/ssd-single-shot-detector
[6] K He, X Zhang, S Ren, J Sun, "Arxiv," 10 12 2015 [Online] Available: https://arxiv.org/pdf/1512.03385.pdf
[7] M Sandler, A Howard, M Zhu, A Zhmoginov, L.C Chen, "Arxiv.org," 13 1 2018 [Online] Available:
Trang 44https://medium.com/@jonathan_hui/map-mean-average-precision-for-EM XIN CẢM ƠN QUÝ THẦY CÔ VÀ CÁC BẠN ĐÃ CHÚ Ý LẮNG NGHE!